* Declarations for Tk-related things that are visible
* outside of the Tk module itself.
* Copyright (c) 1989-1994 The Regents of the University of California.
* Copyright (c) 1994 The Australian National University.
* Copyright (c) 1994-1997 Sun Microsystems, Inc.
* Copyright (c) 1998-1999 Scriptics Corporation.
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
* RCS: @(#) $Id: tk.h,v 1.19 1999/02/04 21:03:27 stanton Exp $
* When version numbers change here, you must also go into the following files
* and update the version numbers:
* library/tk.tcl (Not for patch release updates)
* The release level should be 0 for alpha, 1 for beta, and 2 for
* final/patch. The release serial value is the number that follows the
* "a", "b", or "p" in the patch level; for example, if the patch level
* is 4.3b2, TK_RELEASE_SERIAL is 2. It restarts at 1 whenever the
* release level is changed, except for the final release, which should
* You may also need to update some of these files when the numbers change
* for the version of Tcl that this release of Tk is compiled against.
#define TK_MAJOR_VERSION 8
#define TK_MINOR_VERSION 0
#define TK_RELEASE_LEVEL 2
#define TK_RELEASE_SERIAL 5
#define TK_PATCH_LEVEL "8.0.5"
* A special definition used to allow this header file to be included
#ifndef RESOURCE_INCLUDED
* The following definitions set up the proper options for Macintosh
* compilers. We use this method because there is no autoconf equivalent.
# ifndef REDO_KEYSYM_LOOKUP
# define REDO_KEYSYM_LOOKUP
/* FIXME: There is a _XLIB vs _XLIB_H muddle with .t/.m files */
# undef TCL_STORAGE_CLASS
# define TCL_STORAGE_CLASS DLLEXPORT
* Decide whether or not to use input methods.
#define TK_USE_INPUT_METHODS
* Dummy types that are used by clients:
typedef struct Tk_BindingTable_
*Tk_BindingTable
;
typedef struct Tk_Canvas_
*Tk_Canvas
;
typedef struct Tk_Cursor_
*Tk_Cursor
;
typedef struct Tk_ErrorHandler_
*Tk_ErrorHandler
;
typedef struct Tk_Font_
*Tk_Font
;
typedef struct Tk_Image__
*Tk_Image
;
typedef struct Tk_ImageMaster_
*Tk_ImageMaster
;
typedef struct Tk_PostscriptInfo_
*Tk_PostscriptInfo
;
typedef struct Tk_TextLayout_
*Tk_TextLayout
;
typedef struct Tk_Window_
*Tk_Window
;
typedef struct Tk_3DBorder_
*Tk_3DBorder
;
* Additional types exported to clients.
* Structure used to specify how to handle objv options.
char *key
; /* The key string that flags the option in the
int type
; /* Indicates option type; see below. */
char *src
; /* Value to be used in setting dst; usage
char *dst
; /* Address of value to be modified; usage
char *help
; /* Documentation message describing this option. */
* Legal values for the type field of a Tk_ArgvInfo: see the user
* documentation for details.
#define TK_ARGV_CONSTANT 15
#define TK_ARGV_STRING 17
#define TK_ARGV_GENFUNC 22
#define TK_ARGV_CONST_OPTION 24
#define TK_ARGV_OPTION_VALUE 25
#define TK_ARGV_OPTION_NAME_VALUE 26
* Flag bits for passing to Tk_ParseArgv:
#define TK_ARGV_NO_DEFAULTS 0x1
#define TK_ARGV_NO_LEFTOVERS 0x2
#define TK_ARGV_NO_ABBREV 0x4
#define TK_ARGV_DONT_SKIP_FIRST_ARG 0x8
* Structure used to describe application-specific configuration
* options: indicates procedures to call to parse an option and
* to return a text string describing an option.
typedef int (Tk_OptionParseProc
) _ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, Tk_Window tkwin
, Arg value
, char *widgRec
,
typedef Arg (Tk_OptionPrintProc
) _ANSI_ARGS_((ClientData clientData
,
Tk_Window tkwin
, char *widgRec
, int offset
,
Tcl_FreeProc
**freeProcPtr
));
typedef struct Tk_CustomOption
{
Tk_OptionParseProc
*parseProc
; /* Procedure to call to parse an
* option and store it in converted
Tk_OptionPrintProc
*printProc
; /* Procedure to return a printable
* string describing an existing
ClientData clientData
; /* Arbitrary one-word value used by
* option parser: passed to
* parseProc and printProc. */
* Structure used to specify information for Tk_ConfigureWidget. Each
* structure gives complete information for one option, including
* how the option is specified on the command line, where it appears
* in the option database, etc.
typedef struct Tk_ConfigSpec
{
int type
; /* Type of option, such as TK_CONFIG_COLOR;
* see definitions below. Last option in
* table must have type TK_CONFIG_END. */
char *argvName
; /* Switch used to specify option in objv.
* NULL means this spec is part of a group. */
char *dbName
; /* Name for option in option database. */
char *dbClass
; /* Class for option in database. */
char *defValue
; /* Default value for option if not
* specified in command line or database. */
int offset
; /* Where in widget record to store value;
* use Tk_Offset macro to generate values
int specFlags
; /* Any combination of the values defined
* below; other bits are used internally
Tk_CustomOption
*customPtr
; /* If type is TK_CONFIG_CUSTOM then this is
* a pointer to info about how to parse and
* print the option. Otherwise it is
* Type values for Tk_ConfigSpec structures. See the user
* documentation for details.
#define TK_CONFIG_BOOLEAN 1
#define TK_CONFIG_DOUBLE 3
#define TK_CONFIG_STRING 4
#define TK_CONFIG_COLOR 6
#define TK_CONFIG_BITMAP 8
#define TK_CONFIG_BORDER 9
#define TK_CONFIG_RELIEF 10
#define TK_CONFIG_CURSOR 11
#define TK_CONFIG_ACTIVE_CURSOR 12
#define TK_CONFIG_JUSTIFY 13
#define TK_CONFIG_ANCHOR 14
#define TK_CONFIG_SYNONYM 15
#define TK_CONFIG_CAP_STYLE 16
#define TK_CONFIG_JOIN_STYLE 17
#define TK_CONFIG_PIXELS 18
#define TK_CONFIG_WINDOW 20
#define TK_CONFIG_CUSTOM 21
#define TK_CONFIG_CALLBACK 22
#define TK_CONFIG_LANGARG 23
#define TK_CONFIG_SCALARVAR 24
#define TK_CONFIG_HASHVAR 25
#define TK_CONFIG_ARRAYVAR 26
#define TK_CONFIG_OBJECT 27
* Macro to use to fill in "offset" fields of Tk_ConfigInfos.
* Computes number of bytes from beginning of structure to a
#define Tk_Offset(type, field) ((int) offsetof(type, field))
#define Tk_Offset(type, field) ((int) ((char *) &((type *) 0)->field))
* Possible values for flags argument to Tk_ConfigureWidget:
#define TK_CONFIG_ARGV_ONLY 1
#define TK_CONFIG_OBJS 0x80
* Possible flag values for Tk_ConfigInfo structures. Any bits at
* or above TK_CONFIG_USER_BIT may be used by clients for selecting
* certain entries. Before changing any values here, coordinate with
* tkConfig.c (internal-use-only flags are defined there).
#define TK_CONFIG_COLOR_ONLY 1
#define TK_CONFIG_MONO_ONLY 2
#define TK_CONFIG_NULL_OK 4
#define TK_CONFIG_DONT_SET_DEFAULT 8
#define TK_CONFIG_OPTION_SPECIFIED 0x10
#define TK_CONFIG_USER_BIT 0x100
* Enumerated type for describing actions to be taken in response
* to a restrictProc established by Tk_RestrictEvents.
TK_DEFER_EVENT
, TK_PROCESS_EVENT
, TK_DISCARD_EVENT
* Priority levels to pass to Tk_AddOption:
#define TK_WIDGET_DEFAULT_PRIO 20
#define TK_STARTUP_FILE_PRIO 40
#define TK_USER_DEFAULT_PRIO 60
#define TK_INTERACTIVE_PRIO 80
* Relief values returned by Tk_GetRelief:
#define TK_RELIEF_RAISED 1
#define TK_RELIEF_SUNKEN 4
#define TK_RELIEF_GROOVE 8
#define TK_RELIEF_RIDGE 16
#define TK_RELIEF_SOLID 32
* "Which" argument values for Tk_3DBorderGC:
* Special EnterNotify/LeaveNotify "mode" for use in events
* generated by tkShare.c. Pick a high enough value that it's
* unlikely to conflict with existing values (like NotifyNormal)
* or any new values defined in the future.
#define TK_NOTIFY_SHARE 20
* Enumerated type for describing a point by which to anchor something:
TK_ANCHOR_N
, TK_ANCHOR_NE
, TK_ANCHOR_E
, TK_ANCHOR_SE
,
TK_ANCHOR_S
, TK_ANCHOR_SW
, TK_ANCHOR_W
, TK_ANCHOR_NW
,
* Enumerated type for describing a style of justification:
TK_JUSTIFY_LEFT
, TK_JUSTIFY_RIGHT
, TK_JUSTIFY_CENTER
* The following structure is used by Tk_GetFontMetrics() to return
* information about the properties of a Tk_Font.
typedef struct Tk_FontMetrics
{
int ascent
; /* The amount in pixels that the tallest
* letter sticks up above the baseline, plus
* any extra blank space added by the designer
int descent
; /* The largest amount in pixels that any
* letter sticks below the baseline, plus any
* extra blank space added by the designer of
int linespace
; /* The sum of the ascent and descent. How
* far apart two lines of text in the same
* font should be placed so that none of the
* characters in one line overlap any of the
* characters in the other line. */
* Flags passed to Tk_MeasureChars:
#define TK_AT_LEAST_ONE 2
* Flags passed to Tk_ComputeTextLayout:
#define TK_IGNORE_NEWLINES 16
* Each geometry manager (the packer, the placer, etc.) is represented
* by a structure of the following form, which indicates procedures
* to invoke in the geometry manager to carry out certain functions.
typedef void (Tk_GeomRequestProc
) _ANSI_ARGS_((ClientData clientData
,
typedef void (Tk_GeomLostSlaveProc
) _ANSI_ARGS_((ClientData clientData
,
typedef struct Tk_GeomMgr
{
char *name
; /* Name of the geometry manager (command
* used to invoke it, or name of widget
* class that allows embedded widgets). */
Tk_GeomRequestProc
*requestProc
;
/* Procedure to invoke when a slave's
* requested geometry changes. */
Tk_GeomLostSlaveProc
*lostSlaveProc
;
/* Procedure to invoke when a slave is
* taken away from one geometry manager
* by another. NULL means geometry manager
* doesn't care when slaves are lost. */
* Result values returned by Tk_GetScrollInfo:
#define TK_SCROLL_MOVETO 1
#define TK_SCROLL_PAGES 2
#define TK_SCROLL_UNITS 3
#define TK_SCROLL_ERROR 4
*---------------------------------------------------------------------------
* Extensions to the X event set
*---------------------------------------------------------------------------
#define VirtualEvent (LASTEvent)
#define ActivateNotify (LASTEvent + 1)
#define DeactivateNotify (LASTEvent + 2)
#define MouseWheelEvent (LASTEvent + 3)
#define TK_LASTEVENT (LASTEvent + 4)
#define MouseWheelMask (1L << 28)
#define ActivateMask (1L << 29)
#define VirtualEventMask (1L << 30)
#define TK_LASTEVENT (LASTEvent + 4)
* A virtual event shares most of its fields with the XKeyEvent and
* XButtonEvent structures. 99% of the time a virtual event will be
* an abstraction of a key or button event, so this structure provides
* the most information to the user. The only difference is the changing
* of the detail field for a virtual event so that it holds the name of the
* virtual event being triggered.
unsigned long serial
; /* # of last request processed by server */
Bool send_event
; /* True if this came from a SendEvent request */
Display
*display
; /* Display the event was read from */
Window event
; /* Window on which event was requested. */
Window root
; /* root window that the event occured on */
Window subwindow
; /* child window */
Time time
; /* milliseconds */
int x
, y
; /* pointer x, y coordinates in event window */
int x_root
, y_root
; /* coordinates relative to root */
unsigned int state
; /* key or button mask */
Tk_Uid name
; /* Name of virtual event. */
Bool same_screen
; /* same screen flag */
unsigned long serial
; /* # of last request processed by server */
Bool send_event
; /* True if this came from a SendEvent request */
Display
*display
; /* Display the event was read from */
Window window
; /* Window in which event occurred. */
} XActivateDeactivateEvent
;
typedef XActivateDeactivateEvent XActivateEvent
;
typedef XActivateDeactivateEvent XDeactivateEvent
;
*--------------------------------------------------------------
* Macros for querying Tk_Window structures. See the
* manual entries for documentation.
*--------------------------------------------------------------
#define Tk_Display(tkwin) (((Tk_FakeWin *) (tkwin))->display)
#define Tk_ScreenNumber(tkwin) (((Tk_FakeWin *) (tkwin))->screenNum)
#define Tk_Screen(tkwin) (ScreenOfDisplay(Tk_Display(tkwin), \
#define Tk_Depth(tkwin) (((Tk_FakeWin *) (tkwin))->depth)
#define Tk_Visual(tkwin) (((Tk_FakeWin *) (tkwin))->visual)
#define Tk_WindowId(tkwin) (((Tk_FakeWin *) (tkwin))->window)
#define Tk_PathName(tkwin) (((Tk_FakeWin *) (tkwin))->pathName)
#define Tk_Name(tkwin) (((Tk_FakeWin *) (tkwin))->nameUid)
#define Tk_Class(tkwin) (((Tk_FakeWin *) (tkwin))->classUid)
#define Tk_X(tkwin) (((Tk_FakeWin *) (tkwin))->changes.x)
#define Tk_Y(tkwin) (((Tk_FakeWin *) (tkwin))->changes.y)
#define Tk_Width(tkwin) (((Tk_FakeWin *) (tkwin))->changes.width)
#define Tk_Height(tkwin) \
(((Tk_FakeWin *) (tkwin))->changes.height)
#define Tk_Changes(tkwin) (&((Tk_FakeWin *) (tkwin))->changes)
#define Tk_Attributes(tkwin) (&((Tk_FakeWin *) (tkwin))->atts)
#define Tk_IsEmbedded(tkwin) \
(((Tk_FakeWin *) (tkwin))->flags & TK_EMBEDDED)
#define Tk_IsContainer(tkwin) \
(((Tk_FakeWin *) (tkwin))->flags & TK_CONTAINER)
#define Tk_IsMapped(tkwin) \
(((Tk_FakeWin *) (tkwin))->flags & TK_MAPPED)
#define Tk_IsTopLevel(tkwin) \
(((Tk_FakeWin *) (tkwin))->flags & TK_TOP_LEVEL)
#define Tk_ReqWidth(tkwin) (((Tk_FakeWin *) (tkwin))->reqWidth)
#define Tk_ReqHeight(tkwin) (((Tk_FakeWin *) (tkwin))->reqHeight)
#define Tk_InternalBorderWidth(tkwin) \
(((Tk_FakeWin *) (tkwin))->internalBorderWidth)
#define Tk_Parent(tkwin) (((Tk_FakeWin *) (tkwin))->parentPtr)
#define Tk_Colormap(tkwin) (((Tk_FakeWin *) (tkwin))->atts.colormap)
* The structure below is needed by the macros above so that they can
* access the fields of a Tk_Window. The fields not needed by the macros
* are declared as "dummyX". The structure has its own type in order to
* prevent applications from accessing Tk_Window fields except using
* official macros. WARNING!! The structure definition must be kept
* consistent with the TkWindow structure in tkInt.h. If you change one,
* then change the other. See the declaration in tkInt.h for
* documentation on what the fields are used for internally.
typedef struct Tk_FakeWin
{
XSetWindowAttributes atts
;
#ifdef TK_USE_INPUT_METHODS
#endif /* TK_USE_INPUT_METHODS */
* Flag values for TkWindow (and Tk_FakeWin) structures are:
* TK_MAPPED: 1 means window is currently mapped,
* TK_TOP_LEVEL: 1 means this is a top-level window (it
* was or will be created as a child of
* TK_ALREADY_DEAD: 1 means the window is in the process of
* being destroyed already.
* TK_NEED_CONFIG_NOTIFY: 1 means that the window has been reconfigured
* before it was made to exist. At the time of
* making it exist a ConfigureNotify event needs
* TK_GRAB_FLAG: Used to manage grabs. See tkGrab.c for
* TK_CHECKED_IC: 1 means we've already tried to get an input
* context for this window; if the ic field
* is NULL it means that there isn't a context
* TK_DONT_DESTROY_WINDOW: 1 means that Tk_DestroyWindow should not
* invoke XDestroyWindow to destroy this widget's
* X window. The flag is set when the window
* has already been destroyed elsewhere (e.g.
* by another application) or when it will be
* destroyed later (e.g. by destroying its
* TK_WM_COLORMAP_WINDOW: 1 means that this window has at some time
* appeared in the WM_COLORMAP_WINDOWS property
* for its toplevel, so we have to remove it
* from that property if the window is
* deleted and the toplevel isn't.
* TK_EMBEDDED: 1 means that this window (which must be a
* toplevel) is not a free-standing window but
* rather is embedded in some other application.
* TK_CONTAINER: 1 means that this window is a container, and
* that some other application (either in
* this process or elsewhere) may be
* embedding itself inside the window.
* TK_BOTH_HALVES: 1 means that this window is used for
* application embedding (either as
* container or embedded application), and
* both the containing and embedded halves
* are associated with windows in this
* TK_DEFER_MODAL: 1 means that this window has deferred a modal
* loop until all of the bindings for the current
* event have been invoked.
* TK_WRAPPER: 1 means that this window is the extra
* wrapper window created around a toplevel
* to hold the menubar under Unix. See
* tkUnixWm.c for more information.
* TK_REPARENTED: 1 means that this window has been reparented
* so that as far as the window system is
* concerned it isn't a child of its Tk
* parent. Initially this is used only for
* special Unix menubar windows.
#define TK_ALREADY_DEAD 4
#define TK_NEED_CONFIG_NOTIFY 8
#define TK_GRAB_FLAG 0x10
#define TK_CHECKED_IC 0x20
#define TK_DONT_DESTROY_WINDOW 0x40
#define TK_WM_COLORMAP_WINDOW 0x80
#define TK_EMBEDDED 0x100
#define TK_CONTAINER 0x200
#define TK_BOTH_HALVES 0x400
#define TK_DEFER_MODAL 0x800
#define TK_WRAPPER 0x1000
#define TK_REPARENTED 0x2000
*--------------------------------------------------------------
* Procedure prototypes and structures used for defining new canvas
*--------------------------------------------------------------
TK_STATE_NULL
, TK_STATE_NORMAL
, TK_STATE_HIDDEN
,
TK_STATE_DISABLED
, TK_STATE_ACTIVE
typedef struct Tk_SmoothMethod
{
int (*coordProc
) _ANSI_ARGS_((Tk_Canvas canvas
,
double *pointPtr
, int numPoints
, int numSteps
,
XPoint xPoints
[], double dblPoints
[]));
void (*postscriptProc
) _ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Canvas canvas
, double *coordPtr
,
int numPoints
, int numSteps
));
* For each item in a canvas widget there exists one record with
* the following structure. Each actual item is represented by
* a record with the following stuff at its beginning, plus additional
* type-specific stuff after that.
int id
; /* Unique identifier for this item
* (also serves as first tag for
struct Tk_Item
*nextPtr
; /* Next in display list of all
* items in this canvas. Later items
* in list are drawn on top of earlier
Tk_Uid staticTagSpace
[TK_TAG_SPACE
];/* Built-in space for limited # of
Tk_Uid
*tagPtr
; /* Pointer to array of tags. Usually
* points to staticTagSpace, but
* may point to malloc-ed space if
* there are lots of tags. */
int tagSpace
; /* Total amount of tag space available
int numTags
; /* Number of tag slots actually used
struct Tk_ItemType
*typePtr
; /* Table of procedures that implement
int x1
, y1
, x2
, y2
; /* Bounding box for item, in integer
* canvas units. Set by item-specific
* code and guaranteed to contain every
* pixel drawn in item. Item area
* includes x1 and y1 but not x2
struct Tk_Item
*prevPtr
; /* Previous in display list of all
* items in this canvas. Later items
* in list are drawn just below earlier
Tk_State state
; /* state of item */
LangCallback
*updateCmd
; /* for "-updatecommand" option */
int redraw_flags
; /* some flags used in the canvas */
struct Tk_Item
*group
; /* group item managing this one */
*------------------------------------------------------------------
* Starting here is additional type-specific stuff; see the
* declarations for individual types to see what is part of
* each type. The actual space below is determined by the
* "itemInfoSize" of the type's Tk_ItemType record.
*------------------------------------------------------------------
* Flag bits for canvases (redraw_flags):
* TK_ITEM_STATE_DEPENDANT - 1 means that object needs to be
* redrawn if the canvas state changes.
* TK_ITEM_DONT_REDRAW - 1 means that the object redraw is already
* been prepared, so the general canvas code
* doesn't need to do that any more.
#define TK_ITEM_STATE_DEPENDANT 1
#define TK_ITEM_DONT_REDRAW 2
* Structures used for implementing visitors.
typedef ClientData Tk_VisitorStartProc
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Canvas canvas
, int argc
, Tcl_Obj
**objv
));
typedef int Tk_VisitorItemProc
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Canvas canvas
, ClientData clientData
,
typedef int Tk_VisitorEndProc
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Canvas canvas
, ClientData clientData
));
typedef struct Tk_VisitorType
{
int typeSize
; /* should be sizeof(Tk_VisitorType) */
int flags
; /* If this flag is non-zero then
* the item needs to be redrawn. */
Tk_VisitorStartProc
*startProc
;
Tk_VisitorEndProc
*endProc
;
Tk_VisitorItemProc
*visitArc
; /* The Arc visitor procedure. */
Tk_VisitorItemProc
*visitBitmap
; /* The Bitmap visitor procedure. */
Tk_VisitorItemProc
*visitImage
; /* The Image visitor procedure. */
Tk_VisitorItemProc
*visitLine
; /* The Line visitor procedure. */
Tk_VisitorItemProc
*visitOval
; /* The Oval visitor procedure. */
Tk_VisitorItemProc
*visitPolygon
; /* The Polygon visitor procedure. */
Tk_VisitorItemProc
*visitRectangle
; /* The Rectangle visitor procedure. */
Tk_VisitorItemProc
*visitText
; /* The Text visitor procedure. */
Tk_VisitorItemProc
*visitWindow
; /* The Window visitor procedure. */
Tk_VisitorItemProc
*visitSticker
; /* The Sticker visitor procedure.
Tk_VisitorItemProc
*visitViewport
; /* The Viewport visitor procedure.
Tk_VisitorItemProc
*visitBarchart
; /* The Barchart visitor procedure.
Tk_VisitorItemProc
*visitStripchart
;/* The Stripchart visitor procedure.
Tk_VisitorItemProc
*visitGroup
; /* The Group visitor procedure. */
Tk_VisitorItemProc
*visitGrid
; /* The Grid visitor procedure. */
*------------------------------------------------------------------
* Starting here is additional item-extension stuff;
* you can add extra item types after this plus other information.
*------------------------------------------------------------------
* Records of the following type are used to describe a type of
* item (e.g. lines, circles, etc.) that can form part of a
typedef int Tk_ItemCreateProc
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Canvas canvas
, Tk_Item
*itemPtr
, int argc
,
typedef int Tk_ItemConfigureProc
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Canvas canvas
, Tk_Item
*itemPtr
, int argc
,
Tcl_Obj
**objv
, int flags
));
typedef int Tk_ItemCoordProc
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Canvas canvas
, Tk_Item
*itemPtr
, int argc
,
typedef void Tk_ItemDeleteProc
_ANSI_ARGS_((Tk_Canvas canvas
,
Tk_Item
*itemPtr
, Display
*display
));
typedef void Tk_ItemDisplayProc
_ANSI_ARGS_((Tk_Canvas canvas
,
Tk_Item
*itemPtr
, Display
*display
, Drawable dst
,
int x
, int y
, int width
, int height
));
typedef double Tk_ItemPointProc
_ANSI_ARGS_((Tk_Canvas canvas
,
Tk_Item
*itemPtr
, double *pointPtr
));
typedef int Tk_ItemAreaProc
_ANSI_ARGS_((Tk_Canvas canvas
,
Tk_Item
*itemPtr
, double *rectPtr
));
typedef int Tk_ItemPostscriptProc
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Canvas canvas
, Tk_Item
*itemPtr
, int prepass
));
typedef void Tk_ItemScaleProc
_ANSI_ARGS_((Tk_Canvas canvas
,
Tk_Item
*itemPtr
, double originX
, double originY
,
double scaleX
, double scaleY
));
typedef void Tk_ItemTranslateProc
_ANSI_ARGS_((Tk_Canvas canvas
,
Tk_Item
*itemPtr
, double deltaX
, double deltaY
));
typedef int Tk_ItemIndexProc
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Canvas canvas
, Tk_Item
*itemPtr
, Tcl_Obj
*indexString
,
typedef void Tk_ItemCursorProc
_ANSI_ARGS_((Tk_Canvas canvas
,
Tk_Item
*itemPtr
, int index
));
typedef int Tk_ItemSelectionProc
_ANSI_ARGS_((Tk_Canvas canvas
,
Tk_Item
*itemPtr
, int offset
, char *buffer
,
typedef void Tk_ItemInsertProc
_ANSI_ARGS_((Tk_Canvas canvas
,
Tk_Item
*itemPtr
, int beforeThis
, Tcl_Obj
*string
));
typedef void Tk_ItemDCharsProc
_ANSI_ARGS_((Tk_Canvas canvas
,
Tk_Item
*itemPtr
, int first
, int last
));
typedef void Tk_ItemBboxProc
_ANSI_ARGS_((Tk_Canvas canvas
,
typedef int Tk_ItemGetCoordProc
_ANSI_ARGS_((Tk_Item
*itemPtr
,
double **coordsPtr
, Tcl_FreeProc
*freeProc
));
typedef int Tk_ItemSetCoordProc
_ANSI_ARGS_((Tk_Canvas canvas
,
Tk_Item
*itemPtr
, int num
, double *coords
));
* Some flag values that can be used in the "flags" field in Tk_ItemType.
#define TK_ITEM_ALWAYS_REDRAW 1
#define TK_ITEM_VISITOR_SUPPORT 2
* Structures used for implementing visitors.
typedef struct Tk_ItemType
{
char *name
; /* The name of this type of item, such
int itemSize
; /* Total amount of space needed for
Tk_ItemCreateProc
*createProc
; /* Procedure to create a new item of
Tk_ConfigSpec
*configSpecs
; /* Pointer to array of configuration
* specs for this type. Used for
* returning configuration info. */
Tk_ItemConfigureProc
*configProc
; /* Procedure to call to change
* configuration options. */
Tk_ItemCoordProc
*coordProc
; /* Procedure to call to get and set
* the item's coordinates. */
Tk_ItemDeleteProc
*deleteProc
; /* Procedure to delete existing item of
Tk_ItemDisplayProc
*displayProc
; /* Procedure to display items of
int flags
; /* TK_ITEM_TYPE_ALWAYS_REDRAW means displayProc
* should be called even when the item has
* been moved off-screen. */
Tk_ItemPointProc
*pointProc
; /* Computes distance from item to
Tk_ItemAreaProc
*areaProc
; /* Computes whether item is inside,
* outside, or overlapping an area. */
Tk_ItemPostscriptProc
*postscriptProc
;
/* Procedure to write a Postscript
* description for items of this
Tk_ItemScaleProc
*scaleProc
; /* Procedure to rescale items of
Tk_ItemTranslateProc
*translateProc
;/* Procedure to translate items of
Tk_ItemIndexProc
*indexProc
; /* Procedure to determine index of
* indicated character. NULL if
* item doesn't support indexing. */
Tk_ItemCursorProc
*icursorProc
; /* Procedure to set insert cursor pos.
* to just before a given position. */
Tk_ItemSelectionProc
*selectionProc
;/* Procedure to return selection (in
* STRING format) when it is in this
Tk_ItemInsertProc
*insertProc
; /* Procedure to insert something into
Tk_ItemDCharsProc
*dCharsProc
; /* Procedure to delete characters
struct Tk_ItemType
*nextPtr
; /* Used to link types together into
Tk_ItemBboxProc
*bboxProc
; /* Procedure to calculate the bounding
int acceptProc
; /* Offset of visitors function in
* tkVisitorType struct for this item. */
Tk_ItemGetCoordProc
*getCoordProc
; /* Procedure to get the coordinates
Tk_ItemSetCoordProc
*setCoordProc
; /* Procedure to set the coordinates
* The following structure provides information about the selection and
* the insertion cursor. It is needed by only a few items, such as
* those that display text. It is shared by the generic canvas code
* and the item-specific code, but most of the fields should be written
* only by the canvas generic code.
typedef struct Tk_CanvasTextInfo
{
Tk_3DBorder selBorder
; /* Border and background for selected
* characters. Read-only to items.*/
int selBorderWidth
; /* Width of border around selection.
XColor
*selFgColorPtr
; /* Foreground color for selected text.
Tk_Item
*selItemPtr
; /* Pointer to selected item. NULL means
* selection isn't in this canvas.
int selectFirst
; /* Index of first selected character.
int selectLast
; /* Index of last selected character.
Tk_Item
*anchorItemPtr
; /* Item corresponding to "selectAnchor":
* not necessarily selItemPtr. Read-only
int selectAnchor
; /* Fixed end of selection (i.e. "select to"
* operation will use this as one end of the
* selection). Writable by items. */
Tk_3DBorder insertBorder
; /* Used to draw vertical bar for insertion
* cursor. Read-only to items. */
int insertWidth
; /* Total width of insertion cursor. Read-only
int insertBorderWidth
; /* Width of 3-D border around insert cursor.
Tk_Item
*focusItemPtr
; /* Item that currently has the input focus,
* or NULL if no such item. Read-only to
int gotFocus
; /* Non-zero means that the canvas widget has
* the input focus. Read-only to items.*/
int cursorOn
; /* Non-zero means that an insertion cursor
* should be displayed in focusItemPtr.
* Structures used for Dashing and Outline.
char array
[sizeof(char *)];
typedef struct Tk_TSOffset
{
int flags
; /* flags; see below for possible values */
int xoffset
; /* x offset */
int yoffset
; /* y offset */
* Bit fields in Tk_Offset->flags:
#define TK_OFFSET_INDEX 1
#define TK_OFFSET_RELATIVE 2
#define TK_OFFSET_CENTER 8
#define TK_OFFSET_RIGHT 16
#define TK_OFFSET_MIDDLE 64
#define TK_OFFSET_BOTTOM 128
typedef struct Tk_Tile_
*Tk_Tile
; /* Opaque type for tiles */
typedef struct Tk_Outline
{
GC gc
; /* Graphics context. */
double width
; /* Width of outline. */
double activeWidth
; /* Width of outline. */
double disabledWidth
; /* Width of outline. */
int offset
; /* Dash offset */
Tk_Dash dash
; /* Dash pattern */
Tk_Dash activeDash
; /* Dash pattern if state is active*/
Tk_Dash disabledDash
; /* Dash pattern if state is disabled*/
Tk_Tile tile
; /* Tile pattern */
Tk_Tile activeTile
; /* Tile pattern if state is active*/
Tk_Tile disabledTile
; /* Tile pattern if state is disabled*/
Tk_TSOffset tsoffset
; /* tile/stipple offset for outline*/
XColor
*color
; /* Outline color. */
XColor
*activeColor
; /* Outline color if state is active. */
XColor
*disabledColor
; /* Outline color if state is disabled. */
Pixmap stipple
; /* Outline Stipple pattern. */
Pixmap activeStipple
; /* Outline Stipple pattern if state is active. */
Pixmap disabledStipple
; /* Outline Stipple pattern if state is disabled. */
* Some functions handy for Dashing and Outlines (in tkCanvUtil.c).
EXTERN
int Tk_GetDash
_ANSI_ARGS_((Tcl_Interp
*interp
,
Arg value
, Tk_Dash
*dash
));
EXTERN
void Tk_CreateOutline
_ANSI_ARGS_((Tk_Outline
*outline
));
EXTERN
void Tk_DeleteOutline
_ANSI_ARGS_((Display
*display
,
EXTERN
int Tk_ConfigOutlineGC
_ANSI_ARGS_((XGCValues
*gcValues
,
Tk_Canvas canvas
,Tk_Item
*item
,
EXTERN
int Tk_ChangeOutlineGC
_ANSI_ARGS_((Tk_Canvas canvas
,
Tk_Item
*item
, Tk_Outline
*outline
));
EXTERN
int Tk_ResetOutlineGC
_ANSI_ARGS_((Tk_Canvas canvas
,
Tk_Item
*item
, Tk_Outline
*outline
));
EXTERN
int Tk_CanvasPsOutline
_ANSI_ARGS_((Tk_Canvas canvas
,
Tk_Item
*item
, Tk_Outline
*outline
));
* Some functions handy for Tiling and Stipple/Tile offset.
typedef void (Tk_TileChangedProc
) _ANSI_ARGS_((ClientData clientData
,
Tk_Tile tile
, Tk_Item
*itemPtr
));
EXTERN Tk_Tile Tk_GetTile
_ANSI_ARGS_((Tcl_Interp
*interp
, Tk_Window tkwin
,
EXTERN
void Tk_FreeTile
_ANSI_ARGS_((Tk_Tile tile
));
EXTERN
char * Tk_NameOfTile
_ANSI_ARGS_((Tk_Tile tile
));
EXTERN
void Tk_SetTileChangedProc
_ANSI_ARGS_((Tk_Tile tile
,
Tk_TileChangedProc
* changeProc
, ClientData clientData
,
EXTERN Pixmap Tk_PixmapOfTile
_ANSI_ARGS_((Tk_Tile tile
));
EXTERN
int Tk_PixelParseProc
_ANSI_ARGS_((
ClientData clientData
, Tcl_Interp
*interp
,
Tk_Window tkwin
, Arg value
, char *widgRec
,
EXTERN Arg Tk_PixelPrintProc
_ANSI_ARGS_((
ClientData clientData
, Tk_Window tkwin
,
char *widgRec
, int offset
,
Tcl_FreeProc
**freeProcPtr
));
EXTERN
void Tk_SizeOfTile
_ANSI_ARGS_((Tk_Tile tile
, int *widthPtr
,
EXTERN
void Tk_SetTileOrigin
_ANSI_ARGS_((Tk_Window tkwin
, GC gc
, int x
,
EXTERN
int Tk_TileParseProc
_ANSI_ARGS_((
ClientData clientData
, Tcl_Interp
*interp
,
Tk_Window tkwin
, Arg value
, char *widgRec
,
EXTERN Arg Tk_TilePrintProc
_ANSI_ARGS_((
ClientData clientData
, Tk_Window tkwin
,
char *widgRec
, int offset
,
Tcl_FreeProc
**freeProcPtr
));
EXTERN
int Tk_OffsetParseProc
_ANSI_ARGS_((
ClientData clientData
, Tcl_Interp
*interp
,
Tk_Window tkwin
, Arg value
, char *widgRec
,
EXTERN Arg Tk_OffsetPrintProc
_ANSI_ARGS_((
ClientData clientData
, Tk_Window tkwin
,
char *widgRec
, int offset
,
Tcl_FreeProc
**freeProcPtr
));
EXTERN
void Tk_SetTileCanvasItem
_ANSI_ARGS_((Tk_Tile tile
,
Tk_Canvas canvas
, Tk_Item
*itemPtr
));
*--------------------------------------------------------------
* Procedure prototypes and structures used for managing images:
*--------------------------------------------------------------
typedef struct Tk_ImageType Tk_ImageType
;
typedef int (Tk_ImageCreateProc
) _ANSI_ARGS_((Tcl_Interp
*interp
,
char *name
, int objc
, Tcl_Obj
*objv
[], Tk_ImageType
*typePtr
,
Tk_ImageMaster master
, ClientData
*masterDataPtr
));
typedef ClientData (Tk_ImageGetProc
) _ANSI_ARGS_((Tk_Window tkwin
,
typedef void (Tk_ImageDisplayProc
) _ANSI_ARGS_((ClientData instanceData
,
Display
*display
, Drawable drawable
, int imageX
, int imageY
,
int width
, int height
, int drawableX
, int drawableY
));
typedef void (Tk_ImageFreeProc
) _ANSI_ARGS_((ClientData instanceData
,
typedef void (Tk_ImageDeleteProc
) _ANSI_ARGS_((ClientData masterData
));
typedef void (Tk_ImageChangedProc
) _ANSI_ARGS_((ClientData clientData
,
int x
, int y
, int width
, int height
, int imageWidth
,
typedef int (Tk_ImagePostscriptProc
) _ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, Tk_Window tkwin
, Tk_PostscriptInfo psinfo
,
int x
, int y
, int width
, int height
, int prepass
));
* The following structure represents a particular type of image
* (bitmap, xpm image, etc.). It provides information common to
* all images of that type, such as the type name and a collection
* of procedures in the image manager that respond to various
* events. Each image manager is represented by one of these
char *name
; /* Name of image type. */
Tk_ImageCreateProc
*createProc
;
/* Procedure to call to create a new image
Tk_ImageGetProc
*getProc
; /* Procedure to call the first time
* Tk_GetImage is called in a new way
* (new visual or screen). */
Tk_ImageDisplayProc
*displayProc
;
/* Call to draw image, in response to
* Tk_RedrawImage calls. */
Tk_ImageFreeProc
*freeProc
; /* Procedure to call whenever Tk_FreeImage
* is called to release an instance of an
Tk_ImageDeleteProc
*deleteProc
;
/* Procedure to call to delete image. It
* will not be called until after freeProc
* has been called for each instance of the
Tk_ImagePostscriptProc
*postscriptProc
;
/* Procedure to call to create postscript
* output for this image type. */
struct Tk_ImageType
*nextPtr
;
/* Next in list of all image types currently
* known. Filled in by Tk, not by image
char *reserved
; /* reserved for future expansion */
*--------------------------------------------------------------
* Additional definitions used to manage images of type "photo".
*--------------------------------------------------------------
* The following type is used to identify a particular photo image
typedef void *Tk_PhotoHandle
;
* The following structure describes a block of pixels in memory:
typedef struct Tk_PhotoImageBlock
{
unsigned char *pixelPtr
; /* Pointer to the first pixel. */
int width
; /* Width of block, in pixels. */
int height
; /* Height of block, in pixels. */
int pitch
; /* Address difference between corresponding
* pixels in successive lines. */
int pixelSize
; /* Address difference between successive
* pixels in the same line. */
int offset
[4]; /* Address differences between the red, green
* and blue components of the pixel and the
int reserved
; /* Reserved for extensions (dash patch) */
* Procedure prototypes and structures used in reading and
typedef struct Tk_PhotoImageFormat Tk_PhotoImageFormat
;
typedef int (Tk_ImageFileMatchProc
) _ANSI_ARGS_((Tcl_Interp
*interp
, Tcl_Channel chan
,
Tcl_Obj
*fileName
, Tcl_Obj
*format
, int *widthPtr
,
typedef int (Tk_ImageStringMatchProc
) _ANSI_ARGS_((Tcl_Interp
*interp
, Tcl_Obj
*dataObj
,
Tcl_Obj
*format
, int *widthPtr
, int *heightPtr
));
typedef int (Tk_ImageFileReadProc
) _ANSI_ARGS_((Tcl_Interp
*interp
,
Tcl_Channel chan
, Tcl_Obj
*fileName
, Tcl_Obj
*format
,
Tk_PhotoHandle imageHandle
, int destX
, int destY
,
int width
, int height
, int srcX
, int srcY
));
typedef int (Tk_ImageStringReadProc
) _ANSI_ARGS_((Tcl_Interp
*interp
,
Tcl_Obj
*dataObj
, Tcl_Obj
*format
, Tk_PhotoHandle imageHandle
,
int destX
, int destY
, int width
, int height
, int srcX
, int srcY
));
typedef int (Tk_ImageFileWriteProc
) _ANSI_ARGS_((Tcl_Interp
*interp
,
char *fileName
, Tcl_Obj
*format
, Tk_PhotoImageBlock
*blockPtr
));
typedef int (Tk_ImageStringWriteProc
) _ANSI_ARGS_((Tcl_Interp
*interp
,
Tcl_DString
*dataPtr
, Tcl_Obj
*format
,
Tk_PhotoImageBlock
*blockPtr
));
* The following structure represents a particular file format for
* storing images (e.g., PPM, GIF, JPEG, etc.). It provides information
* to allow image files of that format to be recognized and read into
struct Tk_PhotoImageFormat
{
char *name
; /* Name of image file format */
Tk_ImageFileMatchProc
*fileMatchProc
;
/* Procedure to call to determine whether
* an image file matches this format. */
Tk_ImageStringMatchProc
*stringMatchProc
;
/* Procedure to call to determine whether
* the data in a string matches this format. */
Tk_ImageFileReadProc
*fileReadProc
;
/* Procedure to call to read data from
* an image file into a photo image. */
Tk_ImageStringReadProc
*stringReadProc
;
/* Procedure to call to read data from
* a string into a photo image. */
Tk_ImageFileWriteProc
*fileWriteProc
;
/* Procedure to call to write data from
* a photo image to a file. */
Tk_ImageStringWriteProc
*stringWriteProc
;
/* Procedure to call to obtain a string
* representation of the data in a photo
struct Tk_PhotoImageFormat
*nextPtr
;
/* Next in list of all photo image formats
* currently known. Filled in by Tk, not
* by image format handler. */
*--------------------------------------------------------------
* The definitions below provide backward compatibility for
* functions and types related to event handling that used to
* be in Tk but have moved to Tcl.
*--------------------------------------------------------------
#define TK_READABLE TCL_READABLE
#define TK_WRITABLE TCL_WRITABLE
#define TK_EXCEPTION TCL_EXCEPTION
#define TK_DONT_WAIT TCL_DONT_WAIT
#define TK_X_EVENTS TCL_WINDOW_EVENTS
#define TK_WINDOW_EVENTS TCL_WINDOW_EVENTS
#define TK_FILE_EVENTS TCL_FILE_EVENTS
#define TK_TIMER_EVENTS TCL_TIMER_EVENTS
#define TK_IDLE_EVENTS TCL_IDLE_EVENTS
#define TK_ALL_EVENTS TCL_ALL_EVENTS
#define Tk_IdleProc Tcl_IdleProc
#define Tk_FileProc Tcl_FileProc
#define Tk_TimerProc Tcl_TimerProc
#define Tk_TimerToken Tcl_TimerToken
#define Tk_BackgroundError Tcl_BackgroundError
#define Tk_CancelIdleCall Tcl_CancelIdleCall
#define Tk_CreateFileHandler Tcl_CreateFileHandler
#define Tk_CreateTimerHandler Tcl_CreateTimerHandler
#define Tk_DeleteFileHandler Tcl_DeleteFileHandler
#define Tk_DeleteTimerHandler Tcl_DeleteTimerHandler
#define Tk_DoOneEvent Tcl_DoOneEvent
#define Tk_DoWhenIdle Tcl_DoWhenIdle
#define Tk_Sleep Tcl_Sleep
#define Tk_EventuallyFree Tcl_EventuallyFree
#define Tk_FreeProc Tcl_FreeProc
#define Tk_Preserve Tcl_Preserve
#define Tk_Release Tcl_Release
#define Tk_FileeventCmd Tcl_FileEventCmd
*--------------------------------------------------------------
* Additional procedure types defined by Tk.
*--------------------------------------------------------------
#define TK_EVENTTYPE_NONE 0
#define TK_EVENTTYPE_STRING 1
#define TK_EVENTTYPE_NUMBER 2
#define TK_EVENTTYPE_WINDOW 3
#define TK_EVENTTYPE_ATOM 4
#define TK_EVENTTYPE_DISPLAY 5
#define TK_EVENTTYPE_DATA 6
typedef int (Tk_ErrorProc
) _ANSI_ARGS_((ClientData clientData
,
XErrorEvent
*errEventPtr
));
typedef void (Tk_EventProc
) _ANSI_ARGS_((ClientData clientData
,
typedef int (Tk_GenericProc
) _ANSI_ARGS_((ClientData clientData
,
typedef int (Tk_GetSelProc
) _ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, char *portion
));
typedef int (Tk_GetXSelProc
) _ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, long *portion
, int numValues
,
int format
, Atom type
, Tk_Window tkwin
));
typedef void (Tk_LostSelProc
) _ANSI_ARGS_((ClientData clientData
));
typedef Tk_RestrictAction (Tk_RestrictProc
) _ANSI_ARGS_((
ClientData clientData
, XEvent
*eventPtr
));
typedef int (Tk_SelectionProc
) _ANSI_ARGS_((ClientData clientData
,
int offset
, char *buffer
, int maxBytes
));
typedef int (Tk_XSelectionProc
) _ANSI_ARGS_((ClientData clientData
,
int offset
, long *buffer
, int maxBytes
,
Atom type
, Tk_Window tkwin
));
char *name
; /* Name of command. */
int (*cmdProc
) _ANSI_ARGS_((ClientData clientData
, Tcl_Interp
*interp
,
int argc
, Tcl_Obj
**objv
));
*--------------------------------------------------------------
* Exported procedures and variables.
*--------------------------------------------------------------
EXTERN
char * Tk_EventInfo
_ANSI_ARGS_((int letter
, Tk_Window tkwin
, XEvent
*eventPtr
,
KeySym keySym
, int *numPtr
, int *isNum
, int *type
,
int num_size
, char *numStorage
));
EXTERN XColor
* Tk_3DBorderColor
_ANSI_ARGS_((Tk_3DBorder border
));
EXTERN GC Tk_3DBorderGC
_ANSI_ARGS_((Tk_Window tkwin
,
Tk_3DBorder border
, int which
));
EXTERN
void Tk_3DHorizontalBevel
_ANSI_ARGS_((Tk_Window tkwin
,
Drawable drawable
, Tk_3DBorder border
, int x
,
int y
, int width
, int height
, int leftIn
,
int rightIn
, int topBevel
, int relief
));
EXTERN
void Tk_3DVerticalBevel
_ANSI_ARGS_((Tk_Window tkwin
,
Drawable drawable
, Tk_3DBorder border
, int x
,
int y
, int width
, int height
, int leftBevel
,
EXTERN
void Tk_AddOption
_ANSI_ARGS_((Tk_Window tkwin
, char *name
,
char *value
, int priority
));
EXTERN
void Tk_BindEvent
_ANSI_ARGS_((Tk_BindingTable bindingTable
,
XEvent
*eventPtr
, Tk_Window tkwin
, int numObjects
,
EXTERN
int Tk_CanvasDashParseProc
_ANSI_ARGS_((
ClientData clientData
, Tcl_Interp
*interp
,
Tk_Window tkwin
, Arg value
, char *widgRec
,
EXTERN Arg Tk_CanvasDashPrintProc
_ANSI_ARGS_((
ClientData clientData
, Tk_Window tkwin
,
char *widgRec
, int offset
,
Tcl_FreeProc
**freeProcPtr
));
EXTERN
void Tk_CanvasDrawableCoords
_ANSI_ARGS_((Tk_Canvas canvas
,
double x
, double y
, short *drawableXPtr
,
EXTERN
void Tk_CanvasEventuallyRedraw
_ANSI_ARGS_((
Tk_Canvas canvas
, int x1
, int y1
, int x2
,
EXTERN
int Tk_CanvasGetCoord
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Canvas canvas
, char *string
,
EXTERN
int Tk_CanvasGetCoordFromObj
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Canvas canvas
, Tcl_Obj
*obj
,
EXTERN Tk_CanvasTextInfo
*Tk_CanvasGetTextInfo
_ANSI_ARGS_((Tk_Canvas canvas
));
EXTERN
int Tk_CanvasPsBitmap
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Canvas canvas
, Pixmap bitmap
, int x
, int y
,
EXTERN
int Tk_CanvasPsColor
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Canvas canvas
, XColor
*colorPtr
));
EXTERN
int Tk_CanvasPsFont
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Canvas canvas
, Tk_Font font
));
EXTERN
void Tk_CanvasPsPath
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Canvas canvas
, double *coordPtr
, int numPoints
));
EXTERN
int Tk_CanvasPsStipple
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Canvas canvas
, Pixmap bitmap
));
EXTERN
double Tk_CanvasPsY
_ANSI_ARGS_((Tk_Canvas canvas
, double y
));
EXTERN
void Tk_CanvasSetOffset
_ANSI_ARGS_((
Tk_Canvas canvas
, GC gc
, Tk_TSOffset
*offset
));
EXTERN
void Tk_CanvasSetStippleOrigin
_ANSI_ARGS_((
Tk_Canvas canvas
, GC gc
));
EXTERN
int Tk_CanvasTagsParseProc
_ANSI_ARGS_((
ClientData clientData
, Tcl_Interp
*interp
,
Tk_Window tkwin
, Arg value
, char *widgRec
,
EXTERN Arg Tk_CanvasTagsPrintProc
_ANSI_ARGS_((
ClientData clientData
, Tk_Window tkwin
,
char *widgRec
, int offset
,
Tcl_FreeProc
**freeProcPtr
));
EXTERN Tk_Window Tk_CanvasTkwin
_ANSI_ARGS_((Tk_Canvas canvas
));
EXTERN
void Tk_CanvasWindowCoords
_ANSI_ARGS_((Tk_Canvas canvas
,
double x
, double y
, short *screenXPtr
,
EXTERN
void Tk_ChangeWindowAttributes
_ANSI_ARGS_((Tk_Window tkwin
,
XSetWindowAttributes
*attsPtr
));
EXTERN
int Tk_CharBbox
_ANSI_ARGS_((Tk_TextLayout layout
,
int index
, int *xPtr
, int *yPtr
, int *widthPtr
,
EXTERN
void Tk_ClearSelection
_ANSI_ARGS_((Tk_Window tkwin
,
EXTERN
int Tk_ClipboardAppend
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window tkwin
, Atom target
, Atom format
,
EXTERN
int Tk_ClipboardClear
_ANSI_ARGS_((Tcl_Interp
*interp
,
EXTERN
int Tk_ConfigureInfo
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window tkwin
, Tk_ConfigSpec
*specs
,
char *widgRec
, char *argvName
, int flags
));
EXTERN
int Tk_ConfigureValue
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window tkwin
, Tk_ConfigSpec
*specs
,
char *widgRec
, char *argvName
, int flags
));
EXTERN
int Tk_ConfigureWidget
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window tkwin
, Tk_ConfigSpec
*specs
,
int argc
, Tcl_Obj
**objv
, char *widgRec
,
EXTERN
void Tk_ConfigureWindow
_ANSI_ARGS_((Tk_Window tkwin
,
unsigned int valueMask
, XWindowChanges
*valuePtr
));
EXTERN Tk_TextLayout Tk_ComputeTextLayout
_ANSI_ARGS_((Tk_Font font
,
CONST
char *string
, int numChars
, int wrapLength
,
Tk_Justify justify
, int flags
, int *widthPtr
,
EXTERN Tk_Window Tk_CoordsToWindow
_ANSI_ARGS_((int rootX
, int rootY
,
EXTERN
unsigned long Tk_CreateBinding
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_BindingTable bindingTable
, ClientData object
,
char *eventString
, Arg command
, int append
));
EXTERN Tk_BindingTable Tk_CreateBindingTable
_ANSI_ARGS_((Tcl_Interp
*interp
));
EXTERN Tk_ErrorHandler Tk_CreateErrorHandler
_ANSI_ARGS_((Display
*display
,
int errNum
, int request
, int minorCode
,
Tk_ErrorProc
*errorProc
, ClientData clientData
));
EXTERN
void Tk_CreateEventHandler
_ANSI_ARGS_((Tk_Window token
,
unsigned long mask
, Tk_EventProc
*proc
,
EXTERN
void Tk_CreatePhotoOption
_ANSI_ARGS_((Tcl_Interp
*interp
,
CONST
char *name
, Tcl_CmdProc
*proc
));
EXTERN
void Tk_CreateGenericHandler
_ANSI_ARGS_((
Tk_GenericProc
*proc
, ClientData clientData
));
EXTERN
void Tk_CreateImageType
_ANSI_ARGS_((
EXTERN
void Tk_CreateItemType
_ANSI_ARGS_((Tk_ItemType
*typePtr
));
EXTERN
void Tk_CreatePhotoImageFormat
_ANSI_ARGS_((
Tk_PhotoImageFormat
*formatPtr
));
EXTERN
void Tk_CreateSelHandler
_ANSI_ARGS_((Tk_Window tkwin
,
Atom selection
, Atom target
,
Tk_SelectionProc
*proc
, ClientData clientData
,
EXTERN
void Tk_CreateSmoothMethod
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_SmoothMethod
*method
));
EXTERN
void Tk_CreateCanvasVisitor
_ANSI_ARGS_((Tcl_Interp
*interp
,
CONST Tk_VisitorType
*typePtr
));
EXTERN
void Tk_CreateXSelHandler
_ANSI_ARGS_((Tk_Window tkwin
,
Atom selection
, Atom target
,
Tk_XSelectionProc
*proc
, ClientData clientData
,
EXTERN Tk_Window Tk_CreateWindow
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window parent
, char *name
, char *screenName
));
EXTERN Tk_Window Tk_CreateWindowFromPath
_ANSI_ARGS_((
Tcl_Interp
*interp
, Tk_Window tkwin
,
char *pathName
, char *screenName
));
EXTERN
int Tk_DefineBitmap
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Uid name
, char *source
, int width
,
EXTERN
void Tk_DefineCursor
_ANSI_ARGS_((Tk_Window window
,
EXTERN
void Tk_DeleteAllBindings
_ANSI_ARGS_((
Tk_BindingTable bindingTable
, ClientData object
));
EXTERN
int Tk_DeleteBinding
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_BindingTable bindingTable
, ClientData object
,
EXTERN
void Tk_DeleteBindingTable
_ANSI_ARGS_((
Tk_BindingTable bindingTable
));
EXTERN
void Tk_DeleteErrorHandler
_ANSI_ARGS_((
Tk_ErrorHandler handler
));
EXTERN
void Tk_DeleteEventHandler
_ANSI_ARGS_((Tk_Window token
,
unsigned long mask
, Tk_EventProc
*proc
,
EXTERN
void Tk_DeleteGenericHandler
_ANSI_ARGS_((
Tk_GenericProc
*proc
, ClientData clientData
));
EXTERN
void Tk_DeleteImage
_ANSI_ARGS_((Tcl_Interp
*interp
,
EXTERN
void Tk_DeleteSelHandler
_ANSI_ARGS_((Tk_Window tkwin
,
Atom selection
, Atom target
));
EXTERN
void Tk_DestroyWindow
_ANSI_ARGS_((Tk_Window tkwin
));
EXTERN
char * Tk_DisplayName
_ANSI_ARGS_((Tk_Window tkwin
));
EXTERN
void Tk_DitherPhoto
_ANSI_ARGS_((Tk_PhotoHandle handle
,
int x
, int y
, int width
, int height
));
EXTERN
int Tk_DistanceToTextLayout
_ANSI_ARGS_((
Tk_TextLayout layout
, int x
, int y
));
EXTERN
void Tk_Draw3DPolygon
_ANSI_ARGS_((Tk_Window tkwin
,
Drawable drawable
, Tk_3DBorder border
,
XPoint
*pointPtr
, int numPoints
, int borderWidth
,
EXTERN
void Tk_Draw3DRectangle
_ANSI_ARGS_((Tk_Window tkwin
,
Drawable drawable
, Tk_3DBorder border
, int x
,
int y
, int width
, int height
, int borderWidth
,
EXTERN
void Tk_DrawChars
_ANSI_ARGS_((Display
*display
,
Drawable drawable
, GC gc
, Tk_Font tkfont
,
CONST
char *source
, int numChars
, int x
,
EXTERN
void Tk_DrawFocusHighlight
_ANSI_ARGS_((Tk_Window tkwin
,
GC gc
, int width
, Drawable drawable
));
EXTERN
void Tk_DrawTextLayout
_ANSI_ARGS_((Display
*display
,
Drawable drawable
, GC gc
, Tk_TextLayout layout
,
int x
, int y
, int firstChar
, int lastChar
));
EXTERN
void Tk_Fill3DPolygon
_ANSI_ARGS_((Tk_Window tkwin
,
Drawable drawable
, Tk_3DBorder border
,
XPoint
*pointPtr
, int numPoints
, int borderWidth
,
EXTERN
void Tk_Fill3DRectangle
_ANSI_ARGS_((Tk_Window tkwin
,
Drawable drawable
, Tk_3DBorder border
, int x
,
int y
, int width
, int height
, int borderWidth
,
EXTERN Tk_PhotoHandle Tk_FindPhoto
_ANSI_ARGS_((Tcl_Interp
*interp
,
EXTERN Font Tk_FontId
_ANSI_ARGS_((Tk_Font font
));
EXTERN
void Tk_Free3DBorder
_ANSI_ARGS_((Tk_3DBorder border
));
EXTERN
void Tk_FreeBitmap
_ANSI_ARGS_((Display
*display
,
EXTERN
void Tk_FreeColor
_ANSI_ARGS_((XColor
*colorPtr
));
EXTERN
void Tk_FreeColormap
_ANSI_ARGS_((Display
*display
,
EXTERN
void Tk_FreeCursor
_ANSI_ARGS_((Display
*display
,
EXTERN
void Tk_FreeFont
_ANSI_ARGS_((Tk_Font
));
EXTERN
void Tk_FreeGC
_ANSI_ARGS_((Display
*display
, GC gc
));
EXTERN
void Tk_FreeImage
_ANSI_ARGS_((Tk_Image image
));
EXTERN
void Tk_FreeOptions
_ANSI_ARGS_((Tk_ConfigSpec
*specs
,
char *widgRec
, Display
*display
, int needFlags
));
EXTERN
void Tk_FreePixmap
_ANSI_ARGS_((Display
*display
,
EXTERN
void Tk_FreeTextLayout
_ANSI_ARGS_((
Tk_TextLayout textLayout
));
EXTERN
void Tk_FreeXId
_ANSI_ARGS_((Display
*display
, XID xid
));
EXTERN GC Tk_GCForColor
_ANSI_ARGS_((XColor
*colorPtr
,
EXTERN
void Tk_GeometryRequest
_ANSI_ARGS_((Tk_Window tkwin
,
int reqWidth
, int reqHeight
));
EXTERN Tk_3DBorder Tk_Get3DBorder
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window tkwin
, Tk_Uid colorName
));
EXTERN
void Tk_GetAllBindings
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_BindingTable bindingTable
, ClientData object
));
EXTERN
int Tk_GetAnchor
_ANSI_ARGS_((Tcl_Interp
*interp
,
char *string
, Tk_Anchor
*anchorPtr
));
EXTERN
char * Tk_GetAtomName
_ANSI_ARGS_((Tk_Window tkwin
,
EXTERN Arg Tk_GetBinding
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_BindingTable bindingTable
, ClientData object
,
EXTERN Pixmap Tk_GetBitmap
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window tkwin
, Tk_Uid string
));
EXTERN Pixmap Tk_GetBitmapFromData
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window tkwin
, char *source
,
EXTERN Tk_VisitorType
* Tk_GetCanvasVisitor
_ANSI_ARGS_((Tcl_Interp
*interp
,
EXTERN
int Tk_GetCapStyle
_ANSI_ARGS_((Tcl_Interp
*interp
,
char *string
, int *capPtr
));
EXTERN XColor
* Tk_GetColor
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window tkwin
, Tk_Uid name
));
EXTERN XColor
* Tk_GetColorByValue
_ANSI_ARGS_((Tk_Window tkwin
,
EXTERN Colormap Tk_GetColormap
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window tkwin
, char *string
));
EXTERN Tk_Cursor Tk_GetCursor
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window tkwin
, Arg arg
));
EXTERN Tk_Cursor Tk_GetCursorFromData
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window tkwin
, char *source
, char *mask
,
int width
, int height
, int xHot
, int yHot
,
EXTERN
int Tk_GetDoublePixels
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window tkwin
, CONST
char *string
,
EXTERN Tk_Font Tk_GetFont
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window tkwin
, CONST
char *string
));
EXTERN Tk_Font Tk_GetFontFromObj
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window tkwin
, Tcl_Obj
*objPtr
));
EXTERN
void Tk_GetFontMetrics
_ANSI_ARGS_((Tk_Font font
,
EXTERN GC Tk_GetGC
_ANSI_ARGS_((Tk_Window tkwin
,
unsigned long valueMask
, XGCValues
*valuePtr
));
EXTERN Tk_Image Tk_GetImage
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window tkwin
, char *name
,
Tk_ImageChangedProc
*changeProc
,
EXTERN ClientData Tk_GetImageMasterData
_ANSI_ARGS_ ((Tcl_Interp
*interp
,
char *name
, Tk_ImageType
**typePtrPtr
));
EXTERN Tk_ItemType
* Tk_GetItemTypes
_ANSI_ARGS_((void));
EXTERN
int Tk_GetJoinStyle
_ANSI_ARGS_((Tcl_Interp
*interp
,
char *string
, int *joinPtr
));
EXTERN
int Tk_GetJustify
_ANSI_ARGS_((Tcl_Interp
*interp
,
char *string
, Tk_Justify
*justifyPtr
));
EXTERN
int Tk_GetNumMainWindows
_ANSI_ARGS_((void));
EXTERN Tk_Uid Tk_GetOption
_ANSI_ARGS_((Tk_Window tkwin
, char *name
,
EXTERN
int Tk_GetPixels
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window tkwin
, char *string
, int *intPtr
));
EXTERN Pixmap Tk_GetPixmap
_ANSI_ARGS_((Display
*display
, Drawable d
,
int width
, int height
, int depth
));
EXTERN
int Tk_GetRelief
_ANSI_ARGS_((Tcl_Interp
*interp
,
char *name
, int *reliefPtr
));
EXTERN
void Tk_GetRootCoords
_ANSI_ARGS_ ((Tk_Window tkwin
,
EXTERN
int Tk_GetScrollInfo
_ANSI_ARGS_((Tcl_Interp
*interp
,
int argc
, Tcl_Obj
**objv
, double *dblPtr
,
EXTERN
int Tk_GetScreenMM
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window tkwin
, char *string
, double *doublePtr
));
EXTERN
int Tk_GetSelection
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window tkwin
, Atom selection
, Atom target
,
Tk_GetSelProc
*proc
, ClientData clientData
));
EXTERN
int Tk_GetXSelection
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window tkwin
, Atom selection
, Atom target
,
Tk_GetXSelProc
*proc
, ClientData clientData
));
EXTERN Tk_Uid Tk_GetUid
_ANSI_ARGS_((CONST
char *string
));
EXTERN Visual
* Tk_GetVisual
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window tkwin
, Arg arg
, int *depthPtr
,
EXTERN
void Tk_GetVRootGeometry
_ANSI_ARGS_((Tk_Window tkwin
,
int *xPtr
, int *yPtr
, int *widthPtr
,
EXTERN
int Tk_Grab
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window tkwin
, int grabGlobal
));
EXTERN
void Tk_HandleEvent
_ANSI_ARGS_((XEvent
*eventPtr
));
EXTERN Tk_Window Tk_IdToWindow
_ANSI_ARGS_((Display
*display
,
EXTERN
void Tk_ImageChanged
_ANSI_ARGS_((
Tk_ImageMaster master
, int x
, int y
,
int width
, int height
, int imageWidth
,
EXTERN
int Tk_Init
_ANSI_ARGS_((Tcl_Interp
*interp
));
EXTERN Atom Tk_InternAtom
_ANSI_ARGS_((Tk_Window tkwin
,
EXTERN
int Tk_IntersectTextLayout
_ANSI_ARGS_((
Tk_TextLayout layout
, int x
, int y
, int width
,
EXTERN
void Tk_Main
_ANSI_ARGS_((int argc
, Tcl_Obj
**objv
,
Tcl_AppInitProc
*appInitProc
));
EXTERN
void Tk_MainLoop
_ANSI_ARGS_((void));
EXTERN
void Tk_MaintainGeometry
_ANSI_ARGS_((Tk_Window slave
,
Tk_Window master
, int x
, int y
, int width
,
EXTERN Tk_Window Tk_MainWindow
_ANSI_ARGS_((Tcl_Interp
*interp
));
EXTERN
void Tk_MakeWindowExist
_ANSI_ARGS_((Tk_Window tkwin
));
EXTERN
void Tk_ManageGeometry
_ANSI_ARGS_((Tk_Window tkwin
,
Tk_GeomMgr
*mgrPtr
, ClientData clientData
));
EXTERN
void Tk_MapWindow
_ANSI_ARGS_((Tk_Window tkwin
));
EXTERN
int Tk_MeasureChars
_ANSI_ARGS_((Tk_Font tkfont
,
CONST
char *source
, int maxChars
, int maxPixels
,
int flags
, int *lengthPtr
));
EXTERN
void Tk_MoveResizeWindow
_ANSI_ARGS_((Tk_Window tkwin
,
int x
, int y
, int width
, int height
));
EXTERN
void Tk_MoveWindow
_ANSI_ARGS_((Tk_Window tkwin
, int x
,
EXTERN
void Tk_MoveToplevelWindow
_ANSI_ARGS_((Tk_Window tkwin
,
EXTERN
char * Tk_NameOf3DBorder
_ANSI_ARGS_((Tk_3DBorder border
));
EXTERN
char * Tk_NameOfAnchor
_ANSI_ARGS_((Tk_Anchor anchor
));
EXTERN
char * Tk_NameOfBitmap
_ANSI_ARGS_((Display
*display
,
EXTERN
char * Tk_NameOfCapStyle
_ANSI_ARGS_((int cap
));
EXTERN
char * Tk_NameOfColor
_ANSI_ARGS_((XColor
*colorPtr
));
EXTERN
char * Tk_NameOfCursor
_ANSI_ARGS_((Display
*display
,
EXTERN
char * Tk_NameOfFont
_ANSI_ARGS_((Tk_Font font
));
EXTERN
char * Tk_NameOfImage
_ANSI_ARGS_((
Tk_ImageMaster imageMaster
));
EXTERN
char * Tk_NameOfJoinStyle
_ANSI_ARGS_((int join
));
EXTERN
char * Tk_NameOfJustify
_ANSI_ARGS_((Tk_Justify justify
));
EXTERN
char * Tk_NameOfRelief
_ANSI_ARGS_((int relief
));
EXTERN Tk_Window Tk_NameToWindow
_ANSI_ARGS_((Tcl_Interp
*interp
,
char *pathName
, Tk_Window tkwin
));
EXTERN
void Tk_OwnSelection
_ANSI_ARGS_((Tk_Window tkwin
,
Atom selection
, Tk_LostSelProc
*proc
,
EXTERN
int Tk_ParseArgv
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window tkwin
, int *argcPtr
, Tcl_Obj
**objv
,
Tk_ArgvInfo
*argTable
, int flags
));
EXTERN
int Tk_OrientParseProc
_ANSI_ARGS_((
ClientData clientData
, Tcl_Interp
*interp
,
Tk_Window tkwin
, Arg value
,
char *widgRec
, int offset
));
EXTERN Arg Tk_OrientPrintProc
_ANSI_ARGS_((
ClientData clientData
, Tk_Window tkwin
,
char *widgRec
, int offset
,
Tcl_FreeProc
**freeProcPtr
));
EXTERN
void Tk_PhotoPutBlock
_ANSI_ARGS_((Tk_PhotoHandle handle
,
Tk_PhotoImageBlock
*blockPtr
, int x
, int y
,
EXTERN
void Tk_PhotoPutZoomedBlock
_ANSI_ARGS_((
Tk_PhotoImageBlock
*blockPtr
, int x
, int y
,
int width
, int height
, int zoomX
, int zoomY
,
int subsampleX
, int subsampleY
));
EXTERN
int Tk_PhotoGetImage
_ANSI_ARGS_((Tk_PhotoHandle handle
,
Tk_PhotoImageBlock
*blockPtr
));
EXTERN
void Tk_PhotoBlank
_ANSI_ARGS_((Tk_PhotoHandle handle
));
EXTERN
void Tk_PhotoExpand
_ANSI_ARGS_((Tk_PhotoHandle handle
,
int width
, int height
));
EXTERN
void Tk_PhotoGetSize
_ANSI_ARGS_((Tk_PhotoHandle handle
,
int *widthPtr
, int *heightPtr
));
EXTERN
void Tk_PhotoSetSize
_ANSI_ARGS_((Tk_PhotoHandle handle
,
EXTERN
int Tk_PointToChar
_ANSI_ARGS_((Tk_TextLayout layout
,
EXTERN
int Tk_PostscriptBitmap
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window tkwin
, Tk_PostscriptInfo psInfo
,
Pixmap bitmap
, int startX
, int startY
,
EXTERN
int Tk_PostscriptColor
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_PostscriptInfo psInfo
, XColor
*colorPtr
));
EXTERN
int Tk_PostscriptFontName
_ANSI_ARGS_((Tk_Font tkfont
,
EXTERN
int Tk_PostscriptFont
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_PostscriptInfo psInfo
, Tk_Font font
));
EXTERN
int Tk_PostscriptImage
_ANSI_ARGS_((Tk_Image image
,
Tcl_Interp
*interp
, Tk_Window tkwin
,
Tk_PostscriptInfo psinfo
, int x
, int y
,
int width
, int height
, int prepass
));
EXTERN
void Tk_PostscriptPath
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_PostscriptInfo psInfo
, double *coordPtr
,
EXTERN
int Tk_PostscriptStipple
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window tkwin
, Tk_PostscriptInfo psInfo
,
EXTERN
double Tk_PostscriptY
_ANSI_ARGS_((double y
,
Tk_PostscriptInfo psInfo
));
EXTERN
void Tk_PreserveColormap
_ANSI_ARGS_((Display
*display
,
EXTERN
void Tk_QueueWindowEvent
_ANSI_ARGS_((XEvent
*eventPtr
,
Tcl_QueuePosition position
));
EXTERN
void Tk_RedrawImage
_ANSI_ARGS_((Tk_Image image
, int imageX
,
int imageY
, int width
, int height
,
Drawable drawable
, int drawableX
, int drawableY
));
EXTERN
void Tk_ResizeWindow
_ANSI_ARGS_((Tk_Window tkwin
,
EXTERN
int Tk_RestackWindow
_ANSI_ARGS_((Tk_Window tkwin
,
int aboveBelow
, Tk_Window other
));
EXTERN Tk_RestrictProc
*Tk_RestrictEvents
_ANSI_ARGS_((Tk_RestrictProc
*proc
,
ClientData arg
, ClientData
*prevArgPtr
));
EXTERN
int Tk_SafeInit
_ANSI_ARGS_((Tcl_Interp
*interp
));
EXTERN
char * Tk_SetAppName
_ANSI_ARGS_((Tk_Window tkwin
,
EXTERN
void Tk_SetBackgroundFromBorder
_ANSI_ARGS_((
Tk_Window tkwin
, Tk_3DBorder border
));
EXTERN
void Tk_SetClass
_ANSI_ARGS_((Tk_Window tkwin
,
EXTERN
void Tk_SetGrid
_ANSI_ARGS_((Tk_Window tkwin
,
int reqWidth
, int reqHeight
, int gridWidth
,
EXTERN
void Tk_SetInternalBorder
_ANSI_ARGS_((Tk_Window tkwin
,
EXTERN
void Tk_SetWindowBackground
_ANSI_ARGS_((Tk_Window tkwin
,
EXTERN
void Tk_SetWindowBackgroundPixmap
_ANSI_ARGS_((
Tk_Window tkwin
, Pixmap pixmap
));
EXTERN
void Tk_SetWindowBorder
_ANSI_ARGS_((Tk_Window tkwin
,
EXTERN
void Tk_SetWindowBorderWidth
_ANSI_ARGS_((Tk_Window tkwin
,
EXTERN
void Tk_SetWindowBorderPixmap
_ANSI_ARGS_((Tk_Window tkwin
,
EXTERN
void Tk_SetWindowColormap
_ANSI_ARGS_((Tk_Window tkwin
,
EXTERN
int Tk_SetWindowVisual
_ANSI_ARGS_((Tk_Window tkwin
,
Visual
*visual
, int depth
,
EXTERN
void Tk_SizeOfBitmap
_ANSI_ARGS_((Display
*display
,
Pixmap bitmap
, int *widthPtr
,
EXTERN
void Tk_SizeOfImage
_ANSI_ARGS_((Tk_Image image
,
int *widthPtr
, int *heightPtr
));
EXTERN
int Tk_StateParseProc
_ANSI_ARGS_((
ClientData clientData
, Tcl_Interp
*interp
,
Tk_Window tkwin
, Arg value
,
char *widgRec
, int offset
));
EXTERN Arg Tk_StatePrintProc
_ANSI_ARGS_((
ClientData clientData
, Tk_Window tkwin
,
char *widgRec
, int offset
,
Tcl_FreeProc
**freeProcPtr
));
EXTERN
int Tk_StrictMotif
_ANSI_ARGS_((Tk_Window tkwin
));
EXTERN
void Tk_TextLayoutToPostscript
_ANSI_ARGS_((
Tcl_Interp
*interp
, Tk_TextLayout layout
));
EXTERN
int Tk_TextWidth
_ANSI_ARGS_((Tk_Font font
,
CONST
char *string
, int numChars
));
EXTERN
void Tk_UndefineCursor
_ANSI_ARGS_((Tk_Window window
));
EXTERN
void Tk_UnderlineChars
_ANSI_ARGS_((Display
*display
,
Drawable drawable
, GC gc
, Tk_Font tkfont
,
CONST
char *source
, int x
, int y
, int firstChar
,
EXTERN
void Tk_UnderlineTextLayout
_ANSI_ARGS_((
Display
*display
, Drawable drawable
, GC gc
,
Tk_TextLayout layout
, int x
, int y
,
EXTERN
void Tk_Ungrab
_ANSI_ARGS_((Tk_Window tkwin
));
EXTERN
void Tk_UnmaintainGeometry
_ANSI_ARGS_((Tk_Window slave
,
EXTERN
void Tk_UnmapWindow
_ANSI_ARGS_((Tk_Window tkwin
));
EXTERN
void Tk_UnsetGrid
_ANSI_ARGS_((Tk_Window tkwin
));
EXTERN Tk_Window Tk_EventWindow
_ANSI_ARGS_((XEvent
*eventPtr
));
EXTERN
void Tk_UpdatePointer
_ANSI_ARGS_((Tk_Window tkwin
,
int x
, int y
, int state
));
* Tcl commands exported by Tk:
EXTERN
int Tk_BellObjCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int objc
,
EXTERN
int Tk_BindCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_BindtagsCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_ButtonCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_CanvasObjCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
*CONST objv
[]));
EXTERN
int Tk_CheckbuttonCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_ClipboardCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_ChooseColorCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_DestroyCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_EntryCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_EventObjCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
*CONST objv
[]));
EXTERN
int Tk_FrameCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_FocusObjCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
*CONST objv
[]));
EXTERN
int Tk_FontObjCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int objc
,
EXTERN
int Tk_GetOpenFileCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_GetSaveFileCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_GrabCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_GridCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_ImageObjCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
*CONST objv
[]));
EXTERN
int Tk_LabelCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_ListboxCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_LowerCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_MenuCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_MenubuttonCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_MessageBoxCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_MessageCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_OptionCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_PackCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_PlaceCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_PropertyCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_RadiobuttonCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_RaiseCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_ScaleCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_ScrollbarCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_SelectionCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_SendCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_TextCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_TkObjCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int objc
,
EXTERN
int Tk_TkwaitCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_ToplevelCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_UpdateCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int Tk_WinfoObjCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int objc
,
EXTERN
int Tk_WmCmd
_ANSI_ARGS_((ClientData clientData
,
Tcl_Interp
*interp
, int argc
, Tcl_Obj
**objv
));
EXTERN
int TkTileParseProc
_ANSI_ARGS_((
ClientData clientData
, Tcl_Interp
*interp
,
Tk_Window tkwin
, Arg value
, char *widgRec
,
EXTERN Arg TkTilePrintProc
_ANSI_ARGS_((
ClientData clientData
, Tk_Window tkwin
,
char *widgRec
, int offset
,
Tcl_FreeProc
**freeProcPtr
));
EXTERN
int TkOffsetParseProc
_ANSI_ARGS_((
ClientData clientData
, Tcl_Interp
*interp
,
Tk_Window tkwin
, Arg value
, char *widgRec
,
EXTERN Arg TkOffsetPrintProc
_ANSI_ARGS_((
ClientData clientData
, Tk_Window tkwin
,
char *widgRec
, int offset
,
Tcl_FreeProc
**freeProcPtr
));
EXTERN
int TkStateParseProc
_ANSI_ARGS_((
ClientData clientData
, Tcl_Interp
*interp
,
Tk_Window tkwin
, Arg value
,
char *widgRec
, int offset
));
EXTERN Arg TkStatePrintProc
_ANSI_ARGS_((
ClientData clientData
, Tk_Window tkwin
,
char *widgRec
, int offset
,
Tcl_FreeProc
**freeProcPtr
));
EXTERN
int TkOrientParseProc
_ANSI_ARGS_((
ClientData clientData
, Tcl_Interp
*interp
,
Tk_Window tkwin
, Arg value
,
char *widgRec
, int offset
));
EXTERN Arg TkOrientPrintProc
_ANSI_ARGS_((
ClientData clientData
, Tk_Window tkwin
,
char *widgRec
, int offset
,
Tcl_FreeProc
**freeProcPtr
));
EXTERN
int TkPixelParseProc
_ANSI_ARGS_((
ClientData clientData
, Tcl_Interp
*interp
,
Tk_Window tkwin
, Arg value
,
char *widgRec
, int offset
));
EXTERN Arg TkPixelPrintProc
_ANSI_ARGS_((
ClientData clientData
, Tk_Window tkwin
,
char *widgRec
, int offset
,
Tcl_FreeProc
**freeProcPtr
));
EXTERN Tcl_Command Lang_CreateWidget
_ANSI_ARGS_((Tcl_Interp
*interp
,
Tk_Window
, Tcl_CmdProc
*proc
,
Tcl_CmdDeleteProc
*deleteProc
));
EXTERN Tcl_Command Lang_CreateImage
_ANSI_ARGS_((Tcl_Interp
*interp
,
char *cmdName
, Tcl_CmdProc
*proc
,
Tcl_CmdDeleteProc
*deleteProc
,
EXTERN
void Lang_DeleteWidget
_ANSI_ARGS_((Tcl_Interp
*interp
, Tcl_Command cmd
));
EXTERN
void Tk_ChangeScreen
_ANSI_ARGS_((Tcl_Interp
*interp
,
char *dispName
, int screenIndex
));
EXTERN Var LangFindVar
_ANSI_ARGS_((Tcl_Interp
* interp
, Tk_Window
, char *name
));
EXTERN Tcl_Obj
* LangWidgetObj
_ANSI_ARGS_((Tcl_Interp
*interp
, Tk_Window
));
EXTERN Tcl_Obj
* LangFontObj
_ANSI_ARGS_((Tcl_Interp
*interp
, Tk_Font font
, char *name
));
EXTERN Tcl_Obj
* LangObjectObj
_ANSI_ARGS_((Tcl_Interp
*interp
, char *));
#define LangWidgetArg(interp,win) LangObjArg(LangWidgetObj(interp,win),__FILE__,__LINE__)
#define LangFontArg(interp,font,name) LangObjArg(LangFontObj(interp,font,name),__FILE__,__LINE__)
#define LangObjectArg(interp,name) LangObjArg(LangObjectObj(interp,name),__FILE__,__LINE__)
EXTERN
void Lang_DeadMainWindow
_ANSI_ARGS_((Tcl_Interp
*, Tk_Window
));
EXTERN
void Lang_NewMainWindow
_ANSI_ARGS_((Tcl_Interp
*, Tk_Window
));
EXTERN
void LangDeadWindow
_ANSI_ARGS_((Tcl_Interp
*interp
, Tk_Window
));
EXTERN
void LangClientMessage
_ANSI_ARGS_((Tcl_Interp
*interp
,Tk_Window
, XEvent
*));
EXTERN
int LangEventCallback
_ANSI_ARGS_((ClientData
, Tcl_Interp
*,XEvent
*,Tk_Window
,KeySym
));
#endif /* RESOURCE_INCLUDED */
#define TCL_STORAGE_CLASS DLLIMPORT