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
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
|
."remove .ig hn for full docs
.de hi
.ig eh
..
.de eh
..
.TH "" 3 "" "Version 3.0" "Free Widget Foundation"
.SH NAME
XfwfButton
.SH DESCRIPTION
The \fIXfwfButton\fP widget is a simple button with a
single callback \fIactivate_callback\fP. Except for that
callback, all resources are inherited from the
\fIXfwfLabel\fP widget. Subclasses provide buttons of
other, more specialized types. \fIXfwfButton\fP inherits
its 3D frame from \fIXfwfFrame\fP, the location
specification resources from \fIXfwfBoard\fP and the
multi-line label from \fIXfwfLabel\fP.
The implementation is also very simple, since nearly
all code is inherited from \fIXfwfLabel\fP. There are no
new or redefined methods. In fact, just six lines of
actual code suffice to implement the widget: Object
Oriented Programming at its best!
.SS "Public variables"
.ps-2
.TS
center box;
cBsss
lB|lB|lB|lB
l|l|l|l.
XfwfButton
Name Class Type Default
XtNactivate XtCActivate Callback NULL
.TE
.ps
.TP
.I "XtNactivate"
The \fIactivate\fP is invoked from the \fIactivate\fP
action, which is normally bound to a mouse click. The
\fIcall_data\fP argument of the callbacks routines is
filled with a pointer to the event that triggered the
action.
.hi
.nf
<Callback> XtCallbackList activate = NULL
.fi
.eh
.TP
.I "XtNframeWidth"
The default \fIframeWidth\fP is set to 2 pixels.
.hi
.nf
Dimension frameWidth = 2
.fi
.eh
.TP
.I "XtNtraversalOn"
In contrast to its superclass XfwfLabel, a button
usually takes part in keyboard traversal.
.hi
.nf
traversalOn = True
.fi
.eh
.ps-2
.TS
center box;
cBsss
lB|lB|lB|lB
l|l|l|l.
XfwfLabel
Name Class Type Default
XtNlabel XtCLabel String NULL
XtNtablist XtCTablist String NULL
XtNfont XtCFont FontStruct XtDefaultFont
XtNforeground XtCForeground Pixel XtDefaultForeground
XtNalignment XtCAlignment Alignment 0
XtNtopMargin XtCTopMargin Dimension 2
XtNbottomMargin XtCBottomMargin Dimension 2
XtNleftMargin XtCLeftMargin Dimension 2
XtNrightMargin XtCRightMargin Dimension 2
XtNshrinkToFit XtCShrinkToFit Boolean False
XtNrvStart XtCRvStart Int 0
XtNrvLength XtCRvLength Int 0
.TE
.ps
.ps-2
.TS
center box;
cBsss
lB|lB|lB|lB
l|l|l|l.
XfwfBoard
Name Class Type Default
XtNabs_x XtCAbs_x Position 0
XtNrel_x XtCRel_x Float "0.0"
XtNabs_y XtCAbs_y Position 0
XtNrel_y XtCRel_y Float "0.0"
XtNabs_width XtCAbs_width Position 0
XtNrel_width XtCRel_width Float "1.0"
XtNabs_height XtCAbs_height Position 0
XtNrel_height XtCRel_height Float "1.0"
XtNhunit XtCHunit Float "1.0"
XtNvunit XtCVunit Float "1.0"
XtNlocation XtCLocation String NULL
.TE
.ps
.ps-2
.TS
center box;
cBsss
lB|lB|lB|lB
l|l|l|l.
XfwfFrame
Name Class Type Default
XtNcursor XtCCursor Cursor None
XtNframeType XtCFrameType FrameType XfwfRaised
XtNframeWidth XtCFrameWidth Dimension 0
XtNouterOffset XtCOuterOffset Dimension 0
XtNinnerOffset XtCInnerOffset Dimension 0
XtNshadowScheme XtCShadowScheme ShadowScheme XfwfAuto
XtNtopShadowColor XtCTopShadowColor Pixel compute_topcolor
XtNbottomShadowColor XtCBottomShadowColor Pixel compute_bottomcolor
XtNtopShadowStipple XtCTopShadowStipple Bitmap NULL
XtNbottomShadowStipple XtCBottomShadowStipple Bitmap NULL
.TE
.ps
.ps-2
.TS
center box;
cBsss
lB|lB|lB|lB
l|l|l|l.
XfwfCommon
Name Class Type Default
XtNtraversalOn XtCTraversalOn Boolean True
XtNhighlightThickness XtCHighlightThickness Dimension 2
XtNhighlightColor XtCHighlightColor Pixel XtDefaultForeground
XtNhighlightPixmap XtCHighlightPixmap Pixmap None
XtNnextTop XtCNextTop Callback NULL
XtNuserData XtCUserData Pointer NULL
.TE
.ps
.ps-2
.TS
center box;
cBsss
lB|lB|lB|lB
l|l|l|l.
Composite
Name Class Type Default
XtNchildren XtCChildren WidgetList NULL
insertPosition XtCInsertPosition XTOrderProc NULL
numChildren XtCNumChildren Cardinal 0
.TE
.ps
.ps-2
.TS
center box;
cBsss
lB|lB|lB|lB
l|l|l|l.
Core
Name Class Type Default
XtNx XtCX Position 0
XtNy XtCY Position 0
XtNwidth XtCWidth Dimension 0
XtNheight XtCHeight Dimension 0
borderWidth XtCBorderWidth Dimension 0
XtNcolormap XtCColormap Colormap NULL
XtNdepth XtCDepth Int 0
destroyCallback XtCDestroyCallback XTCallbackList NULL
XtNsensitive XtCSensitive Boolean True
XtNtm XtCTm XTTMRec NULL
ancestorSensitive XtCAncestorSensitive Boolean False
accelerators XtCAccelerators XTTranslations NULL
borderColor XtCBorderColor Pixel 0
borderPixmap XtCBorderPixmap Pixmap NULL
background XtCBackground Pixel 0
backgroundPixmap XtCBackgroundPixmap Pixmap NULL
mappedWhenManaged XtCMappedWhenManaged Boolean True
XtNscreen XtCScreen Screen * NULL
.TE
.ps
.SS "Translations"
By default, the \fIactivate\fP action is bound to a
mouse click and to the Enter key.
.nf
<Btn1Down>: set_shadow(sunken)
.fi
.nf
<Btn1Down>,<Btn1Up>: activate() set_shadow()
.fi
.nf
Button1<Leave>: set_shadow()
.fi
.nf
<Key>Return: set_shadow(sunken) activate() set_shadow()
.fi
.hi
.SS "Actions"
.TP
.I "activate
The \fIactivate\fP action just calls the \fIactivate\fP
callback functions, passing the \fIXEvent\fP pointer in
the \fIcall_data\fP argument.
.hi
.nf
void activate($, XEvent* event, String* params, Cardinal* num_params)
{
XtCallCallbackList($, $activate, event);
}
.fi
.eh
.hi
|