2 * CDE - Common Desktop Environment
4 * Copyright (c) 1993-2012, The Open Group. All rights reserved.
6 * These libraries and programs are free software; you can
7 * redistribute them and/or modify them under the terms of the GNU
8 * Lesser General Public License as published by the Free Software
9 * Foundation; either version 2 of the License, or (at your option)
12 * These libraries and programs are distributed in the hope that
13 * they will be useful, but WITHOUT ANY WARRANTY; without even the
14 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU Lesser General Public License for more
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with these libraries and programs; if not, write
20 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21 * Floor, Boston, MA 02110-1301 USA
23 /* $XConsortium: xmwidgets.c /main/6 1996/04/01 17:54:38 rswiston $ */
25 /* Copyright (c) 1991, 1992 UNIX System Laboratories, Inc. */
26 /* All Rights Reserved */
28 /* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF */
29 /* UNIX System Laboratories, Inc. */
30 /* The copyright notice above does not evidence any */
31 /* actual or intended publication of such source code. */
35 #include <X11/Intrinsic.h>
36 #include <X11/Shell.h>
37 #include <X11/StringDefs.h>
39 #include <Xm/ArrowB.h>
40 #include <Xm/ArrowBG.h>
41 #include <Xm/BulletinB.h>
42 #include <Xm/CascadeB.h>
43 #include <Xm/CascadeBG.h>
44 #include <Xm/ComboBox.h>
45 #include <Xm/Command.h>
46 #include <Xm/DialogS.h>
47 #include <Xm/DrawingA.h>
48 #include <Xm/DrawnB.h>
49 #include <Xm/FileSB.h>
53 #include <Xm/LabelG.h>
56 #include <Xm/MenuShell.h>
57 #include <Xm/MessageB.h>
58 #include <Xm/PanedW.h>
60 #include <Xm/PushBG.h>
61 #include <Xm/RowColumn.h>
64 #include <Xm/ScrollBar.h>
65 #include <Xm/ScrolledW.h>
66 #include <Xm/SelectioB.h>
67 #include <Xm/Separator.h>
68 #include <Xm/SeparatoG.h>
69 #include <Xm/SSpinB.h>
70 #include <Xm/TearOffBP.h>
73 #include <Xm/ToggleB.h>
74 #include <Xm/ToggleBG.h>
76 #include <Dt/HelpDialog.h>
77 #include <Dt/HelpQuickD.h>
87 #include "xmwidgets.h"
93 static discInfo * setArrowDisciplines( void ) ;
94 static discInfo * setComboDisciplines( void ) ;
95 static discInfo * setCmdDisciplines( void ) ;
96 static discInfo * setDAreaDisciplines( void ) ;
97 static discInfo * setDBtnDisciplines( void ) ;
98 static discInfo * setDtPrintSetupProcDisciplines( void ) ;
99 static discInfo * setFSelDisciplines( void ) ;
100 static discInfo * setListDisciplines( void ) ;
101 static discInfo * setPBtnDisciplines( void ) ;
102 static discInfo * setRCDisciplines( void ) ;
103 static discInfo * setScaleDisciplines( void ) ;
104 static discInfo * setSBarDisciplines( void ) ;
105 static discInfo * setSWinDisciplines( void ) ;
106 static discInfo * setSBoxDisciplines( void ) ;
107 static discInfo * setTextDisciplines( void ) ;
108 static discInfo * setTBtnDisciplines( void ) ;
109 static discInfo * setHelpDisciplines( void ) ;
114 static Namdisc_t arrowDisc={0, NULL, NULL, NULL, NULL,
115 (Namval_t *(*)())arrowCreateDisc, NULL, NULL};
116 static Namdisc_t comboDisc={0, NULL, NULL, NULL, NULL,
117 (Namval_t *(*)())comboCreateDisc, NULL, NULL};
118 static Namdisc_t cmdDisc={0, NULL, NULL, NULL, NULL,
119 (Namval_t *(*)())cmdCreateDisc, NULL, NULL};
120 static Namdisc_t dAreaDisc={0, NULL, NULL, NULL, NULL,
121 (Namval_t *(*)())dAreaCreateDisc, NULL, NULL};
122 static Namdisc_t dbtnDisc ={0, NULL, NULL, NULL, NULL,
123 (Namval_t *(*)())dbtnCreateDisc, NULL, NULL};
124 static Namdisc_t dtPrintDisc ={0, NULL, NULL, NULL, NULL,
125 (Namval_t *(*)())dtPrintSetupProcDisc, NULL, NULL};
126 static Namdisc_t fselDisc={0, NULL, NULL, NULL, NULL,
127 (Namval_t *(*)())fselCreateDisc, NULL, NULL};
128 static Namdisc_t listDisc={0, NULL, NULL, NULL, NULL,
129 (Namval_t *(*)())listCreateDisc, NULL, NULL};
130 static Namdisc_t pbtnDisc={0, NULL, NULL, NULL, NULL,
131 (Namval_t *(*)())pbtnCreateDisc, NULL, NULL};
132 static Namdisc_t rcDisc={0, NULL, NULL, NULL, NULL,
133 (Namval_t *(*)())rcCreateDisc, NULL, NULL};
134 static Namdisc_t scaleDisc={0, NULL, NULL, NULL, NULL,
135 (Namval_t *(*)()) scaleCreateDisc, NULL, NULL};
136 static Namdisc_t sbarDisc={0, NULL, NULL, NULL, NULL,
137 (Namval_t *(*)())sbarCreateDisc, NULL, NULL};
138 static Namdisc_t swinDisc={0, NULL, NULL, NULL, NULL,
139 (Namval_t *(*)())swinCreateDisc, NULL, NULL};
140 static Namdisc_t sboxDisc={0, NULL, NULL, NULL, NULL,
141 (Namval_t *(*)())sboxCreateDisc, NULL, NULL};
142 static Namdisc_t textDisc={0, NULL, NULL, NULL, NULL,
143 (Namval_t *(*)())textCreateDisc, NULL, NULL};
144 static Namdisc_t textDisc2={0, NULL, NULL, NULL, NULL,
145 (Namval_t *(*)())textCreateDisc2, NULL, NULL};
146 static Namdisc_t tbtnDisc={0, NULL, NULL, NULL, NULL,
147 (Namval_t *(*)())tbtnCreateDisc, NULL, NULL};
148 static Namdisc_t dftDisc={0, NULL, NULL, NULL, NULL,
149 (Namval_t *(*)())dftCreateDisc, NULL, NULL};
150 static Namdisc_t helpDisc={0, NULL, NULL, NULL, NULL,
151 (Namval_t *(*)())helpCreateDisc, NULL, NULL};
155 * The main window fixups are required because of a Motif bug; the
156 * resources were typed as XmRWindows, instead of XmRWidgets.
158 resfixup_t mainwindow_fixups[] = {
159 { "menuBar", XmCMenuBar, XtRWidget, sizeof(Widget) },
160 { "commandWindow", XmCCommandWindow, XtRWidget, sizeof(Widget) },
161 { "messageWindow", XmCMessageWindow, XtRWidget, sizeof(Widget) },
167 * The help fixups are required to overcome name overlaps between other
170 resfixup_t helpDialogs_fixups[] = {
171 { "helpType", DtCHelpType, "HelpType", sizeof(unsigned char) },
172 { "scrollBarDisplayPolicy", XmCScrollBarDisplayPolicy,
173 "HelpScrollBarDisplayPolicy",
180 * The following fixups are required to force the resource type to be one
181 * we have defined, so that our special converter will work. Typically,
182 * there is no default StringTable to String converter.
184 resfixup_t list_fixups[] = {
185 { "items", XmCItems, "ListItems", sizeof(XmStringTable) },
186 { "selectedItems", XmCSelectedItems, "SelectedListItems",
187 sizeof(XmStringTable) },
191 resfixup_t command_fixups[] = {
192 { "historyItems", XmCItems, "SelBoxItems", sizeof(XmStringTable) },
196 resfixup_t selbox_fixups[] = {
197 { "listItems", XmCItems, "SelBoxItems", sizeof(XmStringTable) },
201 resfixup_t fileselbox_fixups[] = {
202 { "fileListItems", XmCItems, "FSFileItems", sizeof(XmStringTable) },
203 { "dirListItems", XmCItems, "FSDirItems", sizeof(XmStringTable) },
209 * The following shell resources are 'fixed' to allow them to be referred
210 * to in a shell script by their symbolic names, as opposed to their
211 * integer values. These also need to be force onto any subclasses.
213 resfixup_t wmshell_fixups[] = {
214 { "winGravity", XtCWinGravity, "XWinGravity", sizeof(int) },
218 resfixup_t vendor_fixups[] = {
219 { "winGravity", XtCWinGravity, "XWinGravity", sizeof(int) },
220 { "mwmDecorations", XmCMwmDecorations, "MWMDecoration", sizeof(long) },
221 { "mwmFunctions", XmCMwmFunctions, "MWMFunctions", sizeof(long) },
222 { "mwmInputMode", XmCMwmInputMode, "MWMInputMode", sizeof(long) },
227 * The following resource needs to be 'fixed' because it not only accepts
228 * an integer value, but it also supports one specially defined value.
230 resfixup_t panedwin_con_fixups[] = {
231 {"positionIndex", XmCPositionIndex, "PanedWinPosIndex", sizeof(short)},
239 * NOTE: Keep these in alphabetical order
240 * because the initialize code below depends on
243 { "XmArrowButton", NULL, NULL, NULL, NULL, NULL, NULL},
244 { "XmArrowButtonGadget", NULL, NULL, NULL, NULL, NULL, NULL},
245 { "XmBulletinBoard", NULL, NULL, NULL, NULL, NULL, NULL},
246 { "XmCascadeButton", NULL, NULL, NULL, NULL, NULL, NULL},
247 { "XmCascadeButtonGadget", NULL, NULL, NULL, NULL, NULL, NULL},
248 { "XmComboBox", NULL, NULL, NULL, NULL, NULL, NULL},
249 { "XmCommand", NULL, NULL, NULL, NULL, NULL, NULL},
250 { "XmDialogShell", NULL, NULL, NULL, NULL, NULL, NULL},
251 { "XmDrawingArea", NULL, NULL, NULL, NULL, NULL, NULL},
252 { "XmDrawnButton", NULL, NULL, NULL, NULL, NULL, NULL},
253 { "XmFileSelectionBox", NULL, NULL, NULL, NULL, NULL, NULL},
254 { "XmForm", NULL, NULL, NULL, NULL, NULL, NULL},
255 { "XmFrame", NULL, NULL, NULL, NULL, NULL, NULL},
256 { "XmLabel", NULL, NULL, NULL, NULL, NULL, NULL},
257 { "XmLabelGadget", NULL, NULL, NULL, NULL, NULL, NULL},
258 { "XmList", NULL, NULL, NULL, NULL, NULL, NULL},
259 { "XmMainWindow", NULL, NULL, NULL, NULL, NULL, NULL},
260 { "XmMenuShell", NULL, NULL, NULL, NULL, NULL, NULL},
261 { "XmMessageBox", NULL, NULL, NULL, NULL, NULL, NULL},
262 { "XmPanedWindow", NULL, NULL, NULL, NULL, NULL, NULL},
263 { "XmPushButton", NULL, NULL, NULL, NULL, NULL, NULL},
264 { "XmPushButtonGadget", NULL, NULL, NULL, NULL, NULL, NULL},
265 { "XmRowColumn", NULL, NULL, NULL, NULL, NULL, NULL},
266 { "XmScale", NULL, NULL, NULL, NULL, NULL, NULL},
267 { "XmScrollBar", NULL, NULL, NULL, NULL, NULL, NULL},
268 { "XmScrolledWindow", NULL, NULL, NULL, NULL, NULL, NULL},
269 { "XmSelectionBox", NULL, NULL, NULL, NULL, NULL, NULL},
270 { "XmSeparator", NULL, NULL, NULL, NULL, NULL, NULL},
271 { "XmSeparatorGadget", NULL, NULL, NULL, NULL, NULL, NULL},
272 { "XmSimpleSpinBox", NULL, NULL, NULL, NULL, NULL, NULL},
273 { "XmTearOffButton", NULL, NULL, NULL, NULL, NULL, NULL},
274 { "XmText", NULL, NULL, NULL, NULL, NULL, NULL},
275 { "XmTextField", NULL, NULL, NULL, NULL, NULL, NULL},
276 { "XmToggleButton", NULL, NULL, NULL, NULL, NULL, NULL},
277 { "XmToggleButtonGadget", NULL, NULL, NULL, NULL, NULL, NULL},
278 { "ApplicationShell", NULL, NULL, NULL, NULL, NULL, NULL},
279 { "OverrideShell", NULL, NULL, NULL, NULL, NULL, NULL},
280 { "Shell", NULL, NULL, NULL, NULL, NULL, NULL},
281 { "TopLevelShell", NULL, NULL, NULL, NULL, NULL, NULL},
282 { "TransientShell", NULL, NULL, NULL, NULL, NULL, NULL},
283 { "VendorShell", NULL, NULL, NULL, NULL, NULL, NULL},
284 { "WMShell", NULL, NULL, NULL, NULL, NULL, NULL},
285 { "DtHelpDialog", NULL, NULL, NULL, NULL, NULL, NULL},
286 { "DtHelpQuickDialog", NULL, NULL, NULL, NULL, NULL, NULL},
287 { "DtPrintSetupBox", NULL, NULL, NULL, NULL, NULL, NULL},
292 toolkit_init_widgets( void )
297 if (C[0].class != NULL)
300 * NOTE: keep these in alphabetical order because
301 * the widget table above is in the same order.
303 C[n].disciplines = setArrowDisciplines();
304 C[n++].class = xmArrowButtonWidgetClass;;
305 C[n].disciplines = setArrowDisciplines();
306 C[n++].class = xmArrowButtonGadgetClass;;
307 C[n++].class = xmBulletinBoardWidgetClass;
308 C[n++].class = xmCascadeButtonWidgetClass;
309 C[n++].class = xmCascadeButtonGadgetClass;
310 C[n].disciplines = setComboDisciplines();
311 C[n++].class = xmComboBoxWidgetClass;
312 C[n].disciplines = setCmdDisciplines();
313 C[n].resfix = &command_fixups[0];
314 C[n++].class = xmCommandWidgetClass;
315 C[n].resfix = &vendor_fixups[0];
316 C[n++].class = xmDialogShellWidgetClass;
317 C[n].disciplines = setDAreaDisciplines();
318 C[n++].class = xmDrawingAreaWidgetClass;
319 C[n].disciplines = setDBtnDisciplines();
320 C[n++].class = xmDrawnButtonWidgetClass;
321 C[n].resfix = &fileselbox_fixups[0];
322 C[n].disciplines = setFSelDisciplines();
323 C[n++].class = xmFileSelectionBoxWidgetClass;
324 C[n++].class = xmFormWidgetClass;
325 C[n++].class = xmFrameWidgetClass;
326 C[n++].class = xmLabelWidgetClass;
327 C[n++].class = xmLabelGadgetClass;
328 C[n].resfix = &list_fixups[0];
329 C[n].disciplines = setListDisciplines();
330 C[n++].class = xmListWidgetClass;
331 C[n].resfix = &mainwindow_fixups[0];
332 C[n++].class = xmMainWindowWidgetClass;
333 C[n++].class = xmMenuShellWidgetClass;
334 C[n++].class = xmMessageBoxWidgetClass;
335 C[n].confix = &panedwin_con_fixups[0];
336 C[n++].class = xmPanedWindowWidgetClass;
337 C[n].disciplines = setPBtnDisciplines();
338 C[n++].class = xmPushButtonWidgetClass;
339 C[n].disciplines = setPBtnDisciplines();
340 C[n++].class = xmPushButtonGadgetClass;
341 C[n].disciplines = setRCDisciplines();
342 C[n++].class = xmRowColumnWidgetClass;
343 C[n].disciplines = setScaleDisciplines();
344 C[n++].class = xmScaleWidgetClass;
345 C[n].disciplines = setSBarDisciplines();
346 C[n++].class = xmScrollBarWidgetClass;
347 C[n].disciplines = setSWinDisciplines();
348 C[n++].class = xmScrolledWindowWidgetClass;
349 C[n].disciplines = setSBoxDisciplines();
350 C[n].resfix = &selbox_fixups[0];
351 C[n++].class = xmSelectionBoxWidgetClass;
352 C[n++].class = xmSeparatorWidgetClass;
353 C[n++].class = xmSeparatorGadgetClass;
354 C[n++].class = xmSimpleSpinBoxWidgetClass;
355 C[n++].class = xmTearOffButtonWidgetClass;
356 C[n].disciplines = setTextDisciplines();
357 C[n++].class = xmTextWidgetClass;
358 C[n].disciplines = setTextDisciplines();
359 C[n++].class = xmTextFieldWidgetClass;
360 C[n].disciplines = setTBtnDisciplines();
361 C[n++].class = xmToggleButtonWidgetClass;
362 C[n].disciplines = setTBtnDisciplines();
363 C[n++].class = xmToggleButtonGadgetClass;
365 C[n].resfix = &vendor_fixups[0];
366 C[n++].class = applicationShellWidgetClass;
367 C[n++].class = overrideShellWidgetClass;
368 C[n++].class = shellWidgetClass;
369 C[n].resfix = &vendor_fixups[0];
370 C[n++].class = topLevelShellWidgetClass;
371 C[n].resfix = &vendor_fixups[0];
372 C[n++].class = transientShellWidgetClass;
373 C[n].resfix = &vendor_fixups[0];
374 C[n++].class = vendorShellWidgetClass;
375 C[n].resfix = &wmshell_fixups[0];
376 C[n++].class = wmShellWidgetClass;
378 C[n].resfix = &helpDialogs_fixups[0];
379 C[n].disciplines = setHelpDisciplines();
380 C[n++].class = dtHelpDialogWidgetClass;
381 C[n].resfix = &helpDialogs_fixups[0];
382 C[n].disciplines = setHelpDisciplines();
383 C[n++].class = dtHelpQuickDialogWidgetClass;
384 C[n].disciplines = setDtPrintSetupProcDisciplines();
385 C[n++].class = dtPrintSetupBoxWidgetClass;
389 /*****************************************************************************
390 *****************************************************************************
392 * At initialization time, these functions create the structures which
393 * map a callback name to its associated discipline table.
395 *****************************************************************************
396 *****************************************************************************/
399 setArrowDisciplines( void )
401 discInfo * info = (discInfo *)XtMalloc(sizeof(discInfo) * 4);
403 info[0].callbackName = strdup(XmNactivateCallback);
404 info[0].discipline = (void *)&arrowDisc;
405 info[1].callbackName = strdup(XmNarmCallback);
406 info[1].discipline = (void *)&arrowDisc;
407 info[2].callbackName = strdup(XmNdisarmCallback);
408 info[2].discipline = (void *)&arrowDisc;
409 info[3].callbackName = NULL;
410 info[3].discipline = NULL;
415 setComboDisciplines( void )
417 discInfo * info = (discInfo *)XtMalloc(sizeof(discInfo) * 2);
419 info[0].callbackName = strdup(XmNselectionCallback);
420 info[0].discipline = (void *)&comboDisc;
421 info[1].callbackName = NULL;
422 info[1].discipline = NULL;
427 setCmdDisciplines( void )
429 discInfo * info = (discInfo *)XtMalloc(sizeof(discInfo) * 3);
431 info[0].callbackName = strdup(XmNcommandChangedCallback);
432 info[0].discipline = (void *)&cmdDisc;
433 info[1].callbackName = strdup(XmNcommandEnteredCallback);
434 info[1].discipline = (void *)&cmdDisc;
435 info[2].callbackName = NULL;
436 info[2].discipline = NULL;
441 setDAreaDisciplines( void )
444 discInfo * info = (discInfo *)XtMalloc(sizeof(discInfo) * 4);
446 info[0].callbackName = strdup(XmNexposeCallback);
447 info[0].discipline = (void *)&dAreaDisc;
448 info[1].callbackName = strdup(XmNinputCallback);
449 info[1].discipline = (void *)&dAreaDisc;
450 info[2].callbackName = strdup(XmNresizeCallback);
451 info[2].discipline = (void *)&dAreaDisc;
452 info[3].callbackName = NULL;
453 info[3].discipline = NULL;
458 setDBtnDisciplines( void )
460 discInfo * info = (discInfo *)XtMalloc(sizeof(discInfo) * 6);
462 info[0].callbackName = strdup(XmNactivateCallback);
463 info[0].discipline = (void *)&dbtnDisc;
464 info[1].callbackName = strdup(XmNarmCallback);
465 info[1].discipline = (void *)&dbtnDisc;
466 info[2].callbackName = strdup(XmNdisarmCallback);
467 info[2].discipline = (void *)&dbtnDisc;
468 info[3].callbackName = strdup(XmNexposeCallback);
469 info[3].discipline = (void *)&dbtnDisc;
470 info[4].callbackName = strdup(XmNresizeCallback);
471 info[4].discipline = (void *)&dbtnDisc;
472 info[5].callbackName = NULL;
473 info[5].discipline = NULL;
478 setDtPrintSetupProcDisciplines( void )
480 discInfo * info = (discInfo *)XtMalloc(sizeof(discInfo) * 2);
482 /* Since the same discipline is used for all of DtPrintSetupBox's
483 * DtPrintSetupProcs, we can use DtRPrintSetupProc for all of them
484 * to avoid defining unnecessary info entries.
486 info[0].callbackName = strdup(DtRPrintSetupProc);
487 info[0].discipline = (void *)&dtPrintDisc;
488 info[1].callbackName = NULL;
489 info[1].discipline = NULL;
494 setFSelDisciplines( void )
496 discInfo * info = (discInfo *)XtMalloc(sizeof(discInfo) * 5);
498 info[0].callbackName = strdup(XmNapplyCallback);
499 info[0].discipline = (void *)&fselDisc;
500 info[1].callbackName = strdup(XmNcancelCallback);
501 info[1].discipline = (void *)&fselDisc;
502 info[2].callbackName = strdup(XmNnoMatchCallback);
503 info[2].discipline = (void *)&fselDisc;
504 info[3].callbackName = strdup(XmNokCallback);
505 info[3].discipline = (void *)&fselDisc;
506 info[4].callbackName = NULL;
507 info[4].discipline = NULL;
512 setListDisciplines( void )
514 discInfo * info = (discInfo *)XtMalloc(sizeof(discInfo) * 6);
516 info[0].callbackName = strdup(XmNbrowseSelectionCallback);
517 info[0].discipline = (void *)&listDisc;
518 info[1].callbackName = strdup(XmNdefaultActionCallback);
519 info[1].discipline = (void *)&listDisc;
520 info[2].callbackName = strdup(XmNextendedSelectionCallback);
521 info[2].discipline = (void *)&listDisc;
522 info[3].callbackName = strdup(XmNmultipleSelectionCallback);
523 info[3].discipline = (void *)&listDisc;
524 info[4].callbackName = strdup(XmNsingleSelectionCallback);
525 info[4].discipline = (void *)&listDisc;
526 info[5].callbackName = NULL;
527 info[5].discipline = NULL;
532 setPBtnDisciplines( void )
534 discInfo * info = (discInfo *)XtMalloc(sizeof(discInfo) * 4);
536 info[0].callbackName = strdup(XmNactivateCallback);
537 info[0].discipline = (void *)&pbtnDisc;
538 info[1].callbackName = strdup(XmNarmCallback);
539 info[1].discipline = (void *)&pbtnDisc;
540 info[2].callbackName = strdup(XmNdisarmCallback);
541 info[2].discipline = (void *)&pbtnDisc;
542 info[3].callbackName = NULL;
543 info[3].discipline = NULL;
548 setRCDisciplines( void )
550 discInfo * info = (discInfo *)XtMalloc(sizeof(discInfo) * 6);
552 info[0].callbackName = strdup(XmNentryCallback);
553 info[0].discipline = (void *)&rcDisc;
554 info[1].callbackName = strdup(XmNmapCallback);
555 info[1].discipline = (void *)&rcDisc;
556 info[2].callbackName = strdup(XmNtearOffMenuActivateCallback);
557 info[2].discipline = (void *)&rcDisc;
558 info[3].callbackName = strdup(XmNtearOffMenuDeactivateCallback);
559 info[3].discipline = (void *)&rcDisc;
560 info[4].callbackName = strdup(XmNunmapCallback);
561 info[4].discipline = (void *)&rcDisc;
562 info[5].callbackName = NULL;
563 info[5].discipline = NULL;
568 setScaleDisciplines( void )
570 discInfo * info = (discInfo *)XtMalloc(sizeof(discInfo) * 3);
572 info[0].callbackName = strdup(XmNdragCallback);
573 info[0].discipline = (void *)&scaleDisc;
574 info[1].callbackName = strdup(XmNvalueChangedCallback);
575 info[1].discipline = (void *)&scaleDisc;
576 info[2].callbackName = NULL;
577 info[2].discipline = NULL;
582 setSBarDisciplines( void )
584 discInfo * info = (discInfo *)XtMalloc(sizeof(discInfo) * 9);
586 info[0].callbackName = strdup(XmNdecrementCallback);
587 info[0].discipline = (void *)&sbarDisc;
588 info[1].callbackName = strdup(XmNdragCallback);
589 info[1].discipline = (void *)&sbarDisc;
590 info[2].callbackName = strdup(XmNincrementCallback);
591 info[2].discipline = (void *)&sbarDisc;
592 info[3].callbackName = strdup(XmNpageDecrementCallback);
593 info[3].discipline = (void *)&sbarDisc;
594 info[4].callbackName = strdup(XmNpageIncrementCallback);
595 info[4].discipline = (void *)&sbarDisc;
596 info[5].callbackName = strdup(XmNtoBottomCallback);
597 info[5].discipline = (void *)&sbarDisc;
598 info[6].callbackName = strdup(XmNtoTopCallback);
599 info[6].discipline = (void *)&sbarDisc;
600 info[7].callbackName = strdup(XmNvalueChangedCallback);
601 info[7].discipline = (void *)&sbarDisc;
602 info[8].callbackName = NULL;
603 info[8].discipline = NULL;
608 setSWinDisciplines( void )
610 discInfo * info = (discInfo *)XtMalloc(sizeof(discInfo) * 2);
612 info[0].callbackName = strdup(XmNtraverseObscuredCallback);
613 info[0].discipline = (void *)&swinDisc;
614 info[1].callbackName = NULL;
615 info[1].discipline = NULL;
620 setSBoxDisciplines( void )
622 discInfo * info = (discInfo *)XtMalloc(sizeof(discInfo) * 5);
624 info[0].callbackName = strdup(XmNapplyCallback);
625 info[0].discipline = (void *)&sboxDisc;
626 info[1].callbackName = strdup(XmNcancelCallback);
627 info[1].discipline = (void *)&sboxDisc;
628 info[2].callbackName = strdup(XmNnoMatchCallback);
629 info[2].discipline = (void *)&sboxDisc;
630 info[3].callbackName = strdup(XmNokCallback);
631 info[3].discipline = (void *)&sboxDisc;
632 info[4].callbackName = NULL;
633 info[4].discipline = NULL;
638 setTextDisciplines( void )
640 discInfo * info = (discInfo *)XtMalloc(sizeof(discInfo) * 10);
642 info[0].callbackName = strdup(XmNactivateCallback);
643 info[0].discipline = (void *)&dftDisc;
644 info[1].callbackName = strdup(XmNfocusCallback);
645 info[1].discipline = (void *)&dftDisc;
646 info[2].callbackName = strdup(XmNgainPrimaryCallback);
647 info[2].discipline = (void *)&dftDisc;
648 info[3].callbackName = strdup(XmNlosePrimaryCallback);
649 info[3].discipline = (void *)&dftDisc;
650 info[4].callbackName = strdup(XmNlosingFocusCallback);
651 info[4].discipline = (void *)&textDisc;
652 info[5].callbackName = strdup(XmNmodifyVerifyCallback);
653 info[5].discipline = (void *)&textDisc;
654 info[6].callbackName = strdup(XmNmodifyVerifyCallbackWcs);
655 info[6].discipline = (void *)&textDisc2;
656 info[7].callbackName = strdup(XmNmotionVerifyCallback);
657 info[7].discipline = (void *)&textDisc;
658 info[8].callbackName = strdup(XmNvalueChangedCallback);
659 info[8].discipline = (void *)&dftDisc;
660 info[9].callbackName = NULL;
661 info[9].discipline = NULL;
666 setTBtnDisciplines( void )
668 discInfo * info = (discInfo *)XtMalloc(sizeof(discInfo) * 4);
670 info[0].callbackName = strdup(XmNarmCallback);
671 info[0].discipline = (void *)&tbtnDisc;
672 info[1].callbackName = strdup(XmNdisarmCallback);
673 info[1].discipline = (void *)&tbtnDisc;
674 info[2].callbackName = strdup(XmNvalueChangedCallback);
675 info[2].discipline = (void *)&tbtnDisc;
676 info[3].callbackName = NULL;
677 info[3].discipline = NULL;
682 setHelpDisciplines( void )
684 discInfo * info = (discInfo *)XtMalloc(sizeof(discInfo) * 3);
686 info[0].callbackName = strdup(DtNhyperLinkCallback);
687 info[0].discipline = (void *)&helpDisc;
688 info[1].callbackName = strdup(DtNcloseCallback);
689 info[1].discipline = (void *)&helpDisc;
690 info[2].callbackName = NULL;
691 info[2].discipline = NULL;