libui: primp file picker dialogs

* support for filters, for Windows (tested) and GTK (theoretical)
* add extra parameter for setting the start directory, but not supported yet
This commit is contained in:
StapleButter
2017-09-11 15:56:52 +02:00
parent 08ed0f3229
commit 62a26977c7
5 changed files with 130 additions and 17 deletions

View File

@ -21,8 +21,7 @@
#include <stdio.h>
#include <SDL2/SDL.h>
#include <GL/gl.h>
#include <GL/glext.h>
#include "libui/ui.h"
#include "../types.h"
#include "../version.h"
@ -34,6 +33,14 @@ SDL_GLContext MainGL;
void RunMainWindow();
void OnOpenFile(uiMenuItem* item, uiWindow* window, void* blarg)
{
char* file = uiOpenFile(window, "DS ROM (*.nds)|*.nds;*.srl|Any file|*.*", NULL);
if (!file) return;
printf("file opened: %s\n", file);
}
int main(int argc, char** argv)
{
srand(time(NULL));
@ -47,8 +54,34 @@ int main(int argc, char** argv)
return 1;
}
RunMainWindow();
uiInitOptions ui_opt;
memset(&ui_opt, 0, sizeof(uiInitOptions));
const char* ui_err = uiInit(&ui_opt);
if (ui_err != NULL)
{
printf("libui shat itself :( %s\n", ui_err);
uiFreeInitError(ui_err);
return 1;
}
//RunMainWindow();
uiMenu* menu;
uiMenuItem* menuitem;
menu = uiNewMenu("File");
menuitem = uiMenuAppendItem(menu, "Open...");
uiMenuItemOnClicked(menuitem, OnOpenFile, NULL);
uiMenuAppendSeparator(menu);
uiMenuAppendItem(menu, "Quit");
uiWindow* win;
win = uiNewWindow("melonDS " MELONDS_VERSION, 256, 384, 1);
uiControlShow(uiControl(win));
uiMain();
uiUninit();
SDL_Quit();
return 0;
}