/usr/lib/perl5/Tk/pTk/tkScrollbar.h is in perl-tk 1:804.031-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 | /*
* 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
#include "tkVMacro.h"
#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. */
LangCallback *command; /* Command prefix to use when invoking
* scrolling commands. NULL means don't
* invoke commands. Malloc'ed. */
#if 0
int commandSize; /* Number of non-NULL bytes in command. */
#endif
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 */
|