From edeb005687eeda1957eee1ecbdd0c8e2ede3fff1 Mon Sep 17 00:00:00 2001 From: Sergio Villar Senin Date: Wed, 9 May 2007 13:30:10 +0000 Subject: [PATCH] * Removed invalid const * Added some more ui code to the settings dialog pmo-trunk-r1803 --- src/widgets/modest-combo-box.c | 6 +- src/widgets/modest-combo-box.h | 2 +- src/widgets/modest-global-settings-dialog.c | 170 ++++++++++++++++++++++++++- src/widgets/modest-ui-constants.h | 8 ++ 4 files changed, 176 insertions(+), 10 deletions(-) diff --git a/src/widgets/modest-combo-box.c b/src/widgets/modest-combo-box.c index e44aef1..16e8973 100644 --- a/src/widgets/modest-combo-box.c +++ b/src/widgets/modest-combo-box.c @@ -125,11 +125,11 @@ modest_combo_box_finalize (GObject *obj) } static GtkTreeModel* -get_model (const ModestPairList *pairs) +get_model (ModestPairList *pairs) { GtkTreeIter iter; GtkListStore *store; - const GSList *cursor; + GSList *cursor; store = gtk_list_store_new (2, G_TYPE_POINTER, /* the id */ @@ -149,7 +149,7 @@ get_model (const ModestPairList *pairs) GtkWidget* -modest_combo_box_new (const ModestPairList *pairs, GEqualFunc id_equal_func) +modest_combo_box_new (ModestPairList *pairs, GEqualFunc id_equal_func) { GtkTreeModel *model; GtkCellRenderer *renderer; diff --git a/src/widgets/modest-combo-box.h b/src/widgets/modest-combo-box.h index aedea9e..d27644c 100644 --- a/src/widgets/modest-combo-box.h +++ b/src/widgets/modest-combo-box.h @@ -73,7 +73,7 @@ GType modest_combo_box_get_type (void) G_GNUC_CONST; * * Returns: a new GtkComboBox instance, or NULL in case of failure */ -GtkWidget* modest_combo_box_new (const ModestPairList* pairs, +GtkWidget* modest_combo_box_new (ModestPairList* pairs, GEqualFunc id_equal_func); /** diff --git a/src/widgets/modest-global-settings-dialog.c b/src/widgets/modest-global-settings-dialog.c index bea91cf..f325e13 100644 --- a/src/widgets/modest-global-settings-dialog.c +++ b/src/widgets/modest-global-settings-dialog.c @@ -31,12 +31,28 @@ #include "modest-global-settings-dialog.h" #include "modest-defs.h" #include "modest-ui-constants.h" +#include "widgets/modest-combo-box.h" /* include other impl specific header files */ /* 'private'/'protected' functions */ static void modest_global_settings_dialog_class_init (ModestGlobalSettingsDialogClass *klass); static void modest_global_settings_dialog_init (ModestGlobalSettingsDialog *obj); static void modest_global_settings_dialog_finalize (GObject *obj); + +enum { + MODEST_CONNECTED_VIA_WLAN, + MODEST_CONNECTED_VIA_ANY +}; + +enum { + MODEST_UPDATE_INTERVAL_5_MIN, + MODEST_UPDATE_INTERVAL_10_MIN, + MODEST_UPDATE_INTERVAL_15_MIN, + MODEST_UPDATE_INTERVAL_30_MIN, + MODEST_UPDATE_INTERVAL_1_HOUR, + MODEST_UPDATE_INTERVAL_2_HOUR +}; + /* list my signals */ enum { /* MY_SIGNAL_1, */ @@ -110,6 +126,7 @@ static void modest_global_settings_dialog_init (ModestGlobalSettingsDialog *self) { ModestGlobalSettingsDialogPrivate *priv; +/* GdkGeometry *geometry; */ priv = MODEST_GLOBAL_SETTINGS_DIALOG_GET_PRIVATE (self); @@ -126,7 +143,7 @@ modest_global_settings_dialog_init (ModestGlobalSettingsDialog *self) gtk_container_add (GTK_CONTAINER (GTK_DIALOG (self)->vbox), priv->notebook); gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (self)->vbox), MODEST_MARGIN_HALF); - gtk_widget_show (priv->notebook); + gtk_widget_show_all (priv->notebook); /* Add the buttons: */ gtk_dialog_add_button (GTK_DIALOG (self), GTK_STOCK_OK, GTK_RESPONSE_OK); @@ -142,6 +159,20 @@ modest_global_settings_dialog_init (ModestGlobalSettingsDialog *self) /* Set title */ gtk_window_set_title (GTK_WINDOW (self), _("mcen_ti_options")); + + /* Set geometry */ +/* geometry = g_malloc0(sizeof (GdkGeometry)); */ +/* geometry->max_width = MODEST_DIALOG_WINDOW_MAX_WIDTH; */ +/* geometry->min_width = MODEST_DIALOG_WINDOW_MIN_WIDTH; */ +/* geometry->max_height = MODEST_DIALOG_WINDOW_MAX_HEIGHT; */ +/* geometry->min_height = MODEST_DIALOG_WINDOW_MIN_HEIGHT; */ +/* gtk_window_set_geometry_hints (GTK_WINDOW (self), */ +/* GTK_WIDGET (self), */ +/* geometry, */ +/* GDK_HINT_MIN_SIZE | GDK_HINT_MAX_SIZE); */ + gtk_widget_set_size_request (GTK_WIDGET (self), + MODEST_DIALOG_WINDOW_MAX_WIDTH, + MODEST_DIALOG_WINDOW_MAX_HEIGHT); } static void @@ -157,17 +188,144 @@ modest_global_settings_dialog_new (void) return GTK_WIDGET(g_object_new(MODEST_TYPE_GLOBAL_SETTINGS_DIALOG, NULL)); } -/* insert many other interesting function implementations */ -/* such as modest_global_settings_dialog_do_something, or modest_global_settings_dialog_has_foo */ +static void +add_to_table (GtkTable *table, + GtkWidget *left, + GtkWidget *right) +{ + guint n_rows = 0; + + g_object_get (G_OBJECT (table), "n-rows", &n_rows,NULL); + + /* Create label */ + gtk_misc_set_alignment (GTK_MISC (left), 1.0, 0.0); + + /* Create value */ +/* gtk_misc_set_alignment (GTK_MISC (right), 0.0, 0.0); */ + + /* Attach label and value */ + gtk_table_attach (table, + left, 0, 1, + n_rows, n_rows + 1, + GTK_SHRINK|GTK_FILL, + GTK_SHRINK|GTK_FILL, + 0, 0); + gtk_table_attach (table, + right, 1, 2, + n_rows, n_rows + 1, + GTK_EXPAND|GTK_FILL, + GTK_SHRINK|GTK_FILL, + 0, 0); +} + + +static void +add_to_modest_pair_list (const gint num, const gchar *str, GSList **list) +{ + guint *number; + ModestPair *pair; + + number = g_malloc0 (sizeof (guint)); + *number = num; + pair = modest_pair_new (number, g_strdup (str), TRUE); + *list = g_slist_prepend (*list, pair); +} + +static ModestPairList * +get_connected_via (void) +{ + GSList *list = NULL; + + add_to_modest_pair_list (MODEST_CONNECTED_VIA_WLAN, + _("mcen_va_options_connectiontype_wlan"), + &list); + add_to_modest_pair_list (MODEST_CONNECTED_VIA_ANY, + _("mcen_va_options_connectiontype_all"), + &list); + + return (ModestPairList *) g_slist_reverse (list); +} + +static ModestPairList * +get_update_interval (void) +{ + GSList *list = NULL; + + add_to_modest_pair_list (MODEST_UPDATE_INTERVAL_5_MIN, + _("mcen_va_options_updateinterval_5min"), + &list); + add_to_modest_pair_list (MODEST_UPDATE_INTERVAL_10_MIN, + _("mcen_va_options_updateinterval_10min"), + &list); + add_to_modest_pair_list (MODEST_UPDATE_INTERVAL_15_MIN, + _("mcen_va_options_updateinterval_15min"), + &list); + add_to_modest_pair_list (MODEST_UPDATE_INTERVAL_30_MIN, + _("mcen_va_options_updateinterval_30min"), + &list); + add_to_modest_pair_list (MODEST_UPDATE_INTERVAL_1_HOUR, + _("mcen_va_options_updateinterval_1h"), + &list); + add_to_modest_pair_list (MODEST_UPDATE_INTERVAL_2_HOUR, + _("mcen_va_options_updateinterval_2h"), + &list); + + return (ModestPairList *) g_slist_reverse (list); +} + +/* We need this because the translations are comming without ":" */ +static GtkWidget * +create_label (const gchar *text) +{ + gchar *label_name; + GtkWidget *label; + + label_name = g_strdup_printf ("%s:", text); + label = gtk_label_new (label_name); + g_free (label_name); + + return label; +} static GtkWidget* create_updating_page (void) { - GtkWidget *box; + GtkWidget *vbox, *table_update; + GtkWidget *label, *check, *combo; + ModestPairList *list; - box = gtk_vbox_new (FALSE, MODEST_MARGIN_NONE); + vbox = gtk_vbox_new (FALSE, MODEST_MARGIN_DEFAULT); + table_update = gtk_table_new (3, 2, FALSE); + /* FIXME: set proper values */ + gtk_table_set_row_spacings (GTK_TABLE (table_update), 6); + gtk_table_set_col_spacings (GTK_TABLE (table_update), 12); - return box; + /* Autoupdate */ + label = create_label (_("mcen_fi_options_autoupdate")); + check = gtk_check_button_new (); + add_to_table (GTK_TABLE (table_update), label, check); + + /* Connected via */ + label = create_label (_("mcen_fi_options_connectiontype")); + list = get_connected_via (); + combo = modest_combo_box_new (list, g_int_equal); + modest_pair_list_free (list); + add_to_table (GTK_TABLE (table_update), label, combo); + + /* Update interval */ + label = create_label (_("mcen_fi_options_updateinterval")); + list = get_update_interval (); + combo = modest_combo_box_new (list, g_int_equal); + modest_pair_list_free (list); + add_to_table (GTK_TABLE (table_update), label, combo); + + /* Add to vbox */ + gtk_box_pack_start (GTK_BOX (vbox), table_update, FALSE, FALSE, MODEST_MARGIN_HALF); + + /* Separator */ + gtk_box_pack_start (GTK_BOX (vbox), gtk_hseparator_new (), FALSE, FALSE, MODEST_MARGIN_HALF); + + return vbox; } static GtkWidget* diff --git a/src/widgets/modest-ui-constants.h b/src/widgets/modest-ui-constants.h index 0566ee4..7eb9ffb 100644 --- a/src/widgets/modest-ui-constants.h +++ b/src/widgets/modest-ui-constants.h @@ -41,6 +41,10 @@ #define MODEST_MARGIN_TRIPLE 18 #define MODEST_MARGIN_HALF 3 #define MODEST_MARGIN_NONE 0 +#define MODEST_DIALOG_WINDOW_MAX_HEIGHT 394 +#define MODEST_DIALOG_WINDOW_MIN_HEIGHT 172 +#define MODEST_DIALOG_WINDOW_MAX_WIDTH 642 +#define MODEST_DIALOG_WINDOW_MIN_WIDTH 172 /* TODO: review this values with GNOME HIG */ #else #define MODEST_MARGIN_DEFAULT 6 @@ -48,6 +52,10 @@ #define MODEST_MARGIN_TRIPLE 18 #define MODEST_MARGIN_HALF 3 #define MODEST_MARGIN_NONE 0 +#define MODEST_DIALOG_WINDOW_MAX_HEIGHT 394 +#define MODEST_DIALOG_WINDOW_MIN_HEIGHT 172 +#define MODEST_DIALOG_WINDOW_MAX_WIDTH 642 +#define MODEST_DIALOG_WINDOW_MIN_WIDTH 172 #endif #endif /*__MODEST_MAEMO_UI_CONSTANTS_H__*/ -- 1.7.9.5