root/tk-8.0/trunk/generic/tk.h @ 1224

Revision 1224, 60.4 KB (checked in by ucaccsp, 15 years ago)

Yet more windows updates

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1/*
2 * tk.h --
3 *
4 *      Declarations for Tk-related things that are visible
5 *      outside of the Tk module itself.
6 *
7 * Copyright (c) 1989-1994 The Regents of the University of California.
8 * Copyright (c) 1994 The Australian National University.
9 * Copyright (c) 1994-1997 Sun Microsystems, Inc.
10 *
11 * See the file "license.terms" for information on usage and redistribution
12 * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
13 *
14 * SCCS: @(#) tk.h 1.211 97/11/20 12:44:45
15 */
16
17#ifndef _TK
18#define _TK
19
20/*
21 * When version numbers change here, you must also go into the following files
22 * and update the version numbers:
23 *
24 * README
25 * unix/configure.in
26 * win/makefile.bc      (Not for patch release updates)
27 * win/makefile.vc      (Not for patch release updates)
28 * library/tk.tcl
29 *
30 * The release level should be  0 for alpha, 1 for beta, and 2 for
31 * final/patch.  The release serial value is the number that follows the
32 * "a", "b", or "p" in the patch level; for example, if the patch level
33 * is 4.3b2, TK_RELEASE_SERIAL is 2.  It restarts at 1 whenever the
34 * release level is changed, except for the final release, which should
35 * be 0.
36 *
37 * You may also need to update some of these files when the numbers change
38 * for the version of Tcl that this release of Tk is compiled against.
39 */
40
41#define TK_MAJOR_VERSION   8
42#define TK_MINOR_VERSION   0
43#define TK_RELEASE_LEVEL   2
44#define TK_RELEASE_SERIAL  3
45
46#define TK_VERSION "8.0"
47#define TK_PATCH_LEVEL "8.0.3"
48
49/*
50 * A special definition used to allow this header file to be included
51 * in resource files.
52 */
53
54#ifndef RESOURCE_INCLUDED
55
56/*
57 * The following definitions set up the proper options for Macintosh
58 * compilers.  We use this method because there is no autoconf equivalent.
59 */
60
61#ifdef MAC_TCL
62#   ifndef REDO_KEYSYM_LOOKUP
63#       define REDO_KEYSYM_LOOKUP
64#   endif
65#endif
66
67#ifndef _TCL
68#   include <tcl.h>
69#endif
70#ifndef _XLIB_H
71#   ifdef MAC_TCL
72/*
73#       include <Xlib.h>
74#       include <X.h>
75*/
76#   else
77#       include <X11/Xlib.h>
78#   endif
79#endif
80#ifdef __STDC__
81#   include <stddef.h>
82#endif
83
84#ifdef BUILD_tk
85# undef TCL_STORAGE_CLASS
86# define TCL_STORAGE_CLASS DLLEXPORT
87#endif
88
89/*
90 * Decide whether or not to use input methods.
91 */
92
93#ifdef XNQueryInputStyle
94#define TK_USE_INPUT_METHODS
95#endif
96
97/*
98 * Dummy types that are used by clients:
99 */
100
101typedef struct Tk_BindingTable_ *Tk_BindingTable;
102typedef struct Tk_Canvas_ *Tk_Canvas;
103typedef struct Tk_Cursor_ *Tk_Cursor;
104typedef struct Tk_ErrorHandler_ *Tk_ErrorHandler;
105typedef struct Tk_Font_ *Tk_Font;
106typedef struct Tk_Image__ *Tk_Image;
107typedef struct Tk_ImageMaster_ *Tk_ImageMaster;
108typedef struct Tk_TextLayout_ *Tk_TextLayout;
109typedef struct Tk_Window_ *Tk_Window;
110typedef struct Tk_3DBorder_ *Tk_3DBorder;
111
112/*
113 * Additional types exported to clients.
114 */
115
116typedef char *Tk_Uid;
117
118/*
119 * Structure used to specify how to handle argv options.
120 */
121
122typedef struct {
123    char *key;          /* The key string that flags the option in the
124                         * argv array. */
125    int type;           /* Indicates option type;  see below. */
126    char *src;          /* Value to be used in setting dst;  usage
127                         * depends on type. */
128    char *dst;          /* Address of value to be modified;  usage
129                         * depends on type. */
130    char *help;         /* Documentation message describing this option. */
131} Tk_ArgvInfo;
132
133/*
134 * Legal values for the type field of a Tk_ArgvInfo: see the user
135 * documentation for details.
136 */
137
138#define TK_ARGV_CONSTANT                15
139#define TK_ARGV_INT                     16
140#define TK_ARGV_STRING                  17
141#define TK_ARGV_UID                     18
142#define TK_ARGV_REST                    19
143#define TK_ARGV_FLOAT                   20
144#define TK_ARGV_FUNC                    21
145#define TK_ARGV_GENFUNC                 22
146#define TK_ARGV_HELP                    23
147#define TK_ARGV_CONST_OPTION            24
148#define TK_ARGV_OPTION_VALUE            25
149#define TK_ARGV_OPTION_NAME_VALUE       26
150#define TK_ARGV_END                     27
151
152/*
153 * Flag bits for passing to Tk_ParseArgv:
154 */
155
156#define TK_ARGV_NO_DEFAULTS             0x1
157#define TK_ARGV_NO_LEFTOVERS            0x2
158#define TK_ARGV_NO_ABBREV               0x4
159#define TK_ARGV_DONT_SKIP_FIRST_ARG     0x8
160
161/*
162 * Structure used to describe application-specific configuration
163 * options:  indicates procedures to call to parse an option and
164 * to return a text string describing an option.
165 */
166
167typedef int (Tk_OptionParseProc) _ANSI_ARGS_((ClientData clientData,
168        Tcl_Interp *interp, Tk_Window tkwin, char *value, char *widgRec,
169        int offset));
170typedef char *(Tk_OptionPrintProc) _ANSI_ARGS_((ClientData clientData,
171        Tk_Window tkwin, char *widgRec, int offset,
172        Tcl_FreeProc **freeProcPtr));
173
174typedef struct Tk_CustomOption {
175    Tk_OptionParseProc *parseProc;      /* Procedure to call to parse an
176                                         * option and store it in converted
177                                         * form. */
178    Tk_OptionPrintProc *printProc;      /* Procedure to return a printable
179                                         * string describing an existing
180                                         * option. */
181    ClientData clientData;              /* Arbitrary one-word value used by
182                                         * option parser:  passed to
183                                         * parseProc and printProc. */
184} Tk_CustomOption;
185
186/*
187 * Structure used to specify information for Tk_ConfigureWidget.  Each
188 * structure gives complete information for one option, including
189 * how the option is specified on the command line, where it appears
190 * in the option database, etc.
191 */
192
193typedef struct Tk_ConfigSpec {
194    int type;                   /* Type of option, such as TK_CONFIG_COLOR;
195                                 * see definitions below.  Last option in
196                                 * table must have type TK_CONFIG_END. */
197    char *argvName;             /* Switch used to specify option in argv.
198                                 * NULL means this spec is part of a group. */
199    char *dbName;               /* Name for option in option database. */
200    char *dbClass;              /* Class for option in database. */
201    char *defValue;             /* Default value for option if not
202                                 * specified in command line or database. */
203    int offset;                 /* Where in widget record to store value;
204                                 * use Tk_Offset macro to generate values
205                                 * for this. */
206    int specFlags;              /* Any combination of the values defined
207                                 * below;  other bits are used internally
208                                 * by tkConfig.c. */
209    Tk_CustomOption *customPtr; /* If type is TK_CONFIG_CUSTOM then this is
210                                 * a pointer to info about how to parse and
211                                 * print the option.  Otherwise it is
212                                 * irrelevant. */
213} Tk_ConfigSpec;
214
215/*
216 * Type values for Tk_ConfigSpec structures.  See the user
217 * documentation for details.
218 */
219
220#define TK_CONFIG_BOOLEAN       1
221#define TK_CONFIG_INT           2
222#define TK_CONFIG_DOUBLE        3
223#define TK_CONFIG_STRING        4
224#define TK_CONFIG_UID           5
225#define TK_CONFIG_COLOR         6
226#define TK_CONFIG_FONT          7
227#define TK_CONFIG_BITMAP        8
228#define TK_CONFIG_BORDER        9
229#define TK_CONFIG_RELIEF        10
230#define TK_CONFIG_CURSOR        11
231#define TK_CONFIG_ACTIVE_CURSOR 12
232#define TK_CONFIG_JUSTIFY       13
233#define TK_CONFIG_ANCHOR        14
234#define TK_CONFIG_SYNONYM       15
235#define TK_CONFIG_CAP_STYLE     16
236#define TK_CONFIG_JOIN_STYLE    17
237#define TK_CONFIG_PIXELS        18
238#define TK_CONFIG_MM            19
239#define TK_CONFIG_WINDOW        20
240#define TK_CONFIG_CUSTOM        21
241#define TK_CONFIG_END           22
242
243/*
244 * Macro to use to fill in "offset" fields of Tk_ConfigInfos.
245 * Computes number of bytes from beginning of structure to a
246 * given field.
247 */
248
249#ifdef offsetof
250#define Tk_Offset(type, field) ((int) offsetof(type, field))
251#else
252#define Tk_Offset(type, field) ((int) ((char *) &((type *) 0)->field))
253#endif
254
255/*
256 * Possible values for flags argument to Tk_ConfigureWidget:
257 */
258
259#define TK_CONFIG_ARGV_ONLY     1
260
261/*
262 * Possible flag values for Tk_ConfigInfo structures.  Any bits at
263 * or above TK_CONFIG_USER_BIT may be used by clients for selecting
264 * certain entries.  Before changing any values here, coordinate with
265 * tkConfig.c (internal-use-only flags are defined there).
266 */
267
268#define TK_CONFIG_COLOR_ONLY            1
269#define TK_CONFIG_MONO_ONLY             2
270#define TK_CONFIG_NULL_OK               4
271#define TK_CONFIG_DONT_SET_DEFAULT      8
272#define TK_CONFIG_OPTION_SPECIFIED      0x10
273#define TK_CONFIG_USER_BIT              0x100
274
275/*
276 * Enumerated type for describing actions to be taken in response
277 * to a restrictProc established by Tk_RestrictEvents.
278 */
279
280typedef enum {
281    TK_DEFER_EVENT, TK_PROCESS_EVENT, TK_DISCARD_EVENT
282} Tk_RestrictAction;
283
284/*
285 * Priority levels to pass to Tk_AddOption:
286 */
287
288#define TK_WIDGET_DEFAULT_PRIO  20
289#define TK_STARTUP_FILE_PRIO    40
290#define TK_USER_DEFAULT_PRIO    60
291#define TK_INTERACTIVE_PRIO     80
292#define TK_MAX_PRIO             100
293
294/*
295 * Relief values returned by Tk_GetRelief:
296 */
297
298#define TK_RELIEF_RAISED        1
299#define TK_RELIEF_FLAT          2
300#define TK_RELIEF_SUNKEN        4
301#define TK_RELIEF_GROOVE        8
302#define TK_RELIEF_RIDGE         16
303#define TK_RELIEF_SOLID         32
304
305/*
306 * "Which" argument values for Tk_3DBorderGC:
307 */
308
309#define TK_3D_FLAT_GC           1
310#define TK_3D_LIGHT_GC          2
311#define TK_3D_DARK_GC           3
312
313/*
314 * Special EnterNotify/LeaveNotify "mode" for use in events
315 * generated by tkShare.c.  Pick a high enough value that it's
316 * unlikely to conflict with existing values (like NotifyNormal)
317 * or any new values defined in the future.
318 */
319
320#define TK_NOTIFY_SHARE         20
321
322/*
323 * Enumerated type for describing a point by which to anchor something:
324 */
325
326typedef enum {
327    TK_ANCHOR_N, TK_ANCHOR_NE, TK_ANCHOR_E, TK_ANCHOR_SE,
328    TK_ANCHOR_S, TK_ANCHOR_SW, TK_ANCHOR_W, TK_ANCHOR_NW,
329    TK_ANCHOR_CENTER
330} Tk_Anchor;
331
332/*
333 * Enumerated type for describing a style of justification:
334 */
335
336typedef enum {
337    TK_JUSTIFY_LEFT, TK_JUSTIFY_RIGHT, TK_JUSTIFY_CENTER
338} Tk_Justify;
339
340/*
341 * The following structure is used by Tk_GetFontMetrics() to return
342 * information about the properties of a Tk_Font. 
343 */
344
345typedef struct Tk_FontMetrics {
346    int ascent;                 /* The amount in pixels that the tallest
347                                 * letter sticks up above the baseline, plus
348                                 * any extra blank space added by the designer
349                                 * of the font. */
350    int descent;                /* The largest amount in pixels that any
351                                 * letter sticks below the baseline, plus any
352                                 * extra blank space added by the designer of
353                                 * the font. */
354    int linespace;              /* The sum of the ascent and descent.  How
355                                 * far apart two lines of text in the same
356                                 * font should be placed so that none of the
357                                 * characters in one line overlap any of the
358                                 * characters in the other line. */
359} Tk_FontMetrics;
360
361/*
362 * Flags passed to Tk_MeasureChars:
363 */
364
365#define TK_WHOLE_WORDS          1
366#define TK_AT_LEAST_ONE         2
367#define TK_PARTIAL_OK           4
368
369/*
370 * Flags passed to Tk_ComputeTextLayout:
371 */
372
373#define TK_IGNORE_TABS          8
374#define TK_IGNORE_NEWLINES      16
375
376/*
377 * Each geometry manager (the packer, the placer, etc.) is represented
378 * by a structure of the following form, which indicates procedures
379 * to invoke in the geometry manager to carry out certain functions.
380 */
381
382typedef void (Tk_GeomRequestProc) _ANSI_ARGS_((ClientData clientData,
383        Tk_Window tkwin));
384typedef void (Tk_GeomLostSlaveProc) _ANSI_ARGS_((ClientData clientData,
385        Tk_Window tkwin));
386
387typedef struct Tk_GeomMgr {
388    char *name;                 /* Name of the geometry manager (command
389                                 * used to invoke it, or name of widget
390                                 * class that allows embedded widgets). */
391    Tk_GeomRequestProc *requestProc;
392                                /* Procedure to invoke when a slave's
393                                 * requested geometry changes. */
394    Tk_GeomLostSlaveProc *lostSlaveProc;
395                                /* Procedure to invoke when a slave is
396                                 * taken away from one geometry manager
397                                 * by another.  NULL means geometry manager
398                                 * doesn't care when slaves are lost. */
399} Tk_GeomMgr;
400
401/*
402 * Result values returned by Tk_GetScrollInfo:
403 */
404
405#define TK_SCROLL_MOVETO        1
406#define TK_SCROLL_PAGES         2
407#define TK_SCROLL_UNITS         3
408#define TK_SCROLL_ERROR         4
409
410/*
411 *---------------------------------------------------------------------------
412 *
413 * Extensions to the X event set
414 *
415 *---------------------------------------------------------------------------
416 */
417#define VirtualEvent        (LASTEvent)
418#define ActivateNotify      (LASTEvent + 1)
419#define DeactivateNotify    (LASTEvent + 2)
420#define TK_LASTEVENT        (LASTEvent + 3)
421
422#define VirtualEventMask    (1L << 30)
423#define ActivateMask        (1L << 29)
424#define TK_LASTEVENT        (LASTEvent + 3)
425
426
427/*
428 * A virtual event shares most of its fields with the XKeyEvent and
429 * XButtonEvent structures.  99% of the time a virtual event will be
430 * an abstraction of a key or button event, so this structure provides
431 * the most information to the user.  The only difference is the changing
432 * of the detail field for a virtual event so that it holds the name of the
433 * virtual event being triggered.
434 */
435
436typedef struct {
437    int type;
438    unsigned long serial;   /* # of last request processed by server */
439    Bool send_event;        /* True if this came from a SendEvent request */
440    Display *display;       /* Display the event was read from */
441    Window event;           /* Window on which event was requested. */
442    Window root;            /* root window that the event occured on */
443    Window subwindow;       /* child window */
444    Time time;              /* milliseconds */
445    int x, y;               /* pointer x, y coordinates in event window */
446    int x_root, y_root;     /* coordinates relative to root */
447    unsigned int state;     /* key or button mask */
448    Tk_Uid name;            /* Name of virtual event. */
449    Bool same_screen;       /* same screen flag */
450} XVirtualEvent;
451
452typedef struct {
453    int type;
454    unsigned long serial;   /* # of last request processed by server */
455    Bool send_event;        /* True if this came from a SendEvent request */
456    Display *display;       /* Display the event was read from */
457    Window window;          /* Window in which event occurred. */
458} XActivateDeactivateEvent;
459typedef XActivateDeactivateEvent XActivateEvent;
460typedef XActivateDeactivateEvent XDeactivateEvent;
461
462/*
463 *--------------------------------------------------------------
464 *
465 * Macros for querying Tk_Window structures.  See the
466 * manual entries for documentation.
467 *
468 *--------------------------------------------------------------
469 */
470
471#define Tk_Display(tkwin)               (((Tk_FakeWin *) (tkwin))->display)
472#define Tk_ScreenNumber(tkwin)          (((Tk_FakeWin *) (tkwin))->screenNum)
473#define Tk_Screen(tkwin)                (ScreenOfDisplay(Tk_Display(tkwin), \
474        Tk_ScreenNumber(tkwin)))
475#define Tk_Depth(tkwin)                 (((Tk_FakeWin *) (tkwin))->depth)
476#define Tk_Visual(tkwin)                (((Tk_FakeWin *) (tkwin))->visual)
477#define Tk_WindowId(tkwin)              (((Tk_FakeWin *) (tkwin))->window)
478#define Tk_PathName(tkwin)              (((Tk_FakeWin *) (tkwin))->pathName)
479#define Tk_Name(tkwin)                  (((Tk_FakeWin *) (tkwin))->nameUid)
480#define Tk_Class(tkwin)                 (((Tk_FakeWin *) (tkwin))->classUid)
481#define Tk_X(tkwin)                     (((Tk_FakeWin *) (tkwin))->changes.x)
482#define Tk_Y(tkwin)                     (((Tk_FakeWin *) (tkwin))->changes.y)
483#define Tk_Width(tkwin)                 (((Tk_FakeWin *) (tkwin))->changes.width)
484#define Tk_Height(tkwin) \
485    (((Tk_FakeWin *) (tkwin))->changes.height)
486#define Tk_Changes(tkwin)               (&((Tk_FakeWin *) (tkwin))->changes)
487#define Tk_Attributes(tkwin)            (&((Tk_FakeWin *) (tkwin))->atts)
488#define Tk_IsEmbedded(tkwin) \
489    (((Tk_FakeWin *) (tkwin))->flags & TK_EMBEDDED)
490#define Tk_IsContainer(tkwin) \
491    (((Tk_FakeWin *) (tkwin))->flags & TK_CONTAINER)
492#define Tk_IsMapped(tkwin) \
493    (((Tk_FakeWin *) (tkwin))->flags & TK_MAPPED)
494#define Tk_IsTopLevel(tkwin) \
495    (((Tk_FakeWin *) (tkwin))->flags & TK_TOP_LEVEL)
496#define Tk_ReqWidth(tkwin)              (((Tk_FakeWin *) (tkwin))->reqWidth)
497#define Tk_ReqHeight(tkwin)             (((Tk_FakeWin *) (tkwin))->reqHeight)
498#define Tk_InternalBorderWidth(tkwin) \
499    (((Tk_FakeWin *) (tkwin))->internalBorderWidth)
500#define Tk_Parent(tkwin)                (((Tk_FakeWin *) (tkwin))->parentPtr)
501#define Tk_Colormap(tkwin)              (((Tk_FakeWin *) (tkwin))->atts.colormap)
502
503/*
504 * The structure below is needed by the macros above so that they can
505 * access the fields of a Tk_Window.  The fields not needed by the macros
506 * are declared as "dummyX".  The structure has its own type in order to
507 * prevent applications from accessing Tk_Window fields except using
508 * official macros.  WARNING!! The structure definition must be kept
509 * consistent with the TkWindow structure in tkInt.h.  If you change one,
510 * then change the other.  See the declaration in tkInt.h for
511 * documentation on what the fields are used for internally.
512 */
513
514typedef struct Tk_FakeWin {
515    Display *display;
516    char *dummy1;
517    int screenNum;
518    Visual *visual;
519    int depth;
520    Window window;
521    char *dummy2;
522    char *dummy3;
523    Tk_Window parentPtr;
524    char *dummy4;
525    char *dummy5;
526    char *pathName;
527    Tk_Uid nameUid;
528    Tk_Uid classUid;
529    XWindowChanges changes;
530    unsigned int dummy6;
531    XSetWindowAttributes atts;
532    unsigned long dummy7;
533    unsigned int flags;
534    char *dummy8;
535#ifdef TK_USE_INPUT_METHODS
536    XIC dummy9;
537#endif /* TK_USE_INPUT_METHODS */
538    ClientData *dummy10;
539    int dummy11;
540    int dummy12;
541    char *dummy13;
542    char *dummy14;
543    ClientData dummy15;
544    int reqWidth, reqHeight;
545    int internalBorderWidth;
546    char *dummy16;
547    char *dummy17;
548    ClientData dummy18;
549    char *dummy19;
550} Tk_FakeWin;
551
552/*
553 * Flag values for TkWindow (and Tk_FakeWin) structures are:
554 *
555 * TK_MAPPED:                   1 means window is currently mapped,
556 *                              0 means unmapped.
557 * TK_TOP_LEVEL:                1 means this is a top-level window (it
558 *                              was or will be created as a child of
559 *                              a root window).
560 * TK_ALREADY_DEAD:             1 means the window is in the process of
561 *                              being destroyed already.
562 * TK_NEED_CONFIG_NOTIFY:       1 means that the window has been reconfigured
563 *                              before it was made to exist.  At the time of
564 *                              making it exist a ConfigureNotify event needs
565 *                              to be generated.
566 * TK_GRAB_FLAG:                Used to manage grabs.  See tkGrab.c for
567 *                              details.
568 * TK_CHECKED_IC:               1 means we've already tried to get an input
569 *                              context for this window;  if the ic field
570 *                              is NULL it means that there isn't a context
571 *                              for the field.
572 * TK_DONT_DESTROY_WINDOW:      1 means that Tk_DestroyWindow should not
573 *                              invoke XDestroyWindow to destroy this widget's
574 *                              X window.  The flag is set when the window
575 *                              has already been destroyed elsewhere (e.g.
576 *                              by another application) or when it will be
577 *                              destroyed later (e.g. by destroying its
578 *                              parent).
579 * TK_WM_COLORMAP_WINDOW:       1 means that this window has at some time
580 *                              appeared in the WM_COLORMAP_WINDOWS property
581 *                              for its toplevel, so we have to remove it
582 *                              from that property if the window is
583 *                              deleted and the toplevel isn't.
584 * TK_EMBEDDED:                 1 means that this window (which must be a
585 *                              toplevel) is not a free-standing window but
586 *                              rather is embedded in some other application.
587 * TK_CONTAINER:                1 means that this window is a container, and
588 *                              that some other application (either in
589 *                              this process or elsewhere) may be
590 *                              embedding itself inside the window.
591 * TK_BOTH_HALVES:              1 means that this window is used for
592 *                              application embedding (either as
593 *                              container or embedded application), and
594 *                              both the containing and embedded halves
595 *                              are associated with windows in this
596 *                              particular process.
597 * TK_DEFER_MODAL:              1 means that this window has deferred a modal
598 *                              loop until all of the bindings for the current
599 *                              event have been invoked.
600 * TK_WRAPPER:                  1 means that this window is the extra
601 *                              wrapper window created around a toplevel
602 *                              to hold the menubar under Unix.  See
603 *                              tkUnixWm.c for more information.
604 * TK_REPARENTED:               1 means that this window has been reparented
605 *                              so that as far as the window system is
606 *                              concerned it isn't a child of its Tk
607 *                              parent.  Initially this is used only for
608 *                              special Unix menubar windows.
609 */
610
611
612#define TK_MAPPED               1
613#define TK_TOP_LEVEL            2
614#define TK_ALREADY_DEAD         4
615#define TK_NEED_CONFIG_NOTIFY   8
616#define TK_GRAB_FLAG            0x10
617#define TK_CHECKED_IC           0x20
618#define TK_DONT_DESTROY_WINDOW  0x40
619#define TK_WM_COLORMAP_WINDOW   0x80
620#define TK_EMBEDDED             0x100
621#define TK_CONTAINER            0x200
622#define TK_BOTH_HALVES          0x400
623#define TK_DEFER_MODAL          0x800
624#define TK_WRAPPER              0x1000
625#define TK_REPARENTED           0x2000
626
627/*
628 *--------------------------------------------------------------
629 *
630 * Procedure prototypes and structures used for defining new canvas
631 * items:
632 *
633 *--------------------------------------------------------------
634 */
635
636/*
637 * For each item in a canvas widget there exists one record with
638 * the following structure.  Each actual item is represented by
639 * a record with the following stuff at its beginning, plus additional
640 * type-specific stuff after that.
641 */
642
643#define TK_TAG_SPACE 3
644
645typedef struct Tk_Item  {
646    int id;                             /* Unique identifier for this item
647                                         * (also serves as first tag for
648                                         * item). */
649    struct Tk_Item *nextPtr;            /* Next in display list of all
650                                         * items in this canvas.  Later items
651                                         * in list are drawn on top of earlier
652                                         * ones. */
653    Tk_Uid staticTagSpace[TK_TAG_SPACE];/* Built-in space for limited # of
654                                         * tags. */
655    Tk_Uid *tagPtr;                     /* Pointer to array of tags.  Usually
656                                         * points to staticTagSpace, but
657                                         * may point to malloc-ed space if
658                                         * there are lots of tags. */
659    int tagSpace;                       /* Total amount of tag space available
660                                         * at tagPtr. */
661    int numTags;                        /* Number of tag slots actually used
662                                         * at *tagPtr. */
663    struct Tk_ItemType *typePtr;        /* Table of procedures that implement
664                                         * this type of item. */
665    int x1, y1, x2, y2;                 /* Bounding box for item, in integer
666                                         * canvas units. Set by item-specific
667                                         * code and guaranteed to contain every
668                                         * pixel drawn in item.  Item area
669                                         * includes x1 and y1 but not x2
670                                         * and y2. */
671    int   reserved1;                    /* This padding is for compatibility */
672    char *reserved2;                    /* with Jan Nijtmans dash patch */
673    int   reserved3;
674    char *reserved4;
675
676    /*
677     *------------------------------------------------------------------
678     * Starting here is additional type-specific stuff;  see the
679     * declarations for individual types to see what is part of
680     * each type.  The actual space below is determined by the
681     * "itemInfoSize" of the type's Tk_ItemType record.
682     *------------------------------------------------------------------
683     */
684} Tk_Item;
685
686/*
687 * Records of the following type are used to describe a type of
688 * item (e.g.  lines, circles, etc.) that can form part of a
689 * canvas widget.
690 */
691
692typedef int     Tk_ItemCreateProc _ANSI_ARGS_((Tcl_Interp *interp,
693                    Tk_Canvas canvas, Tk_Item *itemPtr, int argc,
694                    char **argv));
695typedef int     Tk_ItemConfigureProc _ANSI_ARGS_((Tcl_Interp *interp,
696                    Tk_Canvas canvas, Tk_Item *itemPtr, int argc,
697                    char **argv, int flags));
698typedef int     Tk_ItemCoordProc _ANSI_ARGS_((Tcl_Interp *interp,
699                    Tk_Canvas canvas, Tk_Item *itemPtr, int argc,
700                    char **argv));
701typedef void    Tk_ItemDeleteProc _ANSI_ARGS_((Tk_Canvas canvas,
702                    Tk_Item *itemPtr, Display *display));
703typedef void    Tk_ItemDisplayProc _ANSI_ARGS_((Tk_Canvas canvas,
704                    Tk_Item *itemPtr, Display *display, Drawable dst,
705                    int x, int y, int width, int height));
706typedef double  Tk_ItemPointProc _ANSI_ARGS_((Tk_Canvas canvas,
707                    Tk_Item *itemPtr, double *pointPtr));
708typedef int     Tk_ItemAreaProc _ANSI_ARGS_((Tk_Canvas canvas,
709                    Tk_Item *itemPtr, double *rectPtr));
710typedef int     Tk_ItemPostscriptProc _ANSI_ARGS_((Tcl_Interp *interp,
711                    Tk_Canvas canvas, Tk_Item *itemPtr, int prepass));
712typedef void    Tk_ItemScaleProc _ANSI_ARGS_((Tk_Canvas canvas,
713                    Tk_Item *itemPtr, double originX, double originY,
714                    double scaleX, double scaleY));
715typedef void    Tk_ItemTranslateProc _ANSI_ARGS_((Tk_Canvas canvas,
716                    Tk_Item *itemPtr, double deltaX, double deltaY));
717typedef int     Tk_ItemIndexProc _ANSI_ARGS_((Tcl_Interp *interp,
718                    Tk_Canvas canvas, Tk_Item *itemPtr, char *indexString,
719                    int *indexPtr));
720typedef void    Tk_ItemCursorProc _ANSI_ARGS_((Tk_Canvas canvas,
721                    Tk_Item *itemPtr, int index));
722typedef int     Tk_ItemSelectionProc _ANSI_ARGS_((Tk_Canvas canvas,
723                    Tk_Item *itemPtr, int offset, char *buffer,
724                    int maxBytes));
725typedef void    Tk_ItemInsertProc _ANSI_ARGS_((Tk_Canvas canvas,
726                    Tk_Item *itemPtr, int beforeThis, char *string));
727typedef void    Tk_ItemDCharsProc _ANSI_ARGS_((Tk_Canvas canvas,
728                    Tk_Item *itemPtr, int first, int last));
729
730typedef struct Tk_ItemType {
731    char *name;                         /* The name of this type of item, such
732                                         * as "line". */
733    int itemSize;                       /* Total amount of space needed for
734                                         * item's record. */
735    Tk_ItemCreateProc *createProc;      /* Procedure to create a new item of
736                                         * this type. */
737    Tk_ConfigSpec *configSpecs;         /* Pointer to array of configuration
738                                         * specs for this type.  Used for
739                                         * returning configuration info. */
740    Tk_ItemConfigureProc *configProc;   /* Procedure to call to change
741                                         * configuration options. */
742    Tk_ItemCoordProc *coordProc;        /* Procedure to call to get and set
743                                         * the item's coordinates. */
744    Tk_ItemDeleteProc *deleteProc;      /* Procedure to delete existing item of
745                                         * this type. */
746    Tk_ItemDisplayProc *displayProc;    /* Procedure to display items of
747                                         * this type. */
748    int alwaysRedraw;                   /* Non-zero means displayProc should
749                                         * be called even when the item has
750                                         * been moved off-screen. */
751    Tk_ItemPointProc *pointProc;        /* Computes distance from item to
752                                         * a given point. */
753    Tk_ItemAreaProc *areaProc;          /* Computes whether item is inside,
754                                         * outside, or overlapping an area. */
755    Tk_ItemPostscriptProc *postscriptProc;
756                                        /* Procedure to write a Postscript
757                                         * description for items of this
758                                         * type. */
759    Tk_ItemScaleProc *scaleProc;        /* Procedure to rescale items of
760                                         * this type. */
761    Tk_ItemTranslateProc *translateProc;/* Procedure to translate items of
762                                         * this type. */
763    Tk_ItemIndexProc *indexProc;        /* Procedure to determine index of
764                                         * indicated character.  NULL if
765                                         * item doesn't support indexing. */
766    Tk_ItemCursorProc *icursorProc;     /* Procedure to set insert cursor pos.
767                                         * to just before a given position. */
768    Tk_ItemSelectionProc *selectionProc;/* Procedure to return selection (in
769                                         * STRING format) when it is in this
770                                         * item. */
771    Tk_ItemInsertProc *insertProc;      /* Procedure to insert something into
772                                         * an item. */
773    Tk_ItemDCharsProc *dCharsProc;      /* Procedure to delete characters
774                                         * from an item. */
775    struct Tk_ItemType *nextPtr;        /* Used to link types together into
776                                         * a list. */
777    char *reserved1;                    /* Reserved for future extension. */
778    int   reserved2;                    /* Carefully compatible with */
779    char *reserved3;                    /* Jan Nijtmans dash patch */
780    char *reserved4;
781} Tk_ItemType;
782
783/*
784 * The following structure provides information about the selection and
785 * the insertion cursor.  It is needed by only a few items, such as
786 * those that display text.  It is shared by the generic canvas code
787 * and the item-specific code, but most of the fields should be written
788 * only by the canvas generic code.
789 */
790
791typedef struct Tk_CanvasTextInfo {
792    Tk_3DBorder selBorder;      /* Border and background for selected
793                                 * characters.  Read-only to items.*/
794    int selBorderWidth;         /* Width of border around selection.
795                                 * Read-only to items. */
796    XColor *selFgColorPtr;      /* Foreground color for selected text.
797                                 * Read-only to items. */
798    Tk_Item *selItemPtr;        /* Pointer to selected item.  NULL means
799                                 * selection isn't in this canvas.
800                                 * Writable by items. */
801    int selectFirst;            /* Index of first selected character.
802                                 * Writable by items. */
803    int selectLast;             /* Index of last selected character.
804                                 * Writable by items. */
805    Tk_Item *anchorItemPtr;     /* Item corresponding to "selectAnchor":
806                                 * not necessarily selItemPtr.   Read-only
807                                 * to items. */
808    int selectAnchor;           /* Fixed end of selection (i.e. "select to"
809                                 * operation will use this as one end of the
810                                 * selection).  Writable by items. */
811    Tk_3DBorder insertBorder;   /* Used to draw vertical bar for insertion
812                                 * cursor.  Read-only to items. */
813    int insertWidth;            /* Total width of insertion cursor.  Read-only
814                                 * to items. */
815    int insertBorderWidth;      /* Width of 3-D border around insert cursor.
816                                 * Read-only to items. */
817    Tk_Item *focusItemPtr;      /* Item that currently has the input focus,
818                                 * or NULL if no such item.  Read-only to
819                                 * items.  */
820    int gotFocus;               /* Non-zero means that the canvas widget has
821                                 * the input focus.  Read-only to items.*/
822    int cursorOn;               /* Non-zero means that an insertion cursor
823                                 * should be displayed in focusItemPtr.
824                                 * Read-only to items.*/
825} Tk_CanvasTextInfo;
826
827/*
828 *--------------------------------------------------------------
829 *
830 * Procedure prototypes and structures used for managing images:
831 *
832 *--------------------------------------------------------------
833 */
834
835typedef struct Tk_ImageType Tk_ImageType;
836typedef int (Tk_ImageCreateProc) _ANSI_ARGS_((Tcl_Interp *interp,
837        char *name, int argc, char **argv, Tk_ImageType *typePtr,
838        Tk_ImageMaster master, ClientData *masterDataPtr));
839typedef ClientData (Tk_ImageGetProc) _ANSI_ARGS_((Tk_Window tkwin,
840        ClientData masterData));
841typedef void (Tk_ImageDisplayProc) _ANSI_ARGS_((ClientData instanceData,
842        Display *display, Drawable drawable, int imageX, int imageY,
843        int width, int height, int drawableX, int drawableY));
844typedef void (Tk_ImageFreeProc) _ANSI_ARGS_((ClientData instanceData,
845        Display *display));
846typedef void (Tk_ImageDeleteProc) _ANSI_ARGS_((ClientData masterData));
847typedef void (Tk_ImageChangedProc) _ANSI_ARGS_((ClientData clientData,
848        int x, int y, int width, int height, int imageWidth,
849        int imageHeight));
850
851/*
852 * The following structure represents a particular type of image
853 * (bitmap, xpm image, etc.).  It provides information common to
854 * all images of that type, such as the type name and a collection
855 * of procedures in the image manager that respond to various
856 * events.  Each image manager is represented by one of these
857 * structures.
858 */
859
860struct Tk_ImageType {
861    char *name;                 /* Name of image type. */
862    Tk_ImageCreateProc *createProc;
863                                /* Procedure to call to create a new image
864                                 * of this type. */
865    Tk_ImageGetProc *getProc;   /* Procedure to call the first time
866                                 * Tk_GetImage is called in a new way
867                                 * (new visual or screen). */
868    Tk_ImageDisplayProc *displayProc;
869                                /* Call to draw image, in response to
870                                 * Tk_RedrawImage calls. */
871    Tk_ImageFreeProc *freeProc; /* Procedure to call whenever Tk_FreeImage
872                                 * is called to release an instance of an
873                                 * image. */
874    Tk_ImageDeleteProc *deleteProc;
875                                /* Procedure to call to delete image.  It
876                                 * will not be called until after freeProc
877                                 * has been called for each instance of the
878                                 * image. */
879    struct Tk_ImageType *nextPtr;
880                                /* Next in list of all image types currently
881                                 * known.  Filled in by Tk, not by image
882                                 * manager. */
883    char *reserved;             /* reserved for future expansion */
884};
885
886/*
887 *--------------------------------------------------------------
888 *
889 * Additional definitions used to manage images of type "photo".
890 *
891 *--------------------------------------------------------------
892 */
893
894/*
895 * The following type is used to identify a particular photo image
896 * to be manipulated:
897 */
898
899typedef void *Tk_PhotoHandle;
900
901/*
902 * The following structure describes a block of pixels in memory:
903 */
904
905typedef struct Tk_PhotoImageBlock {
906    unsigned char *pixelPtr;    /* Pointer to the first pixel. */
907    int         width;          /* Width of block, in pixels. */
908    int         height;         /* Height of block, in pixels. */
909    int         pitch;          /* Address difference between corresponding
910                                 * pixels in successive lines. */
911    int         pixelSize;      /* Address difference between successive
912                                 * pixels in the same line. */
913    int         offset[3];      /* Address differences between the red, green
914                                 * and blue components of the pixel and the
915                                 * pixel as a whole. */
916    int         reserved;       /* Reserved for extensions (dash patch) */
917} Tk_PhotoImageBlock;
918
919/*
920 * Procedure prototypes and structures used in reading and
921 * writing photo images:
922 */
923
924typedef struct Tk_PhotoImageFormat Tk_PhotoImageFormat;
925typedef int (Tk_ImageFileMatchProc) _ANSI_ARGS_((Tcl_Channel chan,
926        char *fileName, char *formatString, int *widthPtr, int *heightPtr));
927typedef int (Tk_ImageStringMatchProc) _ANSI_ARGS_((char *string,
928        char *formatString, int *widthPtr, int *heightPtr));
929typedef int (Tk_ImageFileReadProc) _ANSI_ARGS_((Tcl_Interp *interp,
930        Tcl_Channel chan, char *fileName, char *formatString,
931        Tk_PhotoHandle imageHandle, int destX, int destY,
932        int width, int height, int srcX, int srcY));
933typedef int (Tk_ImageStringReadProc) _ANSI_ARGS_((Tcl_Interp *interp,
934        char *string, char *formatString, Tk_PhotoHandle imageHandle,
935        int destX, int destY, int width, int height, int srcX, int srcY));
936typedef int (Tk_ImageFileWriteProc) _ANSI_ARGS_((Tcl_Interp *interp,
937        char *fileName, char *formatString, Tk_PhotoImageBlock *blockPtr));
938typedef int (Tk_ImageStringWriteProc) _ANSI_ARGS_((Tcl_Interp *interp,
939        Tcl_DString *dataPtr, char *formatString,
940        Tk_PhotoImageBlock *blockPtr));
941
942/*
943 * The following structure represents a particular file format for
944 * storing images (e.g., PPM, GIF, JPEG, etc.).  It provides information
945 * to allow image files of that format to be recognized and read into
946 * a photo image.
947 */
948
949struct Tk_PhotoImageFormat {
950    char *name;                 /* Name of image file format */
951    Tk_ImageFileMatchProc *fileMatchProc;
952                                /* Procedure to call to determine whether
953                                 * an image file matches this format. */
954    Tk_ImageStringMatchProc *stringMatchProc;
955                                /* Procedure to call to determine whether
956                                 * the data in a string matches this format. */
957    Tk_ImageFileReadProc *fileReadProc;
958                                /* Procedure to call to read data from
959                                 * an image file into a photo image. */
960    Tk_ImageStringReadProc *stringReadProc;
961                                /* Procedure to call to read data from
962                                 * a string into a photo image. */
963    Tk_ImageFileWriteProc *fileWriteProc;
964                                /* Procedure to call to write data from
965                                 * a photo image to a file. */
966    Tk_ImageStringWriteProc *stringWriteProc;
967                                /* Procedure to call to obtain a string
968                                 * representation of the data in a photo
969                                 * image.*/
970    struct Tk_PhotoImageFormat *nextPtr;
971                                /* Next in list of all photo image formats
972                                 * currently known.  Filled in by Tk, not
973                                 * by image format handler. */
974};
975
976/*
977 *--------------------------------------------------------------
978 *
979 * The definitions below provide backward compatibility for
980 * functions and types related to event handling that used to
981 * be in Tk but have moved to Tcl.
982 *
983 *--------------------------------------------------------------
984 */
985
986#define TK_READABLE             TCL_READABLE
987#define TK_WRITABLE             TCL_WRITABLE
988#define TK_EXCEPTION            TCL_EXCEPTION
989
990#define TK_DONT_WAIT            TCL_DONT_WAIT
991#define TK_X_EVENTS             TCL_WINDOW_EVENTS
992#define TK_WINDOW_EVENTS        TCL_WINDOW_EVENTS
993#define TK_FILE_EVENTS          TCL_FILE_EVENTS
994#define TK_TIMER_EVENTS         TCL_TIMER_EVENTS
995#define TK_IDLE_EVENTS          TCL_IDLE_EVENTS
996#define TK_ALL_EVENTS           TCL_ALL_EVENTS
997
998#define Tk_IdleProc             Tcl_IdleProc
999#define Tk_FileProc             Tcl_FileProc
1000#define Tk_TimerProc            Tcl_TimerProc
1001#define Tk_TimerToken           Tcl_TimerToken
1002
1003#define Tk_BackgroundError      Tcl_BackgroundError
1004#define Tk_CancelIdleCall       Tcl_CancelIdleCall
1005#define Tk_CreateFileHandler    Tcl_CreateFileHandler
1006#define Tk_CreateTimerHandler   Tcl_CreateTimerHandler
1007#define Tk_DeleteFileHandler    Tcl_DeleteFileHandler
1008#define Tk_DeleteTimerHandler   Tcl_DeleteTimerHandler
1009#define Tk_DoOneEvent           Tcl_DoOneEvent
1010#define Tk_DoWhenIdle           Tcl_DoWhenIdle
1011#define Tk_Sleep                Tcl_Sleep
1012
1013/* Additional stuff that has moved to Tcl: */
1014
1015#define Tk_AfterCmd             Tcl_AfterCmd
1016#define Tk_EventuallyFree       Tcl_EventuallyFree
1017#define Tk_FreeProc             Tcl_FreeProc
1018#define Tk_Preserve             Tcl_Preserve
1019#define Tk_Release              Tcl_Release
1020
1021/*
1022 *--------------------------------------------------------------
1023 *
1024 * Additional procedure types defined by Tk.
1025 *
1026 *--------------------------------------------------------------
1027 */
1028
1029typedef int (Tk_ErrorProc) _ANSI_ARGS_((ClientData clientData,
1030        XErrorEvent *errEventPtr));
1031typedef void (Tk_EventProc) _ANSI_ARGS_((ClientData clientData,
1032        XEvent *eventPtr));
1033typedef int (Tk_GenericProc) _ANSI_ARGS_((ClientData clientData,
1034        XEvent *eventPtr));
1035typedef int (Tk_GetSelProc) _ANSI_ARGS_((ClientData clientData,
1036        Tcl_Interp *interp, char *portion));
1037typedef void (Tk_LostSelProc) _ANSI_ARGS_((ClientData clientData));
1038typedef Tk_RestrictAction (Tk_RestrictProc) _ANSI_ARGS_((
1039        ClientData clientData, XEvent *eventPtr));
1040typedef int (Tk_SelectionProc) _ANSI_ARGS_((ClientData clientData,
1041        int offset, char *buffer, int maxBytes));
1042
1043/*
1044 *--------------------------------------------------------------
1045 *
1046 * Exported procedures and variables.
1047 *
1048 *--------------------------------------------------------------
1049 */
1050
1051EXTERN XColor *         Tk_3DBorderColor _ANSI_ARGS_((Tk_3DBorder border));
1052EXTERN GC               Tk_3DBorderGC _ANSI_ARGS_((Tk_Window tkwin,
1053                            Tk_3DBorder border, int which));
1054EXTERN void             Tk_3DHorizontalBevel _ANSI_ARGS_((Tk_Window tkwin,
1055                            Drawable drawable, Tk_3DBorder border, int x,
1056                            int y, int width, int height, int leftIn,
1057                            int rightIn, int topBevel, int relief));
1058EXTERN void             Tk_3DVerticalBevel _ANSI_ARGS_((Tk_Window tkwin,
1059                            Drawable drawable, Tk_3DBorder border, int x,
1060                            int y, int width, int height, int leftBevel,
1061                            int relief));
1062EXTERN void             Tk_AddOption _ANSI_ARGS_((Tk_Window tkwin, char *name,
1063                            char *value, int priority));
1064EXTERN void             Tk_BindEvent _ANSI_ARGS_((Tk_BindingTable bindingTable,
1065                            XEvent *eventPtr, Tk_Window tkwin, int numObjects,
1066                            ClientData *objectPtr));
1067EXTERN void             Tk_CanvasDrawableCoords _ANSI_ARGS_((Tk_Canvas canvas,
1068                            double x, double y, short *drawableXPtr,
1069                            short *drawableYPtr));
1070EXTERN void             Tk_CanvasEventuallyRedraw _ANSI_ARGS_((
1071                            Tk_Canvas canvas, int x1, int y1, int x2,
1072                            int y2));
1073EXTERN int              Tk_CanvasGetCoord _ANSI_ARGS_((Tcl_Interp *interp,
1074                            Tk_Canvas canvas, char *string,
1075                            double *doublePtr));
1076EXTERN Tk_CanvasTextInfo *Tk_CanvasGetTextInfo _ANSI_ARGS_((Tk_Canvas canvas));
1077EXTERN int              Tk_CanvasPsBitmap _ANSI_ARGS_((Tcl_Interp *interp,
1078                            Tk_Canvas canvas, Pixmap bitmap, int x, int y,
1079                            int width, int height));
1080EXTERN int              Tk_CanvasPsColor _ANSI_ARGS_((Tcl_Interp *interp,
1081                            Tk_Canvas canvas, XColor *colorPtr));
1082EXTERN int              Tk_CanvasPsFont _ANSI_ARGS_((Tcl_Interp *interp,
1083                            Tk_Canvas canvas, Tk_Font font));
1084EXTERN void             Tk_CanvasPsPath _ANSI_ARGS_((Tcl_Interp *interp,
1085                            Tk_Canvas canvas, double *coordPtr, int numPoints));
1086EXTERN int              Tk_CanvasPsStipple _ANSI_ARGS_((Tcl_Interp *interp,
1087                            Tk_Canvas canvas, Pixmap bitmap));
1088EXTERN double           Tk_CanvasPsY _ANSI_ARGS_((Tk_Canvas canvas, double y));
1089EXTERN void             Tk_CanvasSetStippleOrigin _ANSI_ARGS_((
1090                            Tk_Canvas canvas, GC gc));
1091EXTERN int              Tk_CanvasTagsParseProc _ANSI_ARGS_((
1092                            ClientData clientData, Tcl_Interp *interp,
1093                            Tk_Window tkwin, char *value, char *widgRec,
1094                            int offset));
1095EXTERN char *           Tk_CanvasTagsPrintProc _ANSI_ARGS_((
1096                            ClientData clientData, Tk_Window tkwin,
1097                            char *widgRec, int offset,
1098                            Tcl_FreeProc **freeProcPtr));
1099EXTERN Tk_Window        Tk_CanvasTkwin _ANSI_ARGS_((Tk_Canvas canvas));
1100EXTERN void             Tk_CanvasWindowCoords _ANSI_ARGS_((Tk_Canvas canvas,
1101                            double x, double y, short *screenXPtr,
1102                            short *screenYPtr));
1103EXTERN void             Tk_ChangeWindowAttributes _ANSI_ARGS_((Tk_Window tkwin,
1104                            unsigned long valueMask,
1105                            XSetWindowAttributes *attsPtr));
1106EXTERN int              Tk_CharBbox _ANSI_ARGS_((Tk_TextLayout layout,
1107                            int index, int *xPtr, int *yPtr, int *widthPtr,
1108                            int *heightPtr));
1109EXTERN void             Tk_ClearSelection _ANSI_ARGS_((Tk_Window tkwin,
1110                            Atom selection));
1111EXTERN int              Tk_ClipboardAppend _ANSI_ARGS_((Tcl_Interp *interp,
1112                            Tk_Window tkwin, Atom target, Atom format,
1113                            char* buffer));
1114EXTERN int              Tk_ClipboardClear _ANSI_ARGS_((Tcl_Interp *interp,
1115                            Tk_Window tkwin));
1116EXTERN int              Tk_ConfigureInfo _ANSI_ARGS_((Tcl_Interp *interp,
1117                            Tk_Window tkwin, Tk_ConfigSpec *specs,
1118                            char *widgRec, char *argvName, int flags));
1119EXTERN int              Tk_ConfigureValue _ANSI_ARGS_((Tcl_Interp *interp,
1120                            Tk_Window tkwin, Tk_ConfigSpec *specs,
1121                            char *widgRec, char *argvName, int flags));
1122EXTERN int              Tk_ConfigureWidget _ANSI_ARGS_((Tcl_Interp *interp,
1123                            Tk_Window tkwin, Tk_ConfigSpec *specs,
1124                            int argc, char **argv, char *widgRec,
1125                            int flags));
1126EXTERN void             Tk_ConfigureWindow _ANSI_ARGS_((Tk_Window tkwin,
1127                            unsigned int valueMask, XWindowChanges *valuePtr));
1128EXTERN Tk_TextLayout    Tk_ComputeTextLayout _ANSI_ARGS_((Tk_Font font,
1129                            CONST char *string, int numChars, int wrapLength,
1130                            Tk_Justify justify, int flags, int *widthPtr,
1131                            int *heightPtr));
1132EXTERN Tk_Window        Tk_CoordsToWindow _ANSI_ARGS_((int rootX, int rootY,
1133                            Tk_Window tkwin));
1134EXTERN unsigned long    Tk_CreateBinding _ANSI_ARGS_((Tcl_Interp *interp,
1135                            Tk_BindingTable bindingTable, ClientData object,
1136                            char *eventString, char *command, int append));
1137EXTERN Tk_BindingTable  Tk_CreateBindingTable _ANSI_ARGS_((Tcl_Interp *interp));
1138EXTERN Tk_ErrorHandler  Tk_CreateErrorHandler _ANSI_ARGS_((Display *display,
1139                            int errNum, int request, int minorCode,
1140                            Tk_ErrorProc *errorProc, ClientData clientData));
1141EXTERN void             Tk_CreateEventHandler _ANSI_ARGS_((Tk_Window token,
1142                            unsigned long mask, Tk_EventProc *proc,
1143                            ClientData clientData));
1144EXTERN void             Tk_CreateGenericHandler _ANSI_ARGS_((
1145                            Tk_GenericProc *proc, ClientData clientData));
1146EXTERN void             Tk_CreateImageType _ANSI_ARGS_((
1147                            Tk_ImageType *typePtr));
1148EXTERN void             Tk_CreateItemType _ANSI_ARGS_((Tk_ItemType *typePtr));
1149EXTERN void             Tk_CreatePhotoImageFormat _ANSI_ARGS_((
1150                            Tk_PhotoImageFormat *formatPtr));
1151EXTERN void             Tk_CreateSelHandler _ANSI_ARGS_((Tk_Window tkwin,
1152                            Atom selection, Atom target,
1153                            Tk_SelectionProc *proc, ClientData clientData,
1154                            Atom format));
1155EXTERN Tk_Window        Tk_CreateWindow _ANSI_ARGS_((Tcl_Interp *interp,
1156                            Tk_Window parent, char *name, char *screenName));
1157EXTERN Tk_Window        Tk_CreateWindowFromPath _ANSI_ARGS_((
1158                            Tcl_Interp *interp, Tk_Window tkwin,
1159                            char *pathName, char *screenName));
1160EXTERN int              Tk_DefineBitmap _ANSI_ARGS_((Tcl_Interp *interp,
1161                            Tk_Uid name, char *source, int width,
1162                            int height));
1163EXTERN void             Tk_DefineCursor _ANSI_ARGS_((Tk_Window window,
1164                            Tk_Cursor cursor));
1165EXTERN void             Tk_DeleteAllBindings _ANSI_ARGS_((
1166                            Tk_BindingTable bindingTable, ClientData object));
1167EXTERN int              Tk_DeleteBinding _ANSI_ARGS_((Tcl_Interp *interp,
1168                            Tk_BindingTable bindingTable, ClientData object,
1169                            char *eventString));
1170EXTERN void             Tk_DeleteBindingTable _ANSI_ARGS_((
1171                            Tk_BindingTable bindingTable));
1172EXTERN void             Tk_DeleteErrorHandler _ANSI_ARGS_((
1173                            Tk_ErrorHandler handler));
1174EXTERN void             Tk_DeleteEventHandler _ANSI_ARGS_((Tk_Window token,
1175                            unsigned long mask, Tk_EventProc *proc,
1176                            ClientData clientData));
1177EXTERN void             Tk_DeleteGenericHandler _ANSI_ARGS_((
1178                            Tk_GenericProc *proc, ClientData clientData));
1179EXTERN void             Tk_DeleteImage _ANSI_ARGS_((Tcl_Interp *interp,
1180                            char *name));
1181EXTERN void             Tk_DeleteSelHandler _ANSI_ARGS_((Tk_Window tkwin,
1182                            Atom selection, Atom target));
1183EXTERN void             Tk_DestroyWindow _ANSI_ARGS_((Tk_Window tkwin));
1184EXTERN char *           Tk_DisplayName _ANSI_ARGS_((Tk_Window tkwin));
1185EXTERN int              Tk_DistanceToTextLayout _ANSI_ARGS_((
1186                            Tk_TextLayout layout, int x, int y));
1187EXTERN void             Tk_Draw3DPolygon _ANSI_ARGS_((Tk_Window tkwin,
1188                            Drawable drawable, Tk_3DBorder border,
1189                            XPoint *pointPtr, int numPoints, int borderWidth,
1190                            int leftRelief));
1191EXTERN void             Tk_Draw3DRectangle _ANSI_ARGS_((Tk_Window tkwin,
1192                            Drawable drawable, Tk_3DBorder border, int x,
1193                            int y, int width, int height, int borderWidth,
1194                            int relief));
1195EXTERN void             Tk_DrawChars _ANSI_ARGS_((Display *display,
1196                            Drawable drawable, GC gc, Tk_Font tkfont,
1197                            CONST char *source, int numChars, int x,
1198                            int y));
1199EXTERN void             Tk_DrawFocusHighlight _ANSI_ARGS_((Tk_Window tkwin,
1200                            GC gc, int width, Drawable drawable));
1201EXTERN void             Tk_DrawTextLayout _ANSI_ARGS_((Display *display,
1202                            Drawable drawable, GC gc, Tk_TextLayout layout,
1203                            int x, int y, int firstChar, int lastChar));
1204EXTERN void             Tk_Fill3DPolygon _ANSI_ARGS_((Tk_Window tkwin,
1205                            Drawable drawable, Tk_3DBorder border,
1206                            XPoint *pointPtr, int numPoints, int borderWidth,
1207                            int leftRelief));
1208EXTERN void             Tk_Fill3DRectangle _ANSI_ARGS_((Tk_Window tkwin,
1209                            Drawable drawable, Tk_3DBorder border, int x,
1210                            int y, int width, int height, int borderWidth,
1211                            int relief));
1212EXTERN Tk_PhotoHandle   Tk_FindPhoto _ANSI_ARGS_((Tcl_Interp *interp,
1213                            char *imageName));
1214EXTERN Font             Tk_FontId _ANSI_ARGS_((Tk_Font font));
1215EXTERN void             Tk_Free3DBorder _ANSI_ARGS_((Tk_3DBorder border));
1216EXTERN void             Tk_FreeBitmap _ANSI_ARGS_((Display *display,
1217                            Pixmap bitmap));
1218EXTERN void             Tk_FreeColor _ANSI_ARGS_((XColor *colorPtr));
1219EXTERN void             Tk_FreeColormap _ANSI_ARGS_((Display *display,
1220                            Colormap colormap));
1221EXTERN void             Tk_FreeCursor _ANSI_ARGS_((Display *display,
1222                            Tk_Cursor cursor));
1223EXTERN void             Tk_FreeFont _ANSI_ARGS_((Tk_Font));
1224EXTERN void             Tk_FreeGC _ANSI_ARGS_((Display *display, GC gc));
1225EXTERN void             Tk_FreeImage _ANSI_ARGS_((Tk_Image image));
1226EXTERN void             Tk_FreeOptions _ANSI_ARGS_((Tk_ConfigSpec *specs,
1227                            char *widgRec, Display *display, int needFlags));
1228EXTERN void             Tk_FreePixmap _ANSI_ARGS_((Display *display,
1229                            Pixmap pixmap));
1230EXTERN void             Tk_FreeTextLayout _ANSI_ARGS_((
1231                            Tk_TextLayout textLayout));
1232EXTERN void             Tk_FreeXId _ANSI_ARGS_((Display *display, XID xid));
1233EXTERN GC               Tk_GCForColor _ANSI_ARGS_((XColor *colorPtr,
1234                            Drawable drawable));
1235EXTERN void             Tk_GeometryRequest _ANSI_ARGS_((Tk_Window tkwin,
1236                            int reqWidth,  int reqHeight));
1237EXTERN Tk_3DBorder      Tk_Get3DBorder _ANSI_ARGS_((Tcl_Interp *interp,
1238                            Tk_Window tkwin, Tk_Uid colorName));
1239EXTERN void             Tk_GetAllBindings _ANSI_ARGS_((Tcl_Interp *interp,
1240                            Tk_BindingTable bindingTable, ClientData object));
1241EXTERN int              Tk_GetAnchor _ANSI_ARGS_((Tcl_Interp *interp,
1242                            char *string, Tk_Anchor *anchorPtr));
1243EXTERN char *           Tk_GetAtomName _ANSI_ARGS_((Tk_Window tkwin,
1244                            Atom atom));
1245EXTERN char *           Tk_GetBinding _ANSI_ARGS_((Tcl_Interp *interp,
1246                            Tk_BindingTable bindingTable, ClientData object,
1247                            char *eventString));
1248EXTERN Pixmap           Tk_GetBitmap _ANSI_ARGS_((Tcl_Interp *interp,
1249                            Tk_Window tkwin, Tk_Uid string));
1250EXTERN Pixmap           Tk_GetBitmapFromData _ANSI_ARGS_((Tcl_Interp *interp,
1251                            Tk_Window tkwin, char *source,
1252                            int width, int height));
1253EXTERN int              Tk_GetCapStyle _ANSI_ARGS_((Tcl_Interp *interp,
1254                            char *string, int *capPtr));
1255EXTERN XColor *         Tk_GetColor _ANSI_ARGS_((Tcl_Interp *interp,
1256                            Tk_Window tkwin, Tk_Uid name));
1257EXTERN XColor *         Tk_GetColorByValue _ANSI_ARGS_((Tk_Window tkwin,
1258                            XColor *colorPtr));
1259EXTERN Colormap         Tk_GetColormap _ANSI_ARGS_((Tcl_Interp *interp,
1260                            Tk_Window tkwin, char *string));
1261EXTERN Tk_Cursor        Tk_GetCursor _ANSI_ARGS_((Tcl_Interp *interp,
1262                            Tk_Window tkwin, Tk_Uid string));
1263EXTERN Tk_Cursor        Tk_GetCursorFromData _ANSI_ARGS_((Tcl_Interp *interp,
1264                            Tk_Window tkwin, char *source, char *mask,
1265                            int width, int height, int xHot, int yHot,
1266                            Tk_Uid fg, Tk_Uid bg));
1267EXTERN Tk_Font          Tk_GetFont _ANSI_ARGS_((Tcl_Interp *interp,
1268                            Tk_Window tkwin, CONST char *string));
1269EXTERN Tk_Font          Tk_GetFontFromObj _ANSI_ARGS_((Tcl_Interp *interp,
1270                            Tk_Window tkwin, Tcl_Obj *objPtr));
1271EXTERN void             Tk_GetFontMetrics _ANSI_ARGS_((Tk_Font font,
1272                            Tk_FontMetrics *fmPtr));
1273EXTERN GC               Tk_GetGC _ANSI_ARGS_((Tk_Window tkwin,
1274                            unsigned long valueMask, XGCValues *valuePtr));
1275EXTERN Tk_Image         Tk_GetImage _ANSI_ARGS_((Tcl_Interp *interp,
1276                            Tk_Window tkwin, char *name,
1277                            Tk_ImageChangedProc *changeProc,
1278                            ClientData clientData));
1279EXTERN ClientData       Tk_GetImageMasterData _ANSI_ARGS_ ((Tcl_Interp *interp,
1280                            char *name, Tk_ImageType **typePtrPtr));
1281EXTERN Tk_ItemType *    Tk_GetItemTypes _ANSI_ARGS_((void));
1282EXTERN int              Tk_GetJoinStyle _ANSI_ARGS_((Tcl_Interp *interp,
1283                            char *string, int *joinPtr));
1284EXTERN int              Tk_GetJustify _ANSI_ARGS_((Tcl_Interp *interp,
1285                            char *string, Tk_Justify *justifyPtr));
1286EXTERN int              Tk_GetNumMainWindows _ANSI_ARGS_((void));
1287EXTERN Tk_Uid           Tk_GetOption _ANSI_ARGS_((Tk_Window tkwin, char *name,
1288                            char *className));
1289EXTERN int              Tk_GetPixels _ANSI_ARGS_((Tcl_Interp *interp,
1290                            Tk_Window tkwin, char *string, int *intPtr));
1291EXTERN Pixmap           Tk_GetPixmap _ANSI_ARGS_((Display *display, Drawable d,
1292                            int width, int height, int depth));
1293EXTERN int              Tk_GetRelief _ANSI_ARGS_((Tcl_Interp *interp,
1294                            char *name, int *reliefPtr));
1295EXTERN void             Tk_GetRootCoords _ANSI_ARGS_ ((Tk_Window tkwin,
1296                            int *xPtr, int *yPtr));
1297EXTERN int              Tk_GetScrollInfo _ANSI_ARGS_((Tcl_Interp *interp,
1298                            int argc, char **argv, double *dblPtr,
1299                            int *intPtr));
1300EXTERN int              Tk_GetScreenMM _ANSI_ARGS_((Tcl_Interp *interp,
1301                            Tk_Window tkwin, char *string, double *doublePtr));
1302EXTERN int              Tk_GetSelection _ANSI_ARGS_((Tcl_Interp *interp,
1303                            Tk_Window tkwin, Atom selection, Atom target,
1304                            Tk_GetSelProc *proc, ClientData clientData));
1305EXTERN Tk_Uid           Tk_GetUid _ANSI_ARGS_((CONST char *string));
1306EXTERN Visual *         Tk_GetVisual _ANSI_ARGS_((Tcl_Interp *interp,
1307                            Tk_Window tkwin, char *string, int *depthPtr,
1308                            Colormap *colormapPtr));
1309EXTERN void             Tk_GetVRootGeometry _ANSI_ARGS_((Tk_Window tkwin,
1310                            int *xPtr, int *yPtr, int *widthPtr,
1311                            int *heightPtr));
1312EXTERN int              Tk_Grab _ANSI_ARGS_((Tcl_Interp *interp,
1313                            Tk_Window tkwin, int grabGlobal));
1314EXTERN void             Tk_HandleEvent _ANSI_ARGS_((XEvent *eventPtr));
1315EXTERN Tk_Window        Tk_IdToWindow _ANSI_ARGS_((Display *display,
1316                            Window window));
1317EXTERN void             Tk_ImageChanged _ANSI_ARGS_((
1318                            Tk_ImageMaster master, int x, int y,
1319                            int width, int height, int imageWidth,
1320                            int imageHeight));
1321EXTERN int              Tk_Init _ANSI_ARGS_((Tcl_Interp *interp));
1322EXTERN Atom             Tk_InternAtom _ANSI_ARGS_((Tk_Window tkwin,
1323                            char *name));
1324EXTERN int              Tk_IntersectTextLayout _ANSI_ARGS_((
1325                            Tk_TextLayout layout, int x, int y, int width,
1326                            int height));
1327EXTERN void             Tk_Main _ANSI_ARGS_((int argc, char **argv,
1328                            Tcl_AppInitProc *appInitProc));
1329EXTERN void             Tk_MainLoop _ANSI_ARGS_((void));
1330EXTERN void             Tk_MaintainGeometry _ANSI_ARGS_((Tk_Window slave,
1331                            Tk_Window master, int x, int y, int width,
1332                            int height));
1333EXTERN Tk_Window        Tk_MainWindow _ANSI_ARGS_((Tcl_Interp *interp));
1334EXTERN void             Tk_MakeWindowExist _ANSI_ARGS_((Tk_Window tkwin));
1335EXTERN void             Tk_ManageGeometry _ANSI_ARGS_((Tk_Window tkwin,
1336                            Tk_GeomMgr *mgrPtr, ClientData clientData));
1337EXTERN void             Tk_MapWindow _ANSI_ARGS_((Tk_Window tkwin));
1338EXTERN int              Tk_MeasureChars _ANSI_ARGS_((Tk_Font tkfont,
1339                            CONST char *source, int maxChars, int maxPixels,
1340                            int flags, int *lengthPtr));
1341EXTERN void             Tk_MoveResizeWindow _ANSI_ARGS_((Tk_Window tkwin,
1342                            int x, int y, int width, int height));
1343EXTERN void             Tk_MoveWindow _ANSI_ARGS_((Tk_Window tkwin, int x,
1344                            int y));
1345EXTERN void             Tk_MoveToplevelWindow _ANSI_ARGS_((Tk_Window tkwin,
1346                            int x, int y));
1347EXTERN char *           Tk_NameOf3DBorder _ANSI_ARGS_((Tk_3DBorder border));
1348EXTERN char *           Tk_NameOfAnchor _ANSI_ARGS_((Tk_Anchor anchor));
1349EXTERN char *           Tk_NameOfBitmap _ANSI_ARGS_((Display *display,
1350                            Pixmap bitmap));
1351EXTERN char *           Tk_NameOfCapStyle _ANSI_ARGS_((int cap));
1352EXTERN char *           Tk_NameOfColor _ANSI_ARGS_((XColor *colorPtr));
1353EXTERN char *           Tk_NameOfCursor _ANSI_ARGS_((Display *display,
1354                            Tk_Cursor cursor));
1355EXTERN char *           Tk_NameOfFont _ANSI_ARGS_((Tk_Font font));
1356EXTERN char *           Tk_NameOfImage _ANSI_ARGS_((
1357                            Tk_ImageMaster imageMaster));
1358EXTERN char *           Tk_NameOfJoinStyle _ANSI_ARGS_((int join));
1359EXTERN char *           Tk_NameOfJustify _ANSI_ARGS_((Tk_Justify justify));
1360EXTERN char *           Tk_NameOfRelief _ANSI_ARGS_((int relief));
1361EXTERN Tk_Window        Tk_NameToWindow _ANSI_ARGS_((Tcl_Interp *interp,
1362                            char *pathName, Tk_Window tkwin));
1363EXTERN void             Tk_OwnSelection _ANSI_ARGS_((Tk_Window tkwin,
1364                            Atom selection, Tk_LostSelProc *proc,
1365                            ClientData clientData));
1366EXTERN int              Tk_ParseArgv _ANSI_ARGS_((Tcl_Interp *interp,
1367                            Tk_Window tkwin, int *argcPtr, char **argv,
1368                            Tk_ArgvInfo *argTable, int flags));
1369EXTERN void             Tk_PhotoPutBlock _ANSI_ARGS_((Tk_PhotoHandle handle,
1370                            Tk_PhotoImageBlock *blockPtr, int x, int y,
1371                            int width, int height));
1372EXTERN void             Tk_PhotoPutZoomedBlock _ANSI_ARGS_((
1373                            Tk_PhotoHandle handle,
1374                            Tk_PhotoImageBlock *blockPtr, int x, int y,
1375                            int width, int height, int zoomX, int zoomY,
1376                            int subsampleX, int subsampleY));
1377EXTERN int              Tk_PhotoGetImage _ANSI_ARGS_((Tk_PhotoHandle handle,
1378                            Tk_PhotoImageBlock *blockPtr));
1379EXTERN void             Tk_PhotoBlank _ANSI_ARGS_((Tk_PhotoHandle handle));
1380EXTERN void             Tk_PhotoExpand _ANSI_ARGS_((Tk_PhotoHandle handle,
1381                            int width, int height ));
1382EXTERN void             Tk_PhotoGetSize _ANSI_ARGS_((Tk_PhotoHandle handle,
1383                            int *widthPtr, int *heightPtr));
1384EXTERN void             Tk_PhotoSetSize _ANSI_ARGS_((Tk_PhotoHandle handle,
1385                            int width, int height));
1386EXTERN int              Tk_PointToChar _ANSI_ARGS_((Tk_TextLayout layout,
1387                            int x, int y));
1388EXTERN int              Tk_PostscriptFontName _ANSI_ARGS_((Tk_Font tkfont,
1389                            Tcl_DString *dsPtr));
1390EXTERN void             Tk_PreserveColormap _ANSI_ARGS_((Display *display,
1391                            Colormap colormap));
1392EXTERN void             Tk_QueueWindowEvent _ANSI_ARGS_((XEvent *eventPtr,
1393                            Tcl_QueuePosition position));
1394EXTERN void             Tk_RedrawImage _ANSI_ARGS_((Tk_Image image, int imageX,
1395                            int imageY, int width, int height,
1396                            Drawable drawable, int drawableX, int drawableY));
1397EXTERN void             Tk_ResizeWindow _ANSI_ARGS_((Tk_Window tkwin,
1398                            int width, int height));
1399EXTERN int              Tk_RestackWindow _ANSI_ARGS_((Tk_Window tkwin,
1400                            int aboveBelow, Tk_Window other));
1401EXTERN Tk_RestrictProc *Tk_RestrictEvents _ANSI_ARGS_((Tk_RestrictProc *proc,
1402                            ClientData arg, ClientData *prevArgPtr));
1403EXTERN int              Tk_SafeInit _ANSI_ARGS_((Tcl_Interp *interp));
1404EXTERN char *           Tk_SetAppName _ANSI_ARGS_((Tk_Window tkwin,
1405                            char *name));
1406EXTERN void             Tk_SetBackgroundFromBorder _ANSI_ARGS_((
1407                            Tk_Window tkwin, Tk_3DBorder border));
1408EXTERN void             Tk_SetClass _ANSI_ARGS_((Tk_Window tkwin,
1409                            char *className));
1410EXTERN void             Tk_SetGrid _ANSI_ARGS_((Tk_Window tkwin,
1411                            int reqWidth, int reqHeight, int gridWidth,
1412                            int gridHeight));
1413EXTERN void             Tk_SetInternalBorder _ANSI_ARGS_((Tk_Window tkwin,
1414                            int width));
1415EXTERN void             Tk_SetWindowBackground _ANSI_ARGS_((Tk_Window tkwin,
1416                            unsigned long pixel));
1417EXTERN void             Tk_SetWindowBackgroundPixmap _ANSI_ARGS_((
1418                            Tk_Window tkwin, Pixmap pixmap));
1419EXTERN void             Tk_SetWindowBorder _ANSI_ARGS_((Tk_Window tkwin,
1420                            unsigned long pixel));
1421EXTERN void             Tk_SetWindowBorderWidth _ANSI_ARGS_((Tk_Window tkwin,
1422                            int width));
1423EXTERN void             Tk_SetWindowBorderPixmap _ANSI_ARGS_((Tk_Window tkwin,
1424                            Pixmap pixmap));
1425EXTERN void             Tk_SetWindowColormap _ANSI_ARGS_((Tk_Window tkwin,
1426                            Colormap colormap));
1427EXTERN int              Tk_SetWindowVisual _ANSI_ARGS_((Tk_Window tkwin,
1428                            Visual *visual, int depth,
1429                            Colormap colormap));
1430EXTERN void             Tk_SizeOfBitmap _ANSI_ARGS_((Display *display,
1431                            Pixmap bitmap, int *widthPtr,
1432                            int *heightPtr));
1433EXTERN void             Tk_SizeOfImage _ANSI_ARGS_((Tk_Image image,
1434                            int *widthPtr, int *heightPtr));
1435EXTERN int              Tk_StrictMotif _ANSI_ARGS_((Tk_Window tkwin));
1436EXTERN void             Tk_TextLayoutToPostscript _ANSI_ARGS_((
1437                            Tcl_Interp *interp, Tk_TextLayout layout));
1438EXTERN int              Tk_TextWidth _ANSI_ARGS_((Tk_Font font,
1439                            CONST char *string, int numChars));
1440EXTERN void             Tk_UndefineCursor _ANSI_ARGS_((Tk_Window window));
1441EXTERN void             Tk_UnderlineChars _ANSI_ARGS_((Display *display,
1442                            Drawable drawable, GC gc, Tk_Font tkfont,
1443                            CONST char *source, int x, int y, int firstChar,
1444                            int lastChar));
1445EXTERN void             Tk_UnderlineTextLayout _ANSI_ARGS_((
1446                            Display *display, Drawable drawable, GC gc,
1447                            Tk_TextLayout layout, int x, int y,
1448                            int underline));
1449EXTERN void             Tk_Ungrab _ANSI_ARGS_((Tk_Window tkwin));
1450EXTERN void             Tk_UnmaintainGeometry _ANSI_ARGS_((Tk_Window slave,
1451                            Tk_Window master));
1452EXTERN void             Tk_UnmapWindow _ANSI_ARGS_((Tk_Window tkwin));
1453EXTERN void             Tk_UnsetGrid _ANSI_ARGS_((Tk_Window tkwin));
1454EXTERN void             Tk_UpdatePointer _ANSI_ARGS_((Tk_Window tkwin,
1455                            int x, int y, int state));
1456
1457/*
1458 * Tcl commands exported by Tk:
1459 */
1460
1461EXTERN int              Tk_AfterCmd _ANSI_ARGS_((ClientData clientData,
1462                            Tcl_Interp *interp, int argc, char **argv));
1463EXTERN int              Tk_BellCmd _ANSI_ARGS_((ClientData clientData,
1464                            Tcl_Interp *interp, int argc, char **argv));
1465EXTERN int              Tk_BindCmd _ANSI_ARGS_((ClientData clientData,
1466                            Tcl_Interp *interp, int argc, char **argv));
1467EXTERN int              Tk_BindtagsCmd _ANSI_ARGS_((ClientData clientData,
1468                            Tcl_Interp *interp, int argc, char **argv));
1469EXTERN int              Tk_ButtonCmd _ANSI_ARGS_((ClientData clientData,
1470                            Tcl_Interp *interp, int argc, char **argv));
1471EXTERN int              Tk_CanvasCmd _ANSI_ARGS_((ClientData clientData,
1472                            Tcl_Interp *interp, int argc, char **argv));
1473EXTERN int              Tk_CheckbuttonCmd _ANSI_ARGS_((ClientData clientData,
1474                            Tcl_Interp *interp, int argc, char **argv));
1475EXTERN int              Tk_ClipboardCmd _ANSI_ARGS_((ClientData clientData,
1476                            Tcl_Interp *interp, int argc, char **argv));
1477EXTERN int              Tk_ChooseColorCmd _ANSI_ARGS_((ClientData clientData,
1478                            Tcl_Interp *interp, int argc, char **argv));
1479EXTERN int              Tk_ChooseFontCmd _ANSI_ARGS_((ClientData clientData,
1480                            Tcl_Interp *interp, int argc, char **argv));
1481EXTERN int              Tk_DestroyCmd _ANSI_ARGS_((ClientData clientData,
1482                            Tcl_Interp *interp, int argc, char **argv));
1483EXTERN int              Tk_EntryCmd _ANSI_ARGS_((ClientData clientData,
1484                            Tcl_Interp *interp, int argc, char **argv));
1485EXTERN int              Tk_EventCmd _ANSI_ARGS_((ClientData clientData,
1486                            Tcl_Interp *interp, int argc, char **argv));
1487EXTERN int              Tk_FileeventCmd _ANSI_ARGS_((ClientData clientData,
1488                            Tcl_Interp *interp, int argc, char **argv));
1489EXTERN int              Tk_FrameCmd _ANSI_ARGS_((ClientData clientData,
1490                            Tcl_Interp *interp, int argc, char **argv));
1491EXTERN int              Tk_FocusCmd _ANSI_ARGS_((ClientData clientData,
1492                            Tcl_Interp *interp, int argc, char **argv));
1493EXTERN int              Tk_FontObjCmd _ANSI_ARGS_((ClientData clientData,
1494                            Tcl_Interp *interp, int objc,
1495                            Tcl_Obj *CONST objv[]));
1496EXTERN int              Tk_GetOpenFileCmd _ANSI_ARGS_((ClientData clientData,
1497                            Tcl_Interp *interp, int argc, char **argv));
1498EXTERN int              Tk_GetSaveFileCmd _ANSI_ARGS_((ClientData clientData,
1499                            Tcl_Interp *interp, int argc, char **argv));
1500EXTERN int              Tk_GrabCmd _ANSI_ARGS_((ClientData clientData,
1501                            Tcl_Interp *interp, int argc, char **argv));
1502EXTERN int              Tk_GridCmd _ANSI_ARGS_((ClientData clientData,
1503                            Tcl_Interp *interp, int argc, char **argv));
1504EXTERN int              Tk_ImageCmd _ANSI_ARGS_((ClientData clientData,
1505                            Tcl_Interp *interp, int argc, char **argv));
1506EXTERN int              Tk_LabelCmd _ANSI_ARGS_((ClientData clientData,
1507                            Tcl_Interp *interp, int argc, char **argv));
1508EXTERN int              Tk_ListboxCmd _ANSI_ARGS_((ClientData clientData,
1509                            Tcl_Interp *interp, int argc, char **argv));
1510EXTERN int              Tk_LowerCmd _ANSI_ARGS_((ClientData clientData,
1511                            Tcl_Interp *interp, int argc, char **argv));
1512EXTERN int              Tk_MenuCmd _ANSI_ARGS_((ClientData clientData,
1513                            Tcl_Interp *interp, int argc, char **argv));
1514EXTERN int              Tk_MenubuttonCmd _ANSI_ARGS_((ClientData clientData,
1515                            Tcl_Interp *interp, int argc, char **argv));
1516EXTERN int              Tk_MessageBoxCmd _ANSI_ARGS_((ClientData clientData,
1517                            Tcl_Interp *interp, int argc, char **argv));
1518EXTERN int              Tk_MessageCmd _ANSI_ARGS_((ClientData clientData,
1519                            Tcl_Interp *interp, int argc, char **argv));
1520EXTERN int              Tk_OptionCmd _ANSI_ARGS_((ClientData clientData,
1521                            Tcl_Interp *interp, int argc, char **argv));
1522EXTERN int              Tk_PackCmd _ANSI_ARGS_((ClientData clientData,
1523                            Tcl_Interp *interp, int argc, char **argv));
1524EXTERN int              Tk_PlaceCmd _ANSI_ARGS_((ClientData clientData,
1525                            Tcl_Interp *interp, int argc, char **argv));
1526EXTERN int              Tk_RadiobuttonCmd _ANSI_ARGS_((ClientData clientData,
1527                            Tcl_Interp *interp, int argc, char **argv));
1528EXTERN int              Tk_RaiseCmd _ANSI_ARGS_((ClientData clientData,
1529                            Tcl_Interp *interp, int argc, char **argv));
1530EXTERN int              Tk_ScaleCmd _ANSI_ARGS_((ClientData clientData,
1531                            Tcl_Interp *interp, int argc, char **argv));
1532EXTERN int              Tk_ScrollbarCmd _ANSI_ARGS_((ClientData clientData,
1533                            Tcl_Interp *interp, int argc, char **argv));
1534EXTERN int              Tk_SelectionCmd _ANSI_ARGS_((ClientData clientData,
1535                            Tcl_Interp *interp, int argc, char **argv));
1536EXTERN int              Tk_SendCmd _ANSI_ARGS_((ClientData clientData,
1537                            Tcl_Interp *interp, int argc, char **argv));
1538EXTERN int              Tk_TextCmd _ANSI_ARGS_((ClientData clientData,
1539                            Tcl_Interp *interp, int argc, char **argv));
1540EXTERN int              Tk_TkObjCmd _ANSI_ARGS_((ClientData clientData,
1541                            Tcl_Interp *interp, int objc,
1542                            Tcl_Obj *CONST objv[]));
1543EXTERN int              Tk_TkwaitCmd _ANSI_ARGS_((ClientData clientData,
1544                            Tcl_Interp *interp, int argc, char **argv));
1545EXTERN int              Tk_ToplevelCmd _ANSI_ARGS_((ClientData clientData,
1546                            Tcl_Interp *interp, int argc, char **argv));
1547EXTERN int              Tk_UpdateCmd _ANSI_ARGS_((ClientData clientData,
1548                            Tcl_Interp *interp, int argc, char **argv));
1549EXTERN int              Tk_WinfoObjCmd _ANSI_ARGS_((ClientData clientData,
1550                            Tcl_Interp *interp, int objc,
1551                            Tcl_Obj *CONST objv[]));
1552EXTERN int              Tk_WmCmd _ANSI_ARGS_((ClientData clientData,
1553                            Tcl_Interp *interp, int argc, char **argv));
1554
1555#endif /* RESOURCE_INCLUDED */
1556
1557#undef TCL_STORAGE_CLASS
1558#define TCL_STORAGE_CLASS DLLIMPORT
1559
1560#endif /* _TK */
Note: See TracBrowser for help on using the browser.