-
Notifications
You must be signed in to change notification settings - Fork 2
/
BBjWidget.bbj
413 lines (315 loc) · 11.9 KB
/
BBjWidget.bbj
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
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
use com.basis.bbj.proxies.sysgui.BBjControl
use com.basis.bbj.proxies.sysgui.BBjFont
use com.basis.bbj.proxies.sysgui.BBjPopupMenu
use com.basis.bbj.proxies.sysgui.BBjWindow
use com.basis.startup.type.BBjException
use com.basis.startup.type.BBjNumber
use com.basis.startup.type.BBjVector
use com.basis.startup.type.CustomObject
use com.basis.startup.type.sysgui.BBjColor
rem /**
rem * Standard Implementation of a BBjWidget
rem * Tries to implement all necessary methods of the BBj Interface BBjControl with
rem * useful functionality
rem * so that only methods that need to work different in a given control have to be
rem * implemented in the actual widget
rem */
class public BBjWidget implements BBjControl
REM IMPORTANT DISCLAIMER: The BBjControl Interface is a BBj-internal Interface that is
REM subject to change at any time. The BBjWidget class will be updated to compensate
REM for future BBjControl changes, so BASIS recommends that you always use BBjWidget
REM as the starting point for your UI component development projects (and NOT reference
REM the BBjControl Interface directly in your code).
field protected BBjChildWindow Canvas!
field protected BBjNumber X!
field protected BBjNumber Y!
field protected BBjNumber W!
field protected BBjNumber H!
field protected String Text!
method public BBjWidget()
methodend
method protected void create(BBjWindow wnd!, BBjNumber id!, BBjNumber x!, BBjNumber y!, BBjNumber w!, BBjNumber h!)
#Canvas! = wnd!.addChildWindow(id!,x!,y!,w!,h!,"",$00008800$,BBjAPI().getSysGui().getAvailableContext())
#X!=x!
#Y!=y!
#W!=w!
#H!=h!
#redraw(BBjAPI.TRUE)
methodend
method protected void createLegacy(BBjWindow wnd!, BBjNumber id!, BBjNumber x!, BBjNumber y!, BBjNumber w!, BBjNumber h!)
#Canvas! = wnd!.addChildWindow(id!,x!,y!,w!,h!,"",$00000800$,BBjAPI().getSysGui().getAvailableContext())
#X!=x!
#Y!=y!
#W!=w!
#H!=h!
#redraw(BBjAPI.TRUE)
methodend
method protected void create(BBjChildWindow wnd!)
#Canvas! = wnd! ; rem .addChildWindow(id!,x!,y!,w!,h!,"",$00000800$,BBjAPI().getSysGui().getAvailableContext())
#X!= wnd!.getX()
#Y!= wnd!.getY()
#W!= wnd!.getWidth()
#H!= wnd!.getHeight()
#redraw(BBjAPI.TRUE)
methodend
rem /**
rem * This create method is only for DWC
rem */
method protected void create(BBjWindow wnd!, BBjNumber id!)
if info(3,6)<>"6" then throw "Illegal Access, must be in DWC",13
#setCanvas(wnd!.addChildWindow(id!,1,1,1,1,"",$00108800$,BBjAPI().getSysGui().getAvailableContext()))
#redraw(BBjAPI.TRUE)
methodend
method protected void createLegacy(BBjWindow wnd!, BBjNumber id!)
if info(3,6)<>"6" then throw "Illegal Access, must be in DWC",13
#setCanvas(wnd!.addChildWindow(id!,1,1,1,1,"",$00100800$,BBjAPI().getSysGui().getAvailableContext()))
#redraw(BBjAPI.TRUE)
methodend
method public void setCallback(int p_eventType!, String p_callback!)
BBjAPI().setCustomEventCallback(str(#this!)+str(p_eventType!),p_callback!)
methodend
method public void setCallback(int p_eventType!, CustomObject p_snippetSetInstance!, String p_method!)
BBjAPI().setCustomEventCallback(str(#this!)+str(p_eventType!),p_snippetSetInstance!,p_method!)
methodend
method public void clearCallback(int p_eventType!)
methodend
method public int getContextID()
methodret #Canvas!.getContextID()
methodend
method public BBjPopupMenu addPopupMenu()
methodret #Canvas!.addPopupMenu()
methodend
method public void setPopupMenu(BBjPopupMenu p_popupMenu!)
#Canvas!.setPopupMenu(p_popupMenu!)
methodend
method public BBjPopupMenu getPopupMenu()
methodret #Canvas!.getPopupMenu()
methodend
method public void removePopupMenu()
#Canvas!.removePopupMenu()
methodend
rem /**PROPERTIES **/
method public void setText(String text!)
#Text! = text!
methodend
method public String getText()
methodret #Text!
methodend
method public BBjColor getBackColor()
methodret #Canvas!.getBackColor()
methodend
method public void setBackColor(BBjColor p_color!)
#Canvas!.setBackColor(p_color!)
methodend
method public void setForeColor(BBjColor p_color!)
#Canvas!.setForeColor(p_color!)
methodend
method public BBjColor getForeColor()
methodret #Canvas!.getBackColor()
methodend
method public void setFont(BBjFont p_font!)
#Canvas!.setFont(p_font!)
methodend
method public BBjFont getFont()
methodret #Canvas!.getFont()
methodend
method public boolean isEnabled()
methodret #Canvas!.isEnabled()
methodend
method public boolean isGrouped()
methodret 0
methodend
method public void setGrouped(boolean arg0!)
methodend
method public void setEnabled(boolean p_param0!)
#Canvas!.setEnabled(p_param0!)
methodend
method public void setVisible(boolean p_param0!)
#Canvas!.setVisible(p_param0!)
methodend
method public boolean isVisible()
methodret #Canvas!.isVisible()
methodend
method public void setToolTipText(String p_param0!)
#Canvas!.setToolTipText(p_param0!)
methodend
method public String getToolTipText()
methodret #Canvas!.getToolTipText()
methodend
method public void showToolTipText()
#Canvas!.showToolTipText()
methodend
method public void showToolTipText(BBjNumber p_x!, BBjNumber p_y!)
#Canvas!.showToolTipText(p_x!,p_y!)
methodend
method public void setShortCue(String p_param!)
#Canvas!.setShortCue(p_param!)
methodend
method public String getShortCue()
methodret #Canvas!.getShortCue()
methodend
method public void setLongCue(String p_param!)
#Canvas!.setLongCue(p_param!)
methodend
method public String getLongCue()
methodret #Canvas!.getLongCue()
methodend
rem // DRAG/DROP PROPERTIES
rem //moved into their own interfaces.
method public void setCausesControlValidation(boolean p_causeValidation!)
throw "Widgets can't cause control validation",252
methodend
method public boolean getCausesControlValidation()
return 0
methodend
REM //END PROPERTIES
method public void setSize(BBjNumber p_width!, BBjNumber p_height!)
#W! = p_width!
#H! = p_height!
#Canvas!.setSize(p_width!,p_height!)
#redraw(BBjAPI.FALSE)
methodend
method public BBjNumber getWidth()
methodret #W!
methodend
method public BBjNumber getHeight()
methodret #H!
methodend
method public void setLocation(BBjNumber p_xPosition!, BBjNumber p_yPosition!)
#X! = p_xPosition!
#Y! = p_yPosition!
#Canvas!.setLocation(p_xPosition!,p_yPosition!)
#redraw(BBjAPI.FALSE)
methodend
method public BBjNumber getX()
methodret #X!
methodend
method public BBjNumber getY()
methodret #Y!
methodend
method public int getScreenX()
methodret #Canvas!.getScreenX()
methodend
method public int getScreenY()
methodret #Canvas!.getScreenY()
methodend
method public void setClientEdge(boolean p_setClientEdge!)
#Canvas!.setClientEdge(p_setClientEdge!)
methodend
method public boolean getClientEdge()
methodret #Canvas!.getClientEdge()
methodend
method public void setRaisedEdge(boolean p_setRaisedEdge!)
#Canvas!.setRaisedEdge(p_setRaisedEdge!)
methodend
method public boolean getRaisedEdge()
methodret #Canvas!.getRaisedEdge()
methodend
method public void setNoEdge(boolean p_setNoEdge!)
#Canvas!.setNoEdge(p_setNoEdge!)
methodend
method public boolean getNoEdge()
methodret #Canvas!.getNoEdge()
methodend
method public void setOpaque(boolean p_setOpaque!)
#Canvas!.setOpaque(p_setOpaque!)
#redraw(BBjAPI.FALSE)
methodend
method public boolean isOpaque()
methodret #Canvas!.isOpaque()
methodend
method public void focus()
#Canvas!.focus()
methodend
method public int getID()
methodret #Canvas!.getID()
methodend
method public int getControlType()
REM TODO - WHAT CONTROL TYPE TO RETURN FOR A WIDGET
methodret 999
methodend
method public void destroy()
#Canvas!.destroy()
methodend
method public boolean isDestroyed()
methodret #Canvas!.isDestroyed()
methodend
method public void setUserData(Object p_userData!)
#Canvas!.setUserData(p_userData!)
methodend
method public Object getUserData()
methodret #Canvas!.getUserData()
methodend
method public void setCursor(int p_cursor!)
#Canvas!.setCursor(p_cursor!)
methodend
method public String getName()
methodret #Canvas!.getName()
methodend
method public void setName(String p_name!)
#Canvas!.setName(p_name!)
methodend
method public boolean addStyle(String p_styleName!)
methodret #Canvas!.addStyle(p_styleName!)
methodend
method public void addPanelStyle(BBjString x!)
#getCanvas().addPanelStyle(x!)
methodend
method public boolean removeStyle(String p_styleName!)
methodret #Canvas!.removeStyle(p_styleName!)
methodend
method public String getComputedStyle(String arg0!)
methodret ""
methodend
method public void clearStyles()
#Canvas!.clearStyles()
methodend
method public BBjVector getStyles()
methodret #Canvas!.getStyles()
methodend
method public String getStyle(String arg!)
methodret #Canvas!.getStyle(arg!)
methodend
method public String getDockStyle(String arg!)
methodret #Canvas!.getDockStyle(arg!)
methodend
method public void setStyle(String arg!, String style!)
#Canvas!.setStyle(arg!,style!)
methodend
method public void setDockStyle(String arg!, String style!)
#Canvas!.setDockStyle(arg!,style!)
methodend
method public void setAttribute(String p_attribute!, String p_value!)
#Canvas!.setAttribute(p_attribute!,p_value!)
methodend
method public String getAttribute(String p_attribute!)
methodret #Canvas!.getAttribute(p_attribute!)
methodend
method public void removeAttribute(String p_attribute!)
#Canvas!.removeAttribute(p_attribute!)
methodend
method public void putClientProperty(Object p_key!, Object p_value!)
#Canvas!.putClientProperty(p_key!,p_value!)
methodend
method public Object getClientProperty(Object p_key!)
methodret #Canvas!.getClientProperty(p_key!)
methodend
method public BBjWindow getParentWindow()
methodret #Canvas!.getParentWindow()
methodend
method public boolean getBeepOnValidationFailure()
methodret 0
methodend
method public void setBeepOnValidationFailure(boolean arg0!)
methodend
rem ---------------------utility methods for UI Widget development
rem /**
rem * Fires an event
rem */
method protected void fireEvent(int p_eventType!, Object payload!)
rem we're posting BBj Standard Events wherever possible. Is this a good idea?
BBjAPI().postPriorityCustomEvent(str(#this!)+str(p_eventType!),payload!)
methodend
method public void redraw(Boolean f_init!)
methodend
classend