summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/CGWindowLevel.h
blob: 71c9da2f733003e3382cb13e0b733473723d7159 (plain) (blame)
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
/*
     File:       CGWindowLevel.h
 
     Contains:   CoreGraphics window levels
 
     Version:    QuickTime 7.3
 
     Copyright:  (c) 2007 (c) 2000-2001 by Apple Computer, Inc., all rights reserved.
 
     Bugs?:      For bug reports, consult the following page on
                 the World Wide Web:
 
                     http://developer.apple.com/bugreporter/
 
*/

#ifndef CGWINDOWLEVEL_H_
#define CGWINDOWLEVEL_H_

#ifndef __CGBASE__
#include <CGBase.h>
#endif




#if PRAGMA_ONCE
#pragma once
#endif

#ifdef __cplusplus
extern "C" {
#endif

#if PRAGMA_IMPORT
#pragma import on
#endif

#if PRAGMA_ENUM_ALWAYSINT
    #if defined(__fourbyteints__) && !__fourbyteints__ 
        #define __CGWINDOWLEVEL__RESTORE_TWOBYTEINTS
        #pragma fourbyteints on
    #endif
    #pragma enumsalwaysint on
#elif PRAGMA_ENUM_OPTIONS
    #pragma option enum=int
#elif PRAGMA_ENUM_PACK
    #if __option(pack_enums)
        #define __CGWINDOWLEVEL__RESTORE_PACKED_ENUMS
        #pragma options(!pack_enums)
    #endif
#endif

/*
 * Windows may be assigned to a particular level. When assigned to a level,
 * the window is ordered relative to all other windows in that level.
 * Windows with a higher level are sorted in front of windows with a lower
 * level.
 *
 * A common set of window levels is defined here for use within higher
 * level frameworks.  The levels are accessed via a key and function,
 * so that levels may be changed or adjusted in future releases without
 * breaking binary compatability.
 */
typedef int32_t                         CGWindowLevel;
typedef int32_t                         CGWindowLevelKey;
enum _CGCommonWindowLevelKey {
  kCGBaseWindowLevelKey         = 0,
  kCGMinimumWindowLevelKey      = 1,
  kCGDesktopWindowLevelKey      = 2,
  kCGBackstopMenuLevelKey       = 3,
  kCGNormalWindowLevelKey       = 4,
  kCGFloatingWindowLevelKey     = 5,
  kCGTornOffMenuWindowLevelKey  = 6,
  kCGDockWindowLevelKey         = 7,
  kCGMainMenuWindowLevelKey     = 8,
  kCGStatusWindowLevelKey       = 9,
  kCGModalPanelWindowLevelKey   = 10,
  kCGPopUpMenuWindowLevelKey    = 11,
  kCGDraggingWindowLevelKey     = 12,
  kCGScreenSaverWindowLevelKey  = 13,
  kCGMaximumWindowLevelKey      = 14,
  kCGOverlayWindowLevelKey      = 15,
  kCGHelpWindowLevelKey         = 16,
  kCGUtilityWindowLevelKey      = 17,
  kCGDesktopIconWindowLevelKey  = 18,
  kCGNumberOfWindowLevelKeys    = 19    /* Internal bookkeeping; must be last */
};
typedef enum _CGCommonWindowLevelKey _CGCommonWindowLevelKey;

/*
 *  CGWindowLevelForKey()
 *  
 *  Availability:
 *    Non-Carbon CFM:   not available
 *    CarbonLib:        not available
 *    Mac OS X:         in version 10.0 and later
 */
EXTERN_API_C( CGWindowLevel )
CGWindowLevelForKey(CGWindowLevelKey key);


/* number of levels above kCGMaximumWindowLevel reserved for internal use */
enum {
  kCGNumReservedWindowLevels    = 16
};

/* Definitions of older constant values as calls */
#define kCGBaseWindowLevel          CGWindowLevelForKey(kCGBaseWindowLevelKey)  /* LONG_MIN */
#define kCGMinimumWindowLevel       CGWindowLevelForKey(kCGMinimumWindowLevelKey)   /* (kCGBaseWindowLevel + 1) */
#define kCGDesktopWindowLevel       CGWindowLevelForKey(kCGDesktopWindowLevelKey)   /* kCGMinimumWindowLevel */
#define kCGDesktopIconWindowLevel   CGWindowLevelForKey(kCGDesktopIconWindowLevelKey)   /* kCGMinimumWindowLevel + 20 */
#define kCGBackstopMenuLevel        CGWindowLevelForKey(kCGBackstopMenuLevelKey)    /* -20 */
#define kCGNormalWindowLevel        CGWindowLevelForKey(kCGNormalWindowLevelKey)    /* 0 */
#define kCGFloatingWindowLevel      CGWindowLevelForKey(kCGFloatingWindowLevelKey)  /* 3 */
#define kCGTornOffMenuWindowLevel   CGWindowLevelForKey(kCGTornOffMenuWindowLevelKey)   /* 3 */
#define kCGDockWindowLevel          CGWindowLevelForKey(kCGDockWindowLevelKey)  /* 10 */
#define kCGMainMenuWindowLevel      CGWindowLevelForKey(kCGMainMenuWindowLevelKey)  /* 20 */
#define kCGStatusWindowLevel        CGWindowLevelForKey(kCGStatusWindowLevelKey)    /* 21 */
#define kCGModalPanelWindowLevel    CGWindowLevelForKey(kCGModalPanelWindowLevelKey)    /* 8 */
#define kCGPopUpMenuWindowLevel     CGWindowLevelForKey(kCGPopUpMenuWindowLevelKey) /* 101 */
#define kCGDraggingWindowLevel      CGWindowLevelForKey(kCGDraggingWindowLevelKey)  /* 500 */
#define kCGScreenSaverWindowLevel   CGWindowLevelForKey(kCGScreenSaverWindowLevelKey)   /* 1000 */
#define kCGOverlayWindowLevel       CGWindowLevelForKey(kCGOverlayWindowLevelKey)   /* 102 */
#define kCGHelpWindowLevel          CGWindowLevelForKey(kCGHelpWindowLevelKey)  /* 102 */
#define kCGUtilityWindowLevel       CGWindowLevelForKey(kCGUtilityWindowLevelKey)   /* 19 */
#define kCGMaximumWindowLevel       CGWindowLevelForKey(kCGMaximumWindowLevelKey)   /* LONG_MAX - kCGNumReservedWindowLevels */

#if PRAGMA_ENUM_ALWAYSINT
    #pragma enumsalwaysint reset
    #ifdef __CGWINDOWLEVEL__RESTORE_TWOBYTEINTS
        #pragma fourbyteints off
    #endif
#elif PRAGMA_ENUM_OPTIONS
    #pragma option enum=reset
#elif defined(__CGWINDOWLEVEL__RESTORE_PACKED_ENUMS)
    #pragma options(pack_enums)
#endif

#ifdef PRAGMA_IMPORT_OFF
#pragma import off
#elif PRAGMA_IMPORT
#pragma import reset
#endif

#ifdef __cplusplus
}
#endif

#endif /* CGWINDOWLEVEL_H_ */