summaryrefslogtreecommitdiff
path: root/riscos/gui.h
diff options
context:
space:
mode:
authorJames Bursa <james@netsurf-browser.org>2004-07-17 13:00:38 +0000
committerJames Bursa <james@netsurf-browser.org>2004-07-17 13:00:38 +0000
commite4a6e982e599020060d8e43262d53ade0667f439 (patch)
treea3f76f00f0d2154834036e25b4747b322260ce19 /riscos/gui.h
parentb6782d609583900d14d51272075408072f2e501c (diff)
downloadnetsurf-e4a6e982e599020060d8e43262d53ade0667f439.tar.gz
netsurf-e4a6e982e599020060d8e43262d53ade0667f439.tar.bz2
[project @ 2004-07-17 13:00:38 by bursa]
Simplify gui_window structure. Clean up various parts of the gui code. svn path=/import/netsurf/; revision=1092
Diffstat (limited to 'riscos/gui.h')
-rw-r--r--riscos/gui.h119
1 files changed, 57 insertions, 62 deletions
diff --git a/riscos/gui.h b/riscos/gui.h
index a4516d15e..4a1736a4a 100644
--- a/riscos/gui.h
+++ b/riscos/gui.h
@@ -17,10 +17,11 @@
#include "netsurf/desktop/netsurf.h"
#include "netsurf/desktop/gui.h"
#include "netsurf/desktop/options.h"
-#include "netsurf/riscos/toolbar.h"
#define THEMES_DIR "<NetSurf$Dir>.Themes"
+struct toolbar;
+
extern wimp_w dialog_info, dialog_saveas, dialog_config, dialog_config_br,
dialog_config_prox, dialog_config_th, dialog_zoom, dialog_pageinfo,
dialog_objinfo, dialog_tooltip, dialog_warning, dialog_config_th_pane,
@@ -30,18 +31,13 @@ extern wimp_w hotlist_window;
extern wimp_menu *iconbar_menu, *browser_menu, *combo_menu, *hotlist_menu;
extern int iconbar_menu_height;
extern struct form_control *current_gadget;
-extern gui_window *window_list;
extern bool gui_reformat_pending;
extern bool gui_redraw_debug;
extern wimp_menu *current_menu;
-extern gui_window *current_gui;
-extern gui_window *ro_gui_current_redraw_gui;
extern osspriteop_area *gui_sprites;
extern struct toolbar *hotlist_toolbar;
extern bool dialog_folder_add, dialog_entry_add, hotlist_insert;
-typedef enum { GUI_BROWSER_WINDOW } gui_window_type;
-
typedef enum {
GUI_SAVE_SOURCE,
GUI_SAVE_DRAW,
@@ -60,51 +56,48 @@ typedef enum { GUI_DRAG_SELECTION, GUI_DRAG_DOWNLOAD_SAVE,
GUI_DRAG_HOTLIST_SELECT, GUI_DRAG_HOTLIST_MOVE } gui_drag_type;
extern gui_drag_type gui_current_drag_type;
+
+/** RISC OS data for a browser window. */
struct gui_window {
- gui_window_type type;
-
- wimp_w window;
-
- union {
- struct {
- struct toolbar *toolbar;
- int toolbar_width;
- struct browser_window* bw;
- bool reformat_pending;
- int old_width;
- int old_height;
- } browser;
- } data;
-
- char status[256];
- char title[256];
- char url[256];
- gui_window *next;
-
- int throbber;
- char throb_buf[12];
- float throbtime;
-
- enum { drag_NONE, drag_UNKNOWN, drag_BROWSER_TEXT_SELECTION }
- drag_status;
-
- /* Options
- */
- float scale;
- bool option_dither_sprites;
- bool option_filter_sprites;
- int option_toolbar_status_width;
- bool option_toolbar_show_status;
- bool option_toolbar_show_buttons;
- bool option_toolbar_show_address;
- bool option_toolbar_show_throbber;
- bool option_animate_images;
- bool option_background_images;
+ /** Associated platform-independent browser window data. */
+ struct browser_window *bw;
+
+ struct toolbar *toolbar; /**< Toolbar, or 0 if not present. */
+
+ wimp_w window; /**< RISC OS window handle. */
+
+ /** Window has been resized, and content needs reformatting. */
+ bool reformat_pending;
+ int old_width; /**< Width when last opened / os units. */
+ int old_height; /**< Height when last opened / os units. */
+
+ char status[256]; /**< Buffer for status bar. */
+ char title[256]; /**< Buffer for window title. */
+ char url[256]; /**< Buffer for url entry field. */
+
+ int throbber; /**< Current frame of throbber animation. */
+ char throb_buf[12]; /**< Buffer for throbber sprite name. */
+ int throbtime; /**< Time of last throbber frame. */
+
+ /** Options. */
+ struct {
+ float scale; /**< Scale, 1.0 = 100%. */
+ bool dither_sprites; /**< Images should be dithered. */
+ bool filter_sprites; /**< Images should be smoothed. */
+ bool animate_images; /**< Animations should run. */
+ bool background_images; /**< Display background images. */
+ } option;
+
+ struct gui_window *prev; /**< Previous in linked list. */
+ struct gui_window *next; /**< Next in linked list. */
};
+extern struct gui_window *current_gui;
+extern struct gui_window *ro_gui_current_redraw_gui;
+
+
/* in gui.c */
-void ro_gui_copy_selection(gui_window* g);
void ro_gui_open_help_page(const char *page);
void ro_gui_screen_size(int *width, int *height);
void ro_gui_view_source(struct content *content);
@@ -112,11 +105,11 @@ void ro_gui_drag_box_start(wimp_pointer *pointer);
/* in menus.c */
void ro_gui_menus_init(void);
-void ro_gui_create_menu(wimp_menu* menu, int x, int y, gui_window* g);
+void ro_gui_create_menu(wimp_menu* menu, int x, int y, struct gui_window *g);
void ro_gui_popup_menu(wimp_menu *menu, wimp_w w, wimp_i i);
void ro_gui_menu_selection(wimp_selection* selection);
void ro_gui_menu_warning(wimp_message_menu_warning *warning);
-void ro_gui_prepare_navigate(gui_window *gui);
+void ro_gui_prepare_navigate(struct gui_window *gui);
void ro_gui_menu_prepare_scale(void);
void ro_gui_menu_prepare_pageinfo(void);
@@ -143,12 +136,13 @@ void ro_gui_download_datasave_ack(wimp_message *message);
void ro_gui_download_window_destroy(struct gui_download_window *dw);
/* in mouseactions.c */
-void ro_gui_mouse_action(gui_window* g);
+void ro_gui_mouse_action(struct gui_window *g);
/* in textselection.c */
void ro_gui_start_selection(wimp_pointer *pointer, wimp_window_state *state,
- gui_window *g);
+ struct gui_window *g);
void ro_gui_selection_drag_end(wimp_dragged *drag);
+void ro_gui_copy_selection(struct gui_window *g);
/* in 401login.c */
#ifdef WITH_AUTH
@@ -159,24 +153,25 @@ bool ro_gui_401login_keypress(wimp_key *key);
#endif
/* in window.c */
-void ro_gui_window_click(gui_window* g, wimp_pointer* mouse);
-void ro_gui_window_open(gui_window* g, wimp_open* open);
-void ro_gui_window_redraw(gui_window* g, wimp_draw* redraw);
-void ro_gui_window_mouse_at(wimp_pointer* pointer);
-void ro_gui_toolbar_click(gui_window* g, wimp_pointer* pointer);
-void ro_gui_status_click(gui_window* g, wimp_pointer* pointer);
+void ro_gui_window_click(struct gui_window *g, wimp_pointer *mouse);
+void ro_gui_window_open(struct gui_window *g, wimp_open *open);
+void ro_gui_window_redraw(struct gui_window *g, wimp_draw *redraw);
+void ro_gui_window_mouse_at(struct gui_window *g, wimp_pointer *pointer);
+void ro_gui_toolbar_click(struct gui_window *g, wimp_pointer *pointer);
+void ro_gui_status_click(struct gui_window *g, wimp_pointer *pointer);
void ro_gui_throb(void);
-gui_window* ro_lookup_gui_from_w(wimp_w window);
-gui_window* ro_lookup_gui_toolbar_from_w(wimp_w window);
-gui_window* ro_lookup_gui_status_from_w(wimp_w window);
-gui_window *ro_gui_window_lookup(wimp_w w);
-bool ro_gui_window_keypress(gui_window *g, int key, bool toolbar);
+struct gui_window *ro_gui_window_lookup(wimp_w window);
+struct gui_window *ro_gui_toolbar_lookup(wimp_w window);
+struct gui_window *ro_gui_status_lookup(wimp_w window);
+bool ro_gui_window_keypress(struct gui_window *g, int key, bool toolbar);
void ro_gui_scroll_request(wimp_scroll *scroll);
//#define window_x_units(x, state) (x - (state->visible.x0 - state->xscroll))
//#define window_y_units(y, state) (y - (state->visible.y1 - state->yscroll))
int window_x_units(int x, wimp_window_state *state);
int window_y_units(int y, wimp_window_state *state);
-bool ro_gui_window_dataload(gui_window *g, wimp_message *message);
+bool ro_gui_window_dataload(struct gui_window *g, wimp_message *message);
+void ro_gui_window_process_reformats(void);
+void ro_gui_window_default_options(struct browser_window *bw);
/* in history.c */
void ro_gui_history_init(void);