1 static char *rcsid = "$Id$";
3 #include "UiIncludes.h"
5 static Widget uicreatecpform();
7 uicreatecpbutton(Widget parentwdg, char *name, char *actionname,
8 int leftpos, int rightpos);
9 static Widget uicreatecpclosebutton(Widget parentwdg);
10 static Widget uicreatecplabel(Widget parentwdg, Widget rightwdg);
11 static Widget uicreatecplist(Widget parentwdg, Widget bottomwdg,
13 static void uicpclosecb(char *address, HText_t * htext,
14 HTextObject_t * htextobject, void *parameter);
15 static void uicpclickcb(Widget wdg, caddr_t ignored,
16 XmListCallbackStruct * calldata);
19 uiTopLevel_t uiTopLevel;
22 int UiDisplayControlPanel()
26 uiTopLevelGfx_t *topgfx = &uiTopLevel.TopGfx;
27 uiControlPanelGfx_t *controlpanelgfx = &uiTopLevel.ControlPanelGfx;
29 if (controlpanelgfx->FormWdg) {
30 XtMapWidget(XtParent(controlpanelgfx->FormWdg));
32 uiWidgetPlacement(XtParent(controlpanelgfx->FormWdg),
33 uiTopLevel.GlobalSettings.ControlPanelPlacement);
37 args = uiVaSetArgs(&nargs,
40 XmNresizePolicy, XmRESIZE_NONE,
41 XmNautoUnmanage, FALSE, NULL);
42 controlpanelgfx->FormWdg = uicreatecpform();
43 controlpanelgfx->SearchWdg = uicreatecpbutton(controlpanelgfx->FormWdg,
44 "Search", "Search", 0, 25);
45 controlpanelgfx->HomeWdg = uicreatecpbutton(controlpanelgfx->FormWdg,
46 "Home", "Home", 25, 50);
47 controlpanelgfx->RecallWdg = uicreatecpbutton(controlpanelgfx->FormWdg,
48 "Recall", "Recall", 50, 75);
49 controlpanelgfx->CloseWdg = uicreatecpbutton(controlpanelgfx->FormWdg,
51 "Close hierarchy", 75, 100);
52 controlpanelgfx->DialogCloseWdg =
53 uicreatecpclosebutton(controlpanelgfx->FormWdg);
54 controlpanelgfx->LabelWdg =
55 uicreatecplabel(controlpanelgfx->FormWdg,
56 controlpanelgfx->DialogCloseWdg);
57 controlpanelgfx->ListWdg = uicreatecplist(controlpanelgfx->FormWdg,
58 controlpanelgfx->SearchWdg,
59 controlpanelgfx->DialogCloseWdg);
60 XtManageChild(controlpanelgfx->FormWdg);
61 XtRealizeWidget(XtParent(controlpanelgfx->FormWdg));
63 uiWidgetPlacement(XtParent(controlpanelgfx->FormWdg),
64 uiTopLevel.GlobalSettings.ControlPanelPlacement);
70 void uiControlPanelUpdateDialog()
72 if (uiTopLevel.ControlPanelGfx.FormWdg) {
73 if (uiPageInfo.CurrentPage) {
75 XtUnmapWidget(XtParent(uiTopLevel.ControlPanelGfx.FormWdg));
88 topwdg = XtCreateApplicationShell("ControlPanel",
89 topLevelShellWidgetClass,
92 XmNtitle, UI_CONTROL_TITLE, NULL);
94 args = uiVaSetArgs(&nargs,
95 XmNresizePolicy, XmRESIZE_NONE,
96 XmNautoUnmanage, FALSE, NULL);
97 formwdg = XmCreateForm(topwdg, "ControlPanel", args, nargs);
104 uicreatecpbutton(parentwdg, name, actionname, leftpos, rightpos)
112 uiActionData_t *actiondata = uiMalloc(sizeof(*actiondata));
114 tmpwdg = XmCreatePushButtonGadget(parentwdg, name,
116 XtVaSetValues(tmpwdg,
118 XmNtopAttachment, XmATTACH_FORM,
119 XmNleftAttachment, XmATTACH_POSITION,
120 XmNleftPosition, leftpos,
121 XmNrightAttachment, XmATTACH_POSITION,
122 XmNrightPosition, rightpos, NULL);
123 actiondata->ActionName = actionname;
124 actiondata->Page = uiPageInfo.CurrentPage;
125 XtAddCallback(tmpwdg, XmNactivateCallback,
126 (XtCallbackProc) uiDialogActivateCB, (caddr_t) actiondata);
127 XtManageChild(tmpwdg);
134 uicreatecpclosebutton(parentwdg)
138 static uiActionData_t actiondata;
140 tmpwdg = XmCreatePushButtonGadget(parentwdg, "Close", (ArgList) NULL, 0);
141 XtVaSetValues(tmpwdg,
143 XmNbottomAttachment, XmATTACH_FORM,
144 XmNbottomOffset, UI_CP_WDG_OFFSET,
145 XmNrightAttachment, XmATTACH_FORM,
146 XmNrightOffset, UI_CP_WDG_OFFSET, NULL);
147 actiondata.ActionName = "CpClose";
148 actiondata.Page = uiPageInfo.CurrentPage;
149 XtAddCallback(tmpwdg, XmNactivateCallback,
150 (XtCallbackProc) uiDialogActivateCB, (caddr_t) & actiondata);
151 UiAttachCallback("CpClose", uicpclosecb, "CpClose");
153 XtManageChild(tmpwdg);
160 uicreatecplabel(parentwdg, rightwdg)
166 tmpwdg = XmCreateLabelGadget(parentwdg, "ControlPanelLabel",
168 XtVaSetValues(tmpwdg,
169 XmNbottomAttachment, XmATTACH_OPPOSITE_WIDGET,
170 XmNbottomWidget, rightwdg,
171 XmNtopAttachment, XmATTACH_OPPOSITE_WIDGET,
172 XmNtopWidget, rightwdg,
173 XmNrightAttachment, XmATTACH_WIDGET,
174 XmNrightWidget, rightwdg,
175 XmNrightOffset, UI_CP_WDG_OFFSET,
176 XmNleftAttachment, XmATTACH_FORM,
177 XmNleftOffset, UI_CP_WDG_OFFSET, NULL);
179 XtManageChild(tmpwdg);
186 uicreatecplist(formwdg, topwdg, bottomwdg)
194 uiHierarchy_t *hierarchy = uiTopLevel.Hierarchies;
197 args = uiVaSetArgs(&nargs,
198 XmNvisibleItemCount, 5,
199 XmNselectionPolicy, XmSINGLE_SELECT,
200 XmNlistSizePolicy, XmCONSTANT,
201 XmNscrollBarDisplayPolicy, XmSTATIC,
202 XmNtopAttachment, XmATTACH_WIDGET,
203 XmNtopWidget, topwdg,
204 XmNtopOffset, UI_CP_WDG_OFFSET,
205 XmNbottomAttachment, XmATTACH_WIDGET,
206 XmNbottomWidget, bottomwdg,
207 XmNbottomOffset, UI_CP_WDG_OFFSET,
208 XmNrightAttachment, XmATTACH_FORM,
209 XmNrightOffset, UI_CP_WDG_OFFSET,
210 XmNleftAttachment, XmATTACH_FORM,
211 XmNleftOffset, UI_CP_WDG_OFFSET, NULL);
212 listwdg = XmCreateScrolledList(formwdg, "CpList", args, nargs);
213 XtManageChild(listwdg);
216 dummystr = XmStringCreateSimple(hierarchy->Address);
217 XmListAddItem(listwdg, dummystr, 0);
218 XmStringFree(dummystr);
219 hierarchy = hierarchy->Next;
226 static void uicpclickcb(wdg, ignored, calldata)
229 XmListCallbackStruct *calldata;
233 XmStringGetLtoR(calldata->item, XmSTRING_DEFAULT_CHARSET, &selection);
237 static void uicpclosecb(address, htext, htextobject, parameter)
240 HTextObject_t *htextobject;
243 XtUnmapWidget(XtParent(uiTopLevel.ControlPanelGfx.FormWdg));