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: CreateActionAppShell.c /main/11 1998/10/26 17:17:50 mgreess $ */
24 /*******************************************************************************
25 CreateActionAppShell.c
27 Associated Header file: CreateActionAppShell.h
28 *******************************************************************************/
35 #include <Xm/MwmUtil.h>
36 #include <Xm/MenuShell.h>
38 #include <Xm/ToggleBG.h>
40 #include <Xm/ScrolledW.h>
42 #include <Xm/PushBG.h>
46 #include <Xm/CascadeB.h>
47 #include <Xm/ToggleB.h>
48 #include <Xm/Separator.h>
50 #include <Xm/RowColumn.h>
52 #include <Xm/Protocols.h>
53 #include <Xm/AtomMgr.h>
55 #include <X11/Shell.h>
56 #include <X11/cursorfont.h>
60 #include <Dt/Action.h>
61 #include <Dt/HourGlass.h>
71 #include "Confirmed.h"
72 #include "ErrorDialog.h"
74 #define CONTEXT_MACRO_ACCESS 1
75 #include "CreateActionAppShell.h"
76 #undef CONTEXT_MACRO_ACCESS
78 /*******************************************************************************
79 Includes, Defines, and Global variables from the Declarations Editor:
80 *******************************************************************************/
82 XtArgVal /* Dimension */ winheight, xprtheight, newheight, wintypeheight;
85 /*******************************************************************************
86 The following are callback functions.
87 *******************************************************************************/
88 static char * GetDefinitionFileName( char *pszName);
89 static void CreateFiles(void);
90 static void questionCB_ReplaceFile(Widget UxWidget,
91 XtPointer UxClientData,
92 XtPointer UxCallbackArg);
93 static void questionCB_CancelSave(Widget UxWidget,
94 XtPointer UxClientData,
95 XtPointer UxCallbackArg);
97 static char * GetDefinitionFileName( char *pszName)
100 char *defname = (char *)NULL;
102 char *msgPtr, *errPtr;
105 /****************************************************************/
106 /* Create definition file name. */
107 /****************************************************************/
108 newName = ReplaceSpaces(pszName);
109 pszEnvVar = getenv("HOME");
110 if ( pszEnvVar && strlen(pszEnvVar) ) {
111 bytesneeded = strlen("/.dt/types/.dt") + strlen(pszEnvVar) + strlen(newName) + 1;
112 defname = (char *)XtMalloc(bytesneeded);
113 sprintf(defname, "%s/.dt/types/%s.dt", pszEnvVar, newName);
115 msgPtr = GETMESSAGE(5, 170,
116 "The HOME environment variable is not set.\n\
117 The HOME environment variable must be set in order\n\
118 for this action to be saved.");
119 errPtr = XtNewString(msgPtr);
120 display_error_message(CreateActionAppShell, errPtr);
128 static void CreateFiles(void)
130 Boolean bHaveError = False;
133 char *msgPtr1, *msgPtr2, *fmtPtr, *bufPtr;
134 #ifdef UNDO_CMVC_3571
138 /******************************************************************/
139 /* Create Definition file name. */
140 /******************************************************************/
141 pszDefName = GetDefinitionFileName(AD.pszName);
146 /******************************************************************/
147 /* Create Definition file. */
148 /******************************************************************/
149 if ( !bHaveError && ((usRc = WriteDefinitionFile(pszDefName, &AD)) != 0) ) {
153 /******************************************************************/
154 /* Create Action file. */
155 /******************************************************************/
156 if ( !bHaveError && ((usRc = WriteActionFile(&AD)) != 0) ) {
160 /******************************************************************/
161 /* Copy icon files to home directory ~/.dt/icons */
162 /******************************************************************/
163 if ( !bHaveError && ((usRc = CopyIconFiles(&AD)) != 0) ) {
167 /*******************************************************************/
168 /* Reload action database and pop up confirmation message if */
169 /* operation was successful. */
170 /*******************************************************************/
172 _DtTurnOnHourGlass(CreateActionAppShell);
174 DtInitialize(UxDisplay, UxTopLevel, pszExecName, pszExecName);
178 DtActionInvoke(UxTopLevel, "ReloadActions",
179 NULL, 0, NULL, NULL, NULL, 0, NULL, NULL);
181 _DtTurnOffHourGlass(CreateActionAppShell);
183 msgPtr1 = XtNewString(GETMESSAGE(5, 70, "The new action"));
184 msgPtr2 = XtNewString(GETMESSAGE(5, 71,
185 "has been placed in your home folder."));
186 #ifdef UNDO_CMVC_3571
187 msgPtr3 = XtNewString(GETMESSAGE(5, 73,
188 "The action definition file that was created is called:"));
189 fmtPtr = "%s\n\n %s\n\n%s\n\n%s\n %s";
191 fmtPtr = "%s\n\n %s\n\n%s";
194 bufPtr = XtMalloc((strlen(msgPtr1) + strlen(msgPtr2) +
196 #ifdef UNDO_CMVC_3571
197 strlen(msgPtr3) + strlen(pszFile) +
199 strlen(fmtPtr) + 1) * sizeof(char));
201 sprintf(bufPtr, fmtPtr, msgPtr1, AD.pszName, msgPtr2
202 #ifdef UNDO_CMVC_3571
207 display_confirmed_message(CreateActionAppShell, bufPtr);
210 #ifdef UNDO_CMVC_3571
218 /*******************************************************************/
219 /* Update the copy of the AD structure. This will be used to */
220 /* determine if the user has saved the most recent data before */
222 /*******************************************************************/
223 FreeAndClearAD(pMyCopyAD);
224 XtFree((char *) pMyCopyAD);
225 pMyCopyAD = copyAD(&AD);
230 static void questionCB_ReplaceFile(Widget UxWidget,
231 XtPointer UxClientData,
232 XtPointer UxCallbackArg)
235 XtDestroyWidget(XtParent(UxWidget));
238 static void questionCB_CancelSave(Widget UxWidget,
239 XtPointer UxClientData,
240 XtPointer UxCallbackArg)
242 XtDestroyWidget(XtParent(UxWidget));
246 void activateCB_CA_MB_FileSave(Widget UxWidget,
247 XtPointer UxClientData,
248 XtPointer UxCallbackArg)
252 char *pszActionFile = NULL;
253 char *msgPtr, *bufPtr;
254 Boolean bHaveError = FALSE;
259 /*********************************************************************/
260 /* Check that required fields are filled in for main window. */
261 /*********************************************************************/
262 if (!CreateActionAppShellCheckFields()) {
264 /*******************************************************************/
265 /* Query fields from main window and save into structure. */
266 /*******************************************************************/
269 /*******************************************************************/
270 /* Write the files. */
271 /*******************************************************************/
272 #ifdef UNDO_CMVC_4662
274 strcpy(pszFile, pszFileToEdit);
278 /****************************************************************/
279 /* Create Action file name. */
280 /****************************************************************/
281 newName = ReplaceSpaces(AD.pszName);
282 pszActionFile = NULL;
283 pszEnvVar = getenv("HOME");
284 if ( pszEnvVar && strlen(pszEnvVar) ) {
285 pszActionFile = malloc(strlen(pszEnvVar)+strlen(newName)+10);
287 sprintf(pszActionFile, "%s/%s", pszEnvVar, newName);
289 msgPtr = GETMESSAGE(5, 170,
290 "The HOME environment variable is not set.\n\
291 The HOME environment variable must be set in order\n\
292 for this action to be saved.");
293 bufPtr = XtNewString(msgPtr);
294 display_error_message(CreateActionAppShell, bufPtr);
299 /****************************************************************/
300 /* Check if action file exists and flag a warning if it does. */
301 /****************************************************************/
302 if ( (!bHaveError) &&
304 (!stat(pszActionFile, &statbuf)) ) {
306 /* INTERNATIONALIZE */
307 msgPtr = "A file named\n\n %s\n\n\
308 already exists in your home folder.\n\
309 The existing file may be an application,\n\
310 data file, or an action file.\n\n\
311 What do you want to do?";
312 bufPtr = XtMalloc((strlen(msgPtr) + strlen(newName) + 1) *
314 sprintf(bufPtr, msgPtr, newName);
316 /* INTERNATIONALIZE */
317 display_question_message(CreateActionAppShell, bufPtr,
318 "Replace", questionCB_ReplaceFile,
319 "Cancel Save", questionCB_CancelSave,
320 (char *)NULL, (XtCallbackProc)NULL);
325 /****************************************************************/
326 /* Now we are done with the newName variable and can free. */
327 /****************************************************************/
330 #ifdef UNDO_CMVC_4662
340 XtFree(pszActionFile);
343 static void activateCB_CA_FiletypesDelete( Widget UxWidget,
344 XtPointer UxClientData,
345 XtPointer UxCallbackArg)
347 int *poslist, poscnt;
350 FiletypeData **papArray;
354 char *msgPtr1, *msgPtr2, *fmtPtr, *errPtr;
357 /**************************************************************************/
358 /* Determine the filetypes to delete and delete them. */
359 /**************************************************************************/
360 XtVaGetValues(FileTypes, XmNitems, &items, NULL);
361 if (XmListGetSelectedPos(FileTypes, &poslist, &poscnt)) {
365 /*********************************************************************/
366 /* Delete the filetype name from the listbox. */
367 /*********************************************************************/
368 XmListDeleteItem(FileTypes, items[*p -1]);
372 /***********************************************************************/
373 /* Remove the filetypes from the filetype array in the ActionData */
375 /***********************************************************************/
376 if ((AD.cFiletypes - poscnt) > 0) {
377 if ( papArray = (FiletypeData **) XtMalloc(sizeof(FiletypeData *) * (AD.cFiletypes - poscnt)) ) {
379 for (i = 0; i < AD.cFiletypes; i++) {
381 for (k = 0; k < poscnt; k++) {
382 if ((i + 1) == poslist[k]) {
387 /**************************************************************/
388 /* If did not find this element in the delete list, then add */
389 /* it back to our good list. */
390 /* Else do not include in the good list and free its memory. */
391 /**************************************************************/
393 papArray[cnt] = AD.papFiletypes[i];
396 free_Filetypedata(AD.papFiletypes[i]);
399 if (AD.papFiletypes) {
400 XtFree((XtPointer)AD.papFiletypes);
402 AD.papFiletypes = papArray;
406 /********************************************************************/
407 /* Delete the entire array. */
408 /********************************************************************/
409 for (i = 0; i < AD.cFiletypes; i++) {
410 free_Filetypedata(AD.papFiletypes[i]);
412 AD.papFiletypes = (FiletypeData **)NULL;
416 msgPtr1 = XtNewString(GETMESSAGE(5, 120,
417 "You have not selected a Datatype from the\n\
418 'Datatypes That Use This Action' list."));
419 msgPtr2 = XtNewString(GETMESSAGE(5, 125,
420 "Please select the Datatype you would like to Delete."));
422 len = (strlen(msgPtr1) + strlen(msgPtr2) + strlen(fmtPtr) + 2);
423 errPtr = XtMalloc(len);
424 snprintf(errPtr,len - 1, fmtPtr, msgPtr1, msgPtr2);
427 display_error_message(CreateActionAppShell, errPtr);
433 /*****************************************************************************/
435 /* valueChangedCB_CA_WinType */
437 /*****************************************************************************/
438 static void valueChangedCB_CA_WinType( Widget UxWidget,
439 XtPointer UxClientData,
440 XtPointer UxCallbackArg)
444 bSetToggle = ((XmToggleButtonCallbackStruct *)UxCallbackArg)->set;
446 printf("Wintype change before %X\n", AD.fsFlags);
448 switch ((int)UxClientData) {
449 case CA_WT_XWINDOWS :
450 if (bSetToggle) AD.fsFlags |= CA_WT_XWINDOWS;
451 else AD.fsFlags &= (~(CA_WT_XWINDOWS));
454 if (bSetToggle) AD.fsFlags |= CA_WT_TERM;
455 else AD.fsFlags &= (~(CA_WT_TERM));
457 case CA_WT_PERMTERM :
458 if (bSetToggle) AD.fsFlags |= CA_WT_PERMTERM;
459 else AD.fsFlags &= (~(CA_WT_PERMTERM));
463 printf("Wintype change after %X\n", AD.fsFlags);
468 /*****************************************************************************/
470 /* valueChangedCB_DroppableFiletypes */
472 /*****************************************************************************/
473 static void valueChangedCB_DroppableFiletypes( Widget UxWidget,
474 XtPointer UxClientData,
475 XtPointer UxCallbackArg)
477 if (((XmToggleButtonCallbackStruct *)UxCallbackArg)->set) {
478 AD.fsFlags |= CA_DF_ONLYFTFILES;
480 AD.fsFlags &= (~(CA_DF_ONLYFTFILES));
484 /*****************************************************************************/
486 /* simpleCB_WindowTypeOptionMenu */
488 /*****************************************************************************/
489 static void activateCB_WindowTypeOptionMenu( Widget UxWidget,
490 XtPointer UxClientData,
491 XtPointer UxCallbackArg)
493 AD.fsFlags &= (~(CA_WT_XWINDOWS | CA_WT_TERM | CA_WT_PERMTERM));
494 switch ((int)(XtArgVal)UxClientData) {
495 case CA_WT_XWINDOWS :
496 AD.fsFlags |= CA_WT_XWINDOWS;
499 AD.fsFlags |= CA_WT_TERM;
501 case CA_WT_PERMTERM :
502 AD.fsFlags |= CA_WT_PERMTERM;
507 /*******************************************************************************
508 The 'build_' function creates all the widgets
509 using the resource values specified in the Property Editor.
510 *******************************************************************************/
512 static Widget _Uxbuild_CreateActionAppShell(void)
515 Widget CA_MB_FileOption_shell;
516 Widget CA_MB_HelpOption_shell;
517 Widget CA_MB_Help_Sep1;
518 Widget CA_MB_Help_Sep2;
519 Widget CA_MB_OptionsOption_shell;
522 Widget CA_WindowType_OptionMenuShell;
523 Widget CA_WindowType_Pane;
524 Widget CA_WindowType_OptionMenu;
526 XtArgVal /* Dimension */ dim1, dim2;
527 Widget CA_MED_IconForm, CA_TINY_IconForm, CA_LRG_IconForm;
530 XmString emptyString;
531 char titleBuf[MAXBUFSIZE];
533 #define ICON_MIN_HEIGHT 83
534 #define FINDEDIT_SPACING 6
535 #define BORDER_OFFSET 3
537 /* Creation of CreateActionAppShell */
538 _UxParent = UxParent;
539 if ( _UxParent == NULL )
541 _UxParent = UxTopLevel;
544 snprintf(titleBuf, sizeof(titleBuf), "%s", GETMESSAGE(3, 10, "Create Action"));
545 CreateActionAppShell = XtVaCreatePopupShell( "CreateActionAppShell",
546 applicationShellWidgetClass,
554 XmNiconName, titleBuf,
556 XmNallowShellResize, TRUE,
558 XmNdeleteResponse, XmDO_NOTHING, /* CDExc19440 */
561 /* CDExc19440 - make sure user doesn't accidentally lose work. */
562 XmAddWMProtocolCallback(CreateActionAppShell,
563 XmInternAtom(UxDisplay,
570 /* Creation of CreateActionMainWindow */
571 CreateActionMainWindow = XtVaCreateManagedWidget( "CreateActionMainWindow",
572 xmMainWindowWidgetClass,
573 CreateActionAppShell,
574 XmNunitType, XmPIXELS,
577 XmNscrollingPolicy, XmAUTOMATIC,
580 /* Creation of CreateActionMainWindow */
581 CreateActionMainWindow = XtVaCreateManagedWidget( "CreateActionMainWindow",
582 xmMainWindowWidgetClass,
583 CreateActionAppShell,
584 XmNunitType, XmPIXELS,
589 XtAddCallback( CreateActionMainWindow, XmNhelpCallback,
590 (XtCallbackProc) helpCB_general,
591 (XtPointer) HELP_ONITEM );
593 /*********************************************************************/
597 /*********************************************************************/
598 /* Creation of CA_MenuBar */
599 CA_MenuBar = XtVaCreateManagedWidget( "CA_MenuBar",
600 xmRowColumnWidgetClass,
601 CreateActionMainWindow,
602 XmNrowColumnType, XmMENU_BAR,
603 XmNmenuAccelerator, "<KeyUp>F10",
604 XmNpacking, XmPACK_TIGHT,
605 XmNentryAlignment, XmALIGNMENT_BEGINNING,
606 XmNorientation, XmHORIZONTAL,
609 /* Creation of CA_MB_FileOption */
610 CA_MB_FileOption_shell = XtVaCreatePopupShell ("CA_MB_FileOption_shell",
611 xmMenuShellWidgetClass, CA_MenuBar,
614 XmNallowShellResize, TRUE,
615 XmNoverrideRedirect, TRUE,
618 CA_MB_FileOption = XtVaCreateWidget( "CA_MB_FileOption",
619 xmRowColumnWidgetClass,
620 CA_MB_FileOption_shell,
621 XmNrowColumnType, XmMENU_PULLDOWN,
624 /* Creation of CA_MB_FileNew */
626 mnemonic = GETMESSAGE(2, 21, "N");
628 snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 21, "N"));
629 CA_MB_FileNew = XtVaCreateManagedWidget( "CA_MB_FileNew",
630 xmPushButtonWidgetClass,
632 RES_CONVERT( XmNlabelString, GETMESSAGE(2, 20, "New")),
633 XmNmnemonic, mnemonic[0],
635 XtAddCallback( CA_MB_FileNew, XmNactivateCallback,
636 (XtCallbackProc) activateCB_FileNew,
639 /* Creation of CA_MB_FileOpen */
641 mnemonic = GETMESSAGE(2, 16, "O");
643 snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 16, "O"));
644 CA_MB_FileOpen = XtVaCreateManagedWidget( "CA_MB_FileOpen",
645 xmPushButtonWidgetClass,
647 RES_CONVERT( XmNlabelString, GETMESSAGE(2, 15, "Open...")),
648 XmNmnemonic, mnemonic[0],
650 XtAddCallback( CA_MB_FileOpen, XmNactivateCallback,
651 (XtCallbackProc) activateCB_FileOpen,
654 /* Creation of CA_MB_FileSave */
656 mnemonic = GETMESSAGE(2, 26, "S");
658 snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 26, "S"));
659 CA_MB_FileSave = XtVaCreateManagedWidget( "CA_MB_FileSave",
660 xmPushButtonWidgetClass,
662 RES_CONVERT( XmNlabelString, GETMESSAGE(2, 25, "Save")),
663 XmNmnemonic, mnemonic[0],
665 XtAddCallback( CA_MB_FileSave, XmNactivateCallback,
666 (XtCallbackProc) activateCB_CA_MB_FileSave,
669 /* Creation of CA_MB_Sep */
670 CA_MB_Sep = XtVaCreateManagedWidget( "CA_MB_Sep",
671 xmSeparatorWidgetClass,
675 /* Creation of CA_MB_FileExit */
677 mnemonic = GETMESSAGE(2, 31, "x");
679 snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 31, "x"));
680 CA_MB_FileExit = XtVaCreateManagedWidget( "CA_MB_FileExit",
681 xmPushButtonWidgetClass,
683 RES_CONVERT( XmNlabelString, GETMESSAGE(2, 30, "Exit")),
684 XmNmnemonic, mnemonic[0],
686 XtAddCallback( CA_MB_FileExit, XmNactivateCallback,
687 (XtCallbackProc) activateCB_FileQuit,
690 /* Creation of CA_MB_FileTop */
692 mnemonic = GETMESSAGE(2, 11, "F");
694 snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 11, "F"));
695 CA_MB_FileTop = XtVaCreateManagedWidget( "CA_MB_FileTop",
696 xmCascadeButtonWidgetClass,
698 RES_CONVERT( XmNlabelString, GETMESSAGE(2, 10, "File")),
699 XmNmnemonic, mnemonic[0],
700 XmNsubMenuId, CA_MB_FileOption,
703 /* Creation of CA_MB_HelpOption */
704 CA_MB_HelpOption_shell = XtVaCreatePopupShell ("CA_MB_HelpOption_shell",
705 xmMenuShellWidgetClass, CA_MenuBar,
708 XmNallowShellResize, TRUE,
709 XmNoverrideRedirect, TRUE,
712 CA_MB_HelpOption = XtVaCreateWidget( "CA_MB_HelpOption",
713 xmRowColumnWidgetClass,
714 CA_MB_HelpOption_shell,
715 XmNrowColumnType, XmMENU_PULLDOWN,
719 * Creation of CA_MB_HelpOverview
721 snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 61, "v"));
722 CA_MB_HelpOverview = XtVaCreateManagedWidget( "CA_MB_HelpOverview",
723 xmPushButtonWidgetClass,
725 RES_CONVERT( XmNlabelString, GETMESSAGE(2, 60, "Overview")),
726 XmNmnemonic, mnemonic[0],
727 XmNuserData, CreateActionAppShell,
729 XtAddCallback( CA_MB_HelpOverview, XmNactivateCallback,
730 (XtCallbackProc) helpCB_general,
731 (XtPointer) HELP_OVERVIEW );
734 * Creation of CA_MB_HelpTasks
736 snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 71, "T"));
737 CA_MB_HelpTasks = XtVaCreateManagedWidget( "CA_MB_HelpTasks",
738 xmPushButtonWidgetClass,
740 RES_CONVERT( XmNlabelString, GETMESSAGE(2, 70, "Tasks")),
741 XmNmnemonic, mnemonic[0],
742 XmNuserData, CreateActionAppShell,
744 XtAddCallback( CA_MB_HelpTasks, XmNactivateCallback,
745 (XtCallbackProc) helpCB_general,
746 (XtPointer) HELP_TASKS );
749 /* Creation of CA_MB_HelpTOC */
751 mnemonic = GETMESSAGE(2, 66, "T");
753 snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 66, "T"));
754 CA_MB_HelpTOC = XtVaCreateManagedWidget( "CA_MB_HelpTOC",
755 xmPushButtonWidgetClass,
757 RES_CONVERT( XmNlabelString, GETMESSAGE(2, 65, "Table Of Contents...")),
758 XmNmnemonic, mnemonic[0],
759 XmNuserData, CreateActionAppShell,
763 * Creation of CA_MB_HelpReference
765 snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 76, "R"));
766 CA_MB_HelpReference = XtVaCreateManagedWidget( "CA_MB_HelpReference",
767 xmPushButtonWidgetClass,
769 RES_CONVERT( XmNlabelString, GETMESSAGE(2, 75, "Reference")),
770 XmNmnemonic, mnemonic[0],
771 XmNuserData, CreateActionAppShell,
773 XtAddCallback( CA_MB_HelpReference, XmNactivateCallback,
774 (XtCallbackProc) helpCB_general,
775 (XtPointer) HELP_REFERENCE );
778 * Creation of CA_MB_Help_Sep1
780 CA_MB_Help_Sep1 = XtVaCreateManagedWidget( "CA_MB_Help_Sep1",
781 xmSeparatorWidgetClass,
786 * Creation of CA_MB_HelpUsing
788 snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 81, "U"));
789 CA_MB_HelpUsing = XtVaCreateManagedWidget( "CA_MB_HelpUsing",
790 xmPushButtonWidgetClass,
792 RES_CONVERT( XmNlabelString, GETMESSAGE(2, 80, "Using Help")),
793 XmNmnemonic, mnemonic[0],
794 XmNuserData, CreateActionAppShell,
796 XtAddCallback( CA_MB_HelpUsing, XmNactivateCallback,
797 (XtCallbackProc) helpCB_general,
798 (XtPointer) HELP_USING );
801 * Creation of CA_MB_Help_Sep2
803 CA_MB_Help_Sep2 = XtVaCreateManagedWidget( "CA_MB_Help_Sep2",
804 xmSeparatorWidgetClass,
809 * Creation of CA_MB_HelpAbout
811 snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 86, "A"));
812 CA_MB_HelpAbout = XtVaCreateManagedWidget( "CA_MB_HelpAbout",
813 xmPushButtonWidgetClass,
815 RES_CONVERT( XmNlabelString, GETMESSAGE(2, 85, "About Create Action")),
816 XmNmnemonic, mnemonic[0],
817 XmNuserData, CreateActionAppShell,
819 XtAddCallback( CA_MB_HelpAbout, XmNactivateCallback,
820 (XtCallbackProc) helpCB_general,
821 (XtPointer) HELP_ABOUT );
824 * Creation of CA_MB_HelpTop
826 snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 54, "H"));
827 CA_MB_HelpTop = XtVaCreateManagedWidget( "CA_MB_HelpTop",
828 xmCascadeButtonWidgetClass,
830 RES_CONVERT( XmNlabelString, GETMESSAGE(2, 53, "Help")),
831 XmNmnemonic, mnemonic[0],
832 XmNsubMenuId, CA_MB_HelpOption,
833 XmNuserData, CreateActionAppShell,
836 /* Creation of CA_MB_OptionsOption */
837 CA_MB_OptionsOption_shell = XtVaCreatePopupShell ("CA_MB_OptionsOption_shell",
838 xmMenuShellWidgetClass, CA_MenuBar,
841 XmNallowShellResize, TRUE,
842 XmNoverrideRedirect, TRUE,
845 CA_MB_OptionsOption = XtVaCreateWidget( "CA_MB_OptionsOption",
846 xmRowColumnWidgetClass,
847 CA_MB_OptionsOption_shell,
848 XmNrowColumnType, XmMENU_PULLDOWN,
851 /* Creation of ColorMonoOption */
852 snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 50, "M"));
853 ColorMonoOption = XtVaCreateManagedWidget( "ColorMonoOption",
854 xmToggleButtonWidgetClass,
856 RES_CONVERT( XmNlabelString, GETMESSAGE(2, 49, "Show Monochrome Icons")),
857 XmNmnemonic, mnemonic[0],
858 XmNindicatorSize, 20,
859 XmNhighlightThickness, 0,
861 XtAddCallback( ColorMonoOption, XmNvalueChangedCallback,
862 (XtCallbackProc) valueChangedCB_ColorMonoOption,
864 createCB_ColorMonoOption(ColorMonoOption);
867 /* Creation of CA_MB_OptionTop */
868 snprintf(mnemonic, sizeof(mnemonic), "%s", GETMESSAGE(2, 36, "O"));
869 CA_MB_OptionTop = XtVaCreateManagedWidget( "CA_MB_OptionTop",
870 xmCascadeButtonWidgetClass,
872 RES_CONVERT( XmNlabelString, GETMESSAGE(2, 35, "Options")),
873 XmNmnemonic, mnemonic[0],
874 XmNsubMenuId, CA_MB_OptionsOption,
877 /* Creation of CA_Form */
878 CA_Form = XtVaCreateManagedWidget( "CA_Form",
880 CreateActionMainWindow,
882 XmNresizePolicy, XmRESIZE_ANY,
885 /*********************************************************************/
889 /*********************************************************************/
890 /* Creation of CA_ActionNameLabel */
891 CA_ActionNameLabel = XtVaCreateManagedWidget( "CA_ActionNameLabel",
896 RES_CONVERT( XmNlabelString, GETMESSAGE(3, 12, "Action Name (Icon Label):")),
897 XmNalignment, XmALIGNMENT_BEGINNING,
899 XmNleftAttachment, XmATTACH_FORM,
901 XmNtopAttachment, XmATTACH_FORM,
903 XmNrightAttachment, XmATTACH_FORM,
906 /* Creation of CA_ActionNameTextField */
907 CA_ActionNameTextField = XtVaCreateManagedWidget( "CA_ActionNameTextField",
908 xmTextFieldWidgetClass,
913 XmNtopWidget, CA_ActionNameLabel,
914 XmNtopAttachment, XmATTACH_WIDGET,
916 XmNleftAttachment, XmATTACH_FORM,
918 XmNrightAttachment, XmATTACH_FORM,
921 XtAddCallback( CA_ActionNameTextField, XmNvalueChangedCallback,
922 (XtCallbackProc) valueChangedCB_CA_ActionNameTextField,
926 /*********************************************************************/
930 /*********************************************************************/
931 /* Creation of CA_ActionIconLabel */
932 CA_ActionIconLabel = XtVaCreateManagedWidget( "CA_ActionIconLabel",
937 RES_CONVERT( XmNlabelString, GETMESSAGE(3, 13, "Action Icons:")),
938 XmNalignment, XmALIGNMENT_BEGINNING,
940 XmNleftAttachment, XmATTACH_FORM,
942 XmNtopWidget, CA_ActionNameTextField,
943 XmNtopAttachment, XmATTACH_WIDGET,
945 XmNrightAttachment, XmATTACH_FORM,
948 /* Creation of CA_ActionIconForm */
949 CA_ActionIconForm = XtVaCreateManagedWidget( "CA_ActionIconForm",
952 XmNresizePolicy, XmRESIZE_NONE,
956 XmNnavigationType, XmTAB_GROUP,
958 XmNtopWidget, CA_ActionIconLabel,
959 XmNtopAttachment, XmATTACH_WIDGET,
961 XmNleftAttachment, XmATTACH_FORM,
963 XmNrightAttachment, XmATTACH_FORM,
964 XmNshadowThickness, 3,
965 XmNshadowType, XmSHADOW_ETCHED_IN,
966 XmNautoUnmanage, FALSE,
968 XmNallowOverlap, TRUE,
970 XmNverticalSpacing, 5,
973 CA_MED_IconForm = XtVaCreateManagedWidget( "CA_MED_IconForm",
976 XmNresizePolicy, XmRESIZE_NONE,
977 XmNborderWidth, ICON_BORDER_WIDTH,
980 XmNleftAttachment, XmATTACH_POSITION,
981 XmNbottomPosition, 88,
983 XmNbottomAttachment, XmATTACH_POSITION,
986 /* Creation of CA_MED_IconGadget */
987 emptyString = XmStringCreateLocalized("");
988 pIconData = (IconData *)XtMalloc(sizeof(IconData));
989 memset(pIconData, 0, sizeof(IconData));
990 IconDataList[CA_MED] = pIconData;
991 CA_MED_IconGadget = XtVaCreateManagedWidget( "CA_MED_IconGadget",
994 XmNalignment, XmALIGNMENT_CENTER,
995 XmNuserData, pIconData,
996 XmNstring, emptyString,
997 XmNrecomputeSize, TRUE,
998 XmNleftOffset, BORDER_OFFSET,
999 XmNleftAttachment, XmATTACH_FORM,
1000 XmNrightOffset, BORDER_OFFSET,
1001 XmNrightAttachment, XmATTACH_FORM,
1002 XmNtopOffset, BORDER_OFFSET,
1003 XmNtopAttachment, XmATTACH_FORM,
1004 XmNbottomOffset, BORDER_OFFSET,
1005 XmNbottomAttachment, XmATTACH_FORM,
1007 XmNleftPosition, 32,
1009 XmNleftAttachment, XmATTACH_POSITION,
1010 XmNbottomPosition, 88,
1012 XmNbottomAttachment, XmATTACH_POSITION,
1015 pIconData->wid = CA_MED_IconGadget;
1016 pIconData->size = Medium_Icon;
1017 XtAddCallback( CA_MED_IconGadget, XmNcallback,
1018 (XtCallbackProc) activateCB_action_icon,
1020 createCB_IconGadget( CA_MED_IconGadget, TRUE, Medium_Icon );
1021 last_action_pushed = CA_MED_IconGadget;
1023 CA_TINY_IconForm = XtVaCreateManagedWidget( "CA_TINY_IconForm",
1026 XmNresizePolicy, XmRESIZE_NONE,
1028 XmNleftPosition, 52,
1030 XmNleftAttachment, XmATTACH_POSITION,
1031 XmNbottomPosition, 88,
1033 XmNbottomAttachment, XmATTACH_POSITION,
1036 /* Creation of CA_TINY_IconGadget */
1037 pIconData = (IconData *)XtMalloc(sizeof(IconData));
1038 memset(pIconData, 0, sizeof(IconData));
1039 IconDataList[CA_TINY] = pIconData;
1040 CA_TINY_IconGadget = XtVaCreateManagedWidget( "CA_TINY_IconGadget",
1043 XmNalignment, XmALIGNMENT_CENTER,
1044 XmNuserData, pIconData,
1045 XmNrecomputeSize, TRUE,
1046 XmNstring, emptyString,
1047 XmNleftOffset, BORDER_OFFSET,
1048 XmNleftAttachment, XmATTACH_FORM,
1049 XmNrightOffset, BORDER_OFFSET,
1050 XmNrightAttachment, XmATTACH_FORM,
1051 XmNtopOffset, BORDER_OFFSET,
1052 XmNtopAttachment, XmATTACH_FORM,
1053 XmNbottomOffset, BORDER_OFFSET,
1054 XmNbottomAttachment, XmATTACH_FORM,
1056 pIconData->wid = CA_TINY_IconGadget;
1057 pIconData->size = Tiny_Icon;
1058 XtAddCallback( CA_TINY_IconGadget, XmNcallback,
1059 (XtCallbackProc) activateCB_action_icon,
1061 createCB_IconGadget( CA_TINY_IconGadget, TRUE, Tiny_Icon );
1063 CA_LRG_IconForm = XtVaCreateManagedWidget( "CA_LRG_IconForm",
1066 XmNresizePolicy, XmRESIZE_NONE,
1068 XmNleftPosition, 11,
1070 XmNleftAttachment, XmATTACH_POSITION,
1071 XmNbottomPosition, 88,
1073 XmNbottomAttachment, XmATTACH_POSITION,
1076 /* Creation of CA_LRG_IconGadget */
1077 pIconData = (IconData *)XtMalloc(sizeof(IconData));
1078 memset(pIconData, 0, sizeof(IconData));
1079 IconDataList[CA_LRG] = pIconData;
1080 CA_LRG_IconGadget = XtVaCreateManagedWidget( "CA_LRG_IconGadget",
1083 XmNalignment, XmALIGNMENT_CENTER,
1084 XmNuserData, pIconData,
1085 XmNstring, emptyString,
1086 XmNrecomputeSize, TRUE,
1087 XmNleftOffset, BORDER_OFFSET,
1088 XmNleftAttachment, XmATTACH_FORM,
1089 XmNrightOffset, BORDER_OFFSET,
1090 XmNrightAttachment, XmATTACH_FORM,
1091 XmNtopOffset, BORDER_OFFSET,
1092 XmNtopAttachment, XmATTACH_FORM,
1093 XmNbottomOffset, BORDER_OFFSET,
1094 XmNbottomAttachment, XmATTACH_FORM,
1096 pIconData->wid = CA_LRG_IconGadget;
1097 pIconData->size = Large_Icon;
1098 XtAddCallback( CA_LRG_IconGadget, XmNcallback,
1099 (XtCallbackProc) activateCB_action_icon,
1101 createCB_IconGadget( CA_LRG_IconGadget, TRUE, Large_Icon );
1103 XmStringFree(emptyString);
1105 /* Creation of CA_EditIcon_button */
1106 CA_EditIcon_button = XtVaCreateManagedWidget( "CA_EditIcon_button",
1107 xmPushButtonGadgetClass,
1109 RES_CONVERT( XmNlabelString, GETMESSAGE(6, 20, "Edit Icon...")),
1110 XmNalignment, XmALIGNMENT_BEGINNING,
1111 XmNleftPosition, 68,
1113 XmNleftAttachment, XmATTACH_POSITION,
1115 XmNtopOffset, (int)(FINDEDIT_SPACING / 2),
1116 XmNtopAttachment, XmATTACH_POSITION,
1118 XtAddCallback( CA_EditIcon_button, XmNactivateCallback,
1119 (XtCallbackProc) activateCB_edit_icon,
1120 (XtPointer) CA_ACTION_ICONS );
1122 /* Creation of CA_FindSet_button */
1123 CA_FindSet_button = XtVaCreateManagedWidget( "CA_FindSet_button",
1124 xmPushButtonGadgetClass,
1126 RES_CONVERT( XmNlabelString, GETMESSAGE(6, 19, "Find Set...")),
1127 XmNalignment, XmALIGNMENT_BEGINNING,
1128 XmNmultiClick, XmMULTICLICK_DISCARD,
1129 XmNleftPosition, 68,
1131 XmNleftAttachment, XmATTACH_POSITION,
1132 XmNbottomPosition, 50,
1133 XmNbottomOffset, (int)(FINDEDIT_SPACING / 2),
1134 XmNbottomAttachment, XmATTACH_POSITION,
1136 XtAddCallback( CA_FindSet_button, XmNactivateCallback,
1137 (XtCallbackProc) activateCB_open_FindSet,
1138 (XtPointer) CA_ACTION_ICONS );
1140 /******************************************************************/
1141 /* Determine which button is wider, and attach the short on to it */
1142 /******************************************************************/
1143 XtVaGetValues(CA_EditIcon_button, XmNwidth, &dim1, NULL);
1144 XtVaGetValues(CA_FindSet_button, XmNwidth, &dim2, NULL);
1146 XtVaSetValues(CA_FindSet_button,
1150 XtVaSetValues(CA_EditIcon_button,
1154 /******************************************************************/
1155 /* Determine vertical positioning for findset and edit buttons */
1156 /******************************************************************/
1157 XtVaGetValues(CA_EditIcon_button, XmNheight, &dim1, NULL);
1158 XtVaGetValues(CA_FindSet_button, XmNheight, &dim2, NULL);
1159 if ((int)(dim1 + dim2) + (3*(FINDEDIT_SPACING)) > ICON_MIN_HEIGHT) {
1160 XtVaSetValues(CA_EditIcon_button,
1161 XmNbottomOffset, FINDEDIT_SPACING,
1162 XmNbottomAttachment, XmATTACH_FORM,
1164 XtVaSetValues(CA_FindSet_button,
1165 XmNbottomOffset, FINDEDIT_SPACING,
1166 XmNbottomWidget, CA_EditIcon_button,
1167 XmNbottomAttachment, XmATTACH_WIDGET,
1168 XmNtopOffset, FINDEDIT_SPACING,
1169 XmNtopAttachment, XmATTACH_FORM,
1174 /******************************************************************/
1175 /* Bogus separator to keep ActionIconForm a minimum height */
1176 /******************************************************************/
1177 separator1 = XtVaCreateManagedWidget( "separator1",
1178 xmSeparatorWidgetClass,
1183 XmNheight, ICON_MIN_HEIGHT,
1184 XmNorientation, XmVERTICAL,
1185 XmNseparatorType, XmNO_LINE,
1187 XmNtopAttachment, XmATTACH_FORM,
1189 XmNbottomAttachment, XmATTACH_FORM,
1192 /*********************************************************************/
1196 /*********************************************************************/
1197 /* Creation of CA_DblClkLabel */
1198 CA_DblClkLabel = XtVaCreateManagedWidget( "CA_DblClkLabel",
1201 RES_CONVERT( XmNlabelString, GETMESSAGE(3, 22, "Command When Action Is Opened (Double-clicked):")),
1202 XmNalignment, XmALIGNMENT_BEGINNING,
1204 XmNleftAttachment, XmATTACH_FORM,
1206 XmNtopWidget, CA_ActionIconForm,
1207 XmNtopAttachment, XmATTACH_WIDGET,
1209 XmNrightAttachment, XmATTACH_FORM,
1212 /* Creation of CA_DblClkText */
1213 CA_DblClkText = XtVaCreateManagedWidget( "CA_DblClkText",
1214 xmTextFieldWidgetClass,
1216 XmNnavigationType, XmTAB_GROUP,
1218 XmNtopWidget, CA_DblClkLabel,
1219 XmNtopAttachment, XmATTACH_WIDGET,
1221 XmNleftAttachment, XmATTACH_FORM,
1223 XmNrightAttachment, XmATTACH_FORM,
1227 /*********************************************************************/
1229 /* Help Text Label */
1231 /*********************************************************************/
1232 /* Creation of CA_HlpTxtLabel */
1233 CA_HlpTxtLabel = XtVaCreateManagedWidget( "CA_HlpTxtLabel",
1236 RES_CONVERT( XmNlabelString, GETMESSAGE(3, 30, "Help Text For Action Icon:")),
1237 XmNalignment, XmALIGNMENT_BEGINNING,
1239 XmNleftAttachment, XmATTACH_FORM,
1241 XmNtopWidget, CA_DblClkText,
1242 XmNtopAttachment, XmATTACH_WIDGET,
1244 XmNrightAttachment, XmATTACH_FORM,
1247 /*********************************************************************/
1249 /* Advanced Features Area */
1251 /*********************************************************************/
1252 /* Creation of XprtOptionForm */
1253 XprtOptionForm = XtVaCreateManagedWidget( "XprtOptionForm",
1256 XmNresizePolicy, XmRESIZE_ANY,
1258 XmNleftAttachment, XmATTACH_FORM,
1260 XmNrightAttachment, XmATTACH_FORM,
1262 XmNbottomAttachment, XmATTACH_FORM,
1265 /*********************************************************************/
1267 /* Optional Separator */
1269 /*********************************************************************/
1271 /* Creation of CA_XprtSep1 */
1272 CA_XprtSep1 = XtVaCreateManagedWidget( "CA_XprtSep1",
1273 xmSeparatorWidgetClass,
1276 XmNleftAttachment, XmATTACH_FORM,
1278 XmNrightAttachment, XmATTACH_FORM,
1280 XmNtopAttachment, XmATTACH_FORM,
1283 /*********************************************************************/
1287 /*********************************************************************/
1288 /* Creation of CA_ActionOpenLabel */
1289 CA_ActionOpenLabel = XtVaCreateManagedWidget( "CA_ActionOpenLabel",
1292 RES_CONVERT( XmNlabelString, GETMESSAGE(4, 11, "When Action Opens, Ask Users for:")),
1293 XmNalignment, XmALIGNMENT_BEGINNING,
1295 XmNleftAttachment, XmATTACH_FORM,
1297 XmNrightAttachment, XmATTACH_FORM,
1299 XmNtopWidget, CA_XprtSep1,
1300 XmNtopAttachment, XmATTACH_WIDGET,
1303 /* Creation of CA_XprtActionOpenText */
1304 CA_XprtActionOpenText = XtVaCreateManagedWidget( "CA_XprtActionOpenText",
1308 XmNnavigationType, XmTAB_GROUP,
1310 XmNleftAttachment, XmATTACH_FORM,
1312 XmNrightAttachment, XmATTACH_FORM,
1314 XmNtopWidget, CA_ActionOpenLabel,
1315 XmNtopAttachment, XmATTACH_WIDGET,
1316 /*XmNeditMode, XmMULTI_LINE_EDIT,*/
1317 /*XmNwordWrap, TRUE,*/
1320 /*********************************************************************/
1322 /* Filetypes that use this Action area */
1324 /*********************************************************************/
1325 /* Creation of CA_FiletypesLabel */
1326 CA_FiletypesLabel = XtVaCreateManagedWidget( "CA_FiletypesLabel",
1331 RES_CONVERT( XmNlabelString, GETMESSAGE(4, 12, "Datatypes That Use This Action:")),
1332 XmNalignment, XmALIGNMENT_BEGINNING,
1334 XmNleftAttachment, XmATTACH_FORM,
1336 XmNrightAttachment, XmATTACH_FORM,
1338 XmNtopWidget, CA_XprtActionOpenText,
1339 XmNtopAttachment, XmATTACH_WIDGET,
1342 /*********************************************************************/
1344 /* Add, Delete, Edit buttons for Filetypes */
1346 /*********************************************************************/
1347 /* Creation of rowColumn1 */
1348 rowColumn1 = XtVaCreateManagedWidget( "rowColumn1",
1349 xmRowColumnWidgetClass,
1351 XmNnavigationType, XmTAB_GROUP,
1353 XmNtopWidget, CA_FiletypesLabel,
1354 XmNtopAttachment, XmATTACH_WIDGET,
1356 XmNrightAttachment, XmATTACH_FORM,
1359 /* Creation of CA_FiletypesAdd */
1360 CA_FiletypesAdd = XtVaCreateManagedWidget( "CA_FiletypesAdd",
1361 xmPushButtonGadgetClass,
1363 RES_CONVERT( XmNlabelString, GETMESSAGE(4, 13, "Add...")),
1364 XmNalignment, XmALIGNMENT_BEGINNING,
1368 XtAddCallback( CA_FiletypesAdd, XmNactivateCallback,
1369 (XtCallbackProc) activateCB_add_filetype,
1372 /* Creation of CA_FiletypesDelete */
1373 CA_FiletypesDelete = XtVaCreateManagedWidget( "CA_FiletypesDelete",
1374 xmPushButtonGadgetClass,
1376 RES_CONVERT( XmNlabelString, GETMESSAGE(4, 14, "Delete")),
1377 XmNalignment, XmALIGNMENT_BEGINNING,
1381 XtAddCallback( CA_FiletypesDelete, XmNactivateCallback,
1382 (XtCallbackProc) activateCB_CA_FiletypesDelete,
1385 /* Creation of CA_FiletypesEdit */
1386 CA_FiletypesEdit = XtVaCreateManagedWidget( "CA_FiletypesEdit",
1387 xmPushButtonGadgetClass,
1389 RES_CONVERT( XmNlabelString, GETMESSAGE(4, 15, "Edit...")),
1390 XmNalignment, XmALIGNMENT_BEGINNING,
1394 XtAddCallback( CA_FiletypesEdit, XmNactivateCallback,
1395 (XtCallbackProc) activateCB_edit_filetype,
1398 /*********************************************************************/
1400 /* Filetypes Listbox Area */
1402 /*********************************************************************/
1403 /* Creation of CA_FiletypesWindow */
1404 CA_FiletypesWindow = XtVaCreateManagedWidget( "CA_FiletypesWindow",
1405 xmScrolledWindowWidgetClass,
1409 XmNshadowThickness, 2,
1411 XmNleftAttachment, XmATTACH_FORM,
1413 XmNtopWidget, CA_FiletypesLabel,
1414 XmNtopAttachment, XmATTACH_WIDGET,
1416 XmNbottomWidget, rowColumn1,
1417 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
1419 XmNrightWidget, rowColumn1,
1420 XmNrightAttachment, XmATTACH_WIDGET,
1423 /* Creation of CA_FiletypesList */
1424 CA_FiletypesList = XtVaCreateManagedWidget( "CA_FiletypesList",
1427 XmNselectionPolicy, XmSINGLE_SELECT,
1428 XmNshadowThickness, 0,
1431 /*********************************************************************/
1433 /* Droppable Filetypes Toggle Area */
1435 /*********************************************************************/
1436 /* Creation of CA_DroppableFiletypesLabel */
1437 CA_DroppableFiletypesLabel = XtVaCreateManagedWidget( "CA_DroppableFiletypesLabel",
1442 XmNalignment, XmALIGNMENT_BEGINNING,
1443 RES_CONVERT( XmNlabelString, GETMESSAGE(4, 16, "Dropable Datatypes:")),
1445 XmNleftAttachment, XmATTACH_FORM,
1447 XmNtopWidget, rowColumn1,
1448 XmNtopAttachment, XmATTACH_WIDGET,
1452 /* Creation of CA_DroppableFiletypesRowColumn */
1453 CA_DroppableFiletypesRowColumn = XtVaCreateManagedWidget( "CA_DroppableFiletypesRowColumn",
1454 xmRowColumnWidgetClass,
1458 RES_CONVERT( XmNlabelString, "" ),
1459 XmNorientation, XmHORIZONTAL,
1460 XmNpacking, XmPACK_TIGHT,
1461 XmNradioBehavior, TRUE,
1463 XmNnavigationType, XmTAB_GROUP,
1465 XmNtopWidget, CA_DroppableFiletypesLabel,
1466 XmNtopAttachment, XmATTACH_WIDGET,
1468 XmNbottomAttachment, XmATTACH_FORM,
1470 XmNleftAttachment, XmATTACH_FORM,
1472 XmNrightAttachment, XmATTACH_FORM,
1475 /* Creation of CA_DroppableFiletypesRowColumn */
1476 CA_DroppableFiletypesRowColumn = XtVaCreateManagedWidget( "CA_DroppableFiletypesRowColumn",
1477 xmRowColumnWidgetClass,
1479 RES_CONVERT( XmNlabelString, "" ),
1480 XmNorientation, XmHORIZONTAL,
1481 XmNpacking, XmPACK_TIGHT,
1482 XmNradioBehavior, TRUE,
1484 XmNnavigationType, XmTAB_GROUP,
1486 XmNtopWidget, CA_DroppableFiletypesLabel,
1487 XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
1489 XmNbottomAttachment, XmATTACH_FORM,
1491 XmNleftWidget, CA_DroppableFiletypesLabel,
1492 XmNleftAttachment, XmATTACH_WIDGET,
1494 XmNrightAttachment, XmATTACH_FORM,
1498 /* Creation of CA_AllFiletypesToggle */
1499 CA_AllFiletypesToggle = XtVaCreateManagedWidget( "CA_AllFiletypesToggle",
1500 xmToggleButtonWidgetClass,
1501 CA_DroppableFiletypesRowColumn,
1502 RES_CONVERT( XmNlabelString, GETMESSAGE(4, 17, "All Datatypes")),
1506 /* Creation of CA_FiletypesInListToggle */
1507 CA_FiletypesInListToggle = XtVaCreateManagedWidget( "CA_FiletypesInListToggle",
1508 xmToggleButtonWidgetClass,
1509 CA_DroppableFiletypesRowColumn,
1510 RES_CONVERT( XmNlabelString, GETMESSAGE(4, 18, "Only Above List")),
1512 XtAddCallback( CA_FiletypesInListToggle, XmNvalueChangedCallback,
1513 (XtCallbackProc) valueChangedCB_DroppableFiletypes,
1514 (XtPointer) CA_DF_ONLYFTFILES );
1517 /*********************************************************************/
1521 /*********************************************************************/
1522 CA_Expand = XtVaCreateManagedWidget( "CA_Expand",
1523 xmPushButtonWidgetClass,
1525 RES_CONVERT( XmNlabelString, GETMESSAGE(3, 50, "Advanced")),
1526 XmNmultiClick, XmMULTICLICK_DISCARD,
1527 XmNnavigationType, XmTAB_GROUP,
1531 XmNleftAttachment, XmATTACH_FORM,
1532 XmNbottomOffset, 20,
1533 XmNbottomWidget, XprtOptionForm,
1534 XmNbottomAttachment, XmATTACH_WIDGET,
1536 XtAddCallback( CA_Expand, XmNactivateCallback,
1537 (XtCallbackProc) activateCB_ExpertOption,
1540 /*********************************************************************/
1542 /* Start of WindowType Option Menu */
1544 /*********************************************************************/
1545 CA_WindowType_OptionMenuShell = XtVaCreatePopupShell ("CA_WindowType_OptionMenuShell",
1546 xmMenuShellWidgetClass,
1550 XmNallowShellResize, TRUE,
1551 XmNoverrideRedirect, TRUE,
1554 CA_WindowType_Pane = XtVaCreateWidget( "CA_WindowType_Pane",
1555 xmRowColumnWidgetClass,
1557 CA_WindowType_OptionMenuShell,
1558 XmNrowColumnType, XmMENU_PULLDOWN,
1561 CA_WinTypeX = XtVaCreateManagedWidget( "CA_WinTypeX",
1562 xmPushButtonWidgetClass,
1564 RES_CONVERT( XmNlabelString, GETMESSAGE(3, 34, "Graphical (X-Window)")),
1566 XtAddCallback( CA_WinTypeX, XmNactivateCallback,
1567 (XtCallbackProc) activateCB_WindowTypeOptionMenu,
1568 (XtPointer) CA_WT_XWINDOWS );
1570 CA_WinTypeAutoClose = XtVaCreateManagedWidget( "CA_WinTypeAutoClose",
1571 xmPushButtonWidgetClass,
1573 RES_CONVERT( XmNlabelString, GETMESSAGE(3, 36, "Terminal (Auto-Close)")),
1575 XtAddCallback( CA_WinTypeAutoClose, XmNactivateCallback,
1576 (XtCallbackProc) activateCB_WindowTypeOptionMenu,
1577 (XtPointer) CA_WT_TERM );
1579 CA_WinTypeManualClose = XtVaCreateManagedWidget( "CA_WinTypeManualClose",
1580 xmPushButtonWidgetClass,
1582 RES_CONVERT( XmNlabelString, GETMESSAGE(3, 38, "Terminal (Manual Close)")),
1584 XtAddCallback( CA_WinTypeManualClose, XmNactivateCallback,
1585 (XtCallbackProc) activateCB_WindowTypeOptionMenu,
1586 (XtPointer) CA_WT_PERMTERM );
1588 CA_WinTypeNoOutput = XtVaCreateManagedWidget( "CA_WinTypeNoOutput",
1589 xmPushButtonWidgetClass,
1591 RES_CONVERT( XmNlabelString, GETMESSAGE(3, 40, "No Output")),
1593 XtAddCallback( CA_WinTypeNoOutput, XmNactivateCallback,
1594 (XtCallbackProc) activateCB_WindowTypeOptionMenu,
1595 (XtPointer) CA_WT_XWINDOWS );
1597 CA_WindowType_OptionMenu = XtVaCreateManagedWidget( "CA_WindowType_OptionMenu",
1598 xmRowColumnWidgetClass,
1600 XmNrowColumnType, XmMENU_OPTION,
1601 XmNsubMenuId, CA_WindowType_Pane,
1602 RES_CONVERT( XmNlabelString, GETMESSAGE(3, 32, "Window Type: ")),
1603 XmNnavigationType, XmTAB_GROUP,
1605 XmNleftAttachment, XmATTACH_FORM,
1607 XmNrightAttachment, XmATTACH_FORM,
1608 XmNbottomOffset, 15,
1609 XmNbottomWidget, CA_Expand,
1610 XmNbottomAttachment, XmATTACH_WIDGET,
1612 CA_WindowTypeArea = CA_WindowType_OptionMenu;
1614 /*********************************************************************/
1616 /* Help Text Window */
1618 /*********************************************************************/
1619 /* Creation of CA_HelpTextWindow */
1620 CA_HelpTextWindow = XtVaCreateManagedWidget( "CA_HelpTextWindow",
1621 xmScrolledWindowWidgetClass,
1625 XmNshadowThickness, 0,
1627 XmNtopWidget, CA_HlpTxtLabel,
1628 XmNtopAttachment, XmATTACH_WIDGET,
1630 XmNleftAttachment, XmATTACH_FORM,
1632 XmNrightAttachment, XmATTACH_FORM,
1633 XmNbottomOffset, 15,
1634 XmNbottomWidget, CA_WindowTypeArea,
1635 XmNbottomAttachment, XmATTACH_WIDGET,
1638 /* Creation of CA_HelpText */
1639 CA_HelpText = XtVaCreateManagedWidget( "CA_HelpText",
1642 XmNeditMode, XmMULTI_LINE_EDIT ,
1643 XmNscrollVertical, TRUE,
1644 XmNscrollHorizontal, FALSE,
1651 /*********************************************************************/
1655 /*********************************************************************/
1656 XtVaSetValues(CA_MenuBar,
1657 XmNmenuHelpWidget, CA_MB_HelpTop,
1660 XtAddCallback( CreateActionAppShell, XmNdestroyCallback,
1661 (XtCallbackProc) UxDestroyContextCB,
1664 XmMainWindowSetAreas( CreateActionMainWindow, CA_MenuBar, (Widget) NULL,
1665 (Widget) NULL, (Widget) NULL, CA_Form );
1667 return ( CreateActionAppShell );
1670 /*******************************************************************************
1671 The following is the 'Interface function' which is the
1672 external entry point for creating this interface.
1673 This function should be called from your application or from
1674 a callback function.
1675 *******************************************************************************/
1677 Widget create_applicationShell1(swidget _UxUxParent)
1680 _UxCCreateActionAppShell *UxContext;
1681 Dimension dimHeight;
1686 UxCreateActionAppShellContext = UxContext =
1687 (_UxCCreateActionAppShell *) UxNewContext( sizeof(_UxCCreateActionAppShell), False );
1689 UxParent = _UxUxParent;
1691 rtrn = _Uxbuild_CreateActionAppShell();
1693 /******************************************************************/
1694 /* Need to realize app shell widget now, because we need to */
1695 /* determine initial geometry before the advanced area is */
1696 /* unmanaged in set_ca_dialog_height routine. */
1697 /******************************************************************/
1698 XtSetMappedWhenManaged(rtrn, False);
1699 XtRealizeWidget(rtrn);
1700 XmProcessTraversal(CA_ActionNameTextField, XmTRAVERSE_CURRENT);
1702 FileTypes = (Widget)CA_FiletypesList;
1704 set_ca_dialog_height ();
1706 if (sessiondata.useSession) {
1707 XtVaSetValues (CreateActionAppShell,
1708 XmNx, sessiondata.x,
1709 XmNy, sessiondata.y,
1710 XmNwidth, sessiondata.width,
1711 XmNheight, sessiondata.height,
1712 XmNinitialState, sessiondata.iconicState,
1715 /* display in workspace */
1717 if (sessiondata.workspaces[0])
1719 char *workspaces = sessiondata.workspaces;
1721 Atom * workspace_atoms = NULL;
1722 int num_workspaces = 0;
1725 ptr = strchr (workspaces, '*');
1726 if (ptr != NULL) *ptr = '\0';
1728 workspace_atoms = (Atom *) XtRealloc (
1729 (char *)workspace_atoms,
1730 sizeof (Atom) * (num_workspaces + 1));
1731 workspace_atoms[num_workspaces] = XmInternAtom(
1732 XtDisplay(CreateActionAppShell),
1739 workspaces = ptr + 1;
1741 } while (ptr != NULL);
1742 DtWsmSetWorkspacesOccupied( XtDisplay(CreateActionAppShell),
1743 XtWindow(CreateActionAppShell),
1746 XtFree ((char *) workspace_atoms);
1747 workspace_atoms = NULL;
1751 XtVaGetValues (CA_Form,
1752 XmNheight, &dimHeight,
1753 XmNwidth, &dimWidth,
1755 XtVaGetValues (CreateActionMainWindow,
1756 XmNverticalScrollBar, &widTmp,
1758 XtVaGetValues (widTmp,
1761 dimHeight += dimTmp;
1764 XtVaGetValues (CA_MenuBar,
1767 dimHeight += dimTmp;
1769 XtVaSetValues (CreateActionAppShell,
1770 XmNheight, dimHeight,
1775 XtSetMappedWhenManaged(rtrn, True);
1776 XtManageChild(rtrn);
1781 /*******************************************************************************
1783 *******************************************************************************/