diff options
author | James Bursa <james@netsurf-browser.org> | 2004-02-25 15:12:58 +0000 |
---|---|---|
committer | James Bursa <james@netsurf-browser.org> | 2004-02-25 15:12:58 +0000 |
commit | 7897a98a4c7475e116f406ab173139c959d6dfb6 (patch) | |
tree | 5d51f0f542e80025b2e16d261ac2749d81abfae6 /riscos/dialog.c | |
parent | deaaa4a753bc2bc4b694845a720b51e7ceafb742 (diff) | |
download | netsurf-7897a98a4c7475e116f406ab173139c959d6dfb6.tar.gz netsurf-7897a98a4c7475e116f406ab173139c959d6dfb6.tar.bz2 |
[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
Diffstat (limited to 'riscos/dialog.c')
-rw-r--r-- | riscos/dialog.c | 69 |
1 files changed, 47 insertions, 22 deletions
diff --git a/riscos/dialog.c b/riscos/dialog.c index a5ab66311..c9797168f 100644 --- a/riscos/dialog.c +++ b/riscos/dialog.c @@ -25,10 +25,11 @@ #include "netsurf/utils/utils.h" wimp_w dialog_info, dialog_saveas, dialog_config, dialog_config_br, - dialog_config_prox, dialog_config_th, download_template + dialog_config_prox, dialog_config_th, download_template, #ifdef WITH_AUTH - ,dialog_401li + dialog_401li, #endif + dialog_zoom; ; wimp_menu* theme_menu = NULL; @@ -41,6 +42,7 @@ static void ro_gui_dialog_click_config_br(wimp_pointer *pointer); static void ro_gui_dialog_update_config_br(void); static void ro_gui_dialog_click_config_prox(wimp_pointer *pointer); static void ro_gui_dialog_click_config_th(wimp_pointer *pointer); +static void ro_gui_dialog_click_zoom(wimp_pointer *pointer); static void set_browser_choices(void); static void get_browser_choices(void); static void set_proxy_choices(void); @@ -73,6 +75,7 @@ void ro_gui_dialog_init(void) dialog_config_br = ro_gui_dialog_create("config_br"); dialog_config_prox = ro_gui_dialog_create("config_prox"); dialog_config_th = ro_gui_dialog_create("config_th"); + dialog_zoom = ro_gui_dialog_create("zoom"); set_browser_choices(); set_proxy_choices(); @@ -176,6 +179,8 @@ void ro_gui_dialog_click(wimp_pointer *pointer) else if (pointer->w == dialog_401li) ro_gui_401login_click(pointer); #endif + else if (pointer->w == dialog_zoom) + ro_gui_dialog_click_zoom(pointer); } @@ -243,14 +248,7 @@ void ro_gui_dialog_click_config_br(wimp_pointer *pointer) set_browser_choices(); break; case ICON_CONFIG_BR_EXPLAIN: - bw = create_browser_window(browser_TITLE | browser_TOOLBAR | - browser_SCROLL_X_ALWAYS | browser_SCROLL_Y_ALWAYS, 320, 256 -#ifdef WITH_FRAMES - , NULL -#endif - ); - gui_window_show(bw->window); - browser_window_open_location(bw, GESTURES_URL); + browser_window_create(GESTURES_URL); break; case ICON_CONFIG_BR_FONTSIZE_DEC: if (font_size == 50) @@ -295,8 +293,6 @@ void ro_gui_dialog_update_config_br(void) set_icon_string(dialog_config_br, ICON_CONFIG_BR_FONTSIZE, s); sprintf(s, "%i.%ipt", font_min_size / 10, font_min_size % 10); set_icon_string(dialog_config_br, ICON_CONFIG_BR_MINSIZE, s); - wimp_set_icon_state(dialog_config_br, ICON_CONFIG_BR_FONTSIZE, 0, 0); - wimp_set_icon_state(dialog_config_br, ICON_CONFIG_BR_MINSIZE, 0, 0); } @@ -348,20 +344,50 @@ void ro_gui_dialog_click_config_th(wimp_pointer *pointer) os_cli("Filer_OpenDir " THEMES_DIR); break; case ICON_CONFIG_TH_GET: - bw = create_browser_window(browser_TITLE | browser_TOOLBAR | - browser_SCROLL_X_ALWAYS | browser_SCROLL_Y_ALWAYS, 480, 320 -#ifdef WITH_FRAMES - , NULL -#endif - ); - gui_window_show(bw->window); - browser_window_open_location(bw, THEMES_URL); + browser_window_create(THEMES_URL); break; } } /** + * Handle clicks in the Scale view dialog. + */ + +void ro_gui_dialog_click_zoom(wimp_pointer *pointer) +{ + unsigned int scale; + scale = atoi(get_icon_string(dialog_zoom, ICON_ZOOM_VALUE)); + + switch (pointer->i) { + case ICON_ZOOM_DEC: scale -= 10; break; + case ICON_ZOOM_INC: scale += 10; break; + case ICON_ZOOM_50: scale = 50; break; + case ICON_ZOOM_80: scale = 80; break; + case ICON_ZOOM_100: scale = 100; break; + case ICON_ZOOM_120: scale = 120; break; + } + + if (scale < 10) + scale = 10; + else if (500 < scale) + scale = 500; + set_icon_string_i(dialog_zoom, ICON_ZOOM_VALUE, scale); + + if (pointer->i == ICON_ZOOM_OK) { + current_gui->scale = scale * 0.01; + current_gui->data.browser.reformat_pending = true; + gui_reformat_pending = true; + } + + if (pointer->buttons == wimp_CLICK_SELECT && + (pointer->i == ICON_ZOOM_CANCEL || + pointer->i == ICON_ZOOM_OK)) + wimp_create_menu(wimp_CLOSE_MENU, 0, 0); +} + + +/** * Close a dialog box. */ @@ -637,9 +663,7 @@ void ro_gui_theme_menu_selection(char *theme) { set_icon_string(dialog_config_th, ICON_CONFIG_TH_NAME, theme); load_theme_preview(theme); - wimp_set_icon_state(dialog_config_th, ICON_CONFIG_TH_NAME, 0, 0); wimp_set_icon_state(dialog_config_th, ICON_CONFIG_TH_PREVIEW, 0, 0); - } int file_exists(const char* base, const char* dir, const char* leaf, bits ftype) @@ -695,6 +719,7 @@ void set_icon_string(wimp_w w, wimp_i i, const char *text) wimp_get_icon_state(&ic); strncpy(ic.icon.data.indirected_text.text, text, (unsigned int)ic.icon.data.indirected_text.size); + wimp_set_icon_state(w, i, 0, 0); } char* get_icon_string(wimp_w w, wimp_i i) |