core_graphics2/
window_level.rs

1#[repr(i32)]
2#[derive(Clone, Copy, Debug, Eq, PartialEq)]
3pub enum CGWindowLevelKey {
4    #[doc(alias = "kCGBaseWindowLevelKey")]
5    Base              = 0,
6    #[doc(alias = "kCGMinimumWindowLevelKey")]
7    Minimum           = 1,
8    #[doc(alias = "kCGDesktopWindowLevelKey")]
9    Desktop           = 2,
10    #[doc(alias = "kCGBackstopMenuLevelKey")]
11    BackstopMenu      = 3,
12    #[doc(alias = "kCGNormalWindowLevelKey")]
13    Normal            = 4,
14    #[doc(alias = "kCGFloatingWindowLevelKey")]
15    Floating          = 5,
16    #[doc(alias = "kCGTornOffMenuWindowLevelKey")]
17    TornOffMenu       = 6,
18    #[doc(alias = "kCGDockWindowLevelKey")]
19    Dock              = 7,
20    #[doc(alias = "kCGMainMenuWindowLevelKey")]
21    MainMenu          = 8,
22    #[doc(alias = "kCGStatusWindowLevelKey")]
23    Status            = 9,
24    #[doc(alias = "kCGModalPanelWindowLevelKey")]
25    ModalPanel        = 10,
26    #[doc(alias = "kCGPopUpMenuWindowLevelKey")]
27    PopUpMenu         = 11,
28    #[doc(alias = "kCGDraggingWindowLevelKey")]
29    Dragging          = 12,
30    #[doc(alias = "kCGScreenSaverWindowLevelKey")]
31    ScreenSaver       = 13,
32    #[doc(alias = "kCGMaximumWindowLevelKey")]
33    Maximum           = 14,
34    #[doc(alias = "kCGOverlayWindowLevelKey")]
35    Overlay           = 15,
36    #[doc(alias = "kCGHelpWindowLevelKey")]
37    Help              = 16,
38    #[doc(alias = "kCGUtilityWindowLevelKey")]
39    Utility           = 17,
40    #[doc(alias = "kCGDesktopIconWindowLevelKey")]
41    DesktopIcon       = 18,
42    #[doc(alias = "kCGCursorWindowLevelKey")]
43    Cursor            = 19,
44    #[doc(alias = "kCGAssistiveTechHighWindowLevelKey")]
45    AssistiveTechHigh = 20,
46    #[doc(alias = "kCGNumberOfWindowLevelKeys")]
47    NumberOfKeys      = 21,
48}
49
50pub type CGWindowLevel = i32;
51
52extern "C" {
53    pub fn CGWindowLevelForKey(key: CGWindowLevelKey) -> CGWindowLevel;
54}
55
56pub const kCGNumReservedWindowLevels: i32 = 16;
57pub const kCGNumReservedBaseWindowLevels: i32 = 5;
58
59pub const kCGBaseWindowLevel: CGWindowLevel = i32::MIN;
60pub const kCGMinimumWindowLevel: CGWindowLevel = kCGBaseWindowLevel + kCGNumReservedBaseWindowLevels;
61pub const kCGMaximumWindowLevel: CGWindowLevel = i32::MAX - kCGNumReservedWindowLevels;
62
63pub const kCGDesktopWindowLevel: CGWindowLevel = kCGMinimumWindowLevel + 20;
64pub const kCGDesktopIconWindowLevel: CGWindowLevel = kCGDesktopWindowLevel + 1;
65pub const kCGBackstopMenuLevel: CGWindowLevel = -20;
66pub const kCGNormalWindowLevel: CGWindowLevel = 0;
67pub const kCGFloatingWindowLevel: CGWindowLevel = 3;
68pub const kCGTornOffMenuWindowLevel: CGWindowLevel = 3;
69pub const kCGModalPanelWindowLevel: CGWindowLevel = 8;
70pub const kCGUtilityWindowLevel: CGWindowLevel = 19;
71pub const kCGDockWindowLevel: CGWindowLevel = 20;
72pub const kCGMainMenuWindowLevel: CGWindowLevel = 24;
73pub const kCGStatusWindowLevel: CGWindowLevel = 25;
74pub const kCGPopUpMenuWindowLevel: CGWindowLevel = 101;
75pub const kCGOverlayWindowLevel: CGWindowLevel = 102;
76pub const kCGHelpWindowLevel: CGWindowLevel = 200;
77pub const kCGDraggingWindowLevel: CGWindowLevel = 500;
78pub const kCGScreenSaverWindowLevel: CGWindowLevel = 1000;
79pub const kCGAssistiveTechHighWindowLevel: CGWindowLevel = 1500;
80pub const kCGCursorWindowLevel: CGWindowLevel = kCGMaximumWindowLevel - 1;
81
82pub fn window_level_for_key(key: CGWindowLevelKey) -> CGWindowLevel {
83    unsafe { CGWindowLevelForKey(key) }
84}