X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmodest-widget-memory.c;h=b9c98944d59dad0800c76ac3abe229324aa86883;hb=98b0cf76ba2f3174a707075119d014811d34d706;hp=43c52d110de0bd257001308567a92132a09a0ab9;hpb=6e28d8eebaa3ee4d6be08768d122e1415f9cac59;p=modest diff --git a/src/modest-widget-memory.c b/src/modest-widget-memory.c index 43c52d1..b9c9894 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); @@ -69,7 +109,7 @@ save_settings_window (ModestConf *conf, GtkWindow *win, const gchar *name) key = get_keyname (conf, name, PARAM_WIDTH); modest_conf_set_int (conf, key, width, NULL); g_free (key); - + return TRUE; } @@ -134,6 +174,36 @@ restore_settings_paned (ModestConf *conf, GtkPaned *paned, const gchar *name) } +static gboolean +modest_widget_memory_save_settings_treeview (ModestConf *conf, GtkTreeView *treeview, + const gchar *name) +{ + GList *cols; + + cols = gtk_tree_view_get_columns (treeview); + /* FIXME: implement this */ + while (cols) { + gint size = gtk_tree_view_column_get_width (GTK_TREE_VIEW_COLUMN(cols->data)); + cols = g_list_next (cols); + } + + + g_list_free (cols); + + return TRUE; +} + + + +static gboolean +modest_widget_memory_restore_settings_treeview (ModestConf *conf, GtkTreeView *treeview, + const gchar *name) +{ + /* FIXME */ + return TRUE; +} + + gboolean modest_widget_memory_save_settings (ModestConf *conf, GtkWidget *widget, const gchar *name) @@ -143,14 +213,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 +233,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; }