tkScrollbar.h
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:7k
- /*
- * 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.
- *
- * RCS: @(#) $Id: tkScrollbar.h,v 1.6 2000/11/22 01:49:38 ericm Exp $
- */
- #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. */
- 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 Tk_ClassProcs 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 */