static void account_widget_handle_params_valist (McAccount *account, GtkBuilder *gui, const gchar *first_widget, va_list args) { GObject *object; const gchar *name; for (name = first_widget; name; name = va_arg (args, const gchar *)) { const gchar *param_name; param_name = va_arg (args, const gchar *); object = gtk_builder_get_object (gui, name); if (!object) { g_warning ("Builder is missing object '%s'.", name); continue; } account_widget_setup_widget (GTK_WIDGET (object), account, param_name); } }
static void account_widget_handle_params_valist (EmpathyAccountWidget *self, const gchar *first_widget, va_list args) { GObject *object; const gchar *name; for (name = first_widget; name; name = va_arg (args, const gchar *)) { const gchar *param_name; param_name = va_arg (args, const gchar *); object = gtk_builder_get_object (self->ui_details->gui, name); if (!object) { g_warning ("Builder is missing object '%s'.", name); continue; } account_widget_setup_widget (self, GTK_WIDGET (object), param_name); } }
static void account_widget_handle_params_valist (McAccount *account, GladeXML *gui, const gchar *first_widget_name, va_list args) { GtkWidget *widget; const gchar *widget_name; for (widget_name = first_widget_name; widget_name; widget_name = va_arg (args, gchar*)) { const gchar *param_name; param_name = va_arg (args, gchar*); widget = glade_xml_get_widget (gui, widget_name); if (!widget) { g_warning ("Glade is missing widget '%s'.", widget_name); continue; } account_widget_setup_widget (widget, account, param_name); } }
static void accounts_widget_generic_setup (EmpathyAccountWidget *self, GtkWidget *table_common_settings, GtkWidget *table_advanced_settings) { TpConnectionManagerParam *params, *param; EmpathyAccountWidgetPriv *priv = GET_PRIV (self); params = empathy_account_settings_get_tp_params (priv->settings); for (param = params; param != NULL && param->name != NULL; param++) { GtkWidget *table_settings; guint n_rows = 0; GtkWidget *widget = NULL; gchar *param_name_formatted; if (param->flags & TP_CONN_MGR_PARAM_FLAG_REQUIRED) table_settings = table_common_settings; else if (priv->simple) return; 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->dbus_signature[0] == 's') { gchar *str; str = g_strdup_printf (_("%s:"), param_name_formatted); widget = gtk_label_new (str); gtk_misc_set_alignment (GTK_MISC (widget), 0, 0.5); g_free (str); gtk_table_attach (GTK_TABLE (table_settings), widget, 0, 1, n_rows - 1, n_rows, GTK_FILL, 0, 0, 0); gtk_widget_show (widget); widget = gtk_entry_new (); if (strcmp (param->name, "account") == 0) { g_signal_connect (widget, "realize", G_CALLBACK (gtk_widget_grab_focus), NULL); } gtk_table_attach (GTK_TABLE (table_settings), widget, 1, 2, n_rows - 1, n_rows, GTK_FILL | GTK_EXPAND, 0, 0, 0); gtk_widget_show (widget); } /* int types: ynqiuxt. double type is 'd' */ else if (param->dbus_signature[0] == 'y' || param->dbus_signature[0] == 'n' || param->dbus_signature[0] == 'q' || param->dbus_signature[0] == 'i' || param->dbus_signature[0] == 'u' || param->dbus_signature[0] == 'x' || param->dbus_signature[0] == 't' || param->dbus_signature[0] == 'd') { gchar *str = NULL; gdouble minint = 0; gdouble maxint = 0; gdouble step = 1; switch (param->dbus_signature[0]) { case 'y': minint = G_MININT8; maxint = G_MAXINT8; break; case 'n': minint = G_MININT16; maxint = G_MAXINT16; break; case 'q': minint = 0; maxint = G_MAXUINT16; break; case 'i': minint = G_MININT32; maxint = G_MAXINT32; break; case 'u': minint = 0; maxint = G_MAXUINT32; break; case 'x': minint = G_MININT64; maxint = G_MAXINT64; break; case 't': minint = 0; maxint = G_MAXUINT64; break; case 'd': minint = G_MININT32; maxint = G_MAXINT32; step = 0.1; break; } str = g_strdup_printf (_("%s:"), param_name_formatted); widget = gtk_label_new (str); gtk_misc_set_alignment (GTK_MISC (widget), 0, 0.5); g_free (str); gtk_table_attach (GTK_TABLE (table_settings), widget, 0, 1, n_rows - 1, n_rows, GTK_FILL, 0, 0, 0); gtk_widget_show (widget); widget = gtk_spin_button_new_with_range (minint, maxint, step); gtk_table_attach (GTK_TABLE (table_settings), widget, 1, 2, n_rows - 1, n_rows, GTK_FILL | GTK_EXPAND, 0, 0, 0); gtk_widget_show (widget); } else if (param->dbus_signature[0] == 'b') { widget = gtk_check_button_new_with_label (param_name_formatted); gtk_table_attach (GTK_TABLE (table_settings), widget, 0, 2, n_rows - 1, n_rows, GTK_FILL | GTK_EXPAND, 0, 0, 0); gtk_widget_show (widget); } else { DEBUG ("Unknown signature for param %s: %s", param_name_formatted, param->dbus_signature); } if (widget) account_widget_setup_widget (self, widget, param->name); g_free (param_name_formatted); } }
static void accounts_widget_generic_setup (McAccount *account, GtkWidget *table_common_settings, GtkWidget *table_advanced_settings) { McProtocol *protocol; McProfile *profile; GSList *params, *l; profile = mc_account_get_profile (account); protocol = mc_profile_get_protocol (profile); if (!protocol) { /* The CM is not installed, MC shouldn't list them * see SF bug #1688779 * FIXME: We should display something asking the user to * install the CM */ g_object_unref (profile); return; } params = mc_protocol_get_params (protocol); 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') { gchar *str; str = g_strdup_printf (_("%s:"), param_name_formatted); widget = gtk_label_new (str); gtk_misc_set_alignment (GTK_MISC (widget), 0, 0.5); g_free (str); gtk_table_attach (GTK_TABLE (table_settings), widget, 0, 1, n_rows - 1, n_rows, GTK_FILL, 0, 0, 0); gtk_widget_show (widget); widget = gtk_entry_new (); if (strcmp (param->name, "account") == 0) { g_signal_connect (widget, "realize", G_CALLBACK (account_widget_default_entry_realized_cb), NULL); } gtk_table_attach (GTK_TABLE (table_settings), widget, 1, 2, n_rows - 1, n_rows, GTK_FILL | GTK_EXPAND, 0, 0, 0); gtk_widget_show (widget); } /* int types: ynqiuxt. double type is 'd' */ else if (param->signature[0] == 'y' || param->signature[0] == 'n' || param->signature[0] == 'q' || param->signature[0] == 'i' || param->signature[0] == 'u' || param->signature[0] == 'x' || param->signature[0] == 't' || param->signature[0] == 'd') { gchar *str = NULL; gdouble minint = 0; gdouble maxint = 0; gdouble step = 1; switch (param->signature[0]) { case 'y': minint = G_MININT8; maxint = G_MAXINT8; break; case 'n': minint = G_MININT16; maxint = G_MAXINT16; break; case 'q': minint = 0; maxint = G_MAXUINT16; break; case 'i': minint = G_MININT32; maxint = G_MAXINT32; break; case 'u': minint = 0; maxint = G_MAXUINT32; break; case 'x': minint = G_MININT64; maxint = G_MAXINT64; break; case 't': minint = 0; maxint = G_MAXUINT64; break; case 'd': minint = G_MININT32; maxint = G_MAXINT32; step = 0.1; break; } str = g_strdup_printf (_("%s:"), param_name_formatted); widget = gtk_label_new (str); gtk_misc_set_alignment (GTK_MISC (widget), 0, 0.5); g_free (str); gtk_table_attach (GTK_TABLE (table_settings), widget, 0, 1, n_rows - 1, n_rows, GTK_FILL, 0, 0, 0); gtk_widget_show (widget); widget = gtk_spin_button_new_with_range (minint, maxint, step); gtk_table_attach (GTK_TABLE (table_settings), widget, 1, 2, n_rows - 1, n_rows, GTK_FILL | GTK_EXPAND, 0, 0, 0); gtk_widget_show (widget); } else if (param->signature[0] == 'b') { widget = gtk_check_button_new_with_label (param_name_formatted); gtk_table_attach (GTK_TABLE (table_settings), widget, 0, 2, n_rows - 1, n_rows, GTK_FILL | GTK_EXPAND, 0, 0, 0); gtk_widget_show (widget); } else { DEBUG ("Unknown signature for param %s: %s", param_name_formatted, param->signature); } if (widget) { account_widget_setup_widget (widget, account, param->name); } g_free (param_name_formatted); } g_slist_free (params); g_object_unref (profile); g_object_unref (protocol); }