-
Notifications
You must be signed in to change notification settings - Fork 32
/
CGSTransitions.h
executable file
·91 lines (79 loc) · 3.37 KB
/
CGSTransitions.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/*
* Copyright (C) 2007-2008 Alacatia Labs
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
*
* Joe Ranieri [email protected]
*
*/
//
// Updated by Robert Widmann.
// Copyright © 2015-2016 CodaFi. All rights reserved.
// Released under the MIT license.
//
#ifndef CGS_TRANSITIONS_INTERNAL_H
#define CGS_TRANSITIONS_INTERNAL_H
#include "CGSConnection.h"
typedef enum {
/// No animation is performed during the transition.
kCGSTransitionNone,
/// The window's content fades as it becomes visible or hidden.
kCGSTransitionFade,
/// The window's content zooms in or out as it becomes visible or hidden.
kCGSTransitionZoom,
/// The window's content is revealed gradually in the direction specified by the transition subtype.
kCGSTransitionReveal,
/// The window's content slides in or out along the direction specified by the transition subtype.
kCGSTransitionSlide,
///
kCGSTransitionWarpFade,
kCGSTransitionSwap,
/// The window's content is aligned to the faces of a cube and rotated in or out along the
/// direction specified by the transition subtype.
kCGSTransitionCube,
///
kCGSTransitionWarpSwitch,
/// The window's content is flipped along its midpoint like a page being turned over along the
/// direction specified by the transition subtype.
kCGSTransitionFlip
} CGSTransitionType;
typedef enum {
/// Directions bits for the transition. Some directions don't apply to some transitions.
kCGSTransitionDirectionLeft = 1 << 0,
kCGSTransitionDirectionRight = 1 << 1,
kCGSTransitionDirectionDown = 1 << 2,
kCGSTransitionDirectionUp = 1 << 3,
kCGSTransitionDirectionCenter = 1 << 4,
/// Reverses a transition. Doesn't apply for all transitions.
kCGSTransitionFlagReversed = 1 << 5,
/// Ignore the background color and only transition the window.
kCGSTransitionFlagTransparent = 1 << 7,
} CGSTransitionFlags;
typedef struct CGSTransitionSpec {
int version; // always set to zero
CGSTransitionType type;
CGSTransitionFlags options;
CGWindowID wid; /* 0 means a full screen transition. */
CGFloat *backColor; /* NULL means black. */
} *CGSTransitionSpecRef;
/// Creates a new transition from a `CGSTransitionSpec`.
CG_EXTERN CGError CGSNewTransition(CGSConnectionID cid, const CGSTransitionSpecRef spec, CGSTransitionID *outTransition);
/// Invokes a transition asynchronously. Note that `duration` is in seconds.
CG_EXTERN CGError CGSInvokeTransition(CGSConnectionID cid, CGSTransitionID transition, CGFloat duration);
/// Releases a transition.
CG_EXTERN CGError CGSReleaseTransition(CGSConnectionID cid, CGSTransitionID transition);
#endif /* CGS_TRANSITIONS_INTERNAL_H */