| 1 | /* |
| 2 | * tk.h -- |
| 3 | * |
| 4 | * Declarations for Tk-related things that are visible |
| 5 | * outside of the Tk module itself. |
| 6 | * |
| 7 | * Copyright 1989-1992 Regents of the University of California. |
| 8 | * Permission to use, copy, modify, and distribute this |
| 9 | * software and its documentation for any purpose and without |
| 10 | * fee is hereby granted, provided that the above copyright |
| 11 | * notice appear in all copies. The University of California |
| 12 | * makes no representations about the suitability of this |
| 13 | * software for any purpose. It is provided "as is" without |
| 14 | * express or implied warranty. |
| 15 | * |
| 16 | * $Header: /user6/ouster/wish/RCS/tk.h,v 1.90 92/08/20 16:36:30 ouster Exp $ SPRITE (Berkeley) |
| 17 | */ |
| 18 | |
| 19 | #ifndef _TK |
| 20 | #define _TK |
| 21 | |
| 22 | #ifndef _TCL |
| 23 | #include <tcl.h> |
| 24 | #endif |
| 25 | #ifndef _XLIB_H |
| 26 | #include <X11/Xlib.h> |
| 27 | #endif |
| 28 | #ifdef __STDC__ |
| 29 | |
| 30 | /* This is so gcc's stddef.h doesn't clash with sunos4.1.1's stdtypes.h */ |
| 31 | #ifdef __sys_stdtypes_h |
| 32 | #define _PTRDIFF_T |
| 33 | #define _SIZE_T |
| 34 | #define _WCHAR_T |
| 35 | #endif |
| 36 | |
| 37 | #include <stddef.h> |
| 38 | #endif |
| 39 | |
| 40 | /* |
| 41 | * Dummy types that are used by clients: |
| 42 | */ |
| 43 | |
| 44 | typedef struct Tk_ErrorHandler_ *Tk_ErrorHandler; |
| 45 | typedef struct Tk_TimerToken_ *Tk_TimerToken; |
| 46 | typedef struct Tk_Window_ *Tk_Window; |
| 47 | typedef struct Tk_3DBorder_ *Tk_3DBorder; |
| 48 | typedef struct Tk_BindingTable_ *Tk_BindingTable; |
| 49 | |
| 50 | /* |
| 51 | * Additional types exported to clients. |
| 52 | */ |
| 53 | |
| 54 | typedef char *Tk_Uid; |
| 55 | |
| 56 | /* |
| 57 | * Structure used to specify how to handle argv options. |
| 58 | */ |
| 59 | |
| 60 | typedef struct { |
| 61 | char *key; /* The key string that flags the option in the |
| 62 | * argv array. */ |
| 63 | int type; /* Indicates option type; see below. */ |
| 64 | char *src; /* Value to be used in setting dst; usage |
| 65 | * depends on type. */ |
| 66 | char *dst; /* Address of value to be modified; usage |
| 67 | * depends on type. */ |
| 68 | char *help; /* Documentation message describing this option. */ |
| 69 | } Tk_ArgvInfo; |
| 70 | |
| 71 | /* |
| 72 | * Legal values for the type field of a Tk_ArgvInfo: see the user |
| 73 | * documentation for details. |
| 74 | */ |
| 75 | |
| 76 | #define TK_ARGV_CONSTANT 15 |
| 77 | #define TK_ARGV_INT 16 |
| 78 | #define TK_ARGV_STRING 17 |
| 79 | #define TK_ARGV_UID 18 |
| 80 | #define TK_ARGV_REST 19 |
| 81 | #define TK_ARGV_FLOAT 20 |
| 82 | #define TK_ARGV_FUNC 21 |
| 83 | #define TK_ARGV_GENFUNC 22 |
| 84 | #define TK_ARGV_HELP 23 |
| 85 | #define TK_ARGV_CONST_OPTION 24 |
| 86 | #define TK_ARGV_OPTION_VALUE 25 |
| 87 | #define TK_ARGV_OPTION_NAME_VALUE 26 |
| 88 | #define TK_ARGV_END 27 |
| 89 | |
| 90 | /* |
| 91 | * Flag bits for passing to Tk_ParseArgv: |
| 92 | */ |
| 93 | |
| 94 | #define TK_ARGV_NO_DEFAULTS 0x1 |
| 95 | #define TK_ARGV_NO_LEFTOVERS 0x2 |
| 96 | #define TK_ARGV_NO_ABBREV 0x4 |
| 97 | #define TK_ARGV_DONT_SKIP_FIRST_ARG 0x8 |
| 98 | |
| 99 | /* |
| 100 | * Structure used to describe application-specific configuration |
| 101 | * options: indicates procedures to call to parse an option and |
| 102 | * to return a text string describing an option. |
| 103 | */ |
| 104 | |
| 105 | typedef int (Tk_OptionParseProc) _ANSI_ARGS_((ClientData clientData, |
| 106 | Tcl_Interp *interp, Tk_Window tkwin, char *value, char *widgRec, |
| 107 | int offset)); |
| 108 | typedef char *(Tk_OptionPrintProc) _ANSI_ARGS_((ClientData clientData, |
| 109 | Tk_Window tkwin, char *widgRec, int offset, |
| 110 | Tcl_FreeProc **freeProcPtr)); |
| 111 | |
| 112 | typedef struct Tk_CustomOption { |
| 113 | Tk_OptionParseProc *parseProc; /* Procedure to call to parse an |
| 114 | * option and store it in converted |
| 115 | * form. */ |
| 116 | Tk_OptionPrintProc *printProc; /* Procedure to return a printable |
| 117 | * string describing an existing |
| 118 | * option. */ |
| 119 | ClientData clientData; /* Arbitrary one-word value used by |
| 120 | * option parser: passed to |
| 121 | * parseProc and printProc. */ |
| 122 | } Tk_CustomOption; |
| 123 | |
| 124 | /* |
| 125 | * Structure used to specify information for Tk_ConfigureWidget. Each |
| 126 | * structure gives complete information for one option, including |
| 127 | * how the option is specified on the command line, where it appears |
| 128 | * in the option database, etc. |
| 129 | */ |
| 130 | |
| 131 | typedef struct Tk_ConfigSpec { |
| 132 | int type; /* Type of option, such as TK_CONFIG_COLOR; |
| 133 | * see definitions below. Last option in |
| 134 | * table must have type TK_CONFIG_END. */ |
| 135 | char *argvName; /* Switch used to specify option in argv. |
| 136 | * NULL means this spec is part of a group. */ |
| 137 | char *dbName; /* Name for option in option database. */ |
| 138 | char *dbClass; /* Class for option in database. */ |
| 139 | char *defValue; /* Default value for option if not |
| 140 | * specified in command line or database. */ |
| 141 | int offset; /* Where in widget record to store value; |
| 142 | * use Tk_Offset macro to generate values |
| 143 | * for this. */ |
| 144 | int specFlags; /* Any combination of the values defined |
| 145 | * below; other bits are used internally |
| 146 | * by tkConfig.c. */ |
| 147 | Tk_CustomOption *customPtr; /* If type is TK_CONFIG_CUSTOM then this is |
| 148 | * a pointer to info about how to parse and |
| 149 | * print the option. Otherwise it is |
| 150 | * irrelevant. */ |
| 151 | } Tk_ConfigSpec; |
| 152 | |
| 153 | /* |
| 154 | * Type values for Tk_ConfigSpec structures. See the user |
| 155 | * documentation for details. |
| 156 | */ |
| 157 | |
| 158 | #define TK_CONFIG_BOOLEAN 1 |
| 159 | #define TK_CONFIG_INT 2 |
| 160 | #define TK_CONFIG_DOUBLE 3 |
| 161 | #define TK_CONFIG_STRING 4 |
| 162 | #define TK_CONFIG_UID 5 |
| 163 | #define TK_CONFIG_COLOR 6 |
| 164 | #define TK_CONFIG_FONT 7 |
| 165 | #define TK_CONFIG_BITMAP 8 |
| 166 | #define TK_CONFIG_BORDER 9 |
| 167 | #define TK_CONFIG_RELIEF 10 |
| 168 | #define TK_CONFIG_CURSOR 11 |
| 169 | #define TK_CONFIG_ACTIVE_CURSOR 12 |
| 170 | #define TK_CONFIG_JUSTIFY 13 |
| 171 | #define TK_CONFIG_ANCHOR 14 |
| 172 | #define TK_CONFIG_SYNONYM 15 |
| 173 | #define TK_CONFIG_CAP_STYLE 16 |
| 174 | #define TK_CONFIG_JOIN_STYLE 17 |
| 175 | #define TK_CONFIG_PIXELS 18 |
| 176 | #define TK_CONFIG_MM 19 |
| 177 | #define TK_CONFIG_WINDOW 20 |
| 178 | #define TK_CONFIG_CUSTOM 21 |
| 179 | #define TK_CONFIG_END 22 |
| 180 | #define TK_CONFIG_PIXMAP 30 |
| 181 | |
| 182 | /* |
| 183 | * Macro to use to fill in "offset" fields of Tk_ConfigInfos. |
| 184 | * Computes number of bytes from beginning of structure to a |
| 185 | * given field. |
| 186 | */ |
| 187 | |
| 188 | #ifdef offsetof |
| 189 | #define Tk_Offset(type, field) ((int) offsetof(type, field)) |
| 190 | #else |
| 191 | #define Tk_Offset(type, field) ((int) ((char *) &((type *) 0)->field)) |
| 192 | #endif |
| 193 | |
| 194 | /* |
| 195 | * Possible values for flags argument to Tk_ConfigureWidget: |
| 196 | */ |
| 197 | |
| 198 | #define TK_CONFIG_ARGV_ONLY 1 |
| 199 | |
| 200 | /* |
| 201 | * Possible flag values for Tk_ConfigInfo structures. Any bits at |
| 202 | * or above TK_CONFIG_USER_BIT may be used by clients for selecting |
| 203 | * certain entries. Before changing any values here, coordinate with |
| 204 | * tkConfig.c (internal-use-only flags are defined there). |
| 205 | */ |
| 206 | |
| 207 | #define TK_CONFIG_COLOR_ONLY 1 |
| 208 | #define TK_CONFIG_MONO_ONLY 2 |
| 209 | #define TK_CONFIG_NULL_OK 4 |
| 210 | #define TK_CONFIG_DONT_SET_DEFAULT 8 |
| 211 | #define TK_CONFIG_OPTION_SPECIFIED 0x10 |
| 212 | #define TK_CONFIG_USER_BIT 0x100 |
| 213 | |
| 214 | /* |
| 215 | * Bits to pass to Tk_CreateFileHandler to indicate what sorts |
| 216 | * of events are of interest: |
| 217 | */ |
| 218 | |
| 219 | #define TK_READABLE 1 |
| 220 | #define TK_WRITABLE 2 |
| 221 | #define TK_EXCEPTION 4 |
| 222 | |
| 223 | /* |
| 224 | * Flag values to pass to Tk_DoOneEvent to disable searches |
| 225 | * for some kinds of events: |
| 226 | */ |
| 227 | |
| 228 | #define TK_DONT_WAIT 1 |
| 229 | #define TK_X_EVENTS 2 |
| 230 | #define TK_FILE_EVENTS 4 |
| 231 | #define TK_TIMER_EVENTS 8 |
| 232 | #define TK_IDLE_EVENTS 0x10 |
| 233 | #define TK_ALL_EVENTS 0x1e |
| 234 | |
| 235 | /* |
| 236 | * Priority levels to pass to Tk_AddOption: |
| 237 | */ |
| 238 | |
| 239 | #define TK_WIDGET_DEFAULT_PRIO 20 |
| 240 | #define TK_STARTUP_FILE_PRIO 40 |
| 241 | #define TK_USER_DEFAULT_PRIO 60 |
| 242 | #define TK_INTERACTIVE_PRIO 80 |
| 243 | #define TK_MAX_PRIO 100 |
| 244 | |
| 245 | /* |
| 246 | * Relief values returned by Tk_GetRelief: |
| 247 | */ |
| 248 | |
| 249 | #define TK_RELIEF_RAISED 1 |
| 250 | #define TK_RELIEF_FLAT 2 |
| 251 | #define TK_RELIEF_SUNKEN 4 |
| 252 | |
| 253 | /* |
| 254 | * Special EnterNotify/LeaveNotify "mode" for use in events |
| 255 | * generated by tkShare.c. Pick a high enough value that it's |
| 256 | * unlikely to conflict with existing values (like NotifyNormal) |
| 257 | * or any new values defined in the future. |
| 258 | */ |
| 259 | |
| 260 | #define TK_NOTIFY_SHARE 20 |
| 261 | |
| 262 | /* |
| 263 | * Enumerated type for describing a point by which to anchor something: |
| 264 | */ |
| 265 | |
| 266 | typedef enum { |
| 267 | TK_ANCHOR_N, TK_ANCHOR_NE, TK_ANCHOR_E, TK_ANCHOR_SE, |
| 268 | TK_ANCHOR_S, TK_ANCHOR_SW, TK_ANCHOR_W, TK_ANCHOR_NW, |
| 269 | TK_ANCHOR_CENTER |
| 270 | } Tk_Anchor; |
| 271 | |
| 272 | /* |
| 273 | * Enumerated type for describing a style of justification: |
| 274 | */ |
| 275 | |
| 276 | typedef enum { |
| 277 | TK_JUSTIFY_LEFT, TK_JUSTIFY_RIGHT, |
| 278 | TK_JUSTIFY_CENTER, TK_JUSTIFY_FILL |
| 279 | } Tk_Justify; |
| 280 | \f |
| 281 | /* |
| 282 | *-------------------------------------------------------------- |
| 283 | * |
| 284 | * Macros for querying Tk_Window structures. See the |
| 285 | * manual entries for documentation. |
| 286 | * |
| 287 | *-------------------------------------------------------------- |
| 288 | */ |
| 289 | |
| 290 | #define Tk_Display(tkwin) (((Tk_FakeWin *) (tkwin))->display) |
| 291 | #define Tk_ScreenNumber(tkwin) (((Tk_FakeWin *) (tkwin))->screenNum) |
| 292 | #define Tk_Screen(tkwin) (ScreenOfDisplay(Tk_Display(tkwin), \ |
| 293 | Tk_ScreenNumber(tkwin))) |
| 294 | #define Tk_WindowId(tkwin) (((Tk_FakeWin *) (tkwin))->window) |
| 295 | #define Tk_PathName(tkwin) (((Tk_FakeWin *) (tkwin))->pathName) |
| 296 | #define Tk_Name(tkwin) (((Tk_FakeWin *) (tkwin))->nameUid) |
| 297 | #define Tk_Class(tkwin) (((Tk_FakeWin *) (tkwin))->classUid) |
| 298 | #define Tk_X(tkwin) (((Tk_FakeWin *) (tkwin))->changes.x) |
| 299 | #define Tk_Y(tkwin) (((Tk_FakeWin *) (tkwin))->changes.y) |
| 300 | #define Tk_Width(tkwin) (((Tk_FakeWin *) (tkwin))->changes.width) |
| 301 | #define Tk_Height(tkwin) \ |
| 302 | (((Tk_FakeWin *) (tkwin))->changes.height) |
| 303 | #define Tk_Changes(tkwin) (&((Tk_FakeWin *) (tkwin))->changes) |
| 304 | #define Tk_Attributes(tkwin) (&((Tk_FakeWin *) (tkwin))->atts) |
| 305 | #define Tk_IsMapped(tkwin) \ |
| 306 | (((Tk_FakeWin *) (tkwin))->flags & TK_MAPPED) |
| 307 | #define Tk_ReqWidth(tkwin) (((Tk_FakeWin *) (tkwin))->reqWidth) |
| 308 | #define Tk_ReqHeight(tkwin) (((Tk_FakeWin *) (tkwin))->reqHeight) |
| 309 | #define Tk_InternalBorderWidth(tkwin) \ |
| 310 | (((Tk_FakeWin *) (tkwin))->internalBorderWidth) |
| 311 | #define Tk_Parent(tkwin) (((Tk_FakeWin *) (tkwin))->parentPtr) |
| 312 | |
| 313 | /* |
| 314 | * The structure below is needed by the macros above so that they can |
| 315 | * access the fields of a Tk_Window. The fields not needed by the macros |
| 316 | * are declared as "dummyX". The structure has its own type in order to |
| 317 | * prevent applications from accessing Tk_Window fields except using |
| 318 | * official macros. WARNING!! The structure definition must be kept |
| 319 | * consistent with the TkWindow structure in tkInt.h. If you change one, |
| 320 | * then change the other. See the declaration in tkInt.h for |
| 321 | * documentation on what the fields are used for internally. |
| 322 | */ |
| 323 | |
| 324 | typedef struct Tk_FakeWin { |
| 325 | Display *display; |
| 326 | char *dummy1; |
| 327 | int screenNum; |
| 328 | Window window; |
| 329 | char *dummy2; |
| 330 | Tk_Window parentPtr; |
| 331 | char *dummy4; |
| 332 | char *dummy5; |
| 333 | char *pathName; |
| 334 | Tk_Uid nameUid; |
| 335 | Tk_Uid classUid; |
| 336 | XWindowChanges changes; |
| 337 | unsigned int dummy6; |
| 338 | XSetWindowAttributes atts; |
| 339 | unsigned long dummy7; |
| 340 | unsigned int flags; |
| 341 | char *dummy8; |
| 342 | char *dummy9; |
| 343 | ClientData dummy10; |
| 344 | int dummy12; |
| 345 | char *dummy13; |
| 346 | char *dummy14; |
| 347 | ClientData dummy15; |
| 348 | char *dummy16; |
| 349 | ClientData dummy17; |
| 350 | int reqWidth, reqHeight; |
| 351 | int internalBorderWidth; |
| 352 | char *dummyX; |
| 353 | } Tk_FakeWin; |
| 354 | |
| 355 | /* |
| 356 | * Flag values for TkWindow (and Tk_FakeWin) structures are: |
| 357 | * |
| 358 | * TK_MAPPED: 1 means window is currently mapped, |
| 359 | * 0 means unmapped. |
| 360 | * TK_RECURSIVE_DESTROY: 1 means a recursive destroy is in |
| 361 | * progress, so some cleanup operations |
| 362 | * can be omitted. |
| 363 | * TK_TOP_LEVEL: 1 means this is a top-level window (it |
| 364 | * was or will be created as a child of |
| 365 | * a root window). |
| 366 | * TK_ALREADY_DEAD: 1 means the window is in the process of |
| 367 | * being destroyed already. |
| 368 | * TK_NEED_CONFIG_NOTIFY: 1 means that the window has been reconfigured |
| 369 | * before it was made to exist. At the time of |
| 370 | * making it exist a ConfigureNotify event needs |
| 371 | * to be generated. |
| 372 | * TK_GRAB_FLAG: Used to manage grabs. See tkGrab.c for |
| 373 | * details. |
| 374 | */ |
| 375 | |
| 376 | #define TK_MAPPED 1 |
| 377 | #define TK_RECURSIVE_DESTROY 2 |
| 378 | #define TK_TOP_LEVEL 4 |
| 379 | #define TK_ALREADY_DEAD 8 |
| 380 | #define TK_NEED_CONFIG_NOTIFY 0x10 |
| 381 | #define TK_GRAB_FLAG 0x20 |
| 382 | \f |
| 383 | /* |
| 384 | *-------------------------------------------------------------- |
| 385 | * |
| 386 | * Additional procedure types defined by Tk. |
| 387 | * |
| 388 | *-------------------------------------------------------------- |
| 389 | */ |
| 390 | |
| 391 | typedef int (Tk_ErrorProc) _ANSI_ARGS_((ClientData clientData, |
| 392 | XErrorEvent *errEventPtr)); |
| 393 | typedef void (Tk_EventProc) _ANSI_ARGS_((ClientData clientData, |
| 394 | XEvent *eventPtr)); |
| 395 | typedef void (Tk_FileProc) _ANSI_ARGS_((ClientData clientData, int mask)); |
| 396 | typedef void (Tk_FocusProc) _ANSI_ARGS_((ClientData clientData, int gotFocus)); |
| 397 | typedef void (Tk_FreeProc) _ANSI_ARGS_((ClientData clientData)); |
| 398 | typedef int (Tk_GenericProc) _ANSI_ARGS_((ClientData clientData, |
| 399 | XEvent *eventPtr)); |
| 400 | typedef void (Tk_GeometryProc) _ANSI_ARGS_((ClientData clientData, |
| 401 | Tk_Window tkwin)); |
| 402 | typedef int (Tk_GetSelProc) _ANSI_ARGS_((ClientData clientData, |
| 403 | Tcl_Interp *interp, char *portion)); |
| 404 | typedef void (Tk_IdleProc) _ANSI_ARGS_((ClientData clientData)); |
| 405 | typedef void (Tk_LostSelProc) _ANSI_ARGS_((ClientData clientData)); |
| 406 | typedef Bool (Tk_RestrictProc) _ANSI_ARGS_((Display *display, XEvent *eventPtr, |
| 407 | char *arg)); |
| 408 | typedef int (Tk_SelectionProc) _ANSI_ARGS_((ClientData clientData, |
| 409 | int offset, char *buffer, int maxBytes)); |
| 410 | typedef void (Tk_TimerProc) _ANSI_ARGS_((ClientData clientData)); |
| 411 | \f |
| 412 | /* |
| 413 | *-------------------------------------------------------------- |
| 414 | * |
| 415 | * Exported procedures and variables. |
| 416 | * |
| 417 | *-------------------------------------------------------------- |
| 418 | */ |
| 419 | |
| 420 | extern XColor * Tk_3DBorderColor _ANSI_ARGS_((Tk_3DBorder border)); |
| 421 | extern void Tk_AddOption _ANSI_ARGS_((Tk_Window tkwin, char *name, |
| 422 | char *value, int priority)); |
| 423 | extern void Tk_BindEvent _ANSI_ARGS_((Tk_BindingTable bindingTable, |
| 424 | XEvent *eventPtr, Tk_Window tkwin, int numObjects, |
| 425 | ClientData *objectPtr)); |
| 426 | extern void Tk_CancelIdleCall _ANSI_ARGS_((Tk_IdleProc *idleProc, |
| 427 | ClientData clientData)); |
| 428 | extern void Tk_ChangeWindowAttributes _ANSI_ARGS_((Tk_Window tkwin, |
| 429 | unsigned long valueMask, |
| 430 | XSetWindowAttributes *attsPtr)); |
| 431 | extern int Tk_ConfigureInfo _ANSI_ARGS_((Tcl_Interp *interp, |
| 432 | Tk_Window tkwin, Tk_ConfigSpec *specs, |
| 433 | char *widgRec, char *argvName, int flags)); |
| 434 | extern int Tk_ConfigureWidget _ANSI_ARGS_((Tcl_Interp *interp, |
| 435 | Tk_Window tkwin, Tk_ConfigSpec *specs, |
| 436 | int argc, char **argv, char *widgRec, |
| 437 | int flags)); |
| 438 | extern Tk_Window Tk_CoordsToWindow _ANSI_ARGS_((int rootX, int rootY, |
| 439 | Tk_Window tkwin)); |
| 440 | extern unsigned long Tk_CreateBinding _ANSI_ARGS_((Tcl_Interp *interp, |
| 441 | Tk_BindingTable bindingTable, ClientData object, |
| 442 | char *eventString, char *command, int append)); |
| 443 | extern Tk_BindingTable Tk_CreateBindingTable _ANSI_ARGS_((Tcl_Interp *interp)); |
| 444 | extern Tk_ErrorHandler Tk_CreateErrorHandler _ANSI_ARGS_((Display *display, |
| 445 | int error, int request, int minorCode, |
| 446 | Tk_ErrorProc *errorProc, ClientData clientData)); |
| 447 | extern void Tk_CreateEventHandler _ANSI_ARGS_((Tk_Window token, |
| 448 | unsigned long mask, Tk_EventProc *proc, |
| 449 | ClientData clientData)); |
| 450 | extern void Tk_CreateFileHandler _ANSI_ARGS_((int fd, int mask, |
| 451 | Tk_FileProc *proc, ClientData clientData)); |
| 452 | extern void Tk_CreateFocusHandler _ANSI_ARGS_((Tk_Window tkwin, |
| 453 | Tk_FocusProc *proc, ClientData clientData)); |
| 454 | extern void Tk_CreateGenericHandler _ANSI_ARGS_(( |
| 455 | Tk_GenericProc *proc, ClientData clientData)); |
| 456 | extern Tk_Window Tk_CreateMainWindow _ANSI_ARGS_((Tcl_Interp *interp, |
| 457 | char *screenName, char *baseName)); |
| 458 | extern void Tk_CreateSelHandler _ANSI_ARGS_((Tk_Window tkwin, |
| 459 | Atom target, Tk_SelectionProc *proc, |
| 460 | ClientData clientData, Atom format)); |
| 461 | extern Tk_TimerToken Tk_CreateTimerHandler _ANSI_ARGS_((int milliseconds, |
| 462 | Tk_TimerProc *proc, ClientData clientData)); |
| 463 | // Added by Don to support finer timer resolution. |
| 464 | extern Tk_TimerToken Tk_CreateMicroTimerHandler _ANSI_ARGS_((int seconds, |
| 465 | int microseconds, Tk_TimerProc *proc, ClientData clientData)); |
| 466 | extern Tk_Window Tk_CreateWindow _ANSI_ARGS_((Tcl_Interp *interp, |
| 467 | Tk_Window parent, char *name, char *screenName)); |
| 468 | extern Tk_Window Tk_CreateWindowFromPath _ANSI_ARGS_(( |
| 469 | Tcl_Interp *interp, Tk_Window tkwin, |
| 470 | char *pathName, char *screenName)); |
| 471 | extern int Tk_DefineBitmap _ANSI_ARGS_((Tcl_Interp *interp, |
| 472 | Tk_Uid name, char *source, unsigned int width, |
| 473 | unsigned int height)); |
| 474 | extern int Tk_DefinePixmap _ANSI_ARGS_((Tcl_Interp *interp, |
| 475 | Tk_Uid name, Tk_Window, Pixmap pixmap, |
| 476 | char *source, unsigned int width, |
| 477 | unsigned int height)); |
| 478 | extern void Tk_DefineCursor _ANSI_ARGS_((Tk_Window window, |
| 479 | Cursor cursor)); |
| 480 | extern void Tk_DeleteAllBindings _ANSI_ARGS_(( |
| 481 | Tk_BindingTable bindingTable, ClientData object)); |
| 482 | extern int Tk_DeleteBinding _ANSI_ARGS_((Tcl_Interp *interp, |
| 483 | Tk_BindingTable bindingTable, ClientData object, |
| 484 | char *eventString)); |
| 485 | extern void Tk_DeleteBindingTable _ANSI_ARGS_(( |
| 486 | Tk_BindingTable bindingTable)); |
| 487 | extern void Tk_DeleteErrorHandler _ANSI_ARGS_(( |
| 488 | Tk_ErrorHandler handler)); |
| 489 | extern void Tk_DeleteEventHandler _ANSI_ARGS_((Tk_Window token, |
| 490 | unsigned long mask, Tk_EventProc *proc, |
| 491 | ClientData clientData)); |
| 492 | extern void Tk_DeleteFileHandler _ANSI_ARGS_((int fd)); |
| 493 | extern void Tk_DeleteGenericHandler _ANSI_ARGS_(( |
| 494 | Tk_GenericProc *proc, ClientData clientData)); |
| 495 | extern void Tk_DeleteTimerHandler _ANSI_ARGS_(( |
| 496 | Tk_TimerToken token)); |
| 497 | extern void Tk_DestroyWindow _ANSI_ARGS_((Tk_Window tkwin)); |
| 498 | extern char * Tk_DisplayName _ANSI_ARGS_((Tk_Window tkwin)); |
| 499 | extern int Tk_DoOneEvent _ANSI_ARGS_((int flags)); |
| 500 | extern void Tk_DoWhenIdle _ANSI_ARGS_((Tk_IdleProc *proc, |
| 501 | ClientData clientData)); |
| 502 | extern void Tk_Draw3DPolygon _ANSI_ARGS_((Display *display, |
| 503 | Drawable drawable, Tk_3DBorder border, |
| 504 | XPoint *pointPtr, int numPoints, int borderWidth, |
| 505 | int leftRelief)); |
| 506 | extern void Tk_Draw3DRectangle _ANSI_ARGS_((Display *display, |
| 507 | Drawable drawable, Tk_3DBorder border, int x, |
| 508 | int y, int width, int height, int borderWidth, |
| 509 | int relief)); |
| 510 | extern void Tk_EventuallyFree _ANSI_ARGS_((ClientData clientData, |
| 511 | Tk_FreeProc *freeProc)); |
| 512 | extern void Tk_Fill3DPolygon _ANSI_ARGS_((Display *display, |
| 513 | Drawable drawable, Tk_3DBorder border, |
| 514 | XPoint *pointPtr, int numPoints, int borderWidth, |
| 515 | int leftRelief)); |
| 516 | extern void Tk_Fill3DRectangle _ANSI_ARGS_((Display *display, |
| 517 | Drawable drawable, Tk_3DBorder border, int x, |
| 518 | int y, int width, int height, int borderWidth, |
| 519 | int relief)); |
| 520 | extern void Tk_Free3DBorder _ANSI_ARGS_((Tk_3DBorder border)); |
| 521 | extern void Tk_FreeBitmap _ANSI_ARGS_((Pixmap bitmap)); |
| 522 | extern void Tk_FreePixmap _ANSI_ARGS_((Pixmap bitmap)); |
| 523 | extern void Tk_FreeColor _ANSI_ARGS_((XColor *colorPtr)); |
| 524 | extern int Tk_IndexOfScreen _ANSI_ARGS_((Screen *screen)); |
| 525 | extern int Tk_DefaultDepth _ANSI_ARGS_((Screen *screen)); |
| 526 | extern Visual *Tk_DefaultVisual _ANSI_ARGS_((Screen *screen)); |
| 527 | extern Colormap Tk_DefaultColormap _ANSI_ARGS_((Screen *screen)); |
| 528 | extern Window Tk_DefaultRootWindow _ANSI_ARGS_((Display *dpy)); |
| 529 | extern GC Tk_DefaultGC _ANSI_ARGS_((Screen *screen)); |
| 530 | extern Pixmap Tk_DefaultPixmap _ANSI_ARGS_((Screen *screen)); |
| 531 | extern void Tk_FreeCursor _ANSI_ARGS_((Cursor cursor)); |
| 532 | extern void Tk_FreeFontStruct _ANSI_ARGS_(( |
| 533 | XFontStruct *fontStructPtr)); |
| 534 | extern void Tk_FreeGC _ANSI_ARGS_((GC gc)); |
| 535 | extern void Tk_GeometryRequest _ANSI_ARGS_((Tk_Window tkwin, |
| 536 | int reqWidth, int reqHeight)); |
| 537 | extern Tk_3DBorder Tk_Get3DBorder _ANSI_ARGS_((Tcl_Interp *interp, |
| 538 | Tk_Window tkwin, Colormap colormap, |
| 539 | Tk_Uid colorName)); |
| 540 | extern void Tk_GetAllBindings _ANSI_ARGS_((Tcl_Interp *interp, |
| 541 | Tk_BindingTable bindingTable, ClientData object)); |
| 542 | extern int Tk_GetAnchor _ANSI_ARGS_((Tcl_Interp *interp, |
| 543 | char *string, Tk_Anchor *anchorPtr)); |
| 544 | extern char * Tk_GetAtomName _ANSI_ARGS_((Tk_Window tkwin, |
| 545 | Atom atom)); |
| 546 | extern char * Tk_GetBinding _ANSI_ARGS_((Tcl_Interp *interp, |
| 547 | Tk_BindingTable bindingTable, ClientData object, |
| 548 | char *eventString)); |
| 549 | extern Pixmap Tk_GetBitmap _ANSI_ARGS_((Tcl_Interp *interp, |
| 550 | Tk_Window tkwin, Tk_Uid string)); |
| 551 | extern Pixmap Tk_GetPixmap _ANSI_ARGS_((Tcl_Interp *interp, |
| 552 | Tk_Window tkwin, Tk_Uid string)); |
| 553 | extern Pixmap Tk_GetBitmapFromData _ANSI_ARGS_((Tcl_Interp *interp, |
| 554 | Tk_Window tkwin, char *source, |
| 555 | unsigned int width, unsigned int height)); |
| 556 | extern Pixmap Tk_GetPixmapFromData _ANSI_ARGS_((Tcl_Interp *interp, |
| 557 | Tk_Window tkwin, char *source, |
| 558 | unsigned int width, unsigned int height)); |
| 559 | extern int Tk_GetCapStyle _ANSI_ARGS_((Tcl_Interp *interp, |
| 560 | char *string, int *capPtr)); |
| 561 | extern XColor * Tk_GetColor _ANSI_ARGS_((Tcl_Interp *interp, |
| 562 | Tk_Window tkwin, Colormap colormap, Tk_Uid name)); |
| 563 | extern XColor * Tk_GetColorByValue _ANSI_ARGS_((Tcl_Interp *interp, |
| 564 | Tk_Window tkwin, Colormap colormap, |
| 565 | XColor *colorPtr)); |
| 566 | extern Cursor Tk_GetCursor _ANSI_ARGS_((Tcl_Interp *interp, |
| 567 | Tk_Window tkwin, Tk_Uid string)); |
| 568 | extern Cursor Tk_GetCursorFromData _ANSI_ARGS_((Tcl_Interp *interp, |
| 569 | Tk_Window tkwin, char *source, char *mask, |
| 570 | unsigned int width, unsigned int height, |
| 571 | int xHot, int yHot, Tk_Uid fg, Tk_Uid bg)); |
| 572 | extern XFontStruct * Tk_GetFontStruct _ANSI_ARGS_((Tcl_Interp *interp, |
| 573 | Tk_Window tkwin, Tk_Uid name)); |
| 574 | extern GC Tk_GetGC _ANSI_ARGS_((Tk_Window tkwin, |
| 575 | unsigned long valueMask, XGCValues *valuePtr)); |
| 576 | extern int Tk_GetJoinStyle _ANSI_ARGS_((Tcl_Interp *interp, |
| 577 | char *string, int *joinPtr)); |
| 578 | extern int Tk_GetJustify _ANSI_ARGS_((Tcl_Interp *interp, |
| 579 | char *string, Tk_Justify *justifyPtr)); |
| 580 | extern Tk_Uid Tk_GetOption _ANSI_ARGS_((Tk_Window tkwin, char *name, |
| 581 | char *className)); |
| 582 | extern int Tk_GetPixels _ANSI_ARGS_((Tcl_Interp *interp, |
| 583 | Tk_Window tkwin, char *string, int *intPtr)); |
| 584 | extern int Tk_GetRelief _ANSI_ARGS_((Tcl_Interp *interp, |
| 585 | char *name, int *reliefPtr)); |
| 586 | extern void Tk_GetRootCoords _ANSI_ARGS_ ((Tk_Window tkwin, |
| 587 | int *xPtr, int *yPtr)); |
| 588 | extern int Tk_GetScreenMM _ANSI_ARGS_((Tcl_Interp *interp, |
| 589 | Tk_Window tkwin, char *string, double *doublePtr)); |
| 590 | extern int Tk_GetSelection _ANSI_ARGS_((Tcl_Interp *interp, |
| 591 | Tk_Window tkwin, Atom target, Tk_GetSelProc *proc, |
| 592 | ClientData clientData)); |
| 593 | extern Tk_Uid Tk_GetUid _ANSI_ARGS_((char *string)); |
| 594 | extern int Tk_Grab _ANSI_ARGS_((Tcl_Interp *interp, |
| 595 | Tk_Window tkwin, int grabGlobal)); |
| 596 | extern void Tk_HandleEvent _ANSI_ARGS_((XEvent *eventPtr)); |
| 597 | extern Atom Tk_InternAtom _ANSI_ARGS_((Tk_Window tkwin, |
| 598 | char *name)); |
| 599 | extern void Tk_MainLoop _ANSI_ARGS_((void)); |
| 600 | extern void Tk_MakeWindowExist _ANSI_ARGS_((Tk_Window tkwin)); |
| 601 | extern void Tk_ManageGeometry _ANSI_ARGS_((Tk_Window tkwin, |
| 602 | Tk_GeometryProc *proc, ClientData clientData)); |
| 603 | extern void Tk_MapWindow _ANSI_ARGS_((Tk_Window tkwin)); |
| 604 | extern void Tk_MoveResizeWindow _ANSI_ARGS_((Tk_Window tkwin, |
| 605 | int x, int y, unsigned int width, |
| 606 | unsigned int height)); |
| 607 | extern void Tk_MoveWindow _ANSI_ARGS_((Tk_Window tkwin, int x, |
| 608 | int y)); |
| 609 | extern char * Tk_NameOf3DBorder _ANSI_ARGS_((Tk_3DBorder border)); |
| 610 | extern char * Tk_NameOfAnchor _ANSI_ARGS_((Tk_Anchor anchor)); |
| 611 | extern char * Tk_NameOfBitmap _ANSI_ARGS_((Pixmap bitmap)); |
| 612 | extern char * Tk_NameOfPixmap _ANSI_ARGS_((Pixmap bitmap)); |
| 613 | extern char * Tk_NameOfCapStyle _ANSI_ARGS_((int cap)); |
| 614 | extern char * Tk_NameOfColor _ANSI_ARGS_((XColor *colorPtr)); |
| 615 | extern char * Tk_NameOfCursor _ANSI_ARGS_((Cursor cursor)); |
| 616 | extern char * Tk_NameOfFontStruct _ANSI_ARGS_(( |
| 617 | XFontStruct *fontStructPtr)); |
| 618 | extern char * Tk_NameOfJoinStyle _ANSI_ARGS_((int join)); |
| 619 | extern char * Tk_NameOfJustify _ANSI_ARGS_((Tk_Justify justify)); |
| 620 | extern char * Tk_NameOfRelief _ANSI_ARGS_((int relief)); |
| 621 | extern Tk_Window Tk_NameToWindow _ANSI_ARGS_((Tcl_Interp *interp, |
| 622 | char *pathName, Tk_Window tkwin)); |
| 623 | extern void Tk_OwnSelection _ANSI_ARGS_((Tk_Window tkwin, |
| 624 | Tk_LostSelProc *proc, ClientData clientData)); |
| 625 | extern int Tk_ParseArgv _ANSI_ARGS_((Tcl_Interp *interp, |
| 626 | Tk_Window tkwin, int *argcPtr, char **argv, |
| 627 | Tk_ArgvInfo *argTable, int flags)); |
| 628 | extern void Tk_Preserve _ANSI_ARGS_((ClientData clientData)); |
| 629 | extern int Tk_RegisterInterp _ANSI_ARGS_((Tcl_Interp *interp, |
| 630 | char *name, Tk_Window tkwin)); |
| 631 | extern void Tk_Release _ANSI_ARGS_((ClientData clientData)); |
| 632 | extern void Tk_ResizeWindow _ANSI_ARGS_((Tk_Window tkwin, |
| 633 | unsigned int width, unsigned int height)); |
| 634 | extern Tk_RestrictProc *Tk_RestrictEvents _ANSI_ARGS_((Tk_RestrictProc *proc, |
| 635 | char *arg, char **prevArgPtr)); |
| 636 | extern void Tk_SetBackgroundFromBorder _ANSI_ARGS_(( |
| 637 | Tk_Window tkwin, Tk_3DBorder border)); |
| 638 | extern void Tk_SetClass _ANSI_ARGS_((Tk_Window tkwin, |
| 639 | char *className)); |
| 640 | extern void Tk_SetGrid _ANSI_ARGS_((Tk_Window tkwin, |
| 641 | int reqWidth, int reqHeight, int gridWidth, |
| 642 | int gridHeight)); |
| 643 | extern void Tk_SetInternalBorder _ANSI_ARGS_((Tk_Window tkwin, |
| 644 | int width)); |
| 645 | extern void Tk_SetWindowBackground _ANSI_ARGS_((Tk_Window tkwin, |
| 646 | unsigned long pixel)); |
| 647 | extern void Tk_SetWindowBackgroundPixmap _ANSI_ARGS_(( |
| 648 | Tk_Window tkwin, Pixmap pixmap)); |
| 649 | extern void Tk_SetWindowBorder _ANSI_ARGS_((Tk_Window tkwin, |
| 650 | unsigned long pixel)); |
| 651 | extern void Tk_SetWindowBorderWidth _ANSI_ARGS_((Tk_Window tkwin, |
| 652 | int width)); |
| 653 | extern void Tk_SetWindowBorderPixmap _ANSI_ARGS_((Tk_Window tkwin, |
| 654 | Pixmap pixmap)); |
| 655 | extern void Tk_ShareEvents _ANSI_ARGS_((Tk_Window tkwin, |
| 656 | Tk_Uid groupId)); |
| 657 | extern void Tk_SizeOfBitmap _ANSI_ARGS_((Pixmap bitmap, |
| 658 | unsigned int *widthPtr, unsigned int *heightPtr)); |
| 659 | extern void Tk_SizeOfPixmap _ANSI_ARGS_((Pixmap bitmap, |
| 660 | unsigned int *widthPtr, unsigned int *heightPtr)); |
| 661 | extern void Tk_Sleep _ANSI_ARGS_((int ms)); |
| 662 | extern void Tk_UndefineCursor _ANSI_ARGS_((Tk_Window window)); |
| 663 | extern int Tk_UndefinePixmap _ANSI_ARGS_((Tcl_Interp *interp, |
| 664 | Tk_Uid name, Tk_Window tkwin)); |
| 665 | extern void Tk_Ungrab _ANSI_ARGS_((Tk_Window tkwin)); |
| 666 | extern void Tk_UnmapWindow _ANSI_ARGS_((Tk_Window tkwin)); |
| 667 | extern void Tk_UnshareEvents _ANSI_ARGS_((Tk_Window tkwin, |
| 668 | Tk_Uid groupId)); |
| 669 | |
| 670 | |
| 671 | extern int tk_NumMainWindows; |
| 672 | |
| 673 | /* |
| 674 | * Added by dhopkins for OLPC Micropolis gtk.Socket integration. |
| 675 | */ |
| 676 | extern Window tk_RootWindow; |
| 677 | |
| 678 | /* |
| 679 | * Tcl commands exported by Tk: |
| 680 | */ |
| 681 | |
| 682 | extern int Tk_AfterCmd _ANSI_ARGS_((ClientData clientData, |
| 683 | Tcl_Interp *interp, int argc, char **argv)); |
| 684 | extern int Tk_ApplicationCmd _ANSI_ARGS_((ClientData clientData, |
| 685 | Tcl_Interp *interp, int argc, char **argv)); |
| 686 | extern int Tk_BindCmd _ANSI_ARGS_((ClientData clientData, |
| 687 | Tcl_Interp *interp, int argc, char **argv)); |
| 688 | extern int Tk_ButtonCmd _ANSI_ARGS_((ClientData clientData, |
| 689 | Tcl_Interp *interp, int argc, char **argv)); |
| 690 | extern int Tk_CanvasCmd _ANSI_ARGS_((ClientData clientData, |
| 691 | Tcl_Interp *interp, int argc, char **argv)); |
| 692 | extern int Tk_DestroyCmd _ANSI_ARGS_((ClientData clientData, |
| 693 | Tcl_Interp *interp, int argc, char **argv)); |
| 694 | extern int Tk_EntryCmd _ANSI_ARGS_((ClientData clientData, |
| 695 | Tcl_Interp *interp, int argc, char **argv)); |
| 696 | extern int Tk_FrameCmd _ANSI_ARGS_((ClientData clientData, |
| 697 | Tcl_Interp *interp, int argc, char **argv)); |
| 698 | extern int Tk_FocusCmd _ANSI_ARGS_((ClientData clientData, |
| 699 | Tcl_Interp *interp, int argc, char **argv)); |
| 700 | extern int Tk_GrabCmd _ANSI_ARGS_((ClientData clientData, |
| 701 | Tcl_Interp *interp, int argc, char **argv)); |
| 702 | extern int Tk_ListboxCmd _ANSI_ARGS_((ClientData clientData, |
| 703 | Tcl_Interp *interp, int argc, char **argv)); |
| 704 | extern int Tk_MenuCmd _ANSI_ARGS_((ClientData clientData, |
| 705 | Tcl_Interp *interp, int argc, char **argv)); |
| 706 | extern int Tk_MenubuttonCmd _ANSI_ARGS_((ClientData clientData, |
| 707 | Tcl_Interp *interp, int argc, char **argv)); |
| 708 | extern int Tk_MessageCmd _ANSI_ARGS_((ClientData clientData, |
| 709 | Tcl_Interp *interp, int argc, char **argv)); |
| 710 | extern int Tk_OptionCmd _ANSI_ARGS_((ClientData clientData, |
| 711 | Tcl_Interp *interp, int argc, char **argv)); |
| 712 | extern int Tk_PackCmd _ANSI_ARGS_((ClientData clientData, |
| 713 | Tcl_Interp *interp, int argc, char **argv)); |
| 714 | extern int Tk_PlaceCmd _ANSI_ARGS_((ClientData clientData, |
| 715 | Tcl_Interp *interp, int argc, char **argv)); |
| 716 | extern int Tk_ScaleCmd _ANSI_ARGS_((ClientData clientData, |
| 717 | Tcl_Interp *interp, int argc, char **argv)); |
| 718 | extern int Tk_ScrollbarCmd _ANSI_ARGS_((ClientData clientData, |
| 719 | Tcl_Interp *interp, int argc, char **argv)); |
| 720 | extern int Tk_SelectionCmd _ANSI_ARGS_((ClientData clientData, |
| 721 | Tcl_Interp *interp, int argc, char **argv)); |
| 722 | extern int Tk_SendCmd _ANSI_ARGS_((ClientData clientData, |
| 723 | Tcl_Interp *interp, int argc, char **argv)); |
| 724 | extern int Tk_TextCmd _ANSI_ARGS_((ClientData clientData, |
| 725 | Tcl_Interp *interp, int argc, char **argv)); |
| 726 | extern int Tk_TkwaitCmd _ANSI_ARGS_((ClientData clientData, |
| 727 | Tcl_Interp *interp, int argc, char **argv)); |
| 728 | extern int Tk_UpdateCmd _ANSI_ARGS_((ClientData clientData, |
| 729 | Tcl_Interp *interp, int argc, char **argv)); |
| 730 | extern int Tk_WinfoCmd _ANSI_ARGS_((ClientData clientData, |
| 731 | Tcl_Interp *interp, int argc, char **argv)); |
| 732 | extern int Tk_WmCmd _ANSI_ARGS_((ClientData clientData, |
| 733 | Tcl_Interp *interp, int argc, char **argv)); |
| 734 | extern int Tcp_AcceptCmd _ANSI_ARGS_((ClientData clientData, |
| 735 | Tcl_Interp *interp, int argc, char **argv)); |
| 736 | extern int Tcp_ConnectCmd _ANSI_ARGS_((ClientData clientData, |
| 737 | Tcl_Interp *interp, int argc, char **argv)); |
| 738 | extern int Tcp_ShutdownCmd _ANSI_ARGS_((ClientData clientData, |
| 739 | Tcl_Interp *interp, int argc, char **argv)); |
| 740 | extern int Tcp_FileHandlerCmd _ANSI_ARGS_((ClientData clientData, |
| 741 | Tcl_Interp *interp, int argc, char **argv)); |
| 742 | |
| 743 | #endif /* _TK */ |