ecere:gui/gfx:drivers/cocoa: Partial native Cocoa drivers implementation for Mac...
[sdk] / ecere / src / gui / drivers / cocoa / CocoaEcereBridge.h
1 #if !defined(_COCOAINTERFACE_H)
2 #define _COCOAINTERFACE_H
3 // CocoaInterface.ec <--> CocoaInterfaceImpl.m bridge.
4
5 typedef struct CocoaKeyMod
6 {
7     bool shift:1;
8     bool ctrl:1;
9     bool alt:1;
10     bool cmd:1;
11     bool left:1;
12     bool middle:1;
13     bool right:1;
14     bool isActivate:1;
15     bool isSideEffect:1;
16     bool closingDropDown:1;
17 } CocoaKeyMod;
18
19 typedef void *EcereWindowRef;
20 typedef void *WindowHandle;
21
22 // CocoaInterface
23 bool CocoaInitialize();
24 void CocoaTerminate();
25 bool CocoaProcessInput(bool processAll);
26 bool CocoaLock(WindowHandle handle);
27 void CocoaUnlock(WindowHandle handle);
28 void CocoaGetCurrentMode(bool * fullScreen, int * resolution, int * colorDepth, int * refreshRate);
29 WindowHandle CocoaCreateRootWindow(EcereWindowRef window);
30 void CocoaDestroyRootWindow(WindowHandle handle);
31 void CocoaSetRootWindowCaption(WindowHandle window, char *name);
32 void CocoaPositionRootWindow(WindowHandle handle, int x, int y, int w, int h, bool move, bool resize);
33 void CocoaOffsetWindow(WindowHandle window, int *x, int *y);
34 void CocoaGetMousePosition(int *x, int *y);
35
36 // CocoaOpenGLDisplay
37 void CocoaOpenGLMakeCurrentContext(WindowHandle handle);
38 void CocoaOpenGLUpdate(WindowHandle handle);
39
40 // Dispatch
41 void CocoaDispatch_UpdateRootWindow(EcereWindowRef ref);
42 void CocoaDispatch_ExternalPosition(EcereWindowRef ref, int x, int y, int width, int height);
43
44 bool CocoaDispatch_OnCreate(EcereWindowRef window);
45 void CocoaDispatch_OnDestroy(EcereWindowRef window);
46 void CocoaDispatch_OnDestroyed(EcereWindowRef window);
47 bool CocoaDispatch_OnClose(EcereWindowRef window, bool parentClosing);
48 //bool CocoaDispatch_OnStateChange(EcereWindowRef window, WindowState state, Modifiers mods);
49 bool CocoaDispatch_OnPostCreate(EcereWindowRef window);
50 bool CocoaDispatch_OnMoving(EcereWindowRef window, int *x, int *y, int w, int h);
51 bool CocoaDispatch_OnResizing(EcereWindowRef window, int *width, int *height);
52 void CocoaDispatch_OnResize(EcereWindowRef window, int width, int height);
53 void CocoaDispatch_OnPosition(EcereWindowRef window, int x, int y, int width, int height);
54 bool CocoaDispatch_OnLoadGraphics(EcereWindowRef window);
55 void CocoaDispatch_OnApplyGraphics(EcereWindowRef window);
56 void CocoaDispatch_OnUnloadGraphics(EcereWindowRef window);
57 void CocoaDispatch_Update(EcereWindowRef window);
58 bool CocoaDispatch_OnActivate(EcereWindowRef window, bool active, EcereWindowRef previous, bool *goOnWithActivation, bool direct);
59 void CocoaDispatch_OnActivateClient(EcereWindowRef window, EcereWindowRef client, EcereWindowRef previous);
60 //bool CocoaDispatch_OnKeyDown(EcereWindowRef window, Key key, unichar ch);
61 //bool CocoaDispatch_OnKeyUp(EcereWindowRef window, Key key, unichar ch);
62 //bool CocoaDispatch_OnKeyHit(EcereWindowRef window, Key key, unichar ch);
63 //bool CocoaDispatch_OnSysKeyDown(EcereWindowRef window, Key key, unichar ch);
64 //bool CocoaDispatch_OnSysKeyUp(EcereWindowRef window, Key key, unichar ch);
65 //bool CocoaDispatch_OnSysKeyHit(EcereWindowRef window, Key key, unichar ch);
66 //bool CocoaDispatch_OnMouseOver(EcereWindowRef window, int x, int y, Modifiers mods);
67 //bool CocoaDispatch_OnMouseLeave(EcereWindowRef window, Modifiers mods);
68 //bool CocoaDispatch_OnMouseMove(EcereWindowRef window, int x, int y, Modifiers mods);
69 bool CocoaDispatch_OnLeftButtonDown(EcereWindowRef window, int x, int y, CocoaKeyMod mods);
70 //bool CocoaDispatch_OnLeftButtonUp(EcereWindowRef window, int x, int y, Modifiers mods);
71 //bool CocoaDispatch_OnLeftDoubleClick(EcereWindowRef window, int x, int y, Modifiers mods);
72 //bool CocoaDispatch_OnRightButtonDown(EcereWindowRef window, int x, int y, Modifiers mods);
73 //bool CocoaDispatch_OnRightButtonUp(EcereWindowRef window, int x, int y, Modifiers mods);
74 //bool CocoaDispatch_OnRightDoubleClick(EcereWindowRef window, int x, int y, Modifiers mods);
75 //bool CocoaDispatch_OnMiddleButtonDown(EcereWindowRef window, int x, int y, Modifiers mods);
76 //bool CocoaDispatch_OnMiddleButtonUp(EcereWindowRef window, int x, int y, Modifiers mods);
77 //bool CocoaDispatch_OnMiddleDoubleClick(EcereWindowRef window, int x, int y, Modifiers mods);
78 void CocoaDispatch_OnMouseCaptureLost(EcereWindowRef window);
79 //void CocoaDispatch_OnHScroll(EcereWindowRef window, ScrollBarAction action, int position, Key key);
80 //void CocoaDispatch_OnVScroll(EcereWindowRef window, ScrollBarAction action, int position, Key key);
81 //void CocoaDispatch_OnDrawOverChildren(EcereWindowRef window, Surface surface);
82 //bool CocoaDispatch_OnFileModified(EcereWindowRef window, FileChange fileChange, char * param);
83 bool CocoaDispatch_OnSaveFile(EcereWindowRef window, char *fileName);
84
85 #endif // !defined(_COCOAINTERFACE_H)