From 7897a98a4c7475e116f406ab173139c959d6dfb6 Mon Sep 17 00:00:00 2001 From: James Bursa Date: Wed, 25 Feb 2004 15:12:58 +0000 Subject: [project @ 2004-02-25 15:12:57 by bursa] Implement scaling; rewrite desktop/browser; add riscos/thumbnail; rewrite history. svn path=/import/netsurf/; revision=566 --- riscos/gui.c | 100 ++++++++++++++++------------------------------------------- 1 file changed, 27 insertions(+), 73 deletions(-) (limited to 'riscos/gui.c') diff --git a/riscos/gui.c b/riscos/gui.c index 864e35464..99a3bb45e 100644 --- a/riscos/gui.c +++ b/riscos/gui.c @@ -245,7 +245,8 @@ void gui_poll(bool active) for (g = window_list; g; g = g->next) { if (g->type == GUI_BROWSER_WINDOW && g->data.browser.reformat_pending) { content_reformat(g->data.browser.bw->current_content, - browser_x_units(g->data.browser.old_width), 1000); + g->data.browser.old_width / 2 / g->scale, + 1000); g->data.browser.reformat_pending = false; } } @@ -475,14 +476,9 @@ void ro_gui_mouse_click(wimp_pointer *pointer) ro_gui_icon_bar_click(pointer); else if (pointer->w == history_window) ro_gui_history_click(pointer); + else if (g && g->type == GUI_BROWSER_WINDOW && g->window == pointer->w) + ro_gui_window_click(g, pointer); else if (g && g->type == GUI_BROWSER_WINDOW && - g->window == pointer->w) { - if (g->redraw_safety == SAFE) - ro_gui_window_click(g, pointer); - else - ro_gui_poll_queue(wimp_MOUSE_CLICK, - (wimp_block *) pointer); - } else if (g && g->type == GUI_BROWSER_WINDOW && g->data.browser.toolbar == pointer->w) ro_gui_toolbar_click(g, pointer); else if (g && g->type == GUI_DOWNLOAD_WINDOW) @@ -502,21 +498,7 @@ void ro_gui_icon_bar_click(wimp_pointer *pointer) ro_gui_create_menu(iconbar_menu, pointer->pos.x - 64, 96 + iconbar_menu_height, NULL); } else if (pointer->buttons == wimp_CLICK_SELECT) { - struct browser_window *bw; - bw = create_browser_window(browser_TITLE | browser_TOOLBAR - | browser_SCROLL_X_ALWAYS | - browser_SCROLL_Y_ALWAYS, 640, - 480 -#ifdef WITH_FRAMES - , NULL -#endif - ); - gui_window_show(bw->window); - browser_window_open_location(bw, HOME_URL); - wimp_set_caret_position(bw->window->data.browser.toolbar, - ICON_TOOLBAR_URL, - 0, 0, -1, - (int) strlen(bw->window->url)); + browser_window_create(HOME_URL); } } @@ -690,8 +672,8 @@ void ro_msg_datasave(wimp_message* block) state.w = data->w; wimp_get_window_state(&state); - x = browser_x_units(window_x_units(data->pos.x, &state)); - y = browser_y_units(window_y_units(data->pos.y, &state)); + x = window_x_units(data->pos.x, &state) / 2; + y = -window_y_units(data->pos.y, &state) / 2; found = 0; click_boxes = NULL; @@ -745,8 +727,8 @@ void ro_msg_dataload(wimp_message* block) state.w = data->w; wimp_get_window_state(&state); - x = browser_x_units(window_x_units(data->pos.x, &state)); - y = browser_y_units(window_y_units(data->pos.y, &state)); + x = window_x_units(data->pos.x, &state) / 2; + y = -window_y_units(data->pos.y, &state) / 2; found = 0; click_boxes = NULL; @@ -832,7 +814,6 @@ int ro_save_data(void *data, unsigned long length, char *file_name, bits file_ty void ro_msg_dataopen(wimp_message *message) { char *url; - struct browser_window *bw; if (message->data.data_xfer.file_type != 0xfaf) /* ignore all but HTML */ @@ -844,15 +825,8 @@ void ro_msg_dataopen(wimp_message *message) wimp_send_message(wimp_USER_MESSAGE, message, message->sender); /* create a new window with the file */ - bw = create_browser_window(browser_TITLE | browser_TOOLBAR | - browser_SCROLL_X_ALWAYS | browser_SCROLL_Y_ALWAYS, 640, 480 -#ifdef WITH_FRAMES - , NULL -#endif - ); - gui_window_show(bw->window); url = ro_path_to_url(message->data.data_xfer.file_name); - browser_window_open_location(bw, url); + browser_window_create(url); free(url); } @@ -888,21 +862,9 @@ void ro_gui_screen_size(int *width, int *height) } -void ro_gui_open_help_page (void) +void ro_gui_open_help_page(void) { - struct browser_window *bw; - bw = create_browser_window(browser_TITLE | browser_TOOLBAR | - browser_SCROLL_X_ALWAYS | - browser_SCROLL_Y_ALWAYS, 640, 480 -#ifdef WITH_FRAMES - , NULL -#endif - ); - gui_window_show(bw->window); - browser_window_open_location(bw, HELP_URL); - wimp_set_caret_position(bw->window->data.browser.toolbar, - ICON_TOOLBAR_URL, - 0,0,-1, (int) strlen(bw->window->url)); + browser_window_create(HELP_URL); } @@ -985,32 +947,24 @@ void ro_gui_drag_box_start(wimp_pointer *pointer) } -int ro_x_units(unsigned long browser_units) -{ - return (browser_units << 1); -} - -int ro_y_units(unsigned long browser_units) -{ - return -(browser_units << 1); -} -unsigned long browser_x_units(int ro_units) -{ - return (ro_units >> 1); -} +static os_error warn_error = { 1, "" }; -unsigned long browser_y_units(int ro_units) -{ - return -(ro_units >> 1); -} -int window_x_units(int scr_units, wimp_window_state* win) -{ - return scr_units - (win->visible.x0 - win->xscroll); -} +/** + * Display a warning for a serious problem (eg memory exhaustion). + * + * \param warning message key for warning message + */ -int window_y_units(int scr_units, wimp_window_state* win) +void warn_user(const char *warning) { - return scr_units - (win->visible.y1 - win->yscroll); + strncpy(warn_error.errmess, messages_get(warning), 252); + /** \todo get rid of cancel button, appears for unknown reason */ + xwimp_report_error_by_category(&warn_error, + wimp_ERROR_BOX_OK_ICON | + wimp_ERROR_BOX_GIVEN_CATEGORY | + wimp_ERROR_BOX_CATEGORY_PROGRAM, + "NetSurf", "!netsurf", + (osspriteop_area *) 1, 0, 0); } -- cgit v1.2.3