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_MacOSXTurnOffMenus(); 30 extern(C) void Tk_MacOSXTkOwnsCursor(int tkOwnsIt); 31 extern(C) void TkMacOSXInitMenus(Tcl_Interp* interp); 32 extern(C) void TkMacOSXInitAppleEvents(Tcl_Interp* interp); 33 extern(C) void TkGenWMConfigureEvent(Tk_Window tkwin, int x, int y, int width, int height, int flags); 34 extern(C) void TkMacOSXInvalClipRgns(Tk_Window tkwin); 35 extern(C) void Tk_MacOSXSetupTkNotifier(); 36 extern(C) int Tk_MacOSXIsAppInFront(); 37 } 38 39 struct TkPlatStubHooks; 40 41 struct TkPlatStubs 42 { 43 int magic; 44 TkPlatStubHooks* hooks; 45 46 version(Windows) 47 { 48 extern(C) Window function(Tk_Window tkwin, HWND hwnd) nothrow tk_AttachHWND; 49 extern(C) HINSTANCE function() nothrow tk_GetHINSTANCE; 50 extern(C) HWND function(Window window) nothrow tk_GetHWND; 51 extern(C) Tk_Window function(HWND hwnd) nothrow tk_HWNDToWindow; 52 extern(C) void function(HWND hwnd, int x, int y) nothrow tk_PointerEvent; 53 extern(C) int function(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, LRESULT* result) nothrow tk_TranslateWinEvent; 54 } 55 56 version(OSX) 57 { 58 extern(C) void function() nothrow tk_MacOSXTurnOffMenus; 59 extern(C) void function(int tkOwnsIt) nothrow tk_MacOSXTkOwnsCursor; 60 extern(C) void function(Tcl_Interp* interp) nothrow tkMacOSXInitMenus; 61 extern(C) void function(Tcl_Interp* interp) nothrow tkMacOSXInitAppleEvents; 62 extern(C) void function(Tk_Window tkwin, int x, int y, int width, int height, int flags) nothrow tkGenWMConfigureEvent; 63 extern(C) void function(Tk_Window tkwin) nothrow tkMacOSXInvalClipRgns; 64 extern(C) void function() nothrow tk_MacOSXSetupTkNotifier; 65 extern(C) int function() nothrow tk_MacOSXIsAppInFront; 66 } 67 } 68 69 extern(C) shared TkPlatStubs* tkPlatStubsPtr;