1 static char *rcsid = "$Id$";
3 #include "UiIncludes.h"
6 static void uiwarningokcb(Widget wdg, caddr_t callback,
7 XmListCallbackStruct * calldata);
8 static void uiwarningcancelcb(Widget wdg, caddr_t callback,
9 XmListCallbackStruct * calldata);
11 int UiDisplayWarningDialog(warning, callback)
13 void (*callback) (int button);
23 int root_x, root_y, win_x, win_y;
29 if (XQueryPointer(XtDisplay(uiTopLevel.TopGfx.TopWdg),
30 XtWindow(uiTopLevel.TopGfx.TopWdg), &root, &child,
31 &root_x, &root_y, &win_x, &win_y, &mask)) {
32 sprintf(tmpstr, "+%d+%d", root_x - 50, root_y - 50);
34 topwdg = XtCreateApplicationShell("Warning",
35 topLevelShellWidgetClass,
38 XmNgeometry, tmpstr, NULL);
40 args = uiVaSetArgs(&nargs,
41 XmNresizePolicy, XmRESIZE_NONE,
42 XmNautoUnmanage, FALSE, NULL);
43 formwdg = XmCreateForm(topwdg, "WarningDialog", args, nargs);
45 warningstr = XmStringCreateSimple(warning);
46 args = uiVaSetArgs(&nargs,
47 XmNlabelString, warningstr,
48 XmNtopAttachment, XmATTACH_FORM,
49 XmNtopOffset, UI_LIST_WDG_OFFSET,
50 XmNleftAttachment, XmATTACH_FORM,
51 XmNrightAttachment, XmATTACH_FORM, NULL);
52 labelwdg = XmCreateLabelGadget(formwdg, "WarningLabel",
54 XtManageChild(labelwdg);
56 args = uiVaSetArgs(&nargs,
57 XmNtopAttachment, XmATTACH_WIDGET,
58 XmNtopWidget, labelwdg,
59 XmNtopOffset, UI_LIST_WDG_OFFSET,
60 XmNleftAttachment, XmATTACH_FORM,
61 XmNrightAttachment, XmATTACH_FORM, NULL);
62 separatorwdg = XmCreateSeparatorGadget(formwdg, "WarningSeparator",
64 XtManageChild(separatorwdg);
66 args = uiVaSetArgs(&nargs,
67 XmNleftAttachment, XmATTACH_POSITION,
69 XmNrightAttachment, XmATTACH_POSITION,
71 XmNtopAttachment, XmATTACH_WIDGET,
72 XmNtopWidget, separatorwdg,
73 XmNtopOffset, UI_LIST_WDG_OFFSET,
74 XmNbottomAttachment, XmATTACH_FORM,
75 XmNbottomOffset, UI_LIST_WDG_OFFSET, NULL);
76 okwdg = XmCreatePushButtonGadget(formwdg, "Ok", args, nargs);
77 XtAddCallback(okwdg, XmNactivateCallback,
78 (XtCallbackProc) uiwarningokcb, (caddr_t) callback);
82 args = uiVaSetArgs(&nargs,
83 XmNleftAttachment, XmATTACH_POSITION,
85 XmNrightAttachment, XmATTACH_POSITION,
87 XmNtopAttachment, XmATTACH_WIDGET,
88 XmNtopWidget, separatorwdg,
89 XmNtopOffset, UI_LIST_WDG_OFFSET,
90 XmNbottomAttachment, XmATTACH_FORM,
91 XmNbottomOffset, UI_LIST_WDG_OFFSET, NULL);
92 cancelwdg = XmCreatePushButtonGadget(formwdg, "Cancel",
94 XtAddCallback(cancelwdg, XmNactivateCallback,
95 (XtCallbackProc) uiwarningcancelcb,
97 XtManageChild(cancelwdg);
99 XtManageChild(formwdg);
100 XtRealizeWidget(XtParent(formwdg));
107 static void uiwarningokcb(wdg, callback, calldata)
110 XmListCallbackStruct *calldata;
115 (*(void (*) (int button)) callback) (UI_OK);
117 XtUnmapWidget(XtParent(XtParent(wdg)));
121 static void uiwarningcancelcb(wdg, ignored, calldata)
124 XmListCallbackStruct *calldata;
126 XtUnmapWidget(XtParent(XtParent(wdg)));