📄 tkint.h
字号:
* focus (or that will get the focus the next * time the pointer enters any of the top-level * windows associated with this main window). * NULL means nobody has the focus. * Managed by tkFocus.c. */ struct TkWindow *focusDefaultPtr; /* Window that is to receive the focus by * default when the focusPtr window is * deleted. */ struct ElArray *optionRootPtr; /* Top level of option hierarchy for this * main window. NULL means uninitialized. * Managed by tkOption.c. */ struct TkMainInfo *nextPtr; /* Next in list of all main windows managed by * this process. */} TkMainInfo;/* * 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_ClientWindow 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. */ struct TkWindow *lastChildPtr; /* Last in list of child windows, or NULL * if no children. */ struct TkWindow *parentPtr; /* Pointer to parent window (logical * parent, not necessarily X parent), or * NULL if this is a main window. */ struct TkWindow *nextPtr; /* Next in list of children with * same parent (NULL if 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, there * should never be any rogues). */ /* * 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 or NULL if mainPtr * is NULL. */ 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. */ /* * Information related to input focussing (tkFocus.c): */ Tk_FocusProc *focusProc; /* Procedure to invoke when this window * gets or loses the input focus. NULL * means this window is not prepared to * receive the focus. */ ClientData focusData; /* Arbitrary value to pass to focusProc. */ /* * 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. */ TkSelHandler *selHandlerList; /* First in list of handlers for * returning the selection in various * forms. */ Tk_LostSelProc *selClearProc; ClientData selClearData; /* Info to pass to selClearProc. */ /* * Information used by tkGeometry.c for geometry management. */ Tk_GeometryProc *geomProc; /* Procedure to handle geometry * requests (NULL means no window is * unmanaged). */ ClientData geomData; /* Argument for geomProc. */ 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). Geom. * mgr. should not place children on top * of the border. */ /* * Information maintained by tkWm.c for window manager communication. */ struct TkWmInfo *wmInfoPtr; /* For top-level windows, points to * structure with wm-related info (see * tkWm.c). For other windows, this * is NULL. */} TkWindow;/* * The context below is used to map from an X window id to * the TkWindow structure associated with the window. */extern XContext tkWindowContext;/* * Pointer to first entry in list of all displays currently known. */extern TkDisplay *tkDisplayList;/* * Flags passed to TkMeasureChars: */#define TK_WHOLE_WORDS 1#define TK_AT_LEAST_ONE 2#define TK_PARTIAL_OK 4#define TK_NEWLINES_NOT_SPECIAL 8/* * Location of library directory containing Tk scripts. This value * is put in the $tkLibrary variable for each application. */#ifndef TK_LIBRARY#define TK_LIBRARY "/usr/local/lib/tk"#endif/* * Special flag to pass to Tk_CreateFileHandler to indicate that * the file descriptor is actually for a display, not a file, and * should be treated specially. Make sure that this value doesn't * conflict with TK_READABLE, TK_WRITABLE, or TK_EXCEPTION from tk.h. */#define TK_IS_DISPLAY 32/* * 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. */#define UCHAR(c) ((unsigned char) (c))/* * SPECIAL HACK!!! I've started changing Tk over to use * Tcl_PrintDouble instead of sprintf(... %g ...), but the change * is not backwards-compatible. So, until the next incompatible * release of Tk, the following macro replaces the Tcl_PrintDouble * calls with sprintf again. */#define Tcl_PrintDouble(interp, value, dst) \ sprintf(dst, "%g", value)/* * Miscellaneous variables shared among Tk modules but not exported * to the outside world: */extern Tk_Uid tkActiveUid;extern Tk_Uid tkDisabledUid;extern TkMainInfo *tkMainWindowList;extern Tk_Uid tkNormalUid;/* * Internal procedures shared among Tk modules but not exported * to the outside world: */extern int TkAreaToPolygon _ANSI_ARGS_((double *polyPtr, int numPoints, double *rectPtr));extern void TkBezierPoints _ANSI_ARGS_((double control[], int numSteps, double *coordPtr));extern void TkBindEventProc _ANSI_ARGS_((TkWindow *winPtr, XEvent *eventPtr));extern int TkCopyAndGlobalEval _ANSI_ARGS_((Tcl_Interp *interp, char *script));extern Time TkCurrentTime _ANSI_ARGS_((TkDisplay *dispPtr));extern int TkDeadAppCmd _ANSI_ARGS_((ClientData clientData, Tcl_Interp *interp, int argc, char **argv));extern void TkDisplayChars _ANSI_ARGS_((Display *display, Drawable drawable, GC gc, XFontStruct *fontStructPtr, char *string, int numChars, int x, int y, int flags));extern void TkEventDeadWindow _ANSI_ARGS_((TkWindow *winPtr));extern void TkFocusDeadWindow _ANSI_ARGS_((TkWindow *winPtr));extern int TkFocusFilterEvent _ANSI_ARGS_((TkWindow *winPtr, XEvent *eventPtr));extern void TkGetButtPoints _ANSI_ARGS_((double p1[], double p2[], double width, int project, double m1[], double m2[]));extern int TkGetInterpNames _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin));extern int TkGetMiterPoints _ANSI_ARGS_((double p1[], double p2[], double p3[], double width, double m1[], double m2[]));extern void TkGrabDeadWindow _ANSI_ARGS_((TkWindow *winPtr));extern void TkGrabTriggerProc _ANSI_ARGS_((XEvent *eventPtr));extern int TkInitFrame _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, int toplevel, int argc, char *argv[]));extern int TkLineToArea _ANSI_ARGS_((double end1Ptr[2], double end2Ptr[2], double rectPtr[4]));extern double TkLineToPoint _ANSI_ARGS_((double end1Ptr[2], double end2Ptr[2], double pointPtr[2]));extern void TkMakeBezierPostscript _ANSI_ARGS_((Tcl_Interp *interp, double *pointPtr, int numPoints, Tk_PostscriptInfo *psInfoPtr));extern int TkMeasureChars _ANSI_ARGS_((XFontStruct *fontStructPtr, char *source, int maxChars, int startX, int maxX, int flags, int *nextXPtr));extern void TkOptionDeadWindow _ANSI_ARGS_((TkWindow *winPtr));extern int TkOvalToArea _ANSI_ARGS_((double *ovalPtr, double *rectPtr));extern double TkOvalToPoint _ANSI_ARGS_((double ovalPtr[4], double width, int filled, double pointPtr[2]));extern int TkPointerEvent _ANSI_ARGS_((XEvent *eventPtr, TkWindow *winPtr));extern int TkPolygonToArea _ANSI_ARGS_((double *polyPtr, int numPoints, double *rectPtr));extern double TkPolygonToPoint _ANSI_ARGS_((double *polyPtr, int numPoints, double *pointPtr));extern void TkQueueEvent _ANSI_ARGS_((TkDisplay *dispPtr, XEvent *eventPtr));extern void TkSelDeadWindow _ANSI_ARGS_((TkWindow *winPtr));extern void TkSelEventProc _ANSI_ARGS_((Tk_Window tkwin, XEvent *eventPtr));extern void TkSelPropProc _ANSI_ARGS_((XEvent *eventPtr));extern void TkUnderlineChars _ANSI_ARGS_((Display *display, Drawable drawable, GC gc, XFontStruct *fontStructPtr, char *string, int x, int y, int flags, int firstChar, int lastChar));extern void TkWmDeadWindow _ANSI_ARGS_((TkWindow *winPtr));extern void TkWmMapWindow _ANSI_ARGS_((TkWindow *winPtr));extern void TkWmNewWindow _ANSI_ARGS_((TkWindow *winPtr));extern void TkWmProtocolEventProc _ANSI_ARGS_((TkWindow *winPtr, XEvent *evenvPtr));extern void TkWmRestackToplevel _ANSI_ARGS_((TkWindow *winPtr, int aboveBelow, TkWindow *otherPtr));extern void TkWmSetClass _ANSI_ARGS_((TkWindow *winPtr));extern void TkWmUnmapWindow _ANSI_ARGS_((TkWindow *winPtr));#endif /* _TKINT */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -