1 static char *rcsid = "$Id$";
3 #include "UiIncludes.h"
6 static Widget uicreatefsformdialog();
8 uicreatefsfsbox(Widget formwdg,
9 void (*callback) (char *topaddress,
11 HTextObject_t * htextobject,
13 static void uifileselectionokcb(Widget wdg, caddr_t callback,
14 XmPushButtonCallbackStruct * calldata);
15 static void uifileselectioncancelcb(Widget wdg, caddr_t ignored,
16 XmPushButtonCallbackStruct * calldata);
17 static void uifileselectionclickcb(Widget wdg, caddr_t ignored,
18 XmListCallbackStruct * calldata);
21 uiTopLevel_t uiTopLevel;
24 int UiDisplayFileSelection(callback)
25 void (*callback) (char *topaddress, HText_t * htext, HTextObject_t * htextobject,
28 uiFileSelectionGfx_t *fsgfx = &uiTopLevel.FSGfx;
31 XtMapWidget(XtParent(fsgfx->FormWdg));
35 fsgfx->FormWdg = uicreatefsformdialog();
36 fsgfx->FSBoxWdg = uicreatefsfsbox(fsgfx->FormWdg, callback);
38 XtManageChild(fsgfx->FormWdg);
39 XtRealizeWidget(XtParent(fsgfx->FormWdg));
46 uicreatefsformdialog()
53 topwdg = XtCreateApplicationShell("FileSelection",
54 topLevelShellWidgetClass,
57 args = uiVaSetArgs(&nargs,
58 XmNresizePolicy, XmRESIZE_NONE,
59 XmNautoUnmanage, FALSE, NULL);
60 formwdg = XmCreateForm(topwdg, "FileSelection",
68 uicreatefsfsbox(formwdg, callback)
70 void (*callback) (char *topaddress, HText_t * htext,
71 HTextObject_t * htextobject, void *parameter);
75 Widget fsboxwdg, textwdg, okwdg, cancelwdg;
77 args = uiVaSetArgs(&nargs,
78 XmNtopAttachment, XmATTACH_FORM,
80 XmNleftAttachment, XmATTACH_FORM,
82 XmNrightAttachment, XmATTACH_FORM,
85 XmNbottomAttachment, XmATTACH_FORM, NULL);
86 fsboxwdg = XmCreateFileSelectionBox(formwdg, "FSBox",
88 XtUnmanageChild(XmFileSelectionBoxGetChild(fsboxwdg,
89 XmDIALOG_HELP_BUTTON));
91 textwdg = XmFileSelectionBoxGetChild(fsboxwdg, XmDIALOG_TEXT);
92 XmTextSetString(textwdg, "");
94 okwdg = XmFileSelectionBoxGetChild(fsboxwdg, XmDIALOG_OK_BUTTON);
95 XtAddCallback(okwdg, XmNactivateCallback, uifileselectionokcb,
98 cancelwdg = XmFileSelectionBoxGetChild(fsboxwdg, XmDIALOG_CANCEL_BUTTON);
99 XtAddCallback(cancelwdg, XmNactivateCallback, uifileselectioncancelcb,
101 XtManageChild(fsboxwdg);
107 static void uifileselectionokcb(wdg, callback, calldata)
110 XmPushButtonCallbackStruct *calldata;
115 textwdg = XmFileSelectionBoxGetChild(uiTopLevel.FSGfx.FSBoxWdg,
117 selection = XmTextGetString(textwdg);
118 XtUnmapWidget(XtParent(uiTopLevel.FSGfx.FormWdg));
119 (*(void (*) (char *, HText_t *, HTextObject_t *, void *)) callback)
120 (uiPageInfo.CurrentPage->Hierarchy->Address,
121 uiPageInfo.CurrentPage->HText, uiPageInfo.CurrentPage->HTextObject,
128 static void uifileselectioncancelcb(wdg, ignored, calldata)
131 XmPushButtonCallbackStruct *calldata;
133 XtUnmapWidget(XtParent(uiTopLevel.FSGfx.FormWdg));
137 static void uifileselectionclickcb(wdg, ignored, calldata)
140 XmListCallbackStruct *calldata;
145 XmStringGetLtoR(calldata->item, XmSTRING_DEFAULT_CHARSET, &selection);
146 textwdg = XmFileSelectionBoxGetChild(uiTopLevel.FSGfx.FSBoxWdg,
148 XmTextSetString(textwdg, selection);