comparison src/video/quartz/CGS.h @ 761:c5b2b6d2d1fe

Date: Wed, 31 Dec 2003 21:55:30 +0100 From: Max Horn Subject: SDL: video/quartz cleanup while doing some experimental changes in the quartz code, I was annoyed by having to recompile that one big .o file over and over again. So I decided to finally realize one TODO: properly splitting the code over multiple files :-). With two exceptions, I didn't make code changes, only rearranged files and added new headers. Since there are several new files, making a patch didn't work out so well, so I decided to just send you all the new & modified files. The one source change I made is related to showing/hiding the mouse. I renamed cursor_visible to cursor_should_be_visible and cursor_hidden to cursor_visible; I think that makes reading the code easier. Then I added two new functions: QZ_ShowMouse and QZ_HideMouse. They help manage cursor_visible (the former 'cursor_hidden'). Finally I replaced the Carbon ShowCursor/HiderCuror calls by [NSCursor hide] and [NSCursor unhide]. The API docs are not conclusive, but it might be that with those the "cursor_visible" (former 'cursor_hidden') hack may not be necessary anymore; however so far I didn't test this hypothesis, so I left that in. The other change was to remove in_foreground and use [NSApp isActive] instead: Manually keeping track of whether we are in the foreground is error prone. This should work better in some corner cases.
author Sam Lantinga <slouken@libsdl.org>
date Sun, 04 Jan 2004 14:55:35 +0000
parents
children d910939febfa
comparison
equal deleted inserted replaced
760:cf9dd3aa6756 761:c5b2b6d2d1fe
1 /*
2 SDL - Simple DirectMedia Layer
3 Copyright (C) 1997-2003 Sam Lantinga
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details.
14
15 You should have received a copy of the GNU Library General Public
16 License along with this library; if not, write to the Free
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18
19 Sam Lantinga
20 slouken@libsdl.org
21 */
22
23 /*
24 Obscuring code: maximum number of windows above ours (inclusive)
25
26 Note: this doesn't work too well in practice and should be
27 phased out when we add OpenGL 2D acceleration. It was never
28 enabled in the first place, so this shouldn't be a problem ;-)
29 */
30 #define kMaxWindows 256
31
32 /* Some of the Core Graphics Server API for obscuring code */
33 #define kCGSWindowLevelTop 2147483632
34 #define kCGSWindowLevelDockIconDrag 500
35 #define kCGSWindowLevelDockMenu 101
36 #define kCGSWindowLevelMenuIgnore 21
37 #define kCGSWindowLevelMenu 20
38 #define kCGSWindowLevelDockLabel 12
39 #define kCGSWindowLevelDockIcon 11
40 #define kCGSWindowLevelDock 10
41 #define kCGSWindowLevelUtility 3
42 #define kCGSWindowLevelNormal 0
43
44 /*
45 For completeness; We never use these window levels, they are always below us
46 #define kCGSWindowLevelMBarShadow -20
47 #define kCGSWindowLevelDesktopPicture -2147483647
48 #define kCGSWindowLevelDesktop -2147483648
49 */
50
51 typedef CGError CGSError;
52 typedef long CGSWindowCount;
53 typedef void * CGSConnectionID;
54 typedef int CGSWindowID;
55 typedef CGSWindowID* CGSWindowIDList;
56 typedef CGWindowLevel CGSWindowLevel;
57 typedef NSRect CGSRect;
58
59 extern CGSConnectionID _CGSDefaultConnection ();
60
61 extern CGSError CGSGetOnScreenWindowList (CGSConnectionID cid,
62 CGSConnectionID owner,
63 CGSWindowCount listCapacity,
64 CGSWindowIDList list,
65 CGSWindowCount *listCount);
66
67 extern CGSError CGSGetScreenRectForWindow (CGSConnectionID cid,
68 CGSWindowID wid,
69 CGSRect *rect);
70
71 extern CGWindowLevel CGSGetWindowLevel (CGSConnectionID cid,
72 CGSWindowID wid,
73 CGSWindowLevel *level);
74
75 extern CGSError CGSDisplayHWFill (CGDirectDisplayID id, unsigned int x, unsigned int y,
76 unsigned int w, unsigned int h, unsigned int color);
77
78 extern CGSError CGSDisplayCanHWFill (CGDirectDisplayID id);
79
80 extern CGSError CGSGetMouseEnabledFlags (CGSConnectionID cid, CGSWindowID wid, int *flags);
81
82 int CGSDisplayHWSync (CGDirectDisplayID id);
83