ecere/src/gui/XInterface: (#678) System cursors support on X
[sdk] / ecere / src / gui / drivers / cocoa / CocoaInterface.ec
1 namespace gui::drivers;
2
3 import "instance"
4 import "CocoaOpenGLDisplayDriver"
5
6 default:
7
8 private:
9
10 import "Interface"
11 #include "CocoaEcereBridge.h"
12
13 class CocoaInterface : Interface
14 {
15     class_property(name) = "Cocoa";
16
17     // --- User Interface System ---
18     bool Initialize()
19     {
20         bool result;
21
22         printf("Initialize %s:%i\n", __FILE__, __LINE__);
23         result = CocoaInitialize();
24
25         return result;
26     }
27
28     void Terminate()
29     {
30         printf("Terminate %s:%i\n", __FILE__, __LINE__);
31         CocoaTerminate();
32     }
33
34     bool ProcessInput(bool processAll)
35     {
36         bool result;
37
38         //printf("ProcessInput %s:%i\n", __FILE__, __LINE__);
39         result = CocoaProcessInput(processAll);
40
41         return result;
42     }
43
44     void Wait()
45     {
46         // TODO:
47         printf("STUB! %s:%i\n", __FILE__, __LINE__);
48     }
49
50     void Lock(Window window)
51     {
52         // TODO:
53         printf("Lock %s:%i\n", __FILE__, __LINE__);
54     }
55
56     void Unlock(Window window)
57     {
58         // TODO:
59         printf("Unlock %s:%i\n", __FILE__, __LINE__);
60     }
61
62     char **GraphicsDrivers(int *numDrivers)
63     {
64         static char *graphicsDrivers[] = { "CocoaOpenGL" };
65         *numDrivers = sizeof(graphicsDrivers) / sizeof(char *);
66
67         return (char **)graphicsDrivers;
68     }
69
70     void GetCurrentMode(bool * fullScreen, int * resolution, int * colorDepth, int * refreshRate)
71     {
72         printf("GetCurrentMode %s:%i\n", __FILE__, __LINE__);
73         CocoaGetCurrentMode(fullScreen, resolution, colorDepth, refreshRate);
74     }
75
76     void EnsureFullScreen(bool *fullScreen)
77     {
78         printf("STUB! %s:%i\n", __FILE__, __LINE__);
79         *fullScreen = false;
80     }
81
82     bool ScreenMode(bool fullScreen, int resolution, int colorDepth, int refreshRate, bool * textMode)
83     {
84         printf("STUB! %s:%i\n", __FILE__, __LINE__);
85
86         *textMode = false;
87         return true;
88     }
89
90     // --- Window Creation ---
91     void * CreateRootWindow(Window window)
92     {
93         // TODO:
94         printf("CreateRootWindow %s:%i\n", __FILE__, __LINE__);
95         window.windowHandle = CocoaCreateRootWindow(window);
96
97         return window.windowHandle;
98     }
99
100     void DestroyRootWindow(Window window)
101     {
102         printf("DestroyRootWindow %s:%i\n", __FILE__, __LINE__);
103         CocoaDestroyRootWindow(window.windowHandle);
104     }
105
106     // -- Window manipulation ---
107
108     void SetRootWindowCaption(Window window, char * name)
109     {
110         printf("SetRootWindowCaption %s:%i\n", __FILE__, __LINE__);
111         CocoaSetRootWindowCaption(window.windowHandle, name);
112     }
113
114     void PositionRootWindow(Window window, int x, int y, int w, int h, bool move, bool resize)
115     {
116         printf("PositionRootWindow %s:%i\n", __FILE__, __LINE__);
117         CocoaPositionRootWindow(window.windowHandle, x, y, w, h, move, resize);
118     }
119
120     void OrderRootWindow(Window window, bool topMost)
121     {
122         // TODO:
123         printf("STUB! %s:%i\n", __FILE__, __LINE__);
124     }
125
126     void SetRootWindowColor(Window window)
127     {
128         // TODO:
129         printf("STUB! %s:%i\n", __FILE__, __LINE__);
130     }
131
132     void OffsetWindow(Window window, int *x, int *y)
133     {
134         //printf("OffsetWindow %s:%i\n", __FILE__, __LINE__);
135         CocoaOffsetWindow(window.windowHandle, x, y);
136     }
137
138     void UpdateRootWindow(Window window)
139     {
140         // TODO:
141         printf("UpdateRootWindow! %s:%i\n", __FILE__, __LINE__);
142         CocoaDispatch_UpdateRootWindow(window);
143     }
144
145     void SetRootWindowState(Window window, WindowState state, bool visible)
146     {
147         // TODO:
148         printf("STUB! %s:%i\n", __FILE__, __LINE__);
149     }
150
151     void FlashRootWindow(Window window)
152     {
153         // TODO:
154         printf("STUB! %s:%i\n", __FILE__, __LINE__);
155     }
156
157     void ActivateRootWindow(Window window)
158     {
159         // TODO:
160         printf("STUB! %s:%i\n", __FILE__, __LINE__);
161     }
162
163     // --- Mouse-based window movement ---
164
165     void StartMoving(Window window, int x, int y, bool fromKeyBoard)
166     {
167         // TODO:
168         printf("STUB! %s:%i\n", __FILE__, __LINE__);
169     }
170
171     void StopMoving(Window window)
172     {
173         // TODO:
174         printf("STUB! %s:%i\n", __FILE__, __LINE__);
175     }
176
177     // -- Mouse manipulation ---
178
179     void GetMousePosition(int *x, int *y)
180     {
181         CocoaGetMousePosition(x, y);
182         //printf("GetMousePosition(%i,%i) %s:%i\n", *x, *y, __FILE__, __LINE__);
183     }
184
185     void SetMousePosition(int x, int y)
186     {
187         // TODO:
188         printf("STUB! %s:%i\n", __FILE__, __LINE__);
189     }
190
191     void SetMouseRange(Window window, Box box)
192     {
193         // TODO:
194         printf("STUB! %s:%i\n", __FILE__, __LINE__);
195     }
196
197     void SetMouseCapture(Window window)
198     {
199         // TODO:
200         printf("STUB! %s:%i\n", __FILE__, __LINE__);
201     }
202
203     // -- Mouse cursor ---
204
205     void SetMouseCursor(Window window, int cursor)
206     {
207         // TODO:
208         printf("STUB! %s:%i\n", __FILE__, __LINE__);
209     }
210
211     // --- Caret ---
212
213     void SetCaret(int x, int y, int size)
214     {
215         // TODO:
216         printf("STUB! %s:%i\n", __FILE__, __LINE__);
217     }
218
219     void ClearClipboard()
220     {
221         // TODO:
222         printf("STUB! %s:%i\n", __FILE__, __LINE__);
223     }
224
225     bool AllocateClipboard(ClipBoard clipBoard, uint size)
226     {
227         // TODO:
228         printf("STUB! %s:%i\n", __FILE__, __LINE__);
229     }
230
231     bool SaveClipboard(ClipBoard clipBoard)
232     {
233         // TODO:
234         printf("STUB! %s:%i\n", __FILE__, __LINE__);
235     }
236
237     bool LoadClipboard(ClipBoard clipBoard)
238     {
239         // TODO:
240         printf("STUB! %s:%i\n", __FILE__, __LINE__);
241     }
242
243     void UnloadClipboard(ClipBoard clipBoard)
244     {
245         // TODO:
246         printf("STUB! %s:%i\n", __FILE__, __LINE__);
247     }
248
249     // --- State based input ---
250
251     bool AcquireInput(Window window, bool state)
252     {
253         // TODO:
254         printf("STUB! %s:%i\n", __FILE__, __LINE__);
255         return false;
256     }
257
258     bool GetMouseState(MouseButtons * buttons, int * x, int * y)
259     {
260         // TODO:
261         printf("STUB! %s:%i\n", __FILE__, __LINE__);
262     }
263
264     bool GetJoystickState(int device, Joystick joystick)
265     {
266         // TODO:
267         printf("STUB! %s:%i\n", __FILE__, __LINE__);
268     }
269
270     bool GetKeyState(Key key)
271     {
272         // TODO:
273         printf("STUB! %s:%i\n", __FILE__, __LINE__);
274     }
275
276     void SetTimerResolution(uint hertz)
277     {
278         // TODO:
279         printf("STUB! %s:%i\n", __FILE__, __LINE__);
280     }
281
282     bool SetIcon(Window window, BitmapResource resource)
283     {
284         // TODO:
285         printf("STUB! %s:%i\n", __FILE__, __LINE__);
286
287         return true;
288     }
289 }
290
291