(Win32) Implement browser window

This commit is contained in:
twinaphex 2016-06-09 12:34:39 +02:00
parent 4481486071
commit 50a2091cc6
2 changed files with 36 additions and 15 deletions

View File

@ -506,24 +506,28 @@ static bool win32_browser(
const char *title, const char *title,
const char *initial_dir) const char *initial_dir)
{ {
OPENFILENAME ofn; bool result = false;
const ui_browser_window_t *browser = ui_companion_driver_get_browser_window_ptr();
memset((void*)&ofn, 0, sizeof(OPENFILENAME)); if (browser)
{
ui_browser_window_state_t browser_state;
ofn.lStructSize = sizeof(OPENFILENAME); browser_state.filters = strdup(extensions);
ofn.hwndOwner = owner; browser_state.title = strdup(title);
ofn.lpstrFilter = extensions; browser_state.startdir = strdup(initial_dir);
ofn.lpstrFile = filename; browser_state.path = strdup(filename);
ofn.lpstrTitle = title; browser_state.window = owner;
ofn.lpstrInitialDir = TEXT(initial_dir);
ofn.lpstrDefExt = "";
ofn.nMaxFile = PATH_MAX;
ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
if (!GetOpenFileName(&ofn)) result = browser->open(&browser_state);
return false;
return true; free(browser_state.filters);
free(browser_state.title);
free(browser_state.startdir);
free(browser_state.path);
}
return result;
} }
LRESULT win32_menu_loop(HWND owner, WPARAM wparam) LRESULT win32_menu_loop(HWND owner, WPARAM wparam)

View File

@ -25,7 +25,24 @@
static bool ui_browser_window_win32_open(ui_browser_window_state_t *state) static bool ui_browser_window_win32_open(ui_browser_window_state_t *state)
{ {
return false; OPENFILENAME ofn;
memset((void*)&ofn, 0, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = (HWND)state->window;
ofn.lpstrFilter = state->filters;
ofn.lpstrFile = state->path;
ofn.lpstrTitle = state->title;
ofn.lpstrInitialDir = state->startdir;
ofn.lpstrDefExt = "";
ofn.nMaxFile = PATH_MAX;
ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_NOCHANGEDIR;
if (!GetOpenFileName(&ofn))
return false;
return true;
} }
static bool ui_browser_window_win32_save(ui_browser_window_state_t *state) static bool ui_browser_window_win32_save(ui_browser_window_state_t *state)