From 2710a91a7c935b58c8e6150f287f2107e5ef10aa Mon Sep 17 00:00:00 2001 From: xclaesse Date: Sat, 8 Mar 2008 14:59:00 +0000 Subject: Add an advanced expander in the generic setting widget. Fixes bug #466521 (Marco Barisione). git-svn-id: svn+ssh://svn.gnome.org/svn/empathy/trunk@706 4ee84921-47dd-4033-b63a-18d7a039a3e4 --- libempathy-gtk/Makefile.am | 1 + .../empathy-account-widget-generic.glade | 89 ++++++++++++++++++++++ libempathy-gtk/empathy-account-widget.c | 44 ++++++----- 3 files changed, 117 insertions(+), 17 deletions(-) create mode 100644 libempathy-gtk/empathy-account-widget-generic.glade (limited to 'libempathy-gtk') diff --git a/libempathy-gtk/Makefile.am b/libempathy-gtk/Makefile.am index 5134e74b0..88e10794d 100644 --- a/libempathy-gtk/Makefile.am +++ b/libempathy-gtk/Makefile.am @@ -127,6 +127,7 @@ glade_DATA = \ empathy-preferences.glade \ empathy-presence-chooser.glade \ empathy-accounts-dialog.glade \ + empathy-account-widget-generic.glade \ empathy-account-widget-jabber.glade \ empathy-account-widget-msn.glade \ empathy-account-widget-salut.glade \ diff --git a/libempathy-gtk/empathy-account-widget-generic.glade b/libempathy-gtk/empathy-account-widget-generic.glade new file mode 100644 index 000000000..5278e0a2b --- /dev/null +++ b/libempathy-gtk/empathy-account-widget-generic.glade @@ -0,0 +1,89 @@ + + + + + + True + generic account settings + False + + + True + 6 + + + True + 3 + 12 + 6 + + + + + + + + + + + + False + False + + + + + True + True + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + GTK_POLICY_AUTOMATIC + GTK_POLICY_AUTOMATIC + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + GTK_RESIZE_QUEUE + + + True + 3 + 12 + 6 + + + + + + + + + + + + + + + + + + True + <b>Advanced</b> + True + + + label_item + + + + + 1 + + + + + + diff --git a/libempathy-gtk/empathy-account-widget.c b/libempathy-gtk/empathy-account-widget.c index 81095a463..a8373cb66 100644 --- a/libempathy-gtk/empathy-account-widget.c +++ b/libempathy-gtk/empathy-account-widget.c @@ -239,12 +239,12 @@ account_widget_generic_format_param_name (const gchar *param_name) static void accounts_widget_generic_setup (McAccount *account, - GtkWidget *table_settings) + GtkWidget *table_common_settings, + GtkWidget *table_advanced_settings) { McProtocol *protocol; McProfile *profile; GSList *params, *l; - guint n_rows = 0; profile = mc_account_get_profile (account); protocol = mc_profile_get_protocol (profile); @@ -263,11 +263,19 @@ accounts_widget_generic_setup (McAccount *account, for (l = params; l; l = l->next) { McProtocolParam *param; + GtkWidget *table_settings; + guint n_rows = 0; GtkWidget *widget = NULL; gchar *param_name_formatted; param = l->data; + if (param->flags & MC_PROTOCOL_PARAM_REQUIRED) { + table_settings = table_common_settings; + } else { + table_settings = table_advanced_settings; + } param_name_formatted = account_widget_generic_format_param_name (param->name); + g_object_get (table_settings, "n-rows", &n_rows, NULL); gtk_table_resize (GTK_TABLE (table_settings), ++n_rows, 2); if (param->signature[0] == 's') { @@ -434,26 +442,28 @@ empathy_account_widget_add_forget_button (McAccount *account, GtkWidget * empathy_account_widget_generic_new (McAccount *account) { - GtkWidget *table_settings; - GtkWidget *sw; + GladeXML *glade; + GtkWidget *widget; + GtkWidget *table_common_settings; + GtkWidget *table_advanced_settings; g_return_val_if_fail (MC_IS_ACCOUNT (account), NULL); - table_settings = gtk_table_new (0, 2, FALSE); - gtk_table_set_row_spacings (GTK_TABLE (table_settings), 6); - gtk_table_set_col_spacings (GTK_TABLE (table_settings), 6); - sw = gtk_scrolled_window_new (NULL, NULL); - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), - GTK_POLICY_AUTOMATIC, - GTK_POLICY_AUTOMATIC); - gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (sw), - table_settings); - - accounts_widget_generic_setup (account, table_settings); + glade = empathy_glade_get_file ("empathy-account-widget-generic.glade", + "vbox_generic_settings", + NULL, + "vbox_generic_settings", &widget, + "table_common_settings", &table_common_settings, + "table_advanced_settings", &table_advanced_settings, + NULL); + + accounts_widget_generic_setup (account, table_common_settings, table_advanced_settings); - gtk_widget_show_all (sw); + g_object_unref (glade); - return sw; + gtk_widget_show_all (widget); + + return widget; } GtkWidget * -- cgit v1.2.3