XEmacs 21.2-b1
[chise/xemacs-chise.git.1] / lwlib / xlwscrollbarP.h
1 /* Implements a lightweight scrollbar widget.
2    Copyright (C) 1992, 1993, 1994 Lucid, Inc.
3
4 This file is part of the Lucid Widget Library.
5
6 The Lucid Widget Library is free software; you can redistribute it and/or 
7 modify it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 The Lucid Widget Library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of 
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with XEmacs; see the file COPYING.  If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA.  */
20
21 /* Created by Douglas Keller <dkeller@vnet.ibm.com> */
22
23 #ifndef _XlwScrollBarP_h
24 #define _XlwScrollBarP_h
25
26
27 /*
28 ** Widget class
29 */
30 typedef struct
31 {
32   int dummy_field;      /* keep compiler happy */
33 } XlwScrollBarClassPart;
34
35 typedef struct _XlwScrollbarClassRec
36 {
37   CoreClassPart core_class;
38   XlwScrollBarClassPart scrollbar_class;
39 } XlwScrollBarClassRec;
40
41 enum XlwScrollbarArm
42 {
43   ARM_NONE,
44   ARM_SLIDER,
45   ARM_UP,
46   ARM_DOWN,
47   ARM_PAGEUP,
48   ARM_PAGEDOWN
49 };
50
51 enum XlwScrollbarForcedScroll
52 {
53   FORCED_SCROLL_NONE,
54   FORCED_SCROLL_DOWNRIGHT,
55   FORCED_SCROLL_UPLEFT
56 };
57
58 /*
59 ** Widget instance
60 */
61 typedef struct
62 {
63   /* resources */
64   XtCallbackList valueChangedCBL;
65   XtCallbackList incrementCBL;
66   XtCallbackList decrementCBL;
67   XtCallbackList pageIncrementCBL;
68   XtCallbackList pageDecrementCBL;
69   XtCallbackList toTopCBL;
70   XtCallbackList toBottomCBL;
71   XtCallbackList dragCBL;
72
73   Pixel         foreground;
74
75   Pixel         topShadowColor;
76   Pixel         bottomShadowColor;
77
78   Pixel         troughColor;
79
80   Pixel         armColor;
81   Pixel         armTopShadowColor;
82   Pixel         armBottomShadowColor;
83
84   Pixmap        topShadowPixmap;
85   Pixmap        bottomShadowPixmap;
86
87   int           shadowThickness;
88
89   Boolean       showArrows;
90
91   int           minimum;
92   int           maximum;
93   int           sliderSize;
94   int           value;
95   int           pageIncrement;
96   int           increment;
97
98   int           initialDelay;
99   int           repeatDelay;
100
101   unsigned char orientation;
102
103   char          *sliderStyle;
104   char          *knobStyle;
105   char          *arrowPosition;
106
107   /* private */
108   Pixmap        grayPixmap;
109
110   GC            backgroundGC;
111   GC            topShadowGC;
112   GC            bottomShadowGC;
113
114   int           above, ss, below;
115   int           lastY;
116
117   enum XlwScrollbarArm armed;
118
119   enum XlwScrollbarForcedScroll forced_scroll;
120
121   int           savedValue;
122
123   Boolean       fullRedrawNext;
124
125   Boolean       timerActive;
126   XtIntervalId  timerId;
127
128 } XlwScrollBarPart;
129
130 typedef struct _XlwScrollBarRec
131 {
132   CorePart          core;
133   XlwScrollBarPart  sb;
134 } XlwScrollBarRec;
135
136 #endif /* _XlwScrollBarP_h */