diff options
author | Guy Harris <guy@alum.mit.edu> | 2013-02-02 05:34:31 +0000 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2013-02-02 05:34:31 +0000 |
commit | 6ebabce7b50702ef8f49653f8d6d2bcde424c027 (patch) | |
tree | 8da0cd6d22b1c6b1d7449c603f29b96df9c5880e /ui/gtk/gui_utils.c | |
parent | ab3840049e8de97b835a393fc964b2bd61e04ff9 (diff) | |
download | wireshark-6ebabce7b50702ef8f49653f8d6d2bcde424c027.tar.gz |
Move the GUI-independent window geometry stuff to ui/recent.c, so we
only have one copy.
svn path=/trunk/; revision=47440
Diffstat (limited to 'ui/gtk/gui_utils.c')
-rw-r--r-- | ui/gtk/gui_utils.c | 134 |
1 files changed, 0 insertions, 134 deletions
diff --git a/ui/gtk/gui_utils.c b/ui/gtk/gui_utils.c index 4680b9ab02..a0fb98bd68 100644 --- a/ui/gtk/gui_utils.c +++ b/ui/gtk/gui_utils.c @@ -65,12 +65,6 @@ #define WINDOW_GEOM_KEY "window_geom" - -/* load the geometry values for a window from previously saved values */ -static gboolean window_geom_load(const gchar *name, window_geometry_t *geom); - - - /* Set our window icon. The GDK documentation doesn't provide any actual documentation for gdk_window_set_icon(), so we'll steal libgimp/gimpdialog.c:gimp_dialog_realize_callback() from the Gimp @@ -434,134 +428,6 @@ window_set_geometry(GtkWidget *widget, } } - -/* the geometry hashtable for all known window classes, - * the window name is the key, and the geometry struct is the value */ -static GHashTable *window_geom_hash = NULL; - - -/* save the window and it's current geometry into the geometry hashtable */ -static void -window_geom_save(const gchar *name, window_geometry_t *geom) -{ - gchar *key; - window_geometry_t *work; - - /* init hashtable, if not already done */ - if(!window_geom_hash) { - window_geom_hash = g_hash_table_new(g_str_hash, g_str_equal); - } - /* if we have an old one, remove and free it first */ - work = g_hash_table_lookup(window_geom_hash, name); - if(work) { - g_hash_table_remove(window_geom_hash, name); - g_free(work->key); - g_free(work); - } - - /* g_malloc and insert the new one */ - work = g_malloc(sizeof(*geom)); - *work = *geom; - key = g_strdup(name); - work->key = key; - g_hash_table_insert(window_geom_hash, key, work); -} - - -/* load the desired geometry for this window from the geometry hashtable */ -static gboolean -window_geom_load(const gchar *name, - window_geometry_t *geom) -{ - window_geometry_t *p; - - /* init hashtable, if not already done */ - if(!window_geom_hash) { - window_geom_hash = g_hash_table_new(g_str_hash, g_str_equal); - } - - p = g_hash_table_lookup(window_geom_hash, name); - if(p) { - *geom = *p; - return TRUE; - } else { - return FALSE; - } -} - - -/* read in a single key value pair from the recent file into the geometry hashtable */ -void -window_geom_recent_read_pair(const char *name, - const char *key, - const char *value) -{ - window_geometry_t geom; - - - /* find window geometry maybe already in hashtable */ - if(!window_geom_load(name, &geom)) { - /* not in table, init geom with "basic" values */ - geom.key = NULL; /* Will be set in window_geom_save() */ - geom.set_pos = FALSE; - geom.x = -1; - geom.y = -1; - geom.set_size = FALSE; - geom.width = -1; - geom.height = -1; - - geom.set_maximized = FALSE;/* this is valid in GTK2 only */ - geom.maximized = FALSE; /* this is valid in GTK2 only */ - } - - if (strcmp(key, "x") == 0) { - geom.x = (gint)strtol(value, NULL, 10); - geom.set_pos = TRUE; - } else if (strcmp(key, "y") == 0) { - geom.y = (gint)strtol(value, NULL, 10); - geom.set_pos = TRUE; - } else if (strcmp(key, "width") == 0) { - geom.width = (gint)strtol(value, NULL, 10); - geom.set_size = TRUE; - } else if (strcmp(key, "height") == 0) { - geom.height = (gint)strtol(value, NULL, 10); - geom.set_size = TRUE; - } else if (strcmp(key, "maximized") == 0) { - if (g_ascii_strcasecmp(value, "true") == 0) { - geom.maximized = TRUE; - } - else { - geom.maximized = FALSE; - } - geom.set_maximized = TRUE; - } else { - /* - * Silently ignore the bogus key. We shouldn't abort here, - * as this could be due to a corrupt recent file. - * - * XXX - should we print a message about this? - */ - return; - } - - /* save / replace geometry in hashtable */ - window_geom_save(name, &geom); -} - - -/* write all geometry values of all windows from the hashtable to the recent file */ -void -window_geom_recent_write_all(gpointer rf) -{ - /* init hashtable, if not already done */ - if(!window_geom_hash) { - window_geom_hash = g_hash_table_new(g_str_hash, g_str_equal); - } - - g_hash_table_foreach(window_geom_hash, write_recent_geom, rf); -} - - void window_destroy(GtkWidget *win) { |