From 2fa6c3a7adef734caaed3494e9ac47b1eb9abb7a Mon Sep 17 00:00:00 2001 From: Rob Kendrick Date: Tue, 29 Aug 2006 00:42:30 +0000 Subject: Implement user-defined new window placement in nsgtk svn path=/trunk/netsurf/; revision=2901 --- desktop/options.c | 2 +- gtk/gtk_window.c | 36 +++++++++++++++++++++++++++++++++--- gtk/res/netsurf.glade | 50 ++++++++++++++++++++++++++++++++------------------ 3 files changed, 66 insertions(+), 22 deletions(-) diff --git a/desktop/options.c b/desktop/options.c index a8eef2efa..58c9ef24b 100644 --- a/desktop/options.c +++ b/desktop/options.c @@ -107,7 +107,7 @@ int option_window_screen_width = 0; int option_window_screen_height = 0; /** default size of status bar vs. h scroll bar */ #ifdef nsgtk -int option_toolbar_status_width = 5; +int option_toolbar_status_width = 400; #else int option_toolbar_status_width = 6667; #endif diff --git a/gtk/gtk_window.c b/gtk/gtk_window.c index f70bac7e4..55c427a95 100644 --- a/gtk/gtk_window.c +++ b/gtk/gtk_window.c @@ -53,6 +53,7 @@ struct gui_window { GtkMenuItem *stop_menu; GtkMenuItem *reload_menu; GtkImage *throbber; + GtkPaned *status_pane; GladeXML *xml; @@ -147,6 +148,7 @@ MENUPROTO(reload); MENUPROTO(zoom_in); MENUPROTO(normal_size); MENUPROTO(zoom_out); +MENUPROTO(save_window_size); /* navigate menu */ MENUPROTO(back); @@ -176,6 +178,7 @@ static struct menu_events menu_events[] = { MENUEVENT(zoom_in), MENUEVENT(normal_size), MENUEVENT(zoom_out), + MENUEVENT(save_window_size), /* navigate menu */ MENUEVENT(back), @@ -595,6 +598,21 @@ MENUHANDLER(zoom_out) return TRUE; } +MENUHANDLER(save_window_size) +{ + struct gui_window *gw = g; + + option_toolbar_status_width = gtk_paned_get_position(gw->status_pane); + gtk_window_get_position(gw->window, &option_window_x, &option_window_y); + gtk_window_get_size(gw->window, &option_window_width, + &option_window_height); + + + options_write(options_file_location); + + return TRUE; +} + MENUHANDLER(stop) { return nsgtk_window_stop_button_clicked(GTK_WIDGET(widget), g); @@ -731,6 +749,21 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw, g->reload_menu = GTK_MENU_ITEM(GET_WIDGET("reload")); g->throbber = GTK_IMAGE(GET_WIDGET("throbber")); g->viewport = GTK_VIEWPORT(GET_WIDGET("viewport1")); + g->status_pane = GTK_PANED(GET_WIDGET("hpaned1")); + + /* set this window's size and position to what's in the options, or + * or some sensible default if they're not set yet. + */ + if (option_window_width > 0) { + gtk_window_move(g->window, option_window_x, option_window_y); + gtk_window_resize(g->window, option_window_width, + option_window_height); + } else { + gtk_window_set_default_size(g->window, 600, 600); + } + + /* set the size of the hpane with status bar and h scrollbar */ + gtk_paned_set_position(g->status_pane, option_toolbar_status_width); /* connect our scrollbars to the viewport */ gtk_viewport_set_hadjustment(g->viewport, @@ -744,9 +777,6 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw, */ gtk_tool_item_set_expand(GTK_TOOL_ITEM(GET_WIDGET("toolURLBar")), TRUE); - /* set the initial size of the browser window */ - gtk_window_set_default_size(g->window, 600, 600); - /* set the events we're interested in receiving from the browser's * drawing area. */ diff --git a/gtk/res/netsurf.glade b/gtk/res/netsurf.glade index 839d2350f..90ed9c357 100644 --- a/gtk/res/netsurf.glade +++ b/gtk/res/netsurf.glade @@ -48,7 +48,7 @@ - + True gtk-new 1 @@ -82,7 +82,7 @@ - + True gtk-open 1 @@ -104,7 +104,7 @@ - + True gtk-close 1 @@ -133,7 +133,7 @@ - + True gtk-save-as 1 @@ -203,7 +203,7 @@ True - + True gtk-print-preview 1 @@ -226,7 +226,7 @@ - + True gtk-print 1 @@ -350,7 +350,7 @@ True - + True gtk-preferences 1 @@ -384,7 +384,7 @@ - + True gtk-stop 1 @@ -405,7 +405,7 @@ - + True gtk-refresh 1 @@ -433,7 +433,7 @@ - + True gtk-zoom-in 1 @@ -455,7 +455,7 @@ - + True gtk-zoom-in 1 @@ -476,7 +476,7 @@ - + True gtk-zoom-100 1 @@ -497,7 +497,7 @@ - + True gtk-zoom-out 1 @@ -566,7 +566,7 @@ False Menu bar True - False + True @@ -613,6 +613,20 @@ + + + + True + + + + + + True + Save window size + True + + @@ -635,7 +649,7 @@ - + True gtk-go-back 1 @@ -656,7 +670,7 @@ - + True gtk-go-forward 1 @@ -677,7 +691,7 @@ - + True gtk-home 1 @@ -766,7 +780,7 @@ - + True gtk-help 1 -- cgit v1.2.3