aboutsummaryrefslogtreecommitdiffstats
path: root/gtk/main.c
diff options
context:
space:
mode:
authorUlf Lamping <ulf.lamping@web.de>2004-05-23 17:37:36 +0000
committerUlf Lamping <ulf.lamping@web.de>2004-05-23 17:37:36 +0000
commit01c236864ac165449462e9d197efee3e47fde43e (patch)
tree86264de02e07c71a7d27de5313ec8c5f6f09d361 /gtk/main.c
parent461c0d59cd323ef1c437e49503b76a99bcc2279f (diff)
downloadwireshark-01c236864ac165449462e9d197efee3e47fde43e.tar.gz
wireshark-01c236864ac165449462e9d197efee3e47fde43e.tar.bz2
wireshark-01c236864ac165449462e9d197efee3e47fde43e.zip
next step to save the size and postition of the dialogs (using a hashtable)
move the get/set window size functionality from main to ui_util, add some functions to handle windows/dialogs. changed help and about dialog to suit the current window API svn path=/trunk/; revision=10974
Diffstat (limited to 'gtk/main.c')
-rw-r--r--gtk/main.c89
1 files changed, 25 insertions, 64 deletions
diff --git a/gtk/main.c b/gtk/main.c
index 40e89749ef..407d6f193e 100644
--- a/gtk/main.c
+++ b/gtk/main.c
@@ -1,6 +1,6 @@
/* main.c
*
- * $Id: main.c,v 1.438 2004/05/22 04:15:01 guy Exp $
+ * $Id: main.c,v 1.439 2004/05/23 17:37:36 ulfl Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@ethereal.com>
@@ -1168,35 +1168,25 @@ main_window_delete_event_cb(GtkWidget *widget _U_, GdkEvent *event _U_, gpointer
}
}
+
+
static void
-main_load_window_geometry(GtkWidget *widget
-#if GTK_MAJOR_VERSION < 2
- _U_
-#endif
-)
+main_load_window_geometry(GtkWidget *widget)
{
- /* as we now have the geometry from the recent file, set it */
- if (prefs.gui_geometry_save_position) {
- gtk_widget_set_uposition(GTK_WIDGET(top_level),
- recent.gui_geometry_main_x,
- recent.gui_geometry_main_y);
- }
- if (prefs.gui_geometry_save_size) {
- WIDGET_SET_SIZE(top_level,
- recent.gui_geometry_main_width,
- recent.gui_geometry_main_height);
- } else {
- WIDGET_SET_SIZE(top_level, DEF_WIDTH, -1);
- }
-#if GTK_MAJOR_VERSION >= 2
- if(prefs.gui_geometry_save_maximized) {
- if (recent.gui_geometry_main_maximized) {
- gdk_window_maximize(widget->window);
- } else {
- gdk_window_unmaximize(widget->window);
- }
- }
+ window_geometry_t geom;
+
+ geom.set_pos = prefs.gui_geometry_save_position;
+ geom.x = recent.gui_geometry_main_x;
+ geom.y = recent.gui_geometry_main_y;
+ geom.set_size = prefs.gui_geometry_save_size;
+ geom.width = recent.gui_geometry_main_width;
+ geom.height = recent.gui_geometry_main_height;
+ geom.set_maximized = prefs.gui_geometry_save_maximized;
+ geom.maximized = recent.gui_geometry_main_maximized;
+ window_set_geometry(widget, &geom);
+
+#if GTK_MAJOR_VERSION >= 2
/* XXX - rename recent settings? */
if (recent.gui_geometry_main_upper_pane)
gtk_paned_set_position(GTK_PANED(main_first_pane), recent.gui_geometry_main_upper_pane);
@@ -1207,56 +1197,27 @@ main_load_window_geometry(GtkWidget *widget
#endif
}
+
static void
main_save_window_geometry(GtkWidget *widget)
{
- gint desk_x, desk_y;
-#if GTK_MAJOR_VERSION >= 2
- GdkWindowState state;
-#endif
-
- /* Try to grab our geometry.
-
- GTK+ provides two routines to get a window's position relative
- to the X root window. If I understand the documentation correctly,
- gdk_window_get_deskrelative_origin applies mainly to Enlightenment
- and gdk_window_get_root_origin applies for all other WMs.
-
- The code below tries both routines, and picks the one that returns
- the upper-left-most coordinates.
-
- More info at:
+ window_geometry_t geom;
- http://mail.gnome.org/archives/gtk-devel-list/2001-March/msg00289.html
- http://www.gtk.org/faq/#AEN606
- */
+ window_get_geometry(widget, &geom);
if (prefs.gui_geometry_save_position) {
- gdk_window_get_root_origin(widget->window,
- &recent.gui_geometry_main_x,
- &recent.gui_geometry_main_y);
- if (gdk_window_get_deskrelative_origin(widget->window,
- &desk_x, &desk_y)) {
- if (desk_x <= recent.gui_geometry_main_x &&
- desk_y <= recent.gui_geometry_main_y)
- {
- recent.gui_geometry_main_x = desk_x;
- recent.gui_geometry_main_y = desk_y;
- }
- }
+ recent.gui_geometry_main_x = geom.x;
+ recent.gui_geometry_main_y = geom.y;
}
if (prefs.gui_geometry_save_size) {
- /* XXX - Is this the "approved" method? */
- gdk_window_get_size(widget->window,
- &recent.gui_geometry_main_width,
- &recent.gui_geometry_main_height);
+ recent.gui_geometry_main_width = geom.width,
+ recent.gui_geometry_main_height = geom.height;
}
#if GTK_MAJOR_VERSION >= 2
if(prefs.gui_geometry_save_maximized) {
- state = gdk_window_get_state(widget->window);
- recent.gui_geometry_main_maximized = (state == GDK_WINDOW_STATE_MAXIMIZED);
+ recent.gui_geometry_main_maximized = geom.maximized;
}
recent.gui_geometry_main_upper_pane = gtk_paned_get_position(GTK_PANED(main_first_pane));