(A-IWDSU+271C4): New abstract node.
[chise/xemacs-chise.git.1] / lwlib / xlwscrollbar.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 INCLUDED_xlwscrollbar_h_
24 #define INCLUDED_xlwscrollbar_h_
25
26 #include <X11/Core.h>
27
28 /* Motif-compatible resource names */
29 #ifndef _XmStrDefs_h_
30
31 #define XmNbackground           "background"
32 #define XmNbottomShadowColor    "bottomShadowColor"
33 #define XmNbottomShadowPixmap   "bottomShadowPixmap"
34 #define XmNforeground           "foreground"
35 #define XmNincrement            "increment"
36 #define XmNinitialDelay         "initialDelay"
37 #define XmNmaximum              "maximum"
38 #define XmNminimum              "minimum"
39 #define XmNpageIncrement        "pageIncrement"
40 #define XmNrepeatDelay          "repeatDelay"
41 #define XmNshadowThickness      "shadowThickness"
42 #define XmNborderWidth          "borderWidth"
43 #define XmNshowArrows           "showArrows"
44 #define XmNsliderSize           "sliderSize"
45 #define XmNtopShadowColor       "topShadowColor"
46 #define XmNtopShadowPixmap      "topShadowPixmap"
47 #define XmNtroughColor          "troughColor"
48 #define XmNvalue                "value"
49 #define XmNvalueChangedCallback "valueChangedCallback"
50 #define XmNincrementCallback    "incrementCallback"
51 #define XmNdecrementCallback    "decrementCallback"
52 #define XmNpageIncrementCallback "pageIncrementCallback"
53 #define XmNpageDecrementCallback "pageDecrementCallback"
54 #define XmNtoTopCallback        "toTopCallback"
55 #define XmNtoBottomCallback     "toBottomCallback"
56 #define XmNdragCallback         "dragCallback"
57 #define XmNorientation          "orientation"
58
59 #define XmCBackground           "Background"
60 #define XmCBottomShadowColor    "BottomShadowColor"
61 #define XmCBottomShadowPixmap   "BottomShadowPixmap"
62 #define XmCTopShadowPixmap      "TopShadowPixmap"
63 #define XmCForeground           "Foreground"
64 #define XmCIncrement            "Increment"
65 #define XmCInitialDelay         "InitialDelay"
66 #define XmCMaximum              "Maximum"
67 #define XmCMinimum              "Minimum"
68 #define XmCPageIncrement        "PageIncrement"
69 #define XmCRepeatDelay          "RepeatDelay"
70 #define XmCShadowThickness      "ShadowThickness"
71 #define XmCBorderWidth          "BorderWidth"
72 #define XmCShowArrows           "ShowArrows"
73 #define XmCSliderSize           "SliderSize"
74 #define XmCTopShadowColor       "TopShadowColor"
75 #define XmCTroughColor          "TroughColor"
76 #define XmCValue                "Value"
77 #define XmCValueChangedCallback "ValueChangedCallback"
78 #define XmCIncrementCallback    "IncrementCallback"
79 #define XmCDecrementCallback    "DecrementCallback"
80 #define XmCPageIncrementCallback "PageIncrementCallback"
81 #define XmCPageDecrementCallback "PageDecrementCallback"
82 #define XmCToTopCallback        "ToTopCallback"
83 #define XmCToBottomCallback     "ToBottomCallback"
84 #define XmCDragCallback         "DragCallback"
85 #define XmCOrientation          "Orientation"
86
87 #endif /* _XmStrDefs_h_ */
88
89 /* New resources that Motif does not have.
90    Maybe we should use a different prefix. */
91
92 /* "knob" is obsolete; use "slider" instead. */
93 #define XmNknobStyle            "knobStyle"
94 #define XmCKnobStyle            "KnobStyle"
95
96 #define XmNsliderStyle          "sliderStyle"
97 #define XmCSliderStyle          "SliderStyle"
98
99 #define XmNarrowPosition        "arrowPosition"
100 #define XmCArrowPosition        "ArrowPosition"
101
102 #ifndef _Xm_h
103
104 enum {
105     XmCR_NONE,
106     XmCR_VALUE_CHANGED = 2,
107     XmCR_INCREMENT,
108     XmCR_DECREMENT,
109     XmCR_PAGE_INCREMENT,
110     XmCR_PAGE_DECREMENT,
111     XmCR_TO_TOP,
112     XmCR_TO_BOTTOM,
113     XmCR_DRAG
114 };
115
116 enum {
117     XmNO_ORIENTATION,
118     XmVERTICAL,
119     XmHORIZONTAL
120 };
121
122 #endif /* ! _Xm_h */
123
124 extern WidgetClass xlwScrollBarWidgetClass;
125
126 typedef struct _XlwScrollBarClassRec *XlwScrollBarWidgetClass;
127 typedef struct _XlwScrollBarRec      *XlwScrollBarWidget;
128
129 typedef struct
130 {
131    int reason;
132    XEvent * event;
133    int value;
134    int pixel;
135 } XlwScrollBarCallbackStruct;
136
137 void XlwScrollBarGetValues(Widget widget, int *value, int *sliderSize,
138                            int *increment, int *pageIncrement);
139
140 void XlwScrollBarSetValues(Widget widget, int value, int sliderSize,
141                            int increment, int pageIncrement, Boolean notify);
142
143 #endif /* INCLUDED_xlwscrollbar_h_ */