comparison dep/animia/src/win/quartz.mm @ 156:cdf79282d647

dep/animia: add VERY early x11 window stuff
author Paper <mrpapersonic@gmail.com>
date Wed, 15 Nov 2023 18:04:04 -0500
parents d2bbb5773616
children 44c5e6dd9488
comparison
equal deleted inserted replaced
155:d2bbb5773616 156:cdf79282d647
9 9
10 template<typename T> 10 template<typename T>
11 static bool IntegerFromNSNumber(NSNumber* num, T& result) { 11 static bool IntegerFromNSNumber(NSNumber* num, T& result) {
12 if (!num) 12 if (!num)
13 return false; 13 return false;
14
14 result = [num intValue]; 15 result = [num intValue];
16 return true;
17 }
18
19 static bool StringFromNSString(NSString* string, std::string& result) {
20 if (!string)
21 return false;
22
23 result = [string UTF8String];
15 return true; 24 return true;
16 } 25 }
17 26
18 static bool GetWindowTitle(unsigned int wid, std::string& result) { 27 static bool GetWindowTitle(unsigned int wid, std::string& result) {
19 NSWindow* window = [NSApp windowWithWindowNumber: wid]; 28 NSWindow* window = [NSApp windowWithWindowNumber: wid];
20 if (!window) 29 if (!window)
21 return false; 30 return false;
22 31
23 NSString* title = [window title]; 32 return StringFromNSString([window title], result);
24 if (!title)
25 return false;
26
27 result = [title UTF8String];
28
29 return true;
30 }
31
32 static bool StringFromNSString(NSString* string, std::string& result) {
33 if (!string)
34 return false;
35 result = [string UTF8String];
36 return true;
37 } 33 }
38 34
39 bool QuartzWinTools::EnumerateWindows(window_proc_t window_proc) { 35 bool QuartzWinTools::EnumerateWindows(window_proc_t window_proc) {
40 if (!window_proc) 36 if (!window_proc)
41 return false; 37 return false;
42 38
43 NSMutableArray* windows = (NSMutableArray*)CGWindowListCopyWindowInfo(kCGWindowListOptionAll, kCGNullWindowID); 39 NSMutableArray* windows = reinterpret_cast<NSMutableArray*>(CGWindowListCopyWindowInfo(kCGWindowListOptionAll, kCGNullWindowID));
44 if (!windows) 40 if (!windows)
45 return false; 41 return false;
46 42
47 for (NSDictionary* window in windows) { 43 for (NSDictionary* window in windows) {
48 if (!window) 44 if (!window)