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 /* $TOG: xmcvt.c /main/8 1999/09/16 13:42:47 mgreess $ */
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. */
38 #include <X11/Intrinsic.h>
39 #include <X11/IntrinsicP.h>
40 #include <X11/CoreP.h>
41 #include <X11/StringDefs.h>
42 #include <Xm/XmStrDefs.h>
44 #include <Xm/MwmUtil.h>
49 #include <Xm/Protocols.h>
50 #include <Dt/Service.h>
52 #include <Dt/HourGlass.h>
54 #include <Dt/EnvControlP.h>
67 #include "xmwidgets.h"
74 unsigned int modifier;
79 * Converters for DTKSH
86 static char *buf = NULL;
87 XmStringContext context;
88 XmStringCharSet charset;
89 XmStringDirection dir;
91 Boolean separator = FALSE;
96 XmStringInitContext(&context, string);
100 if (XmStringGetNextSegment(context, &text, &charset, &dir,
103 buf = XtRealloc(buf, strlen(buf) + strlen(text) + 2);
111 XmStringFreeContext(context);
116 DtkshCvtXmStringToString(
124 XmString string = ((XmString *)fval->addr)[0];
127 buf = XmStringToString(string);
128 toval->addr = (caddr_t)buf;
129 toval->size = buf ? strlen(buf) + 1 : 0;
133 DtkshCvtKeySymToString(
141 buf[0] = (char) (((KeySym *)(fval->addr))[0]);
143 toval->addr = (caddr_t)buf;
148 * Convert an XmStringTable to a String.
149 * In keeping with the standard CvtStringToStringTable function provided
150 * by Motif, we will separate each item by a comma. This of course does not
151 * work properly if there is a comma in the data, but what can we do?
155 _CvtXmStringTableToString(
156 XmStringTable stringtable,
159 static char *buf = NULL;
160 XmStringContext context;
161 XmStringCharSet charset;
162 XmStringDirection dir;
164 Boolean separator = FALSE;
174 for (i = 0; i < itemCount; i++)
179 XmStringInitContext(&context, stringtable[i]);
182 if (XmStringGetNextSegment(context, &text, &charset, &dir, &separator))
185 * To be consistent with the Motif converter, which will take
186 * a comma-separated string, and convert it to an XmStringTable,
187 * we need to escape any ',' characters contained within a list
192 while (nextComma = strchr(ptr, ','))
195 buf = XtRealloc(buf, strlen(buf) + strlen(ptr) + 5);
201 buf = XtRealloc(buf, strlen(buf) + strlen(ptr) + 3);
209 XmStringFreeContext(context);
216 DtkshCvtListItemsToString(
225 XmStringTable stringtable = *((XmStringTable *)fval->addr);
226 int itemCount = *((int *) args[0].addr);
228 buf = _CvtXmStringTableToString(stringtable, itemCount);
230 toval->addr = (caddr_t)buf;
231 toval->size = buf ? strlen(buf) + 1 : 0;
236 * There are a number of resources in motif that consist of a few
237 * named integer values. Most such resources only have 2 to 4 values,
238 * none have more than 7. Because there are so few values, it's not
239 * really worth the memory overhead to hash them. Also, these kinds
240 * of resources are rarely read by programmers (most are written but
241 * not read). So, we decided to go with a simple linear search converter
242 * that takes as its first argument a table of the values allowed, and
243 * as its second argument the number of items in the table.
245 * Note that we could not go with a simple indexing scheme because:
246 * (1) the values are not guaranteed to be contiguous and (2) some
247 * of the tables start with -1 instead of 0.
249 * If there are in the future many more items added to these lists, we
250 * might want to convert to a hashing scheme or a binary search.
254 DtkshCvtNamedValueToString(
261 * same buffer will get used each time
263 static char *ret = NULL;
264 struct named_integer *table;
274 value = (long)*((char *)fval->addr);
280 value = (long)*((short *)fval->addr);
286 value = (long)*((long *)fval->addr);
291 if (fval->size == sizeof(int))
293 value = (long)*((int *)fval->addr);
307 table = (struct named_integer *)args[0].addr;
308 numtable = args[0].size/sizeof(struct named_integer);
310 for (i = 0; i < numtable; i++) {
311 if (value == table[i].value) {
312 toval->addr = (caddr_t)table[i].name;
313 toval->size = strlen(table[i].name) + 1;
322 /*************************************************************************/
325 DtkshCvtStringToNamedValue(
332 * same buffer will get used each time
335 struct named_integer *table;
342 value = (String)fval->addr;
349 table = (struct named_integer *)args[0].addr;
350 numtable = args[0].size/sizeof(struct named_integer);
352 for (i = 0; i < numtable; i++) {
353 if (DtCompareISOLatin1(value, (char *)(table[i].name))) {
354 toval->addr = (caddr_t)&table[i].value;
355 toval->size = sizeof(table[i].value);
359 errmsg =strdup(GETMESSAGE(16,2,
360 "DtkshCvtStringToNamedValue: Unable to convert the string '%s'"));
361 errbuf = XtMalloc(strlen(errmsg) + strlen(value) + 10);
362 sprintf(errbuf, errmsg, value);
371 struct named_integer NI_TraversalDirection[] = {
372 { "TRAVERSE_CURRENT", XmTRAVERSE_CURRENT },
373 { "TRAVERSE_DOWN", XmTRAVERSE_DOWN },
374 { "TRAVERSE_HOME", XmTRAVERSE_HOME },
375 { "TRAVERSE_LEFT", XmTRAVERSE_LEFT },
376 { "TRAVERSE_NEXT", XmTRAVERSE_NEXT },
377 { "TRAVERSE_NEXT_TAB_GROUP", XmTRAVERSE_NEXT_TAB_GROUP },
378 { "TRAVERSE_PREV", XmTRAVERSE_PREV },
379 { "TRAVERSE_PREV_TAB_GROUP", XmTRAVERSE_PREV_TAB_GROUP },
380 { "TRAVERSE_PREV_TAB_GROUP", XmTRAVERSE_PREV_TAB_GROUP },
381 { "TRAVERSE_RIGHT", XmTRAVERSE_RIGHT },
382 { "TRAVERSE_UP", XmTRAVERSE_UP },
385 struct named_integer NI_VisibilityType[] = {
386 { "VISIBILITY_UNOBSCURED", XmVISIBILITY_UNOBSCURED },
387 { "VISIBILITY_PARTIALLY_OBSCURED",XmVISIBILITY_PARTIALLY_OBSCURED },
388 { "VISIBILITY_FULLY_OBSCURED", XmVISIBILITY_FULLY_OBSCURED },
391 struct named_integer NI_CommandChild[] = {
392 { "DIALOG_COMMAND_TEXT", XmDIALOG_COMMAND_TEXT },
393 { "DIALOG_PROMPT_LABEL", XmDIALOG_PROMPT_LABEL },
394 { "DIALOG_HISTORY_LIST", XmDIALOG_HISTORY_LIST },
395 { "DIALOG_WORK_AREA", XmDIALOG_WORK_AREA },
398 struct named_integer NI_MessageBoxChild[] = {
399 { "DIALOG_CANCEL_BUTTON", XmDIALOG_CANCEL_BUTTON },
400 { "DIALOG_DEFAULT_BUTTON", XmDIALOG_DEFAULT_BUTTON },
401 { "DIALOG_HELP_BUTTON", XmDIALOG_HELP_BUTTON },
402 { "DIALOG_MESSAGE_LABEL", XmDIALOG_MESSAGE_LABEL },
403 { "DIALOG_OK_BUTTON", XmDIALOG_OK_BUTTON },
404 { "DIALOG_SEPARATOR", XmDIALOG_SEPARATOR },
405 { "DIALOG_SYMBOL_LABEL", XmDIALOG_SYMBOL_LABEL },
408 struct named_integer NI_FileSelChild[] = {
409 { "DIALOG_APPLY_BUTTON", XmDIALOG_APPLY_BUTTON },
410 { "DIALOG_CANCEL_BUTTON", XmDIALOG_CANCEL_BUTTON },
411 { "DIALOG_DEFAULT_BUTTON", XmDIALOG_DEFAULT_BUTTON },
412 { "DIALOG_DIR_LIST", XmDIALOG_DIR_LIST },
413 { "DIALOG_DIR_LIST_LABEL", XmDIALOG_DIR_LIST_LABEL },
414 { "DIALOG_FILTER_LABEL", XmDIALOG_FILTER_LABEL },
415 { "DIALOG_FILTER_TEXT", XmDIALOG_FILTER_TEXT },
416 { "DIALOG_HELP_BUTTON", XmDIALOG_HELP_BUTTON },
417 { "DIALOG_LIST", XmDIALOG_LIST },
418 { "DIALOG_LIST_LABEL", XmDIALOG_LIST_LABEL },
419 { "DIALOG_OK_BUTTON", XmDIALOG_OK_BUTTON },
420 { "DIALOG_SELECTION_LABEL", XmDIALOG_SELECTION_LABEL },
421 { "DIALOG_SEPARATOR", XmDIALOG_SEPARATOR },
422 { "DIALOG_TEXT", XmDIALOG_TEXT },
423 { "DIALOG_WORK_AREA", XmDIALOG_WORK_AREA },
426 struct named_integer NI_SelBoxChild[] = {
427 { "DIALOG_APPLY_BUTTON", XmDIALOG_APPLY_BUTTON },
428 { "DIALOG_CANCEL_BUTTON", XmDIALOG_CANCEL_BUTTON },
429 { "DIALOG_DEFAULT_BUTTON", XmDIALOG_DEFAULT_BUTTON },
430 { "DIALOG_HELP_BUTTON", XmDIALOG_HELP_BUTTON },
431 { "DIALOG_LIST", XmDIALOG_LIST },
432 { "DIALOG_LIST_LABEL", XmDIALOG_LIST_LABEL },
433 { "DIALOG_OK_BUTTON", XmDIALOG_OK_BUTTON },
434 { "DIALOG_SELECTION_LABEL", XmDIALOG_SELECTION_LABEL },
435 { "DIALOG_SEPARATOR", XmDIALOG_SEPARATOR },
436 { "DIALOG_TEXT", XmDIALOG_TEXT },
437 { "DIALOG_WORK_AREA", XmDIALOG_WORK_AREA },
440 /************************************************************************/
442 struct named_integer NI_ArrowDirection[] = {
443 { "ARROW_UP", XmARROW_UP },
444 { "ARROW_DOWN", XmARROW_DOWN },
445 { "ARROW_LEFT", XmARROW_LEFT },
446 { "ARROW_RIGHT",XmARROW_RIGHT },
449 struct named_integer NI_MultiClick[] = {
450 { "MULTICLICK_DISCARD", XmMULTICLICK_DISCARD },
451 { "MULTICLICK_KEEP", XmMULTICLICK_KEEP },
454 struct named_integer NI_DialogStyle[] = {
455 { "DIALOG_SYSTEM_MODAL", XmDIALOG_SYSTEM_MODAL },
456 {"DIALOG_PRIMARY_APPLICATION_MODAL",XmDIALOG_PRIMARY_APPLICATION_MODAL},
457 { "DIALOG_APPLICATION_MODAL", XmDIALOG_APPLICATION_MODAL },
458 { "DIALOG_FULL_APPLICATION_MODAL", XmDIALOG_FULL_APPLICATION_MODAL },
459 { "DIALOG_MODELESS", XmDIALOG_MODELESS },
460 { "DIALOG_WORK_AREA", XmDIALOG_WORK_AREA },
463 struct named_integer NI_MWMInputMode[] = {
465 { "MWM_INPUT_MODELESS", MWM_INPUT_MODELESS},
466 { "MWM_INPUT_PRIMARY_APPLICATION_MODAL",
467 MWM_INPUT_PRIMARY_APPLICATION_MODAL },
468 { "MWM_INPUT_SYSTEM_MODAL", MWM_INPUT_SYSTEM_MODAL },
469 { "MWM_INPUT_FULL_APPLICATION_MODAL",
470 MWM_INPUT_FULL_APPLICATION_MODAL },
473 struct named_integer NI_ResizePolicy[] = {
474 { "RESIZE_NONE", XmRESIZE_NONE },
475 { "RESIZE_ANY", XmRESIZE_ANY },
476 { "RESIZE_GROW", XmRESIZE_GROW },
479 struct named_integer NI_FileTypeMask[] = {
480 { "FILE_REGULAR", XmFILE_REGULAR },
481 { "FILE_DIRECTORY", XmFILE_DIRECTORY },
482 { "FILE_ANY_TYPE", XmFILE_ANY_TYPE },
485 struct named_integer NI_ShadowType[] = {
486 { "SHADOW_IN", XmSHADOW_IN },
487 { "SHADOW_OUT", XmSHADOW_OUT },
488 { "SHADOW_ETCHED_IN", XmSHADOW_ETCHED_IN },
489 { "SHADOW_ETCHED_OUT", XmSHADOW_ETCHED_OUT },
492 struct named_integer NI_Attachment[] = {
493 { "ATTACH_NONE", XmATTACH_NONE },
494 { "ATTACH_FORM", XmATTACH_FORM },
495 { "ATTACH_OPPOSITE_FORM", XmATTACH_OPPOSITE_FORM },
496 { "ATTACH_WIDGET", XmATTACH_WIDGET },
497 { "ATTACH_OPPOSITE_WIDGET", XmATTACH_OPPOSITE_WIDGET },
498 { "ATTACH_POSITION", XmATTACH_POSITION },
499 { "ATTACH_SELF", XmATTACH_SELF },
502 struct named_integer NI_ChildType[] = {
503 { "FRAME_TITLE_CHILD", XmFRAME_TITLE_CHILD },
504 { "FRAME_WORKAREA_CHILD",XmFRAME_WORKAREA_CHILD },
505 { "FRAME_GENERIC_CHILD",XmFRAME_GENERIC_CHILD },
508 struct named_integer NI_ChildVerticalAlignment[] = {
509 { "ALIGNMENT_BASELINE_BOTTOM", XmALIGNMENT_BASELINE_BOTTOM },
510 { "ALIGNMENT_BASELINE_TOP",XmALIGNMENT_BASELINE_TOP },
511 { "ALIGNMENT_WIDGET_TOP",XmALIGNMENT_WIDGET_TOP },
512 { "ALIGNMENT_CENTER",XmALIGNMENT_CENTER },
513 { "ALIGNMENT_WIDGET_BOTTOM",XmALIGNMENT_WIDGET_BOTTOM },
516 struct named_integer NI_UnitType[] = {
517 { "PIXELS", XmPIXELS },
518 { "100TH_MILLIMETERS", Xm100TH_MILLIMETERS },
519 { "1000TH_INCHES", Xm1000TH_INCHES },
520 { "100TH_POINTS", Xm100TH_POINTS },
521 { "100TH_FONT_UNITS", Xm100TH_FONT_UNITS },
524 struct named_integer NI_NavigationType[] = {
526 { "TAB_GROUP", XmTAB_GROUP },
527 { "STICKY_TAB_GROUP", XmSTICKY_TAB_GROUP },
528 { "EXCLUSIVE_TAB_GROUP", XmEXCLUSIVE_TAB_GROUP },
531 struct named_integer NI_Alignment[] = {
532 { "ALIGNMENT_CENTER", XmALIGNMENT_CENTER },
533 { "ALIGNMENT_END", XmALIGNMENT_END },
534 { "ALIGNMENT_BEGINNING", XmALIGNMENT_BEGINNING },
537 struct named_integer NI_LabelType[] = {
538 { "STRING", XmSTRING },
539 { "PIXMAP", XmPIXMAP }
542 struct named_integer NI_StringDirection[] = {
543 { "STRING_DIRECTION_L_TO_R", XmSTRING_DIRECTION_L_TO_R },
544 { "STRING_DIRECTION_R_TO_L", XmSTRING_DIRECTION_R_TO_L },
547 struct named_integer NI_SelectionPolicy[] = {
548 { "SINGLE_SELECT", XmSINGLE_SELECT },
549 { "MULTIPLE_SELECT", XmMULTIPLE_SELECT },
550 { "EXTENDED_SELECT", XmEXTENDED_SELECT },
551 { "BROWSE_SELECT", XmBROWSE_SELECT },
554 struct named_integer NI_ScrollBarPlacement[] = {
555 { "TOP_LEFT", XmTOP_LEFT },
556 { "BOTTOM_LEFT", XmBOTTOM_LEFT },
557 { "TOP_RIGHT", XmTOP_RIGHT },
558 { "BOTTOM_RIGHT", XmBOTTOM_RIGHT },
561 struct named_integer NI_ScrollBarDisplayPolicy[] = {
562 { "AS_NEEDED", XmAS_NEEDED },
563 { "STATIC", XmSTATIC },
566 struct named_integer NI_ScrollingPolicy[] = {
567 { "AUTOMATIC", XmAUTOMATIC },
568 { "APPLICATION_DEFINED", XmAPPLICATION_DEFINED },
571 struct named_integer NI_VisualPolicy[] = {
572 { "VARIABLE", XmVARIABLE },
573 { "CONSTANT", XmCONSTANT },
576 struct named_integer NI_ListSizePolicy[] = {
577 { "CONSTANT", XmCONSTANT },
578 { "VARIABLE", XmVARIABLE },
579 { "RESIZE_IF_POSSIBLE", XmRESIZE_IF_POSSIBLE },
582 struct named_integer NI_EditMode[] = {
583 { "SINGLE_LINE_EDIT", XmSINGLE_LINE_EDIT },
584 { "MULTI_LINE_EDIT", XmMULTI_LINE_EDIT },
587 struct named_integer NI_CommandWindowLocation[] = {
588 { "COMMAND_ABOVE_WORKSPACE", XmCOMMAND_ABOVE_WORKSPACE },
589 { "COMMAND_BELOW_WORKSPACE", XmCOMMAND_BELOW_WORKSPACE },
592 struct named_integer NI_DefaultButtonType[] = {
593 { "DIALOG_CANCEL_BUTTON", XmDIALOG_CANCEL_BUTTON },
594 { "DIALOG_OK_BUTTON", XmDIALOG_OK_BUTTON },
595 { "DIALOG_HELP_BUTTON", XmDIALOG_HELP_BUTTON },
596 { "DIALOG_NONE", XmDIALOG_NONE },
599 struct named_integer NI_DialogType[] = {
600 { "DIALOG_TEMPLATE", XmDIALOG_TEMPLATE },
601 { "DIALOG_INFORMATION", XmDIALOG_INFORMATION },
602 { "DIALOG_QUESTION", XmDIALOG_QUESTION },
603 { "DIALOG_WORKING", XmDIALOG_WORKING },
604 { "DIALOG_ERROR", XmDIALOG_ERROR },
605 { "DIALOG_MESSAGE", XmDIALOG_MESSAGE },
606 { "DIALOG_WARNING", XmDIALOG_WARNING },
609 struct named_integer NI_EntryVerticalAlignment[] = {
610 { "ALIGNMENT_BASELINE_BOTTOM", XmALIGNMENT_BASELINE_BOTTOM },
611 { "ALIGNMENT_BASELINE_TOP",XmALIGNMENT_BASELINE_TOP },
612 { "ALIGNMENT_CONTENTS_BOTTOM",XmALIGNMENT_CONTENTS_BOTTOM },
613 { "ALIGNMENT_CENTER",XmALIGNMENT_CENTER },
614 { "ALIGNMENT_CONTENTS_TOP",XmALIGNMENT_CONTENTS_TOP },
617 struct named_integer NI_Orientation[] = {
618 { "HORIZONTAL", XmHORIZONTAL },
619 { "VERTICAL", XmVERTICAL },
622 struct named_integer NI_Packing[] = {
623 { "PACK_TIGHT", XmPACK_TIGHT },
624 { "PACK_COLUMN",XmPACK_COLUMN },
625 { "PACK_NONE", XmPACK_NONE },
628 struct named_integer NI_RowColumnType[] = {
629 { "WORK_AREA", XmWORK_AREA },
630 { "MENU_BAR", XmMENU_BAR },
631 { "MENU_PULLDOWN",XmMENU_PULLDOWN },
632 { "MENU_POPUP", XmMENU_POPUP },
633 { "MENU_OPTION",XmMENU_OPTION },
636 struct named_integer NI_ProcessingDirection[] = {
637 { "MAX_ON_TOP", XmMAX_ON_TOP },
638 { "MAX_ON_BOTTOM",XmMAX_ON_BOTTOM },
639 { "MAX_ON_LEFT",XmMAX_ON_LEFT },
640 { "MAX_ON_RIGHT",XmMAX_ON_RIGHT },
643 struct named_integer NI_ChildPlacement[] = {
644 { "PLACE_ABOVE_SELECTION", XmPLACE_ABOVE_SELECTION },
645 { "PLACE_BELOW_SELECTION", XmPLACE_BELOW_SELECTION },
646 { "PLACE_TOP", XmPLACE_TOP },
649 struct named_integer NI_SelectionDialogType[] = {
650 { "DIALOG_PROMPT", XmDIALOG_PROMPT },
651 { "DIALOG_COMMAND", XmDIALOG_COMMAND },
652 { "DIALOG_SELECTION", XmDIALOG_SELECTION },
653 { "DIALOG_FILE_SELECTION", XmDIALOG_FILE_SELECTION },
654 { "DIALOG_WORK_AREA", XmDIALOG_WORK_AREA },
657 struct named_integer NI_SeparatorType[] = {
658 { "SINGLE_LINE", XmSINGLE_LINE },
659 { "DOUBLE_LINE", XmDOUBLE_LINE },
660 { "SINGLE_DASHED_LINE", XmSINGLE_DASHED_LINE },
661 { "DOUBLE_DASHED_LINE", XmDOUBLE_DASHED_LINE },
662 { "NO_LINE", XmNO_LINE },
663 { "SHADOW_ETCHED_IN", XmSHADOW_ETCHED_IN },
664 { "SHADOW_ETCHED_OUT", XmSHADOW_ETCHED_OUT },
665 { "SHADOW_ETCHED_IN_DASH", XmSHADOW_ETCHED_IN_DASH },
666 { "SHADOW_ETCHED_OUT_DASH", XmSHADOW_ETCHED_OUT_DASH },
669 struct named_integer NI_IndicatorType[] = {
670 { "ONE_OF_MANY", XmONE_OF_MANY },
671 { "N_OF_MANY", XmN_OF_MANY },
674 struct named_integer NI_AudibleWarning[] = {
679 struct named_integer NI_DeleteResponse[] = {
680 { "DESTROY", XmDESTROY },
681 { "UNMAP", XmUNMAP },
682 { "DO_NOTHING", XmDO_NOTHING },
685 struct named_integer NI_KeyboardFocusPolicy[] = {
686 { "EXPLICIT", XmEXPLICIT },
687 { "POINTER", XmPOINTER },
690 struct named_integer NI_InitialState[] = {
691 { "NormalState", NormalState },
692 { "IconicState", IconicState },
695 struct named_integer NI_HelpReturnSelectedWidgetResultType[] = {
696 { "HELP_SELECT_VALID", DtHELP_SELECT_VALID },
697 { "HELP_SELECT_INVALID",DtHELP_SELECT_INVALID },
698 { "HELP_SELECT_ABORT", DtHELP_SELECT_ABORT },
699 { "HELP_SELECT_ERROR", DtHELP_SELECT_ERROR },
702 struct named_integer NI_QuickHelpChildType[] = {
703 { "HELP_QUICK_CLOSE_BUTTON", DtHELP_QUICK_CLOSE_BUTTON },
704 { "HELP_QUICK_PRINT_BUTTON",DtHELP_QUICK_PRINT_BUTTON },
705 { "HELP_QUICK_HELP_BUTTON",DtHELP_QUICK_HELP_BUTTON },
706 { "HELP_QUICK_SEPARATOR", DtHELP_QUICK_SEPARATOR },
707 { "HELP_QUICK_MORE_BUTTON",DtHELP_QUICK_MORE_BUTTON },
708 { "HELP_QUICK_BACK_BUTTON",DtHELP_QUICK_BACK_BUTTON },
711 struct named_integer NI_HelpType[] = {
712 { "HELP_TYPE_TOPIC", DtHELP_TYPE_TOPIC },
713 { "HELP_TYPE_STRING",DtHELP_TYPE_STRING },
714 { "HELP_TYPE_DYNAMIC_STRING",DtHELP_TYPE_DYNAMIC_STRING },
715 { "HELP_TYPE_MAN_PAGE", DtHELP_TYPE_MAN_PAGE },
716 { "HELP_TYPE_FILE",DtHELP_TYPE_FILE },
719 struct named_integer NI_HelpScrollBarDisplayPolicy[] = {
720 { "HELP_AS_NEEDED_SCROLLBARS", DtHELP_AS_NEEDED_SCROLLBARS },
721 { "HELP_STATIC_SCROLLBARS", DtHELP_STATIC_SCROLLBARS },
722 { "HELP_NO_SCROLLBARS",DtHELP_NO_SCROLLBARS },
725 struct named_integer NI_TextHighlightMode[] = {
726 { "HIGHLIGHT_NORMAL", XmHIGHLIGHT_NORMAL },
727 { "HIGHLIGHT_SELECTED", XmHIGHLIGHT_SELECTED },
728 { "HIGHLIGHT_SECONDARY_SELECTED",XmHIGHLIGHT_SECONDARY_SELECTED },
731 struct named_integer NI_TextSearchDirection[] = {
732 { "TEXT_FORWARD", XmTEXT_FORWARD },
733 { "TEXT_BACKWARD", XmTEXT_BACKWARD },
736 struct named_integer NI_ListSelectionType[] = {
737 { "INITIAL", XmINITIAL },
738 { "MODIFICATION", XmMODIFICATION },
739 { "ADDITION", XmADDITION },
742 struct named_integer NI_TT_STATUS[] = {
744 { "TT_WRN_NOTFOUND", TT_WRN_NOTFOUND } ,
745 { "TT_WRN_STALE_OBJID", TT_WRN_STALE_OBJID } ,
746 { "TT_WRN_STOPPED", TT_WRN_STOPPED } ,
747 { "TT_WRN_SAME_OBJID", TT_WRN_SAME_OBJID } ,
748 { "TT_WRN_START_MESSAGE", TT_WRN_START_MESSAGE } ,
749 { "TT_ERR_CLASS", TT_ERR_CLASS } ,
750 { "TT_ERR_DBAVAIL", TT_ERR_DBAVAIL } ,
751 { "TT_ERR_DBEXIST", TT_ERR_DBEXIST } ,
752 { "TT_ERR_FILE", TT_ERR_FILE } ,
753 { "TT_ERR_INVALID", TT_ERR_INVALID } ,
754 { "TT_ERR_MODE", TT_ERR_MODE } ,
755 { "TT_ERR_ACCESS", TT_ERR_ACCESS } ,
756 { "TT_ERR_NOMP", TT_ERR_NOMP } ,
757 { "TT_ERR_NOTHANDLER", TT_ERR_NOTHANDLER } ,
758 { "TT_ERR_NUM", TT_ERR_NUM } ,
759 { "TT_ERR_OBJID", TT_ERR_OBJID } ,
760 { "TT_ERR_OP", TT_ERR_OP } ,
761 { "TT_ERR_OTYPE", TT_ERR_OTYPE } ,
762 { "TT_ERR_ADDRESS", TT_ERR_ADDRESS } ,
763 { "TT_ERR_PATH", TT_ERR_PATH } ,
764 { "TT_ERR_POINTER", TT_ERR_POINTER } ,
765 { "TT_ERR_PROCID", TT_ERR_PROCID } ,
766 { "TT_ERR_PROPLEN", TT_ERR_PROPLEN } ,
767 { "TT_ERR_PROPNAME", TT_ERR_PROPNAME } ,
768 { "TT_ERR_PTYPE", TT_ERR_PTYPE } ,
769 { "TT_ERR_DISPOSITION", TT_ERR_DISPOSITION } ,
770 { "TT_ERR_SCOPE", TT_ERR_SCOPE } ,
771 { "TT_ERR_SESSION", TT_ERR_SESSION } ,
772 { "TT_ERR_VTYPE", TT_ERR_VTYPE } ,
773 { "TT_ERR_NO_VALUE", TT_ERR_NO_VALUE } ,
774 { "TT_ERR_INTERNAL", TT_ERR_INTERNAL } ,
775 { "TT_ERR_READONLY", TT_ERR_READONLY } ,
776 { "TT_ERR_NO_MATCH", TT_ERR_NO_MATCH } ,
777 { "TT_ERR_UNIMP", TT_ERR_UNIMP } ,
778 { "TT_ERR_OVERFLOW", TT_ERR_OVERFLOW } ,
779 { "TT_ERR_PTYPE_START", TT_ERR_PTYPE_START } ,
780 { "TT_ERR_CATEGORY", TT_ERR_CATEGORY } ,
781 { "TT_ERR_DBUPDATE", TT_ERR_DBUPDATE } ,
782 { "TT_ERR_DBFULL", TT_ERR_DBFULL } ,
783 { "TT_ERR_DBCONSIST", TT_ERR_DBCONSIST } ,
784 { "TT_ERR_STATE", TT_ERR_STATE } ,
785 { "TT_ERR_NOMEM", TT_ERR_NOMEM } ,
786 { "TT_ERR_SLOTNAME", TT_ERR_SLOTNAME } ,
787 { "TT_ERR_XDR", TT_ERR_XDR } ,
788 { "TT_ERR_NETFILE", TT_ERR_NETFILE } ,
789 { "TT_ERR_TOOLATE", TT_ERR_TOOLATE } ,
790 { "TT_ERR_AUTHORIZATION", TT_ERR_AUTHORIZATION } ,
791 { "TT_ERR_VERSION_MISMATCH", TT_ERR_VERSION_MISMATCH } ,
792 { "TT_DESKTOP_EPERM", TT_DESKTOP_EPERM } ,
793 { "TT_DESKTOP_ENOENT", TT_DESKTOP_ENOENT } ,
794 { "TT_DESKTOP_EINTR", TT_DESKTOP_EINTR } ,
795 { "TT_DESKTOP_EIO", TT_DESKTOP_EIO } ,
796 { "TT_DESKTOP_EAGAIN", TT_DESKTOP_EAGAIN } ,
797 { "TT_DESKTOP_ENOMEM", TT_DESKTOP_ENOMEM } ,
798 { "TT_DESKTOP_EACCES", TT_DESKTOP_EACCES } ,
799 { "TT_DESKTOP_EFAULT", TT_DESKTOP_EFAULT } ,
800 { "TT_DESKTOP_EEXIST", TT_DESKTOP_EEXIST } ,
801 { "TT_DESKTOP_ENODEV", TT_DESKTOP_ENODEV } ,
802 { "TT_DESKTOP_ENOTDIR", TT_DESKTOP_ENOTDIR } ,
803 { "TT_DESKTOP_EISDIR", TT_DESKTOP_EISDIR } ,
804 { "TT_DESKTOP_EINVAL", TT_DESKTOP_EINVAL } ,
805 { "TT_DESKTOP_ENFILE", TT_DESKTOP_ENFILE } ,
806 { "TT_DESKTOP_EMFILE", TT_DESKTOP_EMFILE } ,
807 { "TT_DESKTOP_ETXTBSY", TT_DESKTOP_ETXTBSY } ,
808 { "TT_DESKTOP_EFBIG", TT_DESKTOP_EFBIG } ,
809 { "TT_DESKTOP_ENOSPC", TT_DESKTOP_ENOSPC } ,
810 { "TT_DESKTOP_EROFS", TT_DESKTOP_EROFS } ,
811 { "TT_DESKTOP_EMLINK", TT_DESKTOP_EMLINK } ,
812 { "TT_DESKTOP_EPIPE", TT_DESKTOP_EPIPE } ,
813 { "TT_DESKTOP_ENOMSG", TT_DESKTOP_ENOMSG } ,
814 { "TT_DESKTOP_EDEADLK", TT_DESKTOP_EDEADLK } ,
815 { "TT_DESKTOP_ECANCELED", TT_DESKTOP_ECANCELED } ,
816 { "TT_DESKTOP_ENOTSUP", TT_DESKTOP_ENOTSUP } ,
817 { "TT_DESKTOP_ENODATA", TT_DESKTOP_ENODATA } ,
818 { "TT_DESKTOP_EPROTO", TT_DESKTOP_EPROTO } ,
819 { "TT_DESKTOP_ENOTEMPTY", TT_DESKTOP_ENOTEMPTY } ,
820 { "TT_DESKTOP_ETIMEDOUT", TT_DESKTOP_ETIMEDOUT } ,
821 { "TT_DESKTOP_EALREADY", TT_DESKTOP_EALREADY } ,
822 { "TT_DESKTOP_UNMODIFIED", TT_DESKTOP_UNMODIFIED } ,
823 { "TT_MEDIA_ERR_SIZE", TT_MEDIA_ERR_SIZE } ,
824 { "TT_MEDIA_ERR_FORMAT", TT_MEDIA_ERR_FORMAT } ,
825 { "TT_AUTHFILE_ACCESS", TT_AUTHFILE_ACCESS } ,
826 { "TT_AUTHFILE_LOCK", TT_AUTHFILE_LOCK } ,
827 { "TT_AUTHFILE_LOCK_TIMEOUT", TT_AUTHFILE_LOCK_TIMEOUT } ,
828 { "TT_AUTHFILE_UNLOCK", TT_AUTHFILE_UNLOCK } ,
829 { "TT_AUTHFILE_MISSING", TT_AUTHFILE_MISSING } ,
830 { "TT_AUTHFILE_ENTRY_MISSING", TT_AUTHFILE_ENTRY_MISSING } ,
831 { "TT_AUTHFILE_WRITE", TT_AUTHFILE_WRITE } ,
835 struct named_integer NI_TT_SCOPE[] = {
836 { "TT_SCOPE_NONE", TT_SCOPE_NONE },
837 { "TT_SESSION", TT_SESSION },
838 { "TT_FILE", TT_FILE },
839 { "TT_BOTH", TT_BOTH },
840 { "TT_FILE_IN_SESSION", TT_FILE_IN_SESSION },
843 struct named_integer NI_TT_OP[] = {
844 { "TTDT_OP_NONE", TTDT_OP_NONE },
845 { "TTDT_CREATED", TTDT_CREATED },
846 { "TTDT_DELETED", TTDT_DELETED },
847 { "TTDT_DO_COMMAND", TTDT_DO_COMMAND },
848 { "TTDT_SET_ENVIRONMENT", TTDT_SET_ENVIRONMENT },
849 { "TTDT_GET_ENVIRONMENT", TTDT_GET_ENVIRONMENT },
850 { "TTDT_SET_GEOMETRY", TTDT_SET_GEOMETRY },
851 { "TTDT_GET_GEOMETRY", TTDT_GET_GEOMETRY },
852 { "TTDT_SET_ICONIFIED", TTDT_SET_ICONIFIED },
853 { "TTDT_GET_ICONIFIED", TTDT_GET_ICONIFIED },
854 { "TTDT_SET_LOCALE", TTDT_SET_LOCALE },
855 { "TTDT_GET_LOCALE", TTDT_GET_LOCALE },
856 { "TTDT_SET_MAPPED", TTDT_SET_MAPPED },
857 { "TTDT_GET_MAPPED", TTDT_GET_MAPPED },
858 { "TTDT_MODIFIED", TTDT_MODIFIED },
859 { "TTDT_REVERTED", TTDT_REVERTED },
860 { "TTDT_GET_MODIFIED", TTDT_GET_MODIFIED },
861 { "TTDT_MOVED", TTDT_MOVED },
862 { "TTDT_PAUSE", TTDT_PAUSE },
863 { "TTDT_RESUME", TTDT_RESUME },
864 { "TTDT_QUIT", TTDT_QUIT },
865 { "TTDT_RAISE", TTDT_RAISE },
866 { "TTDT_LOWER", TTDT_LOWER },
867 { "TTDT_SAVE", TTDT_SAVE },
868 { "TTDT_REVERT", TTDT_REVERT },
869 { "TTDT_SAVED", TTDT_SAVED },
870 { "TTDT_SET_SITUATION", TTDT_SET_SITUATION },
871 { "TTDT_GET_SITUATION", TTDT_GET_SITUATION },
872 { "TTDT_SIGNAL", TTDT_SIGNAL },
873 { "TTDT_STARTED", TTDT_STARTED },
874 { "TTDT_STOPPED", TTDT_STOPPED },
875 { "TTDT_STATUS", TTDT_STATUS },
876 { "TTDT_GET_STATUS", TTDT_GET_STATUS },
877 { "TTDT_GET_SYSINFO", TTDT_GET_SYSINFO },
878 { "TTDT_SET_XINFO", TTDT_SET_XINFO },
879 { "TTDT_GET_XINFO", TTDT_GET_XINFO },
880 { "TTME_ABSTRACT", TTME_ABSTRACT },
881 { "TTME_DEPOSIT", TTME_DEPOSIT },
882 { "TTME_DISPLAY", TTME_DISPLAY },
883 { "TTME_EDIT", TTME_EDIT },
884 { "TTME_COMPOSE", TTME_COMPOSE },
885 { "TTME_INTERPRET", TTME_INTERPRET },
886 { "TTME_PRINT", TTME_PRINT },
887 { "TTME_TRANSLATE", TTME_TRANSLATE },
891 struct named_integer NI_TEAR_OFF[] = {
892 { "TEAR_OFF_ENABLED", XmTEAR_OFF_ENABLED },
893 { "TEAR_OFF_DISABLED", XmTEAR_OFF_DISABLED },
896 /************************************************************************/
898 struct named_integer NI_Button[] = {
899 { "Button1", Button1 },
900 { "Button2", Button2 },
901 { "Button3", Button3 },
902 { "Button4", Button4 },
903 { "Button5", Button5 },
906 struct named_integer NI_EventType[] = {
907 {"KeyPress", KeyPress},
908 {"KeyRelease", KeyRelease},
909 {"ButtonPress", ButtonPress},
910 {"ButtonRelease", ButtonRelease},
911 {"MotionNotify", MotionNotify},
912 {"EnterNotify", EnterNotify},
913 {"LeaveNotify", LeaveNotify},
914 {"FocusIn", FocusIn},
915 {"FocusOut", FocusOut},
916 {"KeymapNotify", KeymapNotify},
918 {"GraphicsExpose", GraphicsExpose},
919 {"NoExpose", NoExpose},
920 {"VisibilityNotify", VisibilityNotify},
921 {"CreateNotify", CreateNotify},
922 {"DestroyNotify", DestroyNotify},
923 {"UnmapNotify", UnmapNotify},
924 {"MapNotify", MapNotify},
925 {"MapRequest", MapRequest},
926 {"ReparentNotify", ReparentNotify},
927 {"ConfigureNotify", ConfigureNotify},
928 {"ConfigureRequest", ConfigureRequest},
929 {"GravityNotify", GravityNotify},
930 {"ResizeRequest", ResizeRequest},
931 {"CirculateNotify", CirculateNotify},
932 {"PropertyNotify", PropertyNotify},
933 {"SelectionClear", SelectionClear},
934 {"SelectionRequest", SelectionRequest},
935 {"SelectionNotify", SelectionNotify},
936 {"ColormapNotify", ColormapNotify},
937 {"ClientMessage", ClientMessage},
938 {"MappingNotify", MappingNotify},
941 struct named_integer NI_XBool[] = {
946 struct named_integer NI_TextFormat[] = {
947 { "FMT_8_BIT", XmFMT_8_BIT },
948 { "FMT_16_BIT", XmFMT_16_BIT },
951 struct named_integer NI_HelpHyperType[] = {
952 { "HELP_LINK_TOPIC", DtHELP_LINK_TOPIC },
953 { "HELP_LINK_MAN_PAGE", DtHELP_LINK_MAN_PAGE },
954 { "HELP_LINK_APP_DEFINE", DtHELP_LINK_APP_DEFINE },
957 struct named_integer NI_WIN_GRAVITY[] = {
958 { "ForgetGravity", ForgetGravity },
959 { "NorthWestGravity", NorthWestGravity },
960 { "NorthGravity", NorthGravity },
961 { "NorthEastGravity", NorthEastGravity },
962 { "WestGravity", WestGravity },
963 { "CenterGravity", CenterGravity },
964 { "EastGravity", EastGravity },
965 { "SouthWestGravity", SouthWestGravity },
966 { "SouthGravity", SouthGravity },
967 { "SouthEastGravity", SouthEastGravity },
968 { "StaticGravity", StaticGravity },
972 /************************************************************************/
975 DtkshRegisterNamedIntConverters( void )
977 XtConvertArgRec args[1];
979 #define SETARGS(X) args[0].address_mode = XtAddress; args[0].address_id = (caddr_t)&X[0]; args[0].size = sizeof(X);
981 /* Special!! Converts string to named value */
982 SETARGS(NI_TraversalDirection);
983 XtAddConverter(XmRString, "TraversalDirection",
984 DtkshCvtStringToNamedValue,
986 SETARGS(NI_CommandChild);
987 XtAddConverter(XmRString, "CommandChildType",
988 DtkshCvtStringToNamedValue,
990 SETARGS(NI_MessageBoxChild);
991 XtAddConverter(XmRString, "MessageBoxChildType",
992 DtkshCvtStringToNamedValue,
994 SETARGS(NI_FileSelChild);
995 XtAddConverter(XmRString, "FileSelChildType",
996 DtkshCvtStringToNamedValue,
998 SETARGS(NI_SelBoxChild);
999 XtAddConverter(XmRString, "SelBoxChildType",
1000 DtkshCvtStringToNamedValue,
1002 SETARGS(NI_QuickHelpChildType);
1003 XtAddConverter(XmRString, "QuickHelpChildType",
1004 DtkshCvtStringToNamedValue,
1006 SETARGS(NI_HelpType);
1007 XtAddConverter(XmRString, "HelpType",
1008 DtkshCvtStringToNamedValue,
1010 SETARGS(NI_HelpScrollBarDisplayPolicy);
1011 XtAddConverter(XmRString, "HelpScrollBarDisplayPolicy",
1012 DtkshCvtStringToNamedValue,
1014 SETARGS(NI_TextHighlightMode);
1015 XtAddConverter(XmRString, "TextHighlightMode",
1016 DtkshCvtStringToNamedValue,
1018 SETARGS(NI_TextSearchDirection);
1019 XtAddConverter(XmRString, "TextSearchDirection",
1020 DtkshCvtStringToNamedValue,
1022 SETARGS(NI_TextFormat);
1023 XtAddConverter(XmRString, "TextFormat",
1024 DtkshCvtStringToNamedValue,
1027 XtAddConverter(XmRString, "TtOp", DtkshCvtStringToNamedValue,
1029 SETARGS(NI_TT_SCOPE);
1030 XtAddConverter(XmRString, "TtScope", DtkshCvtStringToNamedValue,
1032 SETARGS(NI_TT_STATUS);
1033 XtAddConverter(XmRString, "TtStatus", DtkshCvtStringToNamedValue,
1035 SETARGS(NI_TEAR_OFF);
1036 XtAddConverter(XmRString, XmRTearOffModel, DtkshCvtStringToNamedValue,
1038 SETARGS(NI_WIN_GRAVITY);
1039 XtAddConverter(XmRString, "XWinGravity", DtkshCvtStringToNamedValue,
1041 SETARGS(NI_MWMInputMode);
1042 XtAddConverter(XmRString, "MWMInputMode", DtkshCvtStringToNamedValue,
1045 /* The rest of these convert named values into strings */
1046 SETARGS(NI_ArrowDirection);
1047 XtAddConverter(XmRArrowDirection, XtRString,
1048 DtkshCvtNamedValueToString,
1050 SETARGS(NI_MultiClick);
1051 XtAddConverter(XmRMultiClick, XtRString,
1052 DtkshCvtNamedValueToString,
1054 SETARGS(NI_DialogStyle);
1055 XtAddConverter(XmRDialogStyle, XtRString,
1056 DtkshCvtNamedValueToString,
1058 SETARGS(NI_MWMInputMode);
1059 XtAddConverter("MWMInputMode", XtRString,
1060 DtkshCvtNamedValueToString,
1062 SETARGS(NI_ResizePolicy);
1063 XtAddConverter(XmRResizePolicy, XtRString,
1064 DtkshCvtNamedValueToString,
1066 SETARGS(NI_FileTypeMask);
1067 XtAddConverter(XmRFileTypeMask, XtRString,
1068 DtkshCvtNamedValueToString,
1070 SETARGS(NI_ShadowType);
1071 XtAddConverter(XmRShadowType, XtRString,
1072 DtkshCvtNamedValueToString,
1074 SETARGS(NI_Attachment);
1075 XtAddConverter(XmRAttachment, XtRString,
1076 DtkshCvtNamedValueToString,
1078 SETARGS(NI_ChildType);
1079 XtAddConverter(XmRChildType, XtRString,
1080 DtkshCvtNamedValueToString,
1082 SETARGS(NI_Alignment);
1083 XtAddConverter(XmRChildHorizontalAlignment, XtRString,
1084 DtkshCvtNamedValueToString,
1086 SETARGS(NI_ChildVerticalAlignment);
1087 XtAddConverter(XmRChildVerticalAlignment, XtRString,
1088 DtkshCvtNamedValueToString,
1090 SETARGS(NI_UnitType);
1091 XtAddConverter(XmRUnitType, XtRString,
1092 DtkshCvtNamedValueToString,
1094 SETARGS(NI_NavigationType);
1095 XtAddConverter(XmRNavigationType, XtRString,
1096 DtkshCvtNamedValueToString,
1098 SETARGS(NI_Alignment);
1099 XtAddConverter(XmRAlignment, XtRString,
1100 DtkshCvtNamedValueToString,
1102 SETARGS(NI_LabelType);
1103 XtAddConverter(XmRLabelType, XtRString,
1104 DtkshCvtNamedValueToString,
1106 SETARGS(NI_StringDirection);
1107 XtAddConverter(XmRStringDirection, XtRString,
1108 DtkshCvtNamedValueToString,
1110 SETARGS(NI_SelectionPolicy);
1111 XtAddConverter(XmRSelectionPolicy, XtRString,
1112 DtkshCvtNamedValueToString,
1114 SETARGS(NI_ScrollBarPlacement);
1115 XtAddConverter(XmRScrollBarPlacement, XtRString,
1116 DtkshCvtNamedValueToString,
1118 SETARGS(NI_ScrollBarDisplayPolicy);
1119 XtAddConverter(XmRScrollBarDisplayPolicy, XtRString,
1120 DtkshCvtNamedValueToString,
1122 SETARGS(NI_ScrollingPolicy);
1123 XtAddConverter(XmRScrollingPolicy, XtRString,
1124 DtkshCvtNamedValueToString,
1126 SETARGS(NI_VisualPolicy);
1127 XtAddConverter(XmRVisualPolicy, XtRString,
1128 DtkshCvtNamedValueToString,
1130 SETARGS(NI_ListSizePolicy);
1131 XtAddConverter(XmRListSizePolicy, XtRString,
1132 DtkshCvtNamedValueToString,
1134 SETARGS(NI_EditMode);
1135 XtAddConverter(XmREditMode, XtRString,
1136 DtkshCvtNamedValueToString,
1138 SETARGS(NI_CommandWindowLocation);
1139 XtAddConverter(XmRCommandWindowLocation, XtRString,
1140 DtkshCvtNamedValueToString,
1142 SETARGS(NI_DefaultButtonType);
1143 XtAddConverter(XmRDefaultButtonType, XtRString,
1144 DtkshCvtNamedValueToString,
1146 SETARGS(NI_DialogType);
1147 XtAddConverter(XmRDialogType, XtRString,
1148 DtkshCvtNamedValueToString,
1150 SETARGS(NI_EntryVerticalAlignment);
1151 XtAddConverter(XmRVerticalAlignment, XtRString,
1152 DtkshCvtNamedValueToString,
1154 SETARGS(NI_Orientation);
1155 XtAddConverter(XmROrientation, XtRString,
1156 DtkshCvtNamedValueToString,
1158 SETARGS(NI_Packing);
1159 XtAddConverter(XmRPacking, XtRString,
1160 DtkshCvtNamedValueToString,
1162 SETARGS(NI_RowColumnType);
1163 XtAddConverter(XmRRowColumnType, XtRString,
1164 DtkshCvtNamedValueToString,
1166 SETARGS(NI_ProcessingDirection);
1167 XtAddConverter(XmRProcessingDirection, XtRString,
1168 DtkshCvtNamedValueToString,
1170 SETARGS(NI_ChildPlacement);
1171 XtAddConverter(XmRChildPlacement, XtRString,
1172 DtkshCvtNamedValueToString,
1174 SETARGS(NI_SelectionDialogType);
1175 XtAddConverter(XmRSelectionType, XtRString,
1176 DtkshCvtNamedValueToString,
1178 SETARGS(NI_SeparatorType);
1179 XtAddConverter(XmRSeparatorType, XtRString,
1180 DtkshCvtNamedValueToString,
1182 SETARGS(NI_IndicatorType);
1183 XtAddConverter(XmRIndicatorType, XtRString,
1184 DtkshCvtNamedValueToString,
1186 SETARGS(NI_AudibleWarning);
1187 XtAddConverter(XmRAudibleWarning, XtRString,
1188 DtkshCvtNamedValueToString,
1190 SETARGS(NI_DeleteResponse);
1191 XtAddConverter(XmRDeleteResponse, XtRString,
1192 DtkshCvtNamedValueToString,
1194 SETARGS(NI_KeyboardFocusPolicy);
1195 XtAddConverter(XmRKeyboardFocusPolicy, XtRString,
1196 DtkshCvtNamedValueToString,
1198 SETARGS(NI_InitialState);
1199 XtAddConverter(XmRInitialState, XtRString,
1200 DtkshCvtNamedValueToString,
1202 SETARGS(NI_HelpReturnSelectedWidgetResultType);
1203 XtAddConverter("HelpReturnSelectedWidgetResultType", XtRString,
1204 DtkshCvtNamedValueToString,
1206 SETARGS(NI_HelpType);
1207 XtAddConverter("HelpType", XtRString,
1208 DtkshCvtNamedValueToString,
1210 SETARGS(NI_HelpScrollBarDisplayPolicy);
1211 XtAddConverter("HelpScrollBarDisplayPolicy", XtRString,
1212 DtkshCvtNamedValueToString,
1215 XtAddConverter("XE_Button", XtRString,
1216 DtkshCvtNamedValueToString,
1218 SETARGS(NI_EventType);
1219 XtAddConverter("XE_EventType", XtRString,
1220 DtkshCvtNamedValueToString,
1223 XtAddConverter("X_Bool", XtRString,
1224 DtkshCvtNamedValueToString,
1226 SETARGS(NI_TraversalDirection);
1227 XtAddConverter("TraversalDirection", XtRString,
1228 DtkshCvtNamedValueToString,
1230 SETARGS(NI_VisibilityType);
1231 XtAddConverter("VisibilityType", XtRString,
1232 DtkshCvtNamedValueToString,
1234 SETARGS(NI_ListSelectionType);
1235 XtAddConverter("ListSelectionType", XtRString,
1236 DtkshCvtNamedValueToString,
1238 SETARGS(NI_TextFormat);
1239 XtAddConverter("TextFormat", XtRString,
1240 DtkshCvtNamedValueToString,
1242 SETARGS(NI_HelpHyperType);
1243 XtAddConverter("HelpHyperType", XtRString,
1244 DtkshCvtNamedValueToString,
1246 SETARGS(NI_TT_STATUS);
1247 XtAddConverter("TtStatus", XtRString, DtkshCvtNamedValueToString,
1250 XtAddConverter("TtOp", XtRString, DtkshCvtNamedValueToString, args, 1);
1251 SETARGS(NI_TEAR_OFF);
1252 XtAddConverter(XmRTearOffModel, XtRString, DtkshCvtNamedValueToString,
1254 SETARGS(NI_WIN_GRAVITY);
1255 XtAddConverter("XWinGravity", XtRString, DtkshCvtNamedValueToString,
1259 /*****************************************************************************/
1261 static ModifierState modifierTable[] = {
1262 {"Button1Mask", Button1Mask},
1263 {"Button2Mask", Button2Mask},
1264 {"Button3Mask", Button3Mask},
1265 {"Button4Mask", Button4Mask},
1266 {"Button5Mask", Button5Mask},
1267 {"ControlMask", ControlMask},
1268 {"LockMask", LockMask},
1269 {"Mod1Mask", Mod1Mask},
1270 {"Mod2Mask", Mod2Mask},
1271 {"Mod3Mask", Mod3Mask},
1272 {"Mod4Mask", Mod4Mask},
1273 {"Mod5Mask", Mod5Mask},
1274 {"ShiftMask", ShiftMask},
1280 DtkshCvtXEModifierStateToString(
1286 static char *string = NULL;
1289 Boolean firstOne = True;
1291 string = XtRealloc(string, 1);
1293 value = ((unsigned int *)(fval->addr))[0];
1295 while (modifierTable[i].modifierName)
1297 if (value & modifierTable[i].modifier)
1301 string = XtRealloc(string,
1302 strlen(string) + strlen(modifierTable[i].modifierName) + 2);
1303 strcat(string, "|");
1304 strcat(string, modifierTable[i].modifierName);
1309 string = XtRealloc(string,
1310 strlen(string) + strlen(modifierTable[i].modifierName) + 1);
1311 strcat(string, modifierTable[i].modifierName);
1317 toval->addr = (caddr_t)string;
1318 toval->size = strlen(string) + 1;
1323 DtkshCvtXEMotionHintToString(
1329 if (fval->size != sizeof(char))
1335 if ((((char *)(fval->addr))[0]) == NotifyNormal)
1336 toval->addr = (caddr_t)("NotifyNormal");
1338 toval->addr = (caddr_t)("NotifyHint");
1339 toval->size = strlen(toval->addr)+1;
1343 * The following routines exist in order to enable ToolTalk commands
1344 * to operate without the script having to call XtInitialize. Another way
1345 * of accomplishing the conversions done by these routines is by calling
1346 * XtConvert with appropriate parameters, but XtConvert requires a valid
1347 * widget in order to look up the converter tables.
1349 * The routines provided are:
1350 * DtkshCvtTtStatusToString()
1351 * DtkshCvtStringToTtStatus()
1352 * DtkshCvtStringToBool()
1353 * DtkshCvtStringToTtOp()
1354 * DtkshCvtTtOpToString()
1355 * DtkshCvtStringToTtScope()
1359 * DtkshCvtTtStatusToString takes a toolTalk error code and a pointer to an
1360 * XrmValue struct. The XrmValue struct will be filled in with the
1361 * results of the translation - presumably a string version of the
1363 * This routine is in this file because it must "know" the size of the
1364 * NI_TT_STATUS array.
1367 DtkshCvtTtStatusToString(
1371 XrmValue cval[1], fval;
1374 fval.addr = (caddr_t)&ttStatus;
1375 fval.size = sizeof(Tt_status);
1377 cval[0].size = sizeof(NI_TT_STATUS);
1378 cval[0].addr = (caddr_t)NI_TT_STATUS;
1379 DtkshCvtNamedValueToString(cval, &nargs, &fval, pToVal);
1384 * DtkshCvtStringToTtStatus - converts a string to the corresponding
1388 DtkshCvtStringToTtStatus(
1392 XrmValue cval[1], fval;
1395 fval.addr = (caddr_t)pString;
1396 fval.size = strlen(pString);
1398 cval[0].size = sizeof(NI_TT_STATUS);
1399 cval[0].addr = (caddr_t)NI_TT_STATUS;
1400 DtkshCvtStringToNamedValue(cval, &nargs, &fval, pToVal);
1405 * DtkshCvtStringToBool - takes a string (either "true" or "false")
1406 * and a pointer to an XrmValue struct. The XrmValue struct will be filled
1407 * out with the results of the conversion of the string to a boolean.
1408 * This routine is in this file because it must "know" the size of the
1412 DtkshCvtStringToBool(
1416 XrmValue cval[1], fval;
1419 cval[0].size = sizeof(NI_XBool);
1420 cval[0].addr = (caddr_t)NI_XBool;
1421 fval.addr = pString;
1422 fval.size = strlen(pString);
1424 DtkshCvtStringToNamedValue(cval, &nargs, &fval, pToVal);
1430 * DtkshCvtStringToTtOp - converts a string to the corresponding
1434 DtkshCvtStringToTtOp(
1438 XrmValue cval[1], fval;
1441 fval.addr = (caddr_t)pString;
1442 fval.size = strlen(pString);
1444 cval[0].size = sizeof(NI_TT_OP);
1445 cval[0].addr = (caddr_t)NI_TT_OP;
1446 DtkshCvtStringToNamedValue(cval, &nargs, &fval, pToVal);
1451 * DtkshCvtTtOpToString - converts a TtOp to the representative string.
1454 DtkshCvtTtOpToString(
1458 XrmValue cval[1], fval;
1461 fval.addr = (caddr_t)&op;
1462 fval.size = sizeof(Tttk_op);
1464 cval[0].size = sizeof(NI_TT_OP);
1465 cval[0].addr = (caddr_t)NI_TT_OP;
1466 DtkshCvtNamedValueToString(cval, &nargs, &fval, pToVal);
1471 * DtkshCvtStringToTtScope - converts a string to the appropriate
1472 * TtScope numeric value.
1475 DtkshCvtStringToTtScope(
1479 XrmValue cval[1], fval;
1482 fval.addr = (caddr_t)pString;
1483 fval.size = strlen(pString);
1485 cval[0].size = sizeof(NI_TT_OP);
1486 cval[0].addr = (caddr_t)NI_TT_OP;
1487 DtkshCvtNamedValueToString(cval, &nargs, &fval, pToVal);