📄 tkscrollbar.h
字号:
/* * tkScrollbar.h -- * * Declarations of types and functions used to implement * the scrollbar widget. * * Copyright (c) 1996 by Sun Microsystems, Inc. * * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * * SCCS: @(#) tkScrollbar.h 1.8 96/11/05 11:34:58 */#ifndef _TKSCROLLBAR#define _TKSCROLLBAR#ifndef _TKINT#include "tkInt.h"#endif#ifdef BUILD_tk# undef TCL_STORAGE_CLASS# define TCL_STORAGE_CLASS DLLEXPORT#endif/* * A data structure of the following type is kept for each scrollbar * widget. */typedef struct TkScrollbar { Tk_Window tkwin; /* Window that embodies the scrollbar. NULL * means that the window has been destroyed * but the data structures haven't yet been * cleaned up.*/ Display *display; /* Display containing widget. Used, among * other things, so that resources can be * freed even after tkwin has gone away. */ Tcl_Interp *interp; /* Interpreter associated with scrollbar. */ Tcl_Command widgetCmd; /* Token for scrollbar's widget command. */ Tk_Uid orientUid; /* Orientation for window ("vertical" or * "horizontal"). */ int vertical; /* Non-zero means vertical orientation * requested, zero means horizontal. */ int width; /* Desired narrow dimension of scrollbar, * in pixels. */ char *command; /* Command prefix to use when invoking * scrolling commands. NULL means don't * invoke commands. Malloc'ed. */ int commandSize; /* Number of non-NULL bytes in command. */ int repeatDelay; /* How long to wait before auto-repeating * on scrolling actions (in ms). */ int repeatInterval; /* Interval between autorepeats (in ms). */ int jump; /* Value of -jump option. */ /* * Information used when displaying widget: */ int borderWidth; /* Width of 3-D borders. */ Tk_3DBorder bgBorder; /* Used for drawing background (all flat * surfaces except for trough). */ Tk_3DBorder activeBorder; /* For drawing backgrounds when active (i.e. * when mouse is positioned over element). */ XColor *troughColorPtr; /* Color for drawing trough. */ int relief; /* Indicates whether window as a whole is * raised, sunken, or flat. */ int highlightWidth; /* Width in pixels of highlight to draw * around widget when it has the focus. * <= 0 means don't draw a highlight. */ XColor *highlightBgColorPtr; /* Color for drawing traversal highlight * area when highlight is off. */ XColor *highlightColorPtr; /* Color for drawing traversal highlight. */ int inset; /* Total width of all borders, including * traversal highlight and 3-D border. * Indicates how much interior stuff must * be offset from outside edges to leave * room for borders. */ int elementBorderWidth; /* Width of border to draw around elements * inside scrollbar (arrows and slider). * -1 means use borderWidth. */ int arrowLength; /* Length of arrows along long dimension of * scrollbar, including space for a small gap * between the arrow and the slider. * Recomputed on window size changes. */ int sliderFirst; /* Pixel coordinate of top or left edge * of slider area, including border. */ int sliderLast; /* Coordinate of pixel just after bottom * or right edge of slider area, including * border. */ int activeField; /* Names field to be displayed in active * colors, such as TOP_ARROW, or 0 for * no field. */ int activeRelief; /* Value of -activeRelief option: relief * to use for active element. */ /* * Information describing the application related to the scrollbar. * This information is provided by the application by invoking the * "set" widget command. This information can now be provided in * two ways: the "old" form (totalUnits, windowUnits, firstUnit, * and lastUnit), or the "new" form (firstFraction and lastFraction). * FirstFraction and lastFraction will always be valid, but * the old-style information is only valid if the NEW_STYLE_COMMANDS * flag is 0. */ int totalUnits; /* Total dimension of application, in * units. Valid only if the NEW_STYLE_COMMANDS * flag isn't set. */ int windowUnits; /* Maximum number of units that can be * displayed in the window at once. Valid * only if the NEW_STYLE_COMMANDS flag isn't * set. */ int firstUnit; /* Number of last unit visible in * application's window. Valid only if the * NEW_STYLE_COMMANDS flag isn't set. */ int lastUnit; /* Index of last unit visible in window. * Valid only if the NEW_STYLE_COMMANDS * flag isn't set. */ double firstFraction; /* Position of first visible thing in window, * specified as a fraction between 0 and * 1.0. */ double lastFraction; /* Position of last visible thing in window, * specified as a fraction between 0 and * 1.0. */ /* * Miscellaneous information: */ Tk_Cursor cursor; /* Current cursor for window, or None. */ char *takeFocus; /* Value of -takefocus option; not used in * the C code, but used by keyboard traversal * scripts. Malloc'ed, but may be NULL. */ int flags; /* Various flags; see below for * definitions. */} TkScrollbar;/* * Legal values for "activeField" field of Scrollbar structures. These * are also the return values from the ScrollbarPosition procedure. */#define OUTSIDE 0#define TOP_ARROW 1#define TOP_GAP 2#define SLIDER 3#define BOTTOM_GAP 4#define BOTTOM_ARROW 5/* * Flag bits for scrollbars: * * REDRAW_PENDING: Non-zero means a DoWhenIdle handler * has already been queued to redraw * this window. * NEW_STYLE_COMMANDS: Non-zero means the new style of commands * should be used to communicate with the * widget: ".t yview scroll 2 lines", instead * of ".t yview 40", for example. * GOT_FOCUS: Non-zero means this window has the input * focus. */#define REDRAW_PENDING 1#define NEW_STYLE_COMMANDS 2#define GOT_FOCUS 4/* * Declaration of scrollbar class procedures structure. */extern TkClassProcs tkpScrollbarProcs;/* * Declaration of scrollbar configuration options. */extern Tk_ConfigSpec tkpScrollbarConfigSpecs[];/* * Declaration of procedures used in the implementation of the scrollbar * widget. */EXTERN void TkScrollbarEventProc _ANSI_ARGS_(( ClientData clientData, XEvent *eventPtr));EXTERN void TkScrollbarEventuallyRedraw _ANSI_ARGS_(( TkScrollbar *scrollPtr));EXTERN void TkpComputeScrollbarGeometry _ANSI_ARGS_(( TkScrollbar *scrollPtr));EXTERN TkScrollbar * TkpCreateScrollbar _ANSI_ARGS_((Tk_Window tkwin));EXTERN void TkpDestroyScrollbar _ANSI_ARGS_(( TkScrollbar *scrollPtr));EXTERN void TkpDisplayScrollbar _ANSI_ARGS_(( ClientData clientData));EXTERN void TkpConfigureScrollbar _ANSI_ARGS_(( TkScrollbar *scrollPtr));EXTERN int TkpScrollbarPosition _ANSI_ARGS_(( TkScrollbar *scrollPtr, int x, int y));# undef TCL_STORAGE_CLASS# define TCL_STORAGE_CLASS DLLIMPORT#endif /* _TKSCROLLBAR */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -