From bb4a0946ba958a4ffe14e1f8b0210d48ef505272 Mon Sep 17 00:00:00 2001 From: Steve Fryatt Date: Sat, 19 Nov 2011 23:33:37 +0000 Subject: Implement user interface for external hotlist app details. svn path=/trunk/netsurf/; revision=13151 --- riscos/configure/con_inter.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'riscos/configure/con_inter.c') diff --git a/riscos/configure/con_inter.c b/riscos/configure/con_inter.c index d1d3e3329..570ba5782 100644 --- a/riscos/configure/con_inter.c +++ b/riscos/configure/con_inter.c @@ -35,8 +35,10 @@ #define INTERFACE_CANCEL_BUTTON 12 #define INTERFACE_OK_BUTTON 13 #define INTERFACE_USE_EXTERNAL_HOTLIST 16 +#define INTERFACE_EXTERNAL_HOTLIST_APP 18 +static bool ro_gui_options_interface_click(wimp_pointer *pointer); static void ro_gui_options_interface_default(wimp_pointer *pointer); static bool ro_gui_options_interface_ok(wimp_w w); @@ -55,8 +57,16 @@ bool ro_gui_options_interface_initialise(wimp_w w) option_thumbnail_iconise); ro_gui_set_icon_selected_state(w, INTERFACE_USE_EXTERNAL_HOTLIST, option_external_hotlists); + ro_gui_set_icon_string(w, INTERFACE_EXTERNAL_HOTLIST_APP, + (option_external_hotlist_app) ? + option_external_hotlist_app : "", false); + + ro_gui_set_icon_shaded_state(w, INTERFACE_EXTERNAL_HOTLIST_APP, + !option_external_hotlists); /* initialise all functions for a newly created window */ + ro_gui_wimp_event_register_mouse_click(w, + ro_gui_options_interface_click); ro_gui_wimp_event_register_button(w, INTERFACE_DEFAULT_BUTTON, ro_gui_options_interface_default); ro_gui_wimp_event_register_cancel(w, INTERFACE_CANCEL_BUTTON); @@ -68,6 +78,25 @@ bool ro_gui_options_interface_initialise(wimp_w w) } + +bool ro_gui_options_interface_click(wimp_pointer *pointer) +{ + bool shaded; + + switch (pointer->i) { + case INTERFACE_USE_EXTERNAL_HOTLIST: + shaded = !ro_gui_get_icon_selected_state(pointer->w, + INTERFACE_USE_EXTERNAL_HOTLIST); + ro_gui_set_icon_shaded_state(pointer->w, + INTERFACE_EXTERNAL_HOTLIST_APP, shaded); + return false; + break; + } + return false; +} + + + void ro_gui_options_interface_default(wimp_pointer *pointer) { ro_gui_set_icon_selected_state(pointer->w, @@ -82,6 +111,8 @@ void ro_gui_options_interface_default(wimp_pointer *pointer) INTERFACE_THUMBNAIL_ICONISE_OPTION, true); ro_gui_set_icon_selected_state(pointer->w, INTERFACE_USE_EXTERNAL_HOTLIST, false); + ro_gui_set_icon_string(pointer->w, INTERFACE_EXTERNAL_HOTLIST_APP, + "", false); } bool ro_gui_options_interface_ok(wimp_w w) @@ -98,6 +129,11 @@ bool ro_gui_options_interface_ok(wimp_w w) INTERFACE_THUMBNAIL_ICONISE_OPTION); option_external_hotlists = ro_gui_get_icon_selected_state(w, INTERFACE_USE_EXTERNAL_HOTLIST); + if (option_external_hotlist_app) + free(option_external_hotlist_app); + option_external_hotlist_app = + strdup(ro_gui_get_icon_string(w, + INTERFACE_EXTERNAL_HOTLIST_APP)); ro_gui_save_options(); return true; -- cgit v1.2.3