From: Dirk-Jan C. Binnema Date: Mon, 31 Jul 2006 06:42:20 +0000 (+0000) Subject: * add support for GtkWidget settings X-Git-Tag: git_migration_finished~4440 X-Git-Url: http://git.maemo.org/git/?p=modest;a=commitdiff_plain;h=637cd51a023218402fb78a3da497554f9c834464 * add support for GtkWidget settings pmo-trunk-r436 --- diff --git a/src/modest-widget-memory.c b/src/modest-widget-memory.c index 43c52d1..6950670 100644 --- a/src/modest-widget-memory.c +++ b/src/modest-widget-memory.c @@ -29,15 +29,12 @@ #include "modest-widget-memory.h" - #define PARAM_X "x" #define PARAM_Y "y" #define PARAM_HEIGHT "height" #define PARAM_WIDTH "width" - #define PARAM_POS "pos" - static gchar* get_keyname (ModestConf *conf, const gchar *name, const gchar *param) { @@ -52,12 +49,55 @@ get_keyname (ModestConf *conf, const gchar *name, const gchar *param) } + static gboolean -save_settings_window (ModestConf *conf, GtkWindow *win, const gchar *name) +save_settings_widget (ModestConf *conf, GtkWidget *widget, const gchar *name) { gchar *key; - int x,y; + key = get_keyname (conf, name, PARAM_HEIGHT); + modest_conf_set_int (conf, key, GTK_WIDGET(widget)->allocation.height, NULL); + g_free (key); + + key = get_keyname (conf, name, PARAM_WIDTH); + modest_conf_set_int (conf, key, GTK_WIDGET(widget)->allocation.width, NULL); + g_free (key); + + return TRUE; +} + + +static gboolean +restore_settings_widget (ModestConf *conf, GtkWidget *widget, const gchar *name) +{ + GtkRequisition req; + gchar *key; + + key = get_keyname (conf, name, PARAM_HEIGHT); + + if (modest_conf_key_exists (conf, key, NULL)) + req.height = modest_conf_get_int (conf, key, NULL); + + g_free (key); + + key = get_keyname (conf, name, PARAM_WIDTH); + if (modest_conf_key_exists (conf, key, NULL)) + req.width = modest_conf_get_int (conf, key, NULL); + g_free (key); + + if (req.height && req.width) + gtk_widget_size_request (widget, &req); + + return TRUE; + +} + + + +static gboolean +save_settings_window (ModestConf *conf, GtkWindow *win, const gchar *name) +{ + gchar *key; int height, width; gtk_window_get_size (win, &width, &height); @@ -143,14 +183,17 @@ modest_widget_memory_save_settings (ModestConf *conf, GtkWidget *widget, g_return_val_if_fail (name, FALSE); if (GTK_IS_WINDOW(widget)) - save_settings_window (conf, (GtkWindow*)widget, name); - if (GTK_IS_PANED(widget)) - save_settings_paned (conf, (GtkPaned*)widget, name); - + return save_settings_window (conf, (GtkWindow*)widget, name); + else if (GTK_IS_PANED(widget)) + return save_settings_paned (conf, (GtkPaned*)widget, name); + else if (GTK_IS_WIDGET(widget)) + return save_settings_widget (conf, widget, name); - + return TRUE; } + + gboolean modest_widget_memory_restore_settings (ModestConf *conf, GtkWidget *widget, const gchar *name) @@ -160,9 +203,11 @@ modest_widget_memory_restore_settings (ModestConf *conf, GtkWidget *widget, g_return_val_if_fail (name, FALSE); if (GTK_IS_WINDOW(widget)) - restore_settings_window (conf, (GtkWindow*)widget, name); - if (GTK_IS_PANED(widget)) - restore_settings_paned (conf, (GtkPaned*)widget, name); + return restore_settings_window (conf, (GtkWindow*)widget, name); + else if (GTK_IS_PANED(widget)) + return restore_settings_paned (conf, (GtkPaned*)widget, name); + else if (GTK_IS_WIDGET(widget)) + return restore_settings_widget (conf, widget, name); return TRUE; }