diff options
Diffstat (limited to 'riscos/dialog.c')
-rw-r--r-- | riscos/dialog.c | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/riscos/dialog.c b/riscos/dialog.c index 3bd0fffa4..d98cf1127 100644 --- a/riscos/dialog.c +++ b/riscos/dialog.c @@ -38,7 +38,7 @@ wimp_w dialog_info, dialog_saveas, dialog_config, dialog_config_br, #endif dialog_zoom, dialog_pageinfo, dialog_objinfo, dialog_tooltip, dialog_warning, dialog_config_th_pane, dialog_debug, - dialog_folder, dialog_entry; + dialog_folder, dialog_entry, dialog_search; static int ro_gui_choices_font_size; static int ro_gui_choices_font_min_size; @@ -102,6 +102,7 @@ void ro_gui_dialog_init(void) dialog_debug = ro_gui_dialog_create("debug"); dialog_folder = ro_gui_dialog_create("new_folder"); dialog_entry = ro_gui_dialog_create("new_entry"); + dialog_search = ro_gui_dialog_create("search"); } @@ -345,6 +346,8 @@ void ro_gui_dialog_close_persistant(wimp_w parent) { bool ro_gui_dialog_keypress(wimp_key *key) { wimp_pointer pointer; + int i; + if (key->c == wimp_KEY_ESCAPE) { ro_gui_dialog_close(key->w); return true; @@ -358,6 +361,20 @@ bool ro_gui_dialog_keypress(wimp_key *key) ro_gui_hotlist_dialog_click(&pointer); return true; } + else if (key->w == dialog_search) { + pointer.w = key->w; + pointer.i = ICON_SEARCH_FIND; + pointer.buttons = wimp_CLICK_SELECT; + for (i = 0; i < MAX_PERSISTANT; i++) { + if (persistant_dialog[i].dialog == + dialog_search) { + ro_gui_search_click(&pointer, + persistant_dialog[i].parent); + break; + } + } + return true; + } } #ifdef WITH_AUTH if (key->w == dialog_401li) @@ -373,6 +390,8 @@ bool ro_gui_dialog_keypress(wimp_key *key) void ro_gui_dialog_click(wimp_pointer *pointer) { + int i; + if (pointer->buttons == wimp_CLICK_MENU) return; @@ -396,6 +415,15 @@ void ro_gui_dialog_click(wimp_pointer *pointer) ro_gui_dialog_click_warning(pointer); else if ((pointer->w == dialog_folder) || (pointer->w == dialog_entry)) ro_gui_hotlist_dialog_click(pointer); + else if (pointer->w == dialog_search) { + for (i = 0; i < MAX_PERSISTANT; i++) { + if (persistant_dialog[i].dialog == dialog_search) { + ro_gui_search_click(pointer, + persistant_dialog[i].parent); + break; + } + } + } } |