add #uiOpenFolder
This commit is contained in:
parent
d93bb2c48f
commit
f407c6acc8
|
@ -175,6 +175,20 @@ static void onOpenFileClicked(uiButton *b, void *data)
|
|||
uiFreeText(filename);
|
||||
}
|
||||
|
||||
static void onOpenFolderClicked(uiButton *b, void *data)
|
||||
{
|
||||
uiEntry *entry = uiEntry(data);
|
||||
char *filename;
|
||||
|
||||
filename = uiOpenFolder(mainwin);
|
||||
if (filename == NULL) {
|
||||
uiEntrySetText(entry, "(cancelled)");
|
||||
return;
|
||||
}
|
||||
uiEntrySetText(entry, filename);
|
||||
uiFreeText(filename);
|
||||
}
|
||||
|
||||
static void onSaveFileClicked(uiButton *b, void *data)
|
||||
{
|
||||
uiEntry *entry = uiEntry(data);
|
||||
|
@ -259,10 +273,10 @@ static uiControl *makeDataChoosersPage(void)
|
|||
1, 0, 1, 1,
|
||||
1, uiAlignFill, 0, uiAlignFill);
|
||||
|
||||
button = uiNewButton("Save File");
|
||||
button = uiNewButton("Open Folder");
|
||||
entry = uiNewEntry();
|
||||
uiEntrySetReadOnly(entry, 1);
|
||||
uiButtonOnClicked(button, onSaveFileClicked, entry);
|
||||
uiButtonOnClicked(button, onOpenFolderClicked, entry);
|
||||
uiGridAppend(grid, uiControl(button),
|
||||
0, 1, 1, 1,
|
||||
0, uiAlignFill, 0, uiAlignFill);
|
||||
|
@ -270,10 +284,21 @@ static uiControl *makeDataChoosersPage(void)
|
|||
1, 1, 1, 1,
|
||||
1, uiAlignFill, 0, uiAlignFill);
|
||||
|
||||
button = uiNewButton("Save File");
|
||||
entry = uiNewEntry();
|
||||
uiEntrySetReadOnly(entry, 1);
|
||||
uiButtonOnClicked(button, onSaveFileClicked, entry);
|
||||
uiGridAppend(grid, uiControl(button),
|
||||
0, 2, 1, 1,
|
||||
0, uiAlignFill, 0, uiAlignFill);
|
||||
uiGridAppend(grid, uiControl(entry),
|
||||
1, 2, 1, 1,
|
||||
1, uiAlignFill, 0, uiAlignFill);
|
||||
|
||||
msggrid = uiNewGrid();
|
||||
uiGridSetPadded(msggrid, 1);
|
||||
uiGridAppend(grid, uiControl(msggrid),
|
||||
0, 2, 2, 1,
|
||||
0, 3, 2, 1,
|
||||
0, uiAlignCenter, 0, uiAlignStart);
|
||||
|
||||
button = uiNewButton("Message Box");
|
||||
|
@ -341,6 +366,19 @@ static void openClicked(uiMenuItem *item, uiWindow *w, void *data)
|
|||
uiFreeText(filename);
|
||||
}
|
||||
|
||||
static void openFolderClicked(uiMenuItem *item, uiWindow *w, void *data)
|
||||
{
|
||||
char *filename;
|
||||
|
||||
filename = uiOpenFolder(mainwin);
|
||||
if (filename == NULL) {
|
||||
uiMsgBoxError(mainwin, "No folder selected", "Don't be alarmed!");
|
||||
return;
|
||||
}
|
||||
uiMsgBox(mainwin, "Folder selected", filename);
|
||||
uiFreeText(filename);
|
||||
}
|
||||
|
||||
static void saveClicked(uiMenuItem *item, uiWindow *w, void *data)
|
||||
{
|
||||
char *filename;
|
||||
|
@ -403,6 +441,8 @@ int main(void)
|
|||
menu = uiNewMenu("File");
|
||||
item = uiMenuAppendItem(menu, "Open");
|
||||
uiMenuItemOnClicked(item, openClicked, NULL);
|
||||
item = uiMenuAppendItem(menu, "Open Folder");
|
||||
uiMenuItemOnClicked(item, openFolderClicked, NULL);
|
||||
item = uiMenuAppendItem(menu, "Save");
|
||||
uiMenuItemOnClicked(item, saveClicked, NULL);
|
||||
item = uiMenuAppendQuitItem(menu);
|
||||
|
|
14
test/page5.c
14
test/page5.c
|
@ -16,6 +16,19 @@ static void openFile(uiButton *b, void *data)
|
|||
}
|
||||
}
|
||||
|
||||
static void openFolder(uiButton *b, void *data)
|
||||
{
|
||||
char *fn;
|
||||
|
||||
fn = uiOpenFolder(parent);
|
||||
if (fn == NULL)
|
||||
uiLabelSetText(uiLabel(data), "(cancelled)");
|
||||
else {
|
||||
uiLabelSetText(uiLabel(data), fn);
|
||||
uiFreeText(fn);
|
||||
}
|
||||
}
|
||||
|
||||
static void saveFile(uiButton *b, void *data)
|
||||
{
|
||||
char *fn;
|
||||
|
@ -74,6 +87,7 @@ uiBox *makePage5(uiWindow *pw)
|
|||
uiBoxAppend(page5, uiControl(hbox), 0);
|
||||
|
||||
D("Open File", openFile);
|
||||
D("Open Folder", openFolder);
|
||||
D("Save File", saveFile);
|
||||
|
||||
title = uiNewEntry();
|
||||
|
|
1
ui.h
1
ui.h
|
@ -270,6 +270,7 @@ _UI_EXTERN void uiMenuAppendSeparator(uiMenu *m);
|
|||
_UI_EXTERN uiMenu *uiNewMenu(const char *name);
|
||||
|
||||
_UI_EXTERN char *uiOpenFile(uiWindow *parent);
|
||||
_UI_EXTERN char *uiOpenFolder(uiWindow *parent);
|
||||
_UI_EXTERN char *uiSaveFile(uiWindow *parent);
|
||||
_UI_EXTERN void uiMsgBox(uiWindow *parent, const char *title, const char *description);
|
||||
_UI_EXTERN void uiMsgBoxError(uiWindow *parent, const char *title, const char *description);
|
||||
|
|
Loading…
Reference in New Issue