1 /*
2  * tkPlatDecls.h --
3  *
4  *  Declarations of functions in the platform-specific public Tcl API.
5  *
6  * Copyright (c) 1998-1999 by Scriptics Corporation.
7  *
8  * See the file "license.terms" for information on usage and redistribution
9  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
10  */
11 
12 #ifndef _TKPLATDECLS
13 #define _TKPLATDECLS
14 
15 #ifdef BUILD_tk
16 #undef TCL_STORAGE_CLASS
17 #define TCL_STORAGE_CLASS DLLEXPORT
18 #endif
19 
20 /*
21  * WARNING: This file is automatically generated by the tools/genStubs.tcl
22  * script.  Any modifications to the function declarations below should be made
23  * in the generic/tk.decls script.
24  */
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 /* !BEGIN!: Do not edit below this line. */
31 
32 /*
33  * Exported function declarations:
34  */
35 
36 #if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */
37 /* 0 */
38 EXTERN Window    Tk_AttachHWND(Tk_Window tkwin, HWND hwnd);
39 /* 1 */
40 EXTERN HINSTANCE  Tk_GetHINSTANCE(void);
41 /* 2 */
42 EXTERN HWND    Tk_GetHWND(Window window);
43 /* 3 */
44 EXTERN Tk_Window  Tk_HWNDToWindow(HWND hwnd);
45 /* 4 */
46 EXTERN void    Tk_PointerEvent(HWND hwnd, int x, int y);
47 /* 5 */
48 EXTERN int    Tk_TranslateWinEvent(HWND hwnd, UINT message,
49         WPARAM wParam, LPARAM lParam,
50         LRESULT *result);
51 #endif /* WIN */
52 #ifdef MAC_OSX_TK /* AQUA */
53 /* 0 */
54 EXTERN void    Tk_MacOSXSetEmbedHandler(
55         Tk_MacOSXEmbedRegisterWinProc *registerWinProcPtr,
56         Tk_MacOSXEmbedGetGrafPortProc *getPortProcPtr,
57         Tk_MacOSXEmbedMakeContainerExistProc *containerExistProcPtr,
58         Tk_MacOSXEmbedGetClipProc *getClipProc,
59         Tk_MacOSXEmbedGetOffsetInParentProc *getOffsetProc);
60 /* 1 */
61 EXTERN void    Tk_MacOSXTurnOffMenus(void);
62 /* 2 */
63 EXTERN void    Tk_MacOSXTkOwnsCursor(int tkOwnsIt);
64 /* 3 */
65 EXTERN void    TkMacOSXInitMenus(Tcl_Interp *interp);
66 /* 4 */
67 EXTERN void    TkMacOSXInitAppleEvents(Tcl_Interp *interp);
68 /* 5 */
69 EXTERN void    TkGenWMConfigureEvent(Tk_Window tkwin, int x, int y,
70         int width, int height, int flags);
71 /* 6 */
72 EXTERN void    TkMacOSXInvalClipRgns(Tk_Window tkwin);
73 /* 7 */
74 EXTERN void *    TkMacOSXGetDrawablePort(Drawable drawable);
75 /* 8 */
76 EXTERN void *    TkMacOSXGetRootControl(Drawable drawable);
77 /* 9 */
78 EXTERN void    Tk_MacOSXSetupTkNotifier(void);
79 /* 10 */
80 EXTERN int    Tk_MacOSXIsAppInFront(void);
81 #endif /* AQUA */
82 
83 typedef struct TkPlatStubs {
84     int magic;
85     void *hooks;
86 
87 #if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */
88     Window (*tk_AttachHWND) (Tk_Window tkwin, HWND hwnd); /* 0 */
89     HINSTANCE (*tk_GetHINSTANCE) (void); /* 1 */
90     HWND (*tk_GetHWND) (Window window); /* 2 */
91     Tk_Window (*tk_HWNDToWindow) (HWND hwnd); /* 3 */
92     void (*tk_PointerEvent) (HWND hwnd, int x, int y); /* 4 */
93     int (*tk_TranslateWinEvent) (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam, LRESULT *result); /* 5 */
94 #endif /* WIN */
95 #ifdef MAC_OSX_TK /* AQUA */
96     void (*tk_MacOSXSetEmbedHandler) (Tk_MacOSXEmbedRegisterWinProc *registerWinProcPtr, Tk_MacOSXEmbedGetGrafPortProc *getPortProcPtr, Tk_MacOSXEmbedMakeContainerExistProc *containerExistProcPtr, Tk_MacOSXEmbedGetClipProc *getClipProc, Tk_MacOSXEmbedGetOffsetInParentProc *getOffsetProc); /* 0 */
97     void (*tk_MacOSXTurnOffMenus) (void); /* 1 */
98     void (*tk_MacOSXTkOwnsCursor) (int tkOwnsIt); /* 2 */
99     void (*tkMacOSXInitMenus) (Tcl_Interp *interp); /* 3 */
100     void (*tkMacOSXInitAppleEvents) (Tcl_Interp *interp); /* 4 */
101     void (*tkGenWMConfigureEvent) (Tk_Window tkwin, int x, int y, int width, int height, int flags); /* 5 */
102     void (*tkMacOSXInvalClipRgns) (Tk_Window tkwin); /* 6 */
103     void * (*tkMacOSXGetDrawablePort) (Drawable drawable); /* 7 */
104     void * (*tkMacOSXGetRootControl) (Drawable drawable); /* 8 */
105     void (*tk_MacOSXSetupTkNotifier) (void); /* 9 */
106     int (*tk_MacOSXIsAppInFront) (void); /* 10 */
107 #endif /* AQUA */
108 } TkPlatStubs;
109 
110 #ifdef __cplusplus
111 extern "C" {
112 #endif
113 extern const TkPlatStubs *tkPlatStubsPtr;
114 #ifdef __cplusplus
115 }
116 #endif
117 
118 #if defined(USE_TK_STUBS)
119 
120 /*
121  * Inline function declarations:
122  */
123 
124 #if defined(__WIN32__) || defined(__CYGWIN__) /* WIN */
125 #define Tk_AttachHWND \
126   (tkPlatStubsPtr->tk_AttachHWND) /* 0 */
127 #define Tk_GetHINSTANCE \
128   (tkPlatStubsPtr->tk_GetHINSTANCE) /* 1 */
129 #define Tk_GetHWND \
130   (tkPlatStubsPtr->tk_GetHWND) /* 2 */
131 #define Tk_HWNDToWindow \
132   (tkPlatStubsPtr->tk_HWNDToWindow) /* 3 */
133 #define Tk_PointerEvent \
134   (tkPlatStubsPtr->tk_PointerEvent) /* 4 */
135 #define Tk_TranslateWinEvent \
136   (tkPlatStubsPtr->tk_TranslateWinEvent) /* 5 */
137 #endif /* WIN */
138 #ifdef MAC_OSX_TK /* AQUA */
139 #define Tk_MacOSXSetEmbedHandler \
140   (tkPlatStubsPtr->tk_MacOSXSetEmbedHandler) /* 0 */
141 #define Tk_MacOSXTurnOffMenus \
142   (tkPlatStubsPtr->tk_MacOSXTurnOffMenus) /* 1 */
143 #define Tk_MacOSXTkOwnsCursor \
144   (tkPlatStubsPtr->tk_MacOSXTkOwnsCursor) /* 2 */
145 #define TkMacOSXInitMenus \
146   (tkPlatStubsPtr->tkMacOSXInitMenus) /* 3 */
147 #define TkMacOSXInitAppleEvents \
148   (tkPlatStubsPtr->tkMacOSXInitAppleEvents) /* 4 */
149 #define TkGenWMConfigureEvent \
150   (tkPlatStubsPtr->tkGenWMConfigureEvent) /* 5 */
151 #define TkMacOSXInvalClipRgns \
152   (tkPlatStubsPtr->tkMacOSXInvalClipRgns) /* 6 */
153 #define TkMacOSXGetDrawablePort \
154   (tkPlatStubsPtr->tkMacOSXGetDrawablePort) /* 7 */
155 #define TkMacOSXGetRootControl \
156   (tkPlatStubsPtr->tkMacOSXGetRootControl) /* 8 */
157 #define Tk_MacOSXSetupTkNotifier \
158   (tkPlatStubsPtr->tk_MacOSXSetupTkNotifier) /* 9 */
159 #define Tk_MacOSXIsAppInFront \
160   (tkPlatStubsPtr->tk_MacOSXIsAppInFront) /* 10 */
161 #endif /* AQUA */
162 
163 #endif /* defined(USE_TK_STUBS) */
164 
165 /* !END!: Do not edit above this line. */
166 
167 #ifdef __cplusplus
168 }
169 #endif
170 
171 #undef TCL_STORAGE_CLASS
172 #define TCL_STORAGE_CLASS DLLIMPORT
173 
174 #endif /* _TKPLATDECLS */
175