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 librararies 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: AddFiletype.c /main/8 1999/09/17 15:43:02 mgreess $ */
24 /***************************************************************************/
28 /* Associated Header file: AddFiletype.h */
31 /***************************************************************************/
37 #include <Xm/MwmUtil.h>
38 #include <Xm/DialogS.h>
39 #include <Xm/MenuShell.h>
40 #include <Xm/Separator.h>
42 #include <Xm/ScrolledW.h>
46 #include <Xm/PushBG.h>
56 #include "CreateActionAppShell.h"
59 #define CONTEXT_MACRO_ACCESS 1
60 #include "AddFiletype.h"
61 #undef CONTEXT_MACRO_ACCESS
63 /*******************************************************************************
65 *******************************************************************************/
67 enum mode {NONE, NEW, SAVE, QUIT};
71 enum icon_size_range filetype_icon_size = None_Selected;
73 enum icon_size_range filetype_icon_size;
76 /*******************************************************************************
77 The following are callback functions.
78 *******************************************************************************/
81 /******************************************************************************/
83 /* LayoutCB_AddFiletype */
85 /* INPUT: Widget wid - window id */
86 /* XtPointer cdata - client data */
87 /* XtPointer *cbstruct - callback data */
90 /******************************************************************************/
91 void LayoutCB_AddFiletype(Widget wid, XtPointer cdata, XtPointer cbs)
93 printf("In layout callback of AddFiletype\n");
97 /******************************************************************************/
98 /* activateCB_edit_id_characteristics - bring up file characteristics dialog */
99 /* INPUT: Widget filesel - edit button id */
100 /* XtPointer cdata - client data */
101 /* XtPointer *cbstruct - callback data */
103 /******************************************************************************/
104 void activateCB_edit_id_characteristics (Widget filesel, XtPointer cdata,
105 XmFileSelectionBoxCallbackStruct *cbstruct)
109 XtVaGetValues (AddFiletype,
113 /*FileCharacteristics = create_FileCharacteristics();*/
115 XtVaSetValues (FileCharacteristics,
118 clear_FileCharacteristics_dialog_fields();
119 init_FileCharacteristics_dialog_fields(pFtD);
120 UxPopupInterface (FILE_CHARACTERISTICS, no_grab);
124 static void activateCB_AF_OkButton( Widget UxWidget,
125 XtPointer UxClientData,
126 XtPointer UxCallbackArg)
129 FiletypeData **papArray;
132 /**************************************************************************/
133 /* Check if fields are valid. */
134 /**************************************************************************/
135 if (!AddFiletypeCheckFields()) {
137 /***********************************************************************/
138 /* Get FiletypeData structure that was allocated when Add button on */
139 /* the CreateActionAppShell interface was activated. */
140 /***********************************************************************/
141 XtVaGetValues(AddFiletype, XmNuserData, &pFtD, NULL);
143 /***********************************************************************/
144 /* Get all values from gui */
145 /***********************************************************************/
148 /***********************************************************************/
149 /* If in edit mode, then don't do add type things. */
150 /***********************************************************************/
151 if (!(pFtD->fsInternal & CA_FT_EDIT)) {
153 /********************************************************************/
154 /* Update the Filetype listbox with this new filetype */
155 /********************************************************************/
158 /********************************************************************/
159 /* Update FiletypeData array within the ActionData structure */
160 /********************************************************************/
161 UpdateFiletypeDataArray(pFtD);
165 /***********************************************************************/
166 /* Unset previous set values. */
167 /***********************************************************************/
168 pFtD->fsInternal &= (~(CA_FT_APPLY));
169 pFtD->fsInternal &= (~(CA_FT_EDIT));
171 /***********************************************************************/
172 /* Pop down the AddFiletype interface */
173 /***********************************************************************/
174 UxPopdownInterface(AddFiletype);
178 static void activateCB_AF_ApplyButton( Widget UxWidget,
179 XtPointer UxClientData,
180 XtPointer UxCallbackArg)
184 /**************************************************************************/
185 /* Check if fields are valid. */
186 /**************************************************************************/
187 if (!AddFiletypeCheckFields()) {
189 /***********************************************************************/
190 /* Get FiletypeData structure that was allocated when Add button on */
191 /* the CreateActionAppShell interface was activated. */
192 /***********************************************************************/
193 XtVaGetValues(AddFiletype, XmNuserData, &pFtD, NULL);
195 /***********************************************************************/
196 /* Get all values from gui */
197 /***********************************************************************/
200 /***********************************************************************/
201 /* Set the variable that indicates that Apply button was used. */
202 /***********************************************************************/
203 pFtD->fsInternal |= CA_FT_APPLY;
205 /***********************************************************************/
206 /* If in edit mode, then don't do apply type things. */
207 /***********************************************************************/
208 if (!(pFtD->fsInternal & CA_FT_EDIT)) {
210 /********************************************************************/
211 /* Update the Filetype listbox with this new filetype */
212 /********************************************************************/
213 if (XmListItemExists(CA_FiletypesList, XmStringCreateSimple("NONE"))) {
214 XmListDeleteItem(CA_FiletypesList, XmStringCreateSimple("NONE"));
218 /********************************************************************/
219 /* Update FiletypeData array within the ActionData structure */
220 /********************************************************************/
221 UpdateFiletypeDataArray(pFtD);
227 static void activateCB_AF_CancelButton( Widget UxWidget,
228 XtPointer UxClientData,
229 XtPointer UxCallbackArg)
233 UxPopdownInterface(AddFiletype);
234 XtVaGetValues(AddFiletype, XmNuserData, &pFtD, NULL);
235 if (!((pFtD->fsInternal & CA_FT_APPLY) || (pFtD->fsInternal & CA_FT_EDIT))) {
236 free_Filetypedata(pFtD);
238 pFtD->fsInternal &= (~(CA_FT_APPLY));
239 pFtD->fsInternal &= (~(CA_FT_EDIT));
243 /*******************************************************************************
244 The 'build_' function creates all the widgets
245 using the resource values specified in the Property Editor.
246 *******************************************************************************/
248 static Widget _Uxbuild_AddFiletype(void)
252 Widget AF_CharacteristicsWindow;
253 Widget ActionAreaForm;
254 int ntotalbuttons = 4;
256 Widget AF_ScrolledWindow;
258 Dimension dim1, dim2, dim3;
259 Widget AF_MED_IconForm, AF_TINY_IconForm;
261 char *pre, *suf, *title;
263 XmString emptyString;
266 #define ICON_MIN_HEIGHT 83
267 #define FINDEDIT_SPACING 6
268 #define BORDER_OFFSET 3
270 /* Creation of AddFiletype */
271 _UxParent = UxParent;
272 if ( _UxParent == NULL )
274 _UxParent = UxTopLevel;
277 pre = GETMESSAGE(3, 10, "Create Action");
278 suf = GETMESSAGE(7, 10, "Add Datatype");
279 title = XtMalloc(strlen(pre) + strlen(suf) + 2);
280 sprintf(title, "%s - %s", pre, suf);
282 _UxParent = XtVaCreatePopupShell( "AddFiletype_shell",
283 xmDialogShellWidgetClass, _UxParent,
286 XmNshellUnitType, XmPIXELS,
290 XtAddCallback(_UxParent, XmNpopupCallback, LayoutCB_AddFiletype, NULL);
294 AF_BigForm = XtVaCreateWidget( "AF_BigForm",
297 XmNunitType, XmPIXELS,
298 XmNdialogStyle, XmDIALOG_APPLICATION_MODAL,
299 RES_CONVERT( XmNdialogTitle, title ),
300 XmNautoUnmanage, FALSE,
302 AF_ScrolledWindow = XtVaCreateManagedWidget( "AF_ScrolledWindow",
303 xmScrolledWindowWidgetClass,
305 XmNscrollingPolicy, XmAUTOMATIC,
306 XmNleftAttachment, XmATTACH_FORM,
307 XmNrightAttachment, XmATTACH_FORM,
308 XmNbottomAttachment, XmATTACH_FORM,
309 XmNtopAttachment, XmATTACH_FORM,
311 XtVaSetValues(AF_BigForm, XmNuserData, AF_ScrolledWindow, NULL);
313 AddFiletype = XtVaCreateManagedWidget( "AddFiletype",
318 AddFiletype = XtVaCreateWidget( "AddFiletype",
321 XmNunitType, XmPIXELS,
322 XmNdialogStyle, XmDIALOG_APPLICATION_MODAL,
323 RES_CONVERT( XmNdialogTitle, title ),
324 XmNautoUnmanage, FALSE,
330 XtAddCallback( AddFiletype, XmNhelpCallback,
331 (XtCallbackProc) helpCB_general,
332 (XtPointer) HELP_ADDFILETYPE );
334 /* Creation of AF_FiletypeFamilyNameLabel */
335 AF_FiletypeFamilyNameLabel = XtVaCreateManagedWidget( "AF_FiletypeFamilyNameLabel",
338 RES_CONVERT( XmNlabelString, GETMESSAGE(7, 14, "Name of Datatype Family:")),
339 XmNalignment, XmALIGNMENT_BEGINNING,
341 XmNtopAttachment, XmATTACH_FORM,
343 XmNleftAttachment, XmATTACH_FORM,
345 XmNrightAttachment, XmATTACH_FORM,
348 /* Creation of AF_FileTypeNameTextField */
349 AF_FileTypeNameTextField = XtVaCreateManagedWidget( "AF_FileTypeNameTextField",
350 xmTextFieldWidgetClass,
353 XmNtopWidget, AF_FiletypeFamilyNameLabel,
354 XmNtopAttachment, XmATTACH_WIDGET,
356 XmNleftAttachment, XmATTACH_FORM,
358 XmNrightAttachment, XmATTACH_FORM,
361 ActionAreaForm = XtVaCreateManagedWidget( "ActionAreaForm",
364 XmNnavigationType, XmTAB_GROUP,
366 XmNfractionBase, ((TIGHTNESS * ntotalbuttons) - 1),
368 XmNleftAttachment, XmATTACH_FORM,
370 XmNrightAttachment, XmATTACH_FORM,
372 XmNbottomAttachment, XmATTACH_FORM,
375 /* Creation of AF_OkButton */
376 AF_OkButton = XtVaCreateManagedWidget( "AF_OkButton",
377 xmPushButtonGadgetClass,
379 RES_CONVERT( XmNlabelString, GETMESSAGE(6, 10, "OK")),
380 XmNmultiClick, XmMULTICLICK_DISCARD,
381 XmNleftAttachment, nbutton ?
382 XmATTACH_POSITION : XmATTACH_FORM,
383 XmNleftPosition, TIGHTNESS * nbutton,
384 XmNrightAttachment, nbutton != (ntotalbuttons - 1) ?
385 XmATTACH_POSITION : XmATTACH_FORM,
386 XmNrightPosition, (TIGHTNESS * nbutton)+(TIGHTNESS - 1),
389 XtAddCallback( AF_OkButton, XmNactivateCallback,
390 (XtCallbackProc) activateCB_AF_OkButton,
393 /* Creation of AF_ApplyButton */
394 AF_ApplyButton = XtVaCreateManagedWidget( "AF_ApplyButton",
395 xmPushButtonGadgetClass,
397 RES_CONVERT( XmNlabelString, GETMESSAGE(6, 11, "Apply")),
398 XmNleftAttachment, nbutton ?
399 XmATTACH_POSITION : XmATTACH_FORM,
400 XmNleftPosition, TIGHTNESS * nbutton,
401 XmNrightAttachment, nbutton != (ntotalbuttons - 1) ?
402 XmATTACH_POSITION : XmATTACH_FORM,
403 XmNrightPosition, (TIGHTNESS * nbutton)+(TIGHTNESS - 1),
406 XtAddCallback( AF_ApplyButton, XmNactivateCallback,
407 (XtCallbackProc) activateCB_AF_ApplyButton,
410 /* Creation of AF_CancelButton */
411 AF_CancelButton = XtVaCreateManagedWidget( "AF_CancelButton",
412 xmPushButtonGadgetClass,
414 RES_CONVERT( XmNlabelString, GETMESSAGE(6, 12, "Cancel")),
415 XmNleftAttachment, nbutton ?
416 XmATTACH_POSITION : XmATTACH_FORM,
417 XmNleftPosition, TIGHTNESS * nbutton,
418 XmNrightAttachment, nbutton != (ntotalbuttons - 1) ?
419 XmATTACH_POSITION : XmATTACH_FORM,
420 XmNrightPosition, (TIGHTNESS * nbutton)+(TIGHTNESS - 1),
423 XtAddCallback( AF_CancelButton, XmNactivateCallback,
424 (XtCallbackProc) activateCB_AF_CancelButton,
427 /* Creation of AF_HelpButton */
428 AF_HelpButton = XtVaCreateManagedWidget( "AF_HelpButton",
429 xmPushButtonGadgetClass,
431 RES_CONVERT( XmNlabelString, GETMESSAGE(6, 13, "Help")),
432 XmNuserData, AddFiletype,
433 XmNleftAttachment, nbutton ?
434 XmATTACH_POSITION : XmATTACH_FORM,
435 XmNleftPosition, TIGHTNESS * nbutton,
436 XmNrightAttachment, nbutton != (ntotalbuttons - 1) ?
437 XmATTACH_POSITION : XmATTACH_FORM,
438 XmNrightPosition, (TIGHTNESS * nbutton)+(TIGHTNESS - 1),
441 XtAddCallback( AF_HelpButton, XmNactivateCallback,
442 (XtCallbackProc) helpCB_general,
443 (XtPointer) HELP_ADDFILETYPE );
445 /* Creation of AF_IdCharacteristicsLabel */
446 AF_IdCharacteristicsLabel = XtVaCreateManagedWidget( "AF_IdCharacteristicsLabel",
449 RES_CONVERT( XmNlabelString, GETMESSAGE(7, 15, "Identifying Characteristics:")),
450 XmNalignment, XmALIGNMENT_BEGINNING,
452 XmNtopWidget, AF_FileTypeNameTextField,
453 XmNtopAttachment, XmATTACH_WIDGET,
455 XmNleftAttachment, XmATTACH_FORM,
457 XmNrightAttachment, XmATTACH_FORM,
460 /* Creation of AF_IdCharacteristicsText */
461 AF_IdCharacteristicsText = XtVaCreateManagedWidget( "AF_IdCharacteristicsText",
465 XmNeditMode, XmMULTI_LINE_EDIT ,
469 XmNleftAttachment, XmATTACH_FORM,
471 XmNtopWidget, AF_IdCharacteristicsLabel,
472 XmNtopAttachment, XmATTACH_WIDGET,
475 printf("AF_IdCharacteristicsText = %p\n", AF_IdCharacteristicsText);
478 /* Creation of AF_IdCharacteristicsEdit */
479 AF_IdCharacteristicsEdit = XtVaCreateManagedWidget( "AF_IdCharacteristicsEdit",
480 xmPushButtonGadgetClass,
482 RES_CONVERT( XmNlabelString, GETMESSAGE(7, 16, "Edit...")),
483 XmNalignment, XmALIGNMENT_BEGINNING,
484 XmNmultiClick, XmMULTICLICK_DISCARD,
485 XmNnavigationType, XmTAB_GROUP,
486 XmNtraversalOn, TRUE,
488 XmNrightAttachment, XmATTACH_FORM,
489 XmNbottomWidget, AF_IdCharacteristicsText,
490 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
492 XtAddCallback( AF_IdCharacteristicsEdit, XmNactivateCallback,
493 (XtCallbackProc) activateCB_edit_id_characteristics,
495 XtRealizeWidget(AF_IdCharacteristicsEdit);
496 XtVaGetValues(AF_IdCharacteristicsEdit, XmNwidth, &dim1, NULL);
498 XtVaSetValues(AF_IdCharacteristicsText,
499 XmNrightOffset, dim1 + 25,
500 XmNrightAttachment, XmATTACH_FORM,
503 /* Creation of AF_FiletypeIconHelpLabel */
504 AF_FiletypeIconHelpLabel = XtVaCreateManagedWidget( "AF_FiletypeIconHelpLabel",
507 RES_CONVERT( XmNlabelString, GETMESSAGE(7, 17, "Help Text for this Datatype Icon:")),
508 XmNalignment, XmALIGNMENT_BEGINNING,
510 XmNleftAttachment, XmATTACH_FORM,
512 XmNrightAttachment, XmATTACH_FORM,
514 XmNtopWidget, AF_IdCharacteristicsText,
515 XmNtopAttachment, XmATTACH_WIDGET,
519 XtVaSetValues(AF_IdCharacteristicsText,
520 XmNrightWidget, AF_IdCharacteristicsEdit,
521 XmNrightAttachment, XmATTACH_OPPOSITE_WIDGET,
525 /* Creation of AF_FiletypePrintCmdTextField */
526 AF_FiletypePrintCmdTextField = XtVaCreateManagedWidget( "AF_FiletypePrintCmdTextField",
527 xmTextFieldWidgetClass,
530 XmNbottomWidget, AF_OkButton,
531 XmNbottomAttachment, XmATTACH_WIDGET,
533 XmNleftAttachment, XmATTACH_FORM,
535 XmNrightAttachment, XmATTACH_FORM,
538 /* Creation of AF_FiletypePrintCmdLabel */
539 AF_FiletypePrintCmdLabel = XtVaCreateManagedWidget( "AF_FiletypePrintCmdLabel",
542 RES_CONVERT( XmNlabelString, GETMESSAGE(7, 23, "Command to Print this Datatype:")),
543 XmNalignment, XmALIGNMENT_BEGINNING,
545 XmNbottomWidget, AF_FiletypePrintCmdTextField,
546 XmNbottomAttachment, XmATTACH_WIDGET,
548 XmNleftAttachment, XmATTACH_FORM,
550 XmNrightAttachment, XmATTACH_FORM,
553 /* Creation of AF_OpenCmdText */
554 AF_OpenCmdText = XtVaCreateManagedWidget( "AF_OpenCmdText",
559 XmNbottomWidget, AF_FiletypePrintCmdLabel,
560 XmNbottomAttachment, XmATTACH_WIDGET,
562 XmNleftAttachment, XmATTACH_FORM,
564 XmNrightAttachment, XmATTACH_FORM,
566 XmNeditMode, XmMULTI_LINE_EDIT ,
569 /* Creation of AF_OpenFiletypeCmdLabel */
570 AF_OpenFiletypeCmdLabel = XtVaCreateManagedWidget( "AF_OpenFiletypeCmdLabel",
573 RES_CONVERT( XmNlabelString, GETMESSAGE(7, 22, "Command to Open this Datatype:")),
574 XmNalignment, XmALIGNMENT_BEGINNING,
576 XmNbottomWidget, AF_OpenCmdText,
577 XmNbottomAttachment, XmATTACH_WIDGET,
579 XmNleftAttachment, XmATTACH_FORM,
581 XmNrightAttachment, XmATTACH_FORM,
584 /* Creation of AF_CommandsLabel */
585 AF_CommandsLabel = XtVaCreateManagedWidget( "AF_CommandsLabel",
588 XmNalignment, XmALIGNMENT_BEGINNING,
589 RES_CONVERT( XmNlabelString, GETMESSAGE(7, 21, "Commands")),
591 XmNleftAttachment, XmATTACH_FORM,
593 XmNbottomWidget, AF_OpenFiletypeCmdLabel,
594 XmNbottomAttachment, XmATTACH_WIDGET,
597 /* Creation of AF_FiletypeIconForm */
598 AF_FiletypeIconForm = XtVaCreateManagedWidget( "AF_FiletypeIconForm",
601 XmNresizePolicy, XmRESIZE_NONE,
604 XmNbottomWidget, AF_CommandsLabel,
605 XmNbottomAttachment, XmATTACH_WIDGET,
607 XmNleftAttachment, XmATTACH_FORM,
609 XmNrightAttachment, XmATTACH_FORM,
610 XmNshadowType, XmSHADOW_ETCHED_IN,
611 XmNshadowThickness, 3,
615 AF_MED_IconForm = XtVaCreateManagedWidget( "AF_MED_IconForm",
618 XmNresizePolicy, XmRESIZE_NONE,
619 XmNborderWidth, ICON_BORDER_WIDTH,
622 XmNleftAttachment, XmATTACH_POSITION,
623 XmNbottomPosition, 88,
625 XmNbottomAttachment, XmATTACH_POSITION,
628 /* Creation of AF_MED_IconGadget */
629 emptyString = XmStringCreateLocalized("");
631 pIconData = (IconData *)XtMalloc(sizeof(IconData));
632 memset(pIconData, 0, sizeof(IconData));
633 IconDataList[AF_MED] = pIconData;
634 AF_MED_IconGadget = XtVaCreateManagedWidget( "AF_MED_IconGadget",
637 XmNalignment, XmALIGNMENT_CENTER,
638 XmNuserData, pIconData,
639 XmNrecomputeSize, TRUE,
640 XmNstring, emptyString,
641 XmNleftOffset, BORDER_OFFSET,
642 XmNleftAttachment, XmATTACH_FORM,
643 XmNrightOffset, BORDER_OFFSET,
644 XmNrightAttachment, XmATTACH_FORM,
645 XmNtopOffset, BORDER_OFFSET,
646 XmNtopAttachment, XmATTACH_FORM,
647 XmNbottomOffset, BORDER_OFFSET,
648 XmNbottomAttachment, XmATTACH_FORM,
650 pIconData->wid = AF_MED_IconGadget;
651 pIconData->size = Medium_Icon;
652 XtAddCallback( AF_MED_IconGadget, XmNcallback,
653 (XtCallbackProc) activateCB_filetype_icon,
655 createCB_IconGadget(AF_MED_IconGadget, FALSE, Medium_Icon);
656 last_filetype_pushed = AF_MED_IconGadget;
658 AF_TINY_IconForm = XtVaCreateManagedWidget( "AF_TINY_IconForm",
661 XmNresizePolicy, XmRESIZE_NONE,
664 XmNleftAttachment, XmATTACH_POSITION,
665 XmNbottomPosition, 86,
667 XmNbottomAttachment, XmATTACH_POSITION,
670 /* Creation of AF_TINY_IconGadget */
671 pIconData = (IconData *)XtMalloc(sizeof(IconData));
672 memset(pIconData, 0, sizeof(IconData));
673 IconDataList[AF_TINY] = pIconData;
674 AF_TINY_IconGadget = XtVaCreateManagedWidget( "AF_TINY_IconGadget",
677 XmNalignment, XmALIGNMENT_CENTER,
678 XmNuserData, pIconData,
679 XmNrecomputeSize, TRUE,
680 XmNstring, emptyString,
681 XmNleftOffset, BORDER_OFFSET,
682 XmNleftAttachment, XmATTACH_FORM,
683 XmNrightOffset, BORDER_OFFSET,
684 XmNrightAttachment, XmATTACH_FORM,
685 XmNtopOffset, BORDER_OFFSET,
686 XmNtopAttachment, XmATTACH_FORM,
687 XmNbottomOffset, BORDER_OFFSET,
688 XmNbottomAttachment, XmATTACH_FORM,
690 pIconData->wid = AF_TINY_IconGadget;
691 pIconData->size = Tiny_Icon;
692 XtAddCallback( AF_TINY_IconGadget, XmNcallback,
693 (XtCallbackProc) activateCB_filetype_icon,
695 createCB_IconGadget(AF_TINY_IconGadget, FALSE, Tiny_Icon);
697 XmStringFree(emptyString);
699 /* Creation of AF_FiletypeIconsEditButton */
700 AF_FiletypeIconsEditButton = XtVaCreateManagedWidget( "AF_FiletypeIconsEditButton",
701 xmPushButtonGadgetClass,
703 RES_CONVERT( XmNlabelString, GETMESSAGE(6, 20, "Edit Icon...")),
704 XmNalignment, XmALIGNMENT_BEGINNING,
705 XmNmultiClick, XmMULTICLICK_DISCARD,
706 /*XmNnavigationType, XmTAB_GROUP,*/
709 XmNleftAttachment, XmATTACH_POSITION,
711 XtAddCallback( AF_FiletypeIconsEditButton, XmNactivateCallback,
712 (XtCallbackProc) activateCB_edit_icon,
713 (XtPointer) CA_FILETYPE_ICONS );
715 /* Creation of AF_FiletypeIconFindSetButton */
716 AF_FiletypeIconFindSetButton = XtVaCreateManagedWidget( "AF_FiletypeIconFindSetButton",
717 xmPushButtonGadgetClass,
721 RES_CONVERT( XmNlabelString, GETMESSAGE(6, 19, "Find Set...")),
722 XmNalignment, XmALIGNMENT_BEGINNING,
723 /*XmNnavigationType, XmTAB_GROUP,*/
724 XmNmultiClick, XmMULTICLICK_DISCARD,
727 XmNleftAttachment, XmATTACH_POSITION,
729 XtAddCallback( AF_FiletypeIconFindSetButton, XmNactivateCallback,
730 (XtCallbackProc) activateCB_open_FindSet,
731 (XtPointer) CA_FILETYPE_ICONS );
733 /******************************************************************/
734 /* Determine which button is wider, attach the short one onto it */
735 /******************************************************************/
736 XtVaGetValues(AF_FiletypeIconsEditButton, XmNwidth, &dim1, NULL);
737 XtVaGetValues(AF_FiletypeIconFindSetButton, XmNwidth, &dim2, NULL);
739 XtVaSetValues(AF_FiletypeIconFindSetButton,
743 XtVaSetValues(AF_FiletypeIconsEditButton,
747 /******************************************************************/
748 /* Determine vertical positioning for findset and edit buttons */
749 /******************************************************************/
750 /*XtRealizeWidget(AF_FiletypeIconForm);*/
751 XtVaGetValues(AF_FiletypeIconForm, XmNheight, &dim3, NULL);
752 XtVaGetValues(AF_FiletypeIconsEditButton, XmNheight, &dim1, NULL);
753 XtVaGetValues(AF_FiletypeIconFindSetButton, XmNheight, &dim2, NULL);
755 printf("find set size = %d\n", dim2);
756 printf("edit size = %d\n", dim1);
757 printf("icon area form size = %d\n", dim3);
759 if ((int)(dim1 + dim2) + 3*(FINDEDIT_SPACING) > (int)dim3) {
760 XtVaSetValues(AF_FiletypeIconsEditButton,
761 XmNbottomOffset, FINDEDIT_SPACING,
762 XmNbottomAttachment, XmATTACH_FORM,
764 XtVaSetValues(AF_FiletypeIconFindSetButton,
765 XmNbottomOffset, FINDEDIT_SPACING,
766 XmNbottomWidget, AF_FiletypeIconsEditButton,
767 XmNbottomAttachment, XmATTACH_WIDGET,
768 XmNtopOffset, FINDEDIT_SPACING,
769 XmNtopAttachment, XmATTACH_FORM,
772 XtVaSetValues(AF_FiletypeIconsEditButton,
774 XmNtopOffset, (int)(FINDEDIT_SPACING / 2),
775 XmNtopAttachment, XmATTACH_POSITION,
777 XtVaSetValues(AF_FiletypeIconFindSetButton,
778 XmNbottomPosition, 50,
779 XmNbottomOffset, (int)(FINDEDIT_SPACING / 2),
780 XmNbottomAttachment, XmATTACH_POSITION,
784 /******************************************************************/
785 /* Creation of AF_FiletypeIconsBoxLabel */
786 /******************************************************************/
787 AF_FiletypeIconsBoxLabel = XtVaCreateManagedWidget( "AF_FiletypeIconsBoxLabel",
790 RES_CONVERT( XmNlabelString, GETMESSAGE(7, 18, "Datatype Icons:")),
791 XmNalignment, XmALIGNMENT_BEGINNING,
793 XmNbottomWidget, AF_FiletypeIconForm,
794 XmNbottomAttachment, XmATTACH_WIDGET,
796 XmNleftAttachment, XmATTACH_FORM,
798 XmNrightAttachment, XmATTACH_FORM,
801 /* Creation of AF_FiletypeHelpScrolledWindow */
802 AF_FiletypeHelpScrolledWindow = XtVaCreateManagedWidget( "AF_FiletypeHelpScrolledWindow",
803 xmScrolledWindowWidgetClass,
805 XmNscrollingPolicy, XmAPPLICATION_DEFINED,
808 XmNvisualPolicy, XmVARIABLE,
809 XmNscrollBarDisplayPolicy, XmSTATIC,
810 XmNshadowThickness, 0,
812 XmNtopWidget, AF_FiletypeIconHelpLabel,
813 XmNtopAttachment, XmATTACH_WIDGET,
815 XmNbottomWidget, AF_FiletypeIconsBoxLabel,
816 XmNbottomAttachment, XmATTACH_WIDGET,
818 XmNleftAttachment, XmATTACH_FORM,
820 XmNrightAttachment, XmATTACH_FORM,
824 /* Creation of AF_FiletypeHelpText */
825 AF_FiletypeHelpText = XtVaCreateManagedWidget( "AF_FiletypeHelpText",
827 AF_FiletypeHelpScrolledWindow,
828 XmNscrollHorizontal, FALSE,
829 XmNscrollVertical, TRUE,
830 XmNeditMode, XmMULTI_LINE_EDIT ,
837 /* Creation of AF_separator2 */
838 AF_separator2 = XtVaCreateManagedWidget( "AF_separator2",
839 xmSeparatorWidgetClass,
842 XmNleftWidget, AF_CommandsLabel,
843 XmNleftAttachment, XmATTACH_WIDGET,
845 XmNrightAttachment, XmATTACH_FORM,
847 XmNbottomWidget, AF_CommandsLabel,
848 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
852 /* Creation of AF_separator1 */
853 AF_separator1 = XtVaCreateManagedWidget( "AF_separator1",
854 xmSeparatorWidgetClass,
857 XmNbottomWidget, AF_separator2,
858 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
860 XmNleftAttachment, XmATTACH_FORM,
862 XmNrightWidget, AF_CommandsLabel,
863 XmNrightAttachment, XmATTACH_WIDGET,
867 XtVaSetValues(AddFiletype,
868 XmNcancelButton, AF_CancelButton,
869 XmNdefaultButton, AF_OkButton,
870 XmNinitialFocus, AF_FileTypeNameTextField,
873 XtAddCallback( AddFiletype, XmNdestroyCallback,
874 (XtCallbackProc) UxDestroyContextCB,
875 (XtPointer) UxAddFiletypeContext);
878 return ( AF_BigForm );
880 return ( AddFiletype );
884 /*******************************************************************************
885 The following is the 'Interface function' which is the
886 external entry point for creating this interface.
887 This function should be called from your application or from
889 *******************************************************************************/
891 Widget create_AddFiletype(swidget _UxUxParent)
894 _UxCAddFiletype *UxContext;
898 Widget widScrolledWindow;
901 UxAddFiletypeContext = UxContext =
902 (_UxCAddFiletype *) UxNewContext( sizeof(_UxCAddFiletype), False );
904 UxParent = _UxUxParent;
906 rtrn = _Uxbuild_AddFiletype();
908 XtRealizeWidget(rtrn);
909 XtVaGetValues (AddFiletype,
910 XmNheight, &dimHeight,
914 XmNuserData, &widScrolledWindow,
916 XtVaGetValues (widScrolledWindow,
917 XmNverticalScrollBar, &widTmp,
919 XtVaGetValues (widTmp,
926 XmNheight, dimHeight,
933 /*******************************************************************************
935 *******************************************************************************/