home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Share / Editores / Perl5 / perl / lib / site / Tk / pTk / tk.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-08-10  |  58.6 KB  |  1,494 lines

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