summaryrefslogtreecommitdiff
path: root/riscos
diff options
context:
space:
mode:
authorRichard Wilson <rjw@netsurf-browser.org>2004-08-31 18:01:22 +0000
committerRichard Wilson <rjw@netsurf-browser.org>2004-08-31 18:01:22 +0000
commita8661b3a6435e9b191230b1cec5195efb5ac3d51 (patch)
treedf50c78fabc5a90c88727ce440f95452ec806516 /riscos
parent98d17f19a6d901abd28f2c89975bcd5faad0f3ea (diff)
downloadnetsurf-a8661b3a6435e9b191230b1cec5195efb5ac3d51.tar.gz
netsurf-a8661b3a6435e9b191230b1cec5195efb5ac3d51.tar.bz2
[project @ 2004-08-31 18:01:22 by rjw]
Further theme related fixes svn path=/import/netsurf/; revision=1257
Diffstat (limited to 'riscos')
-rw-r--r--riscos/dialog.c19
-rw-r--r--riscos/theme.c8
-rw-r--r--riscos/wimp.c25
-rw-r--r--riscos/wimp.h2
-rw-r--r--riscos/window.c4
5 files changed, 36 insertions, 22 deletions
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;
}
}