]> git.0d.be Git - empathy.git/blobdiff - libempathy-gtk/empathy-account-widget-sip.c
Updated Basque language
[empathy.git] / libempathy-gtk / empathy-account-widget-sip.c
index ffac231d6a819fccff73e579e29ffd9ca124c209..db39ddae4a360ed9b4259cabfb93098fd7361c72 100644 (file)
 #include <glib/gi18n-lib.h>
 #include <gtk/gtk.h>
 
-#include <libmissioncontrol/mc-account.h>
-#include <libmissioncontrol/mc-protocol.h>
-
 #include <libempathy/empathy-utils.h>
 
 #include "empathy-account-widget.h"
+#include "empathy-account-widget-private.h"
 #include "empathy-account-widget-sip.h"
 #include "empathy-ui-utils.h"
 
 typedef struct {
-  McAccount *account;
-
+  EmpathyAccountWidget *self;
   GtkWidget *vbox_settings;
 
   GtkWidget *entry_stun_server;
@@ -51,7 +48,6 @@ static void
 account_widget_sip_destroy_cb (GtkWidget *widget,
                                EmpathyAccountWidgetSip *settings)
 {
-  g_object_unref (settings->account);
   g_slice_free (EmpathyAccountWidgetSip, settings);
 }
 
@@ -63,61 +59,69 @@ account_widget_sip_discover_stun_toggled_cb (
   gboolean active;
 
   active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbox));
-  gtk_widget_set_sensitive(settings->entry_stun_server, !active);
-  gtk_widget_set_sensitive(settings->spinbutton_stun_part, !active);
+  gtk_widget_set_sensitive (settings->entry_stun_server, !active);
+  gtk_widget_set_sensitive (settings->spinbutton_stun_part, !active);
 }
 
-/**
- * empathy_account_widget_sip_new:
- * @account: the #McAccount to configure
- *
- * Creates a new SIP account widget to configure a given #McAccount
- *
- * Returns: The toplevel container of the configuration widget
- */
-GtkWidget *
-empathy_account_widget_sip_new (McAccount *account)
+void
+empathy_account_widget_sip_build (EmpathyAccountWidget *self,
+    const char *filename,
+    GtkWidget **table_common_settings)
 {
   EmpathyAccountWidgetSip *settings;
-  GtkBuilder *gui;
-  gchar *filename;
-
-  settings = g_slice_new0 (EmpathyAccountWidgetSip);
-  settings->account = g_object_ref (account);
-
-  filename = empathy_file_lookup ("empathy-account-widget-sip.ui",
-      "libempathy-gtk");
-  gui = empathy_builder_get_file (filename,
-      "vbox_sip_settings", &settings->vbox_settings,
-      "entry_stun-server", &settings->entry_stun_server,
-      "spinbutton_stun-port", &settings->spinbutton_stun_part,
-      "checkbutton_discover-stun", &settings->checkbutton_discover_stun,
-      NULL);
-  g_free (filename);
-
-  empathy_account_widget_handle_params (account, gui,
-      "entry_userid", "account",
-      "entry_password", "password",
-      "checkbutton_discover-stun", "discover-stun",
-      "entry_stun-server", "stun-server",
-      "spinbutton_stun-port", "stun-port",
-      NULL);
-
-  empathy_account_widget_add_forget_button (account, gui,
-                                            "button_forget",
-                                            "entry_password");
-
-  account_widget_sip_discover_stun_toggled_cb (settings->checkbutton_discover_stun,
-                                               settings);
-
-  empathy_builder_connect (gui, settings,
-      "vbox_sip_settings", "destroy", account_widget_sip_destroy_cb,
-      "checkbutton_discover-stun", "toggled", account_widget_sip_discover_stun_toggled_cb,
-      NULL);
-
-  g_object_ref (settings->vbox_settings);
-  g_object_force_floating (G_OBJECT (settings->vbox_settings));
-  g_object_unref (gui);
-
-  return settings->vbox_settings;
+  GtkWidget *vbox_settings;
+  gboolean is_simple;
+
+  g_object_get (self, "simple", &is_simple, NULL);
+
+  if (is_simple)
+    {
+      self->ui_details->gui = empathy_builder_get_file (filename,
+          "vbox_sip_simple", &vbox_settings,
+          NULL);
+
+      empathy_account_widget_handle_params (self,
+          "entry_userid_simple", "account",
+          "entry_password_simple", "password",
+          NULL);
+
+      self->ui_details->default_focus = g_strdup ("entry_userid_simple");
+    }
+  else
+    {
+      settings = g_slice_new0 (EmpathyAccountWidgetSip);
+      settings->self = self;
+
+      self->ui_details->gui = empathy_builder_get_file (filename,
+          "table_common_settings", table_common_settings,
+          "vbox_sip_settings", &vbox_settings,
+          "entry_stun-server", &settings->entry_stun_server,
+          "spinbutton_stun-port", &settings->spinbutton_stun_part,
+          "checkbutton_discover-stun", &settings->checkbutton_discover_stun,
+          NULL);
+      settings->vbox_settings = vbox_settings;
+
+      empathy_account_widget_handle_params (self,
+          "entry_userid", "account",
+          "entry_password", "password",
+          "checkbutton_discover-stun", "discover-stun",
+          "entry_stun-server", "stun-server",
+          "spinbutton_stun-port", "stun-port",
+          NULL);
+
+      account_widget_sip_discover_stun_toggled_cb (
+          settings->checkbutton_discover_stun,
+          settings);
+
+      empathy_builder_connect (self->ui_details->gui, settings,
+          "vbox_sip_settings", "destroy", account_widget_sip_destroy_cb,
+          "checkbutton_discover-stun", "toggled",
+          account_widget_sip_discover_stun_toggled_cb,
+          NULL);
+
+      self->ui_details->add_forget = TRUE;
+      self->ui_details->default_focus = g_strdup ("entry_userid");
+    }
+
+  self->ui_details->widget = vbox_settings;
 }