From a8661b3a6435e9b191230b1cec5195efb5ac3d51 Mon Sep 17 00:00:00 2001 From: Richard Wilson Date: Tue, 31 Aug 2004 18:01:22 +0000 Subject: [project @ 2004-08-31 18:01:22 by rjw] Further theme related fixes svn path=/import/netsurf/; revision=1257 --- riscos/dialog.c | 19 +++++-------------- riscos/theme.c | 8 ++++++-- riscos/wimp.c | 25 ++++++++++++++++++++----- riscos/wimp.h | 2 +- riscos/window.c | 4 ++++ 5 files changed, 36 insertions(+), 22 deletions(-) (limited to 'riscos') diff --git a/riscos/dialog.c b/riscos/dialog.c index 2d6503789..8e4c59d80 100644 --- a/riscos/dialog.c +++ b/riscos/dialog.c @@ -1077,7 +1077,7 @@ void ro_gui_dialog_load_themes(void) { wimp_ICON_VCENTRED | (wimp_COLOUR_BLACK << wimp_ICON_FG_COLOUR_SHIFT) | (wimp_COLOUR_VERY_LIGHT_GREY << wimp_ICON_BG_COLOUR_SHIFT) | - (wimp_BUTTON_RADIO << wimp_ICON_BUTTON_TYPE_SHIFT) | + (wimp_BUTTON_CLICK << wimp_ICON_BUTTON_TYPE_SHIFT) | (1 << wimp_ICON_ESG_SHIFT); new_icon.icon.data.indirected_text_and_sprite.validation = theme_radio_validation; @@ -1103,19 +1103,12 @@ void ro_gui_dialog_load_themes(void) { /* Nest the toolbar window */ state.w = link->toolbar->toolbar_handle; + state.yscroll = 0; state.visible.y1 = nested_y + base_extent; state.visible.y0 = state.visible.y1 - link->toolbar->height + 2; xwimp_open_window_nested((wimp_open *)&state, dialog_config_th_pane, - wimp_CHILD_LINKS_PARENT_WORK_AREA - << wimp_CHILD_XORIGIN_SHIFT | - wimp_CHILD_LINKS_PARENT_WORK_AREA - << wimp_CHILD_YORIGIN_SHIFT | - wimp_CHILD_LINKS_PARENT_WORK_AREA - << wimp_CHILD_LS_EDGE_SHIFT | wimp_CHILD_LINKS_PARENT_WORK_AREA << wimp_CHILD_BS_EDGE_SHIFT | - wimp_CHILD_LINKS_PARENT_WORK_AREA - << wimp_CHILD_RS_EDGE_SHIFT | wimp_CHILD_LINKS_PARENT_WORK_AREA << wimp_CHILD_TS_EDGE_SHIFT); @@ -1129,13 +1122,11 @@ void ro_gui_dialog_load_themes(void) { */ link = toolbars; while (link) { - if (link->descriptor == theme_choice) { - ro_gui_set_icon_selected_state(dialog_config_th_pane, - link->icon_number, true); - break; - } + ro_gui_set_icon_selected_state(dialog_config_th_pane, + link->icon_number, (link->descriptor == theme_choice)); link = link->next; } + xwimp_force_redraw(dialog_config_th_pane, 0, -16384, 16384, 16384); } diff --git a/riscos/theme.c b/riscos/theme.c index 717bdcef0..68f5a60d4 100644 --- a/riscos/theme.c +++ b/riscos/theme.c @@ -66,8 +66,8 @@ static wimp_window theme_toolbar_window = { 12, 1, {""}, - 0, - { } + 0/*, + { } */ }; @@ -1073,6 +1073,10 @@ bool ro_gui_theme_process_toolbar(struct toolbar *toolbar, int width) { */ toolbar->toolbar_current = width; if ((toolbar->reformat_buttons) && (parent) && (old_height != toolbar->height)) { + extent.x1 = 16384; + extent.y0 = 0; + extent.y1 = toolbar->height; + xwimp_set_extent(toolbar->toolbar_handle, &extent); ro_gui_theme_attach_toolbar(toolbar, parent); } toolbar->reformat_buttons = false; diff --git a/riscos/wimp.c b/riscos/wimp.c index 5c9202ca8..395c1ae31 100644 --- a/riscos/wimp.c +++ b/riscos/wimp.c @@ -216,9 +216,17 @@ void ro_gui_set_icon_integer(wimp_w w, wimp_i i, int value) { * \param i icon handle * \param state selected state */ -#define ro_gui_set_icon_selected_state(w, i, state) \ - xwimp_set_icon_state(w, i, (state ? wimp_ICON_SELECTED : 0), wimp_ICON_SELECTED) - +void ro_gui_set_icon_selected_state(wimp_w w, wimp_i i, bool state) { + os_error *error; + if (ro_gui_get_icon_selected_state(w, i) == state) return; + error = xwimp_set_icon_state(w, i, + (state ? wimp_ICON_SELECTED : 0), wimp_ICON_SELECTED); + if (error) { + LOG(("xwimp_get_icon_state: 0x%x: %s", + error->errnum, error->errmess)); + warn_user("WimpError", error->errmess); + } +} /** * Gets the selected state of an icon. @@ -227,11 +235,18 @@ void ro_gui_set_icon_integer(wimp_w w, wimp_i i, int value) { * \param i icon handle */ bool ro_gui_get_icon_selected_state(wimp_w w, wimp_i i) { + os_error *error; wimp_icon_state ic; ic.w = w; ic.i = i; - xwimp_get_icon_state(&ic); - return (ic.icon.flags & wimp_ICON_SELECTED) != 0; + error = xwimp_get_icon_state(&ic); + if (error) { + LOG(("xwimp_get_icon_state: 0x%x: %s", + error->errnum, error->errmess)); + warn_user("WimpError", error->errmess); + return false; + } + return ((ic.icon.flags & wimp_ICON_SELECTED) != 0); } diff --git a/riscos/wimp.h b/riscos/wimp.h index 53848064d..6988983a6 100644 --- a/riscos/wimp.h +++ b/riscos/wimp.h @@ -37,7 +37,7 @@ void ro_convert_pixels_to_os_units(os_coord *pixels, os_mode mode); char *ro_gui_get_icon_string(wimp_w w, wimp_i i); void ro_gui_set_icon_string(wimp_w w, wimp_i i, const char *text); void ro_gui_set_icon_integer(wimp_w w, wimp_i i, int value); -#define ro_gui_set_icon_selected_state(w, i, state) xwimp_set_icon_state(w, i, (state ? wimp_ICON_SELECTED : 0), wimp_ICON_SELECTED) +void ro_gui_set_icon_selected_state(wimp_w w, wimp_i i, bool state); bool ro_gui_get_icon_selected_state(wimp_w w, wimp_i i); #define ro_gui_set_icon_shaded_state(w, i, state) xwimp_set_icon_state(w, i, (state ? wimp_ICON_SHADED : 0), wimp_ICON_SHADED) bool ro_gui_get_icon_shaded_state(wimp_w w, wimp_i i); diff --git a/riscos/window.c b/riscos/window.c index 627dce54d..e342e00f8 100644 --- a/riscos/window.c +++ b/riscos/window.c @@ -1125,6 +1125,10 @@ void ro_gui_toolbar_click(struct gui_window *g, wimp_pointer *pointer) g->bw->current_content, false, 0, 0, g->window, false); break; + case ICON_TOOLBAR_PRINT: + current_gui = g; + ro_gui_print_open(g, 0, 0, false, false); + break; } } -- cgit v1.2.3