📄 tktext.h
字号:
int insertWidth; /* Total width of insert cursor. */ int insertBorderWidth; /* Width of 3-D border around insert cursor. */ int insertOnTime; /* Number of milliseconds cursor should spend * in "on" state for each blink. */ int insertOffTime; /* Number of milliseconds cursor should spend * in "off" state for each blink. */ Tcl_TimerToken insertBlinkHandler; /* Timer handler used to blink cursor on and * off. */ /* * Information used for event bindings associated with tags: */ Tk_BindingTable bindingTable; /* Table of all bindings currently defined * for this widget. NULL means that no * bindings exist, so the table hasn't been * created. Each "object" used for this * table is the address of a tag. */ TkTextSegment *currentMarkPtr; /* Pointer to segment for "current" mark, * or NULL if none. */ XEvent pickEvent; /* The event from which the current character * was chosen. Must be saved so that we * can repick after modifications to the * text. */ int numCurTags; /* Number of tags associated with character * at current mark. */ TkTextTag **curTagArrayPtr; /* Pointer to array of tags for current * mark, or NULL if none. */ /* * Miscellaneous additional information: */ char *takeFocus; /* Value of -takeFocus option; not used in * the C code, but used by keyboard traversal * scripts. Malloc'ed, but may be NULL. */ char *xScrollCmd; /* Prefix of command to issue to update * horizontal scrollbar when view changes. */ char *yScrollCmd; /* Prefix of command to issue to update * vertical scrollbar when view changes. */ int flags; /* Miscellaneous flags; see below for * definitions. */} TkText;/* * Flag values for TkText records: * * GOT_SELECTION: Non-zero means we've already claimed the * selection. * INSERT_ON: Non-zero means insertion cursor should be * displayed on screen. * GOT_FOCUS: Non-zero means this window has the input * focus. * BUTTON_DOWN: 1 means that a mouse button is currently * down; this is used to implement grabs * for the duration of button presses. * UPDATE_SCROLLBARS: Non-zero means scrollbar(s) should be updated * during next redisplay operation. */#define GOT_SELECTION 1#define INSERT_ON 2#define GOT_FOCUS 4#define BUTTON_DOWN 8#define UPDATE_SCROLLBARS 0x10#define NEED_REPICK 0x20/* * Records of the following type define segment types in terms of * a collection of procedures that may be called to manipulate * segments of that type. */typedef TkTextSegment * Tk_SegSplitProc _ANSI_ARGS_(( struct TkTextSegment *segPtr, int index));typedef int Tk_SegDeleteProc _ANSI_ARGS_(( struct TkTextSegment *segPtr, TkTextLine *linePtr, int treeGone));typedef TkTextSegment * Tk_SegCleanupProc _ANSI_ARGS_(( struct TkTextSegment *segPtr, TkTextLine *linePtr));typedef void Tk_SegLineChangeProc _ANSI_ARGS_(( struct TkTextSegment *segPtr, TkTextLine *linePtr));typedef int Tk_SegLayoutProc _ANSI_ARGS_((struct TkText *textPtr, struct TkTextIndex *indexPtr, TkTextSegment *segPtr, int offset, int maxX, int maxChars, int noCharsYet, Tk_Uid wrapMode, struct TkTextDispChunk *chunkPtr));typedef void Tk_SegCheckProc _ANSI_ARGS_((TkTextSegment *segPtr, TkTextLine *linePtr));typedef struct Tk_SegType { char *name; /* Name of this kind of segment. */ int leftGravity; /* If a segment has zero size (e.g. a * mark or tag toggle), does it * attach to character to its left * or right? 1 means left, 0 means * right. */ Tk_SegSplitProc *splitProc; /* Procedure to split large segment * into two smaller ones. */ Tk_SegDeleteProc *deleteProc; /* Procedure to call to delete * segment. */ Tk_SegCleanupProc *cleanupProc; /* After any change to a line, this * procedure is invoked for all * segments left in the line to * perform any cleanup they wish * (e.g. joining neighboring * segments). */ Tk_SegLineChangeProc *lineChangeProc; /* Invoked when a segment is about * to be moved from its current line * to an earlier line because of * a deletion. The linePtr is that * for the segment's old line. * CleanupProc will be invoked after * the deletion is finished. */ Tk_SegLayoutProc *layoutProc; /* Returns size information when * figuring out what to display in * window. */ Tk_SegCheckProc *checkProc; /* Called during consistency checks * to check internal consistency of * segment. */} Tk_SegType;/* * The constant below is used to specify a line when what is really * wanted is the entire text. For now, just use a very big number. */#define TK_END_OF_TEXT 1000000/* * The following definition specifies the maximum number of characters * needed in a string to hold a position specifier. */#define TK_POS_CHARS 30/* * Declarations for variables shared among the text-related files: */extern int tkBTreeDebug;extern int tkTextDebug;extern Tk_SegType tkTextCharType;extern Tk_Uid tkTextCharUid;extern Tk_Uid tkTextDisabledUid;extern Tk_SegType tkTextLeftMarkType;extern Tk_Uid tkTextNoneUid;extern Tk_Uid tkTextNormalUid;extern Tk_SegType tkTextRightMarkType;extern Tk_SegType tkTextToggleOnType;extern Tk_SegType tkTextToggleOffType;extern Tk_Uid tkTextWordUid;/* * Declarations for procedures that are used by the text-related files * but shouldn't be used anywhere else in Tk (or by Tk clients): */extern int TkBTreeCharTagged _ANSI_ARGS_((TkTextIndex *indexPtr, TkTextTag *tagPtr));extern void TkBTreeCheck _ANSI_ARGS_((TkTextBTree tree));extern int TkBTreeCharsInLine _ANSI_ARGS_((TkTextLine *linePtr));extern TkTextBTree TkBTreeCreate _ANSI_ARGS_((TkText *textPtr));extern void TkBTreeDestroy _ANSI_ARGS_((TkTextBTree tree));extern void TkBTreeDeleteChars _ANSI_ARGS_((TkTextIndex *index1Ptr, TkTextIndex *index2Ptr));extern TkTextLine * TkBTreeFindLine _ANSI_ARGS_((TkTextBTree tree, int line));extern TkTextTag ** TkBTreeGetTags _ANSI_ARGS_((TkTextIndex *indexPtr, int *numTagsPtr));extern void TkBTreeInsertChars _ANSI_ARGS_((TkTextIndex *indexPtr, char *string));extern int TkBTreeLineIndex _ANSI_ARGS_((TkTextLine *linePtr));extern void TkBTreeLinkSegment _ANSI_ARGS_((TkTextSegment *segPtr, TkTextIndex *indexPtr));extern TkTextLine * TkBTreeNextLine _ANSI_ARGS_((TkTextLine *linePtr));extern int TkBTreeNextTag _ANSI_ARGS_((TkTextSearch *searchPtr));extern int TkBTreeNumLines _ANSI_ARGS_((TkTextBTree tree));extern TkTextLine * TkBTreePreviousLine _ANSI_ARGS_((TkTextLine *linePtr));extern int TkBTreePrevTag _ANSI_ARGS_((TkTextSearch *searchPtr));extern void TkBTreeStartSearch _ANSI_ARGS_((TkTextIndex *index1Ptr, TkTextIndex *index2Ptr, TkTextTag *tagPtr, TkTextSearch *searchPtr));extern void TkBTreeStartSearchBack _ANSI_ARGS_((TkTextIndex *index1Ptr, TkTextIndex *index2Ptr, TkTextTag *tagPtr, TkTextSearch *searchPtr));extern void TkBTreeTag _ANSI_ARGS_((TkTextIndex *index1Ptr, TkTextIndex *index2Ptr, TkTextTag *tagPtr, int add));extern void TkBTreeUnlinkSegment _ANSI_ARGS_((TkTextBTree tree, TkTextSegment *segPtr, TkTextLine *linePtr));extern void TkTextBindProc _ANSI_ARGS_((ClientData clientData, XEvent *eventPtr));extern void TkTextChanged _ANSI_ARGS_((TkText *textPtr, TkTextIndex *index1Ptr, TkTextIndex *index2Ptr));extern int TkTextCharBbox _ANSI_ARGS_((TkText *textPtr, TkTextIndex *indexPtr, int *xPtr, int *yPtr, int *widthPtr, int *heightPtr));extern int TkTextCharLayoutProc _ANSI_ARGS_((TkText *textPtr, TkTextIndex *indexPtr, TkTextSegment *segPtr, int offset, int maxX, int maxChars, int noBreakYet, Tk_Uid wrapMode, TkTextDispChunk *chunkPtr));extern void TkTextCreateDInfo _ANSI_ARGS_((TkText *textPtr));extern int TkTextDLineInfo _ANSI_ARGS_((TkText *textPtr, TkTextIndex *indexPtr, int *xPtr, int *yPtr, int *widthPtr, int *heightPtr, int *basePtr));extern TkTextTag * TkTextCreateTag _ANSI_ARGS_((TkText *textPtr, char *tagName));extern void TkTextFreeDInfo _ANSI_ARGS_((TkText *textPtr));extern void TkTextFreeTag _ANSI_ARGS_((TkText *textPtr, TkTextTag *tagPtr));extern int TkTextGetIndex _ANSI_ARGS_((Tcl_Interp *interp, TkText *textPtr, char *string, TkTextIndex *indexPtr));extern TkTextTabArray * TkTextGetTabs _ANSI_ARGS_((Tcl_Interp *interp, Tk_Window tkwin, char *string));extern void TkTextIndexBackChars _ANSI_ARGS_((TkTextIndex *srcPtr, int count, TkTextIndex *dstPtr));extern int TkTextIndexCmp _ANSI_ARGS_((TkTextIndex *index1Ptr, TkTextIndex *index2Ptr));extern void TkTextIndexForwChars _ANSI_ARGS_((TkTextIndex *srcPtr, int count, TkTextIndex *dstPtr));extern TkTextSegment * TkTextIndexToSeg _ANSI_ARGS_((TkTextIndex *indexPtr, int *offsetPtr));extern void TkTextInsertDisplayProc _ANSI_ARGS_(( TkTextDispChunk *chunkPtr, int x, int y, int height, int baseline, Display *display, Drawable dst, int screenY));extern void TkTextLostSelection _ANSI_ARGS_(( ClientData clientData));extern TkTextIndex * TkTextMakeIndex _ANSI_ARGS_((TkTextBTree tree, int lineIndex, int charIndex, TkTextIndex *indexPtr));extern int TkTextMarkCmd _ANSI_ARGS_((TkText *textPtr, Tcl_Interp *interp, int argc, char **argv));extern int TkTextMarkNameToIndex _ANSI_ARGS_((TkText *textPtr, char *name, TkTextIndex *indexPtr));extern void TkTextMarkSegToIndex _ANSI_ARGS_((TkText *textPtr, TkTextSegment *markPtr, TkTextIndex *indexPtr));extern void TkTextEventuallyRepick _ANSI_ARGS_((TkText *textPtr));extern void TkTextPickCurrent _ANSI_ARGS_((TkText *textPtr, XEvent *eventPtr));extern void TkTextPixelIndex _ANSI_ARGS_((TkText *textPtr, int x, int y, TkTextIndex *indexPtr));extern void TkTextPrintIndex _ANSI_ARGS_((TkTextIndex *indexPtr, char *string));extern void TkTextRedrawRegion _ANSI_ARGS_((TkText *textPtr, int x, int y, int width, int height));extern void TkTextRedrawTag _ANSI_ARGS_((TkText *textPtr, TkTextIndex *index1Ptr, TkTextIndex *index2Ptr, TkTextTag *tagPtr, int withTag));extern void TkTextRelayoutWindow _ANSI_ARGS_((TkText *textPtr));extern int TkTextScanCmd _ANSI_ARGS_((TkText *textPtr, Tcl_Interp *interp, int argc, char **argv));extern int TkTextSeeCmd _ANSI_ARGS_((TkText *textPtr, Tcl_Interp *interp, int argc, char **argv));extern int TkTextSegToOffset _ANSI_ARGS_((TkTextSegment *segPtr, TkTextLine *linePtr));extern TkTextSegment * TkTextSetMark _ANSI_ARGS_((TkText *textPtr, char *name, TkTextIndex *indexPtr));extern void TkTextSetYView _ANSI_ARGS_((TkText *textPtr, TkTextIndex *indexPtr, int pickPlace));extern int TkTextTagCmd _ANSI_ARGS_((TkText *textPtr, Tcl_Interp *interp, int argc, char **argv));extern int TkTextImageCmd _ANSI_ARGS_((TkText *textPtr, Tcl_Interp *interp, int argc, char **argv));extern int TkTextImageIndex _ANSI_ARGS_((TkText *textPtr, char *name, TkTextIndex *indexPtr));extern int TkTextWindowCmd _ANSI_ARGS_((TkText *textPtr, Tcl_Interp *interp, int argc, char **argv));extern int TkTextWindowIndex _ANSI_ARGS_((TkText *textPtr, char *name, TkTextIndex *indexPtr));extern int TkTextXviewCmd _ANSI_ARGS_((TkText *textPtr, Tcl_Interp *interp, int argc, char **argv));extern int TkTextYviewCmd _ANSI_ARGS_((TkText *textPtr, Tcl_Interp *interp, int argc, char **argv));#endif /* _TKTEXT */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -