📄 tkint.h
字号:
*/} TkDisplay;/* * One of the following structures exists for each error handler * created by a call to Tk_CreateErrorHandler. The structure * is managed by tkError.c. */typedef struct TkErrorHandler { TkDisplay *dispPtr; /* Display to which handler applies. */ unsigned long firstRequest; /* Only errors with serial numbers * >= to this are considered. */ unsigned long lastRequest; /* Only errors with serial numbers * <= to this are considered. This * field is filled in when XUnhandle * is called. -1 means XUnhandle * hasn't been called yet. */ int error; /* Consider only errors with this * error_code (-1 means consider * all errors). */ int request; /* Consider only errors with this * major request code (-1 means * consider all major codes). */ int minorCode; /* Consider only errors with this * minor request code (-1 means * consider all minor codes). */ Tk_ErrorProc *errorProc; /* Procedure to invoke when a matching * error occurs. NULL means just ignore * errors. */ ClientData clientData; /* Arbitrary value to pass to * errorProc. */ struct TkErrorHandler *nextPtr; /* Pointer to next older handler for * this display, or NULL for end of * list. */} TkErrorHandler;/* * One of the following structures exists for each event handler * created by calling Tk_CreateEventHandler. This information * is used by tkEvent.c only. */typedef struct TkEventHandler { unsigned long mask; /* Events for which to invoke * proc. */ Tk_EventProc *proc; /* Procedure to invoke when an event * in mask occurs. */ ClientData clientData; /* Argument to pass to proc. */ struct TkEventHandler *nextPtr; /* Next in list of handlers * associated with window (NULL means * end of list). */} TkEventHandler;/* * Tk keeps one of the following data structures for each main * window (created by a call to Tk_CreateMainWindow). It stores * information that is shared by all of the windows associated * with a particular main window. */typedef struct TkMainInfo { int refCount; /* Number of windows whose "mainPtr" fields * point here. When this becomes zero, can * free up the structure (the reference * count is zero because windows can get * deleted in almost any order; the main * window isn't necessarily the last one * deleted). */ struct TkWindow *winPtr; /* Pointer to main window. */ Tcl_Interp *interp; /* Interpreter associated with application. */ Tcl_HashTable nameTable; /* Hash table mapping path names to TkWindow * structs for all windows related to this * main window. Managed by tkWindow.c. */ Tk_BindingTable bindingTable; /* Used in conjunction with "bind" command * to bind events to Tcl commands. */ TkBindInfo bindInfo; /* Information used by tkBind.c on a per * interpreter basis. */ struct TkFontInfo *fontInfoPtr; /* Hold named font tables. Used only by * tkFont.c. */ /* * Information used only by tkFocus.c and tk*Embed.c: */ struct TkToplevelFocusInfo *tlFocusPtr; /* First in list of records containing focus * information for each top-level in the * application. Used only by tkFocus.c. */ struct TkDisplayFocusInfo *displayFocusPtr; /* First in list of records containing focus * information for each display that this * application has ever used. Used only * by tkFocus.c. */ struct ElArray *optionRootPtr; /* Top level of option hierarchy for this * main window. NULL means uninitialized. * Managed by tkOption.c. */ Tcl_HashTable imageTable; /* Maps from image names to Tk_ImageMaster * structures. Managed by tkImage.c. */ int strictMotif; /* This is linked to the tk_strictMotif * global variable. */ struct TkMainInfo *nextPtr; /* Next in list of all main windows managed by * this process. */} TkMainInfo;/* * Tk keeps the following data structure for each of it's builtin * bitmaps. This structure is only used by tkBitmap.c and other * platform specific bitmap files. */typedef struct { char *source; /* Bits for bitmap. */ int width, height; /* Dimensions of bitmap. */ int native; /* 0 means generic (X style) bitmap, * 1 means native style bitmap. */} TkPredefBitmap;/* * Tk keeps one of the following structures for each window. * Some of the information (like size and location) is a shadow * of information managed by the X server, and some is special * information used here, such as event and geometry management * information. This information is (mostly) managed by tkWindow.c. * WARNING: the declaration below must be kept consistent with the * Tk_FakeWin structure in tk.h. If you change one, be sure to * change the other!! */typedef struct TkWindow { /* * Structural information: */ Display *display; /* Display containing window. */ TkDisplay *dispPtr; /* Tk's information about display * for window. */ int screenNum; /* Index of screen for window, among all * those for dispPtr. */ Visual *visual; /* Visual to use for window. If not default, * MUST be set before X window is created. */ int depth; /* Number of bits/pixel. */ Window window; /* X's id for window. NULL means window * hasn't actually been created yet, or it's * been deleted. */ struct TkWindow *childList; /* First in list of child windows, * or NULL if no children. List is in * stacking order, lowest window first.*/ struct TkWindow *lastChildPtr; /* Last in list of child windows (highest * in stacking order), or NULL if no * children. */ struct TkWindow *parentPtr; /* Pointer to parent window (logical * parent, not necessarily X parent). NULL * means either this is the main window, or * the window's parent has already been * deleted. */ struct TkWindow *nextPtr; /* Next higher sibling (in stacking order) * in list of children with same parent. NULL * means end of list. */ TkMainInfo *mainPtr; /* Information shared by all windows * associated with a particular main * window. NULL means this window is * a rogue that isn't associated with * any application (at present, this * only happens for the dummy windows * used for "send" communication). */ /* * Name and type information for the window: */ char *pathName; /* Path name of window (concatenation * of all names between this window and * its top-level ancestor). This is a * pointer into an entry in * mainPtr->nameTable. NULL means that * the window hasn't been completely * created yet. */ Tk_Uid nameUid; /* Name of the window within its parent * (unique within the parent). */ Tk_Uid classUid; /* Class of the window. NULL means window * hasn't been given a class yet. */ /* * Geometry and other attributes of window. This information * may not be updated on the server immediately; stuff that * hasn't been reflected in the server yet is called "dirty". * At present, information can be dirty only if the window * hasn't yet been created. */ XWindowChanges changes; /* Geometry and other info about * window. */ unsigned int dirtyChanges; /* Bits indicate fields of "changes" * that are dirty. */ XSetWindowAttributes atts; /* Current attributes of window. */ unsigned long dirtyAtts; /* Bits indicate fields of "atts" * that are dirty. */ unsigned int flags; /* Various flag values: these are all * defined in tk.h (confusing, but they're * needed there for some query macros). */ /* * Information kept by the event manager (tkEvent.c): */ TkEventHandler *handlerList;/* First in list of event handlers * declared for this window, or * NULL if none. */#ifdef TK_USE_INPUT_METHODS XIC inputContext; /* Input context (for input methods). */#endif /* TK_USE_INPUT_METHODS */ /* * Information used for event bindings (see "bind" and "bindtags" * commands in tkCmds.c): */ ClientData *tagPtr; /* Points to array of tags used for bindings * on this window. Each tag is a Tk_Uid. * Malloc'ed. NULL means no tags. */ int numTags; /* Number of tags at *tagPtr. */ /* * Information used by tkOption.c to manage options for the * window. */ int optionLevel; /* -1 means no option information is * currently cached for this window. * Otherwise this gives the level in * the option stack at which info is * cached. */ /* * Information used by tkSelect.c to manage the selection. */ struct TkSelHandler *selHandlerList; /* First in list of handlers for * returning the selection in various * forms. */ /* * Information used by tkGeometry.c for geometry management. */ Tk_GeomMgr *geomMgrPtr; /* Information about geometry manager for * this window. */ ClientData geomData; /* Argument for geometry manager procedures. */ int reqWidth, reqHeight; /* Arguments from last call to * Tk_GeometryRequest, or 0's if * Tk_GeometryRequest hasn't been * called. */ int internalBorderWidth; /* Width of internal border of window * (0 means no internal border). Geometry * managers should not normally place children * on top of the border. */ /* * Information maintained by tkWm.c for window manager communication. */ struct TkWmInfo *wmInfoPtr; /* For top-level windows (and also * for special Unix menubar and wrapper * windows), points to structure with * wm-related info (see tkWm.c). For * other windows, this is NULL. */ /* * Information used by widget classes. */ TkClassProcs *classProcsPtr; ClientData instanceData; /* * Platform specific information private to each port. */ struct TkWindowPrivate *privatePtr;} TkWindow;/* * The following structure is used as a two way map between integers * and strings, usually to map between an internal C representation * and the strings used in Tcl. */typedef struct TkStateMap { int numKey; /* Integer representation of a value. */ char *strKey; /* String representation of a value. */} TkStateMap;/* * This structure is used by the Mac and Window porting layers as * the internal representation of a clip_mask in a GC. */typedef struct TkpClipMask { int type; /* One of TKP_CLIP_PIXMAP or TKP_CLIP_REGION */ union { Pixmap pixmap; TkRegion region; } value;} TkpClipMask;#define TKP_CLIP_PIXMAP 0#define TKP_CLIP_REGION 1/* * Pointer to first entry in list of all displays currently known. */extern TkDisplay *tkDisplayList;/* * Return values from TkGrabState: */#define TK_GRAB_NONE 0#define TK_GRAB_IN_TREE 1#define TK_GRAB_ANCESTOR 2#define TK_GRAB_EXCLUDED 3/* * The macro below is used to modify a "char" value (e.g. by casting * it to an unsigned character) so that it can be used safely with * macros such as isspace.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -