Added some basic messageboxes.
This commit is contained in:
parent
13a4e3f4e5
commit
bcad0080b2
|
@ -27,6 +27,30 @@ static void saveFile(uiButton *b, void *data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static uiEntry *title, *description;
|
||||||
|
|
||||||
|
static void msgBox(uiButton *b, void *data)
|
||||||
|
{
|
||||||
|
char *t, *d;
|
||||||
|
|
||||||
|
t = uiEntryText(title);
|
||||||
|
d = uiEntryText(description);
|
||||||
|
uiMsgBox(t, d);
|
||||||
|
uiFreeText(d);
|
||||||
|
uiFreeText(t);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void msgBoxError(uiButton *b, void *data)
|
||||||
|
{
|
||||||
|
char *t, *d;
|
||||||
|
|
||||||
|
t = uiEntryText(title);
|
||||||
|
d = uiEntryText(description);
|
||||||
|
uiMsgBoxError(t, d);
|
||||||
|
uiFreeText(d);
|
||||||
|
uiFreeText(t);
|
||||||
|
}
|
||||||
|
|
||||||
uiBox *makePage5(void)
|
uiBox *makePage5(void)
|
||||||
{
|
{
|
||||||
uiBox *page5;
|
uiBox *page5;
|
||||||
|
@ -49,5 +73,24 @@ uiBox *makePage5(void)
|
||||||
D("Open File", openFile);
|
D("Open File", openFile);
|
||||||
D("Save File", saveFile);
|
D("Save File", saveFile);
|
||||||
|
|
||||||
|
title = uiNewEntry();
|
||||||
|
uiEntrySetText(title, "Title");
|
||||||
|
description = uiNewEntry();
|
||||||
|
uiEntrySetText(description, "Description");
|
||||||
|
|
||||||
|
hbox = newHorizontalBox();
|
||||||
|
button = uiNewButton("Message Box");
|
||||||
|
uiButtonOnClicked(button, msgBox, NULL);
|
||||||
|
uiBoxAppend(hbox, uiControl(button), 0);
|
||||||
|
uiBoxAppend(hbox, uiControl(title), 0);
|
||||||
|
uiBoxAppend(page5, uiControl(hbox), 0);
|
||||||
|
|
||||||
|
hbox = newHorizontalBox();
|
||||||
|
button = uiNewButton("Error Box");
|
||||||
|
uiButtonOnClicked(button, msgBoxError, NULL);
|
||||||
|
uiBoxAppend(hbox, uiControl(button), 0);
|
||||||
|
uiBoxAppend(hbox, uiControl(description), 0);
|
||||||
|
uiBoxAppend(page5, uiControl(hbox), 0);
|
||||||
|
|
||||||
return page5;
|
return page5;
|
||||||
}
|
}
|
||||||
|
|
|
@ -207,5 +207,7 @@ interface MenuItem {
|
||||||
|
|
||||||
func OpenFile(void) *char;
|
func OpenFile(void) *char;
|
||||||
func SaveFile(void) *char;
|
func SaveFile(void) *char;
|
||||||
|
func MsgBox(title *const char, description *const char);
|
||||||
|
func MsgBoxError(title *const char, description *const char);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -74,3 +74,37 @@ char *uiSaveFile(void)
|
||||||
endDialogHelper(dialogHelper);
|
endDialogHelper(dialogHelper);
|
||||||
return toUTF8(wfilename);
|
return toUTF8(wfilename);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO migrate to task dialogs when making Vista-only
|
||||||
|
static void msgbox(const char *title, const char *description, UINT flags)
|
||||||
|
{
|
||||||
|
WCHAR *wtitle, *wdescription;
|
||||||
|
WCHAR *wtext;
|
||||||
|
int n;
|
||||||
|
HWND dialogHelper;
|
||||||
|
|
||||||
|
wtitle = toUTF16(title);
|
||||||
|
wdescription = toUTF16(description);
|
||||||
|
n = _scwprintf(L"%s\n\n%s", wtitle, wdescription);
|
||||||
|
wtext = (WCHAR *) uiAlloc((n + 1) * sizeof (WCHAR), "WCHAR[]");
|
||||||
|
snwprintf(wtext, n + 1, L"%s\n\n%s", wtitle, wdescription);
|
||||||
|
|
||||||
|
dialogHelper = beginDialogHelper();
|
||||||
|
if (MessageBoxW(dialogHelper, wtext, NULL, flags) == 0)
|
||||||
|
logLastError("error showing message box in msgbox()");
|
||||||
|
endDialogHelper(dialogHelper);
|
||||||
|
|
||||||
|
uiFree(wtext);
|
||||||
|
uiFree(wdescription);
|
||||||
|
uiFree(wtitle);
|
||||||
|
}
|
||||||
|
|
||||||
|
void uiMsgBox(const char *title, const char *description)
|
||||||
|
{
|
||||||
|
msgbox(title, description, MB_OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
void uiMsgBoxError(const char *title, const char *description)
|
||||||
|
{
|
||||||
|
msgbox(title, description, MB_OK | MB_ICONERROR);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue