1 /** 2 * D bindings to Tcl/Tk 3 * 4 * License: 5 * MIT. See LICENSE for full details. 6 */ 7 module tcltk.tkplatdecls; 8 9 import core.stdc.config; 10 import core.sys.windows.windows; 11 import x11.X; 12 import tcltk.tk; 13 14 /* 15 * Exported function declarations: 16 */ 17 version(Windows) 18 { 19 extern(C) Window Tk_AttachHWND(Tk_Window tkwin, HWND hwnd) nothrow; 20 extern(C) HINSTANCE Tk_GetHINSTANCE() nothrow; 21 extern(C) HWND Tk_GetHWND(Window window) nothrow; 22 extern(C) Tk_Window Tk_HWNDToWindow(HWND hwnd) nothrow; 23 extern(C) void Tk_PointerEvent(HWND hwnd, int x, int y) nothrow; 24 extern(C) int Tk_TranslateWinEvent(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, LRESULT* result) nothrow; 25 } 26 27 version(OSX) 28 { 29 // extern(C) void Tk_MacOSXSetEmbedHandler(Tk_MacOSXEmbedRegisterWinProc registerWinProcPtr, 30 // Tk_MacOSXEmbedGetGrafPortProc getPortProcPtr, 31 // Tk_MacOSXEmbedMakeContainerExistProc containerExistProcPtr, 32 // Tk_MacOSXEmbedGetClipProc getClipProc, 33 // Tk_MacOSXEmbedGetOffsetInParentProc getOffsetProc) nothrow; 34 extern(C) void Tk_MacOSXTurnOffMenus(); 35 extern(C) void Tk_MacOSXTkOwnsCursor(int tkOwnsIt); 36 extern(C) void TkMacOSXInitMenus(Tcl_Interp* interp); 37 extern(C) void TkMacOSXInitAppleEvents(Tcl_Interp* interp); 38 extern(C) void TkGenWMConfigureEvent(Tk_Window tkwin, int x, int y, int width, int height, int flags); 39 extern(C) void TkMacOSXInvalClipRgns(Tk_Window tkwin); 40 // extern(C) void* TkMacOSXGetDrawablePort(Drawable drawable); 41 // extern(C) void* TkMacOSXGetRootControl(Drawable drawable); 42 extern(C) void Tk_MacOSXSetupTkNotifier(); 43 extern(C) int Tk_MacOSXIsAppInFront(); 44 } 45 46 struct TkPlatStubs 47 { 48 int magic; 49 void* hooks; 50 51 version(Windows) 52 { 53 extern(C) Window function(Tk_Window tkwin, HWND hwnd) nothrow tk_AttachHWND; 54 extern(C) HINSTANCE function() nothrow tk_GetHINSTANCE; 55 extern(C) HWND function(Window window) nothrow tk_GetHWND; 56 extern(C) Tk_Window function(HWND hwnd) nothrow tk_HWNDToWindow; 57 extern(C) void function(HWND hwnd, int x, int y) nothrow tk_PointerEvent; 58 extern(C) int function(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, LRESULT* result) nothrow tk_TranslateWinEvent; 59 } 60 61 version(OSX) 62 { 63 // extern(C) void function(Tk_MacOSXEmbedRegisterWinProc registerWinProcPtr, 64 // Tk_MacOSXEmbedGetGrafPortProc getPortProcPtr, 65 // Tk_MacOSXEmbedMakeContainerExistProc containerExistProcPtr, 66 // Tk_MacOSXEmbedGetClipProc getClipProc, 67 // Tk_MacOSXEmbedGetOffsetInParentProc getOffsetProc) nothrow tk_MacOSXSetEmbedHandler; 68 extern(C) void function() nothrow tk_MacOSXTurnOffMenus; 69 extern(C) void function(int tkOwnsIt) nothrow tk_MacOSXTkOwnsCursor; 70 extern(C) void function(Tcl_Interp* interp) nothrow tkMacOSXInitMenus; 71 extern(C) void function(Tcl_Interp* interp) nothrow tkMacOSXInitAppleEvents; 72 extern(C) void function(Tk_Window tkwin, int x, int y, int width, int height, int flags) nothrow tkGenWMConfigureEvent; 73 extern(C) void function(Tk_Window tkwin) nothrow tkMacOSXInvalClipRgns; 74 // extern(C) void* function(Drawable drawable) nothrow tkMacOSXGetDrawablePort; 75 // extern(C) void* function(Drawable drawable) nothrow tkMacOSXGetRootControl; 76 extern(C) void function() nothrow tk_MacOSXSetupTkNotifier; 77 extern(C) int function() nothrow tk_MacOSXIsAppInFront; 78 } 79 } 80 81 extern(C) shared const(TkPlatStubs)* tkPlatStubsPtr;