1 static char *rcsid = "$Id$";
3 #include "UiIncludes.h"
5 static void uibinddefaultsvariables(void);
6 static void uiupdatedefaultsvariables(void);
7 static Widget uicreatedefaultsformdialog();
8 static Widget uicreatedefaultslabel(Widget parent, Widget bottomwdg);
10 uicreatedefaultsitem(char *name, Widget parent,
12 static Widget uicreatedefaultsclose(Widget parent);
13 static void uidefaultsclosecb(char *address, HText_t * htext,
14 HTextObject_t * htextobject, void *parameter);
17 int UiDisplayDefaultsDialog()
19 uiDefaultsGfx_t *defaultsgfx = &uiTopLevel.DefaultsGfx;
21 uibinddefaultsvariables();
23 if (defaultsgfx->FormWdg) {
24 XtMapWidget(XtParent(defaultsgfx->FormWdg));
26 uiupdatedefaultsvariables();
30 defaultsgfx->FormWdg = uicreatedefaultsformdialog();
31 defaultsgfx->CloseWdg = uicreatedefaultsclose(defaultsgfx->FormWdg);
32 defaultsgfx->PageSettings = uicreatedefaultsitem("Page Settings window",
34 defaultsgfx->CloseWdg);
35 defaultsgfx->RecallWindow =
36 uicreatedefaultsitem("Recall window",
38 defaultsgfx->PageSettings);
39 defaultsgfx->ListWindow = uicreatedefaultsitem("List window",
41 defaultsgfx->RecallWindow);
42 defaultsgfx->ControlPanel = uicreatedefaultsitem("Control panel",
44 defaultsgfx->ListWindow);
45 defaultsgfx->SearchWindow =
46 uicreatedefaultsitem("Search window", defaultsgfx->FormWdg,
47 defaultsgfx->ControlPanel);
48 defaultsgfx->LabelWdg = uicreatedefaultslabel(defaultsgfx->FormWdg,
49 defaultsgfx->SearchWindow);
51 XtManageChild(defaultsgfx->FormWdg);
52 XtRealizeWidget(XtParent(defaultsgfx->FormWdg));
54 uiupdatedefaultsvariables();
60 void uiDefaultsUpdateDialog()
62 if (uiTopLevel.DefaultsGfx.FormWdg) {
63 if (uiPageInfo.CurrentPage) {
64 uibinddefaultsvariables();
65 uiupdatedefaultsvariables();
67 XtUnmapWidget(XtParent(uiTopLevel.DefaultsGfx.FormWdg));
72 static void uibinddefaultsvariables()
74 UiBindVariable("Page Settings window",
75 (void *) &uiTopLevel.GlobalSettings.PageSettingsPlacement,
77 UiBindVariable("Recall window",
78 (void *) &uiTopLevel.GlobalSettings.RecallPlacement,
80 UiBindVariable("List window",
81 (void *) &uiTopLevel.GlobalSettings.ListPlacement,
83 UiBindVariable("Control panel",
84 (void *) &uiTopLevel.GlobalSettings.ControlPanelPlacement,
86 UiBindVariable("Search window",
87 (void *) &uiTopLevel.GlobalSettings.SearchPlacement,
92 static void uiupdatedefaultsvariables()
94 UiUpdateVariable("Page Settings window");
95 UiUpdateVariable("Recall window");
96 UiUpdateVariable("List window");
97 UiUpdateVariable("Control panel");
98 UiUpdateVariable("Search window");
103 uicreatedefaultsformdialog()
110 topwdg = XtCreateApplicationShell("Defaults",
111 topLevelShellWidgetClass,
113 XtVaSetValues(topwdg,
114 XmNtitle, UI_DEFAULTS_TITLE, NULL);
116 args = uiVaSetArgs(&nargs,
117 XmNresizePolicy, XmRESIZE_NONE,
118 XmNautoUnmanage, FALSE, NULL);
119 formwdg = XmCreateForm(topwdg, "Defaults", args, nargs);
125 uicreatedefaultslabel(parent, bottomwdg)
134 labelstr = XmStringCreateSimple("Follow pointer");
136 args = uiVaSetArgs(&nargs,
137 XmNlabelString, labelstr,
138 XmNtopAttachment, XmATTACH_FORM,
139 XmNtopOffset, UI_DEFAULTS_WDG_OFFSET,
140 XmNbottomAttachment, XmATTACH_WIDGET,
141 XmNbottomWidget, bottomwdg,
142 XmNbottomOffset, UI_DEFAULTS_WDG_OFFSET,
143 XmNleftAttachment, XmATTACH_FORM,
144 XmNrightAttachment, XmATTACH_FORM, NULL);
145 labelwdg = XmCreateLabelGadget(parent, "DEFAULTSLabel", args, nargs);
146 XtManageChild(labelwdg);
153 uicreatedefaultsitem(name, parent, bottomwdg)
162 static uiActionData_t actiondata;
164 args = uiVaSetArgs(&nargs,
165 XmNbottomAttachment, XmATTACH_WIDGET,
166 XmNbottomWidget, bottomwdg,
167 XmNbottomOffset, UI_DEFAULTS_WDG_OFFSET,
168 XmNleftAttachment, XmATTACH_FORM,
169 XmNrightAttachment, XmATTACH_FORM, NULL);
170 formwdg = XmCreateForm(parent, name, args, nargs);
171 XtManageChild(formwdg);
173 togglewdg = XmCreateToggleButtonGadget(formwdg, name,
175 XtVaSetValues(togglewdg,
176 XmNbottomAttachment, XmATTACH_FORM,
177 XmNtopAttachment, XmATTACH_FORM,
178 XmNleftAttachment, XmATTACH_FORM,
179 XmNleftOffset, UI_DEFAULTS_WDG_OFFSET,
180 XmNrightAttachment, XmATTACH_FORM,
181 XmNrightOffset, UI_DEFAULTS_WDG_OFFSET, NULL);
182 XtAddCallback(togglewdg, XmNvalueChangedCallback,
183 (XtCallbackProc) uiDialogVariableCB, (caddr_t) name);
185 (void) uiAddWidgetInfo(name, togglewdg, uiWTcheckbutton);
186 XtManageChild(togglewdg);
193 uicreatedefaultsclose(parent)
200 static uiActionData_t actiondata;
202 tmpwdg = XmCreatePushButtonGadget(parent, "Close", (ArgList) NULL, 0);
203 XtVaSetValues(tmpwdg,
205 XmNbottomAttachment, XmATTACH_FORM,
206 XmNbottomOffset, UI_DEFAULTS_WDG_OFFSET,
207 XmNrightAttachment, XmATTACH_FORM,
208 XmNrightOffset, UI_DEFAULTS_WDG_OFFSET, NULL);
209 actiondata.ActionName = "DefaultsClose";
210 actiondata.Page = uiPageInfo.CurrentPage;
211 XtAddCallback(tmpwdg, XmNactivateCallback,
212 (XtCallbackProc) uiDialogActivateCB, (caddr_t) & actiondata);
213 UiAttachCallback("DefaultsClose", uidefaultsclosecb,
214 "DefaultsGfx.FormWdg");
216 XtManageChild(tmpwdg);
218 args = uiVaSetArgs(&nargs,
219 XmNbottomAttachment, XmATTACH_WIDGET,
220 XmNbottomWidget, tmpwdg,
221 XmNbottomOffset, UI_DEFAULTS_WDG_OFFSET,
222 XmNleftAttachment, XmATTACH_FORM,
223 XmNrightAttachment, XmATTACH_FORM, NULL);
224 separatorwdg = XmCreateSeparatorGadget(parent, "DefaultsSeparator",
226 XtManageChild(separatorwdg);
232 static void setplacementvalue(uiconfigsetfp, table, item, placementvalue)
233 void *(*uiconfigsetfp) (void *table, char *item, void *value);
239 uiconfigsetfp(table, item, "Mouse");
241 uiconfigsetfp(table, item, "Fixed");
245 static void uidefaultsclosecb(address, htext, htextobject, parameter)
248 HTextObject_t *htextobject;
251 uiGlobalSettings_t *gs = &uiTopLevel.GlobalSettings;
254 table = uiConfigPF((void *) NULL, C_GLOBALSETTINGS);
255 setplacementvalue(uiConfigSetPF, table, C_SEARCH, gs->SearchPlacement);
256 setplacementvalue(uiConfigSetPF, table, C_CONTROLPANEL, gs->ControlPanelPlacement);
257 setplacementvalue(uiConfigSetPF, table, C_LIST, gs->ListPlacement);
258 setplacementvalue(uiConfigSetPF, table, C_RECALL, gs->RecallPlacement);
259 setplacementvalue(uiConfigSetPF, table, C_PAGESETTINGS, gs->PageSettingsPlacement);
261 XtUnmapWidget(XtParent(uiTopLevel.DefaultsGfx.FormWdg));