diff options
author | Cosimo Cecchi <cosimoc@gnome.org> | 2009-08-07 01:55:36 +0800 |
---|---|---|
committer | Sjoerd Simons <sjoerd.simons@collabora.co.uk> | 2009-08-22 21:21:07 +0800 |
commit | a4f73e80b9f3015356fd0ee7d33fc0c7a8a21c8c (patch) | |
tree | 589195b1058990d1d9086696ae1c00d59d4bdbd5 /src | |
parent | 2cfd3d52a13089bd00c863a2ff2a721ec04190b5 (diff) | |
download | gsoc2013-empathy-a4f73e80b9f3015356fd0ee7d33fc0c7a8a21c8c.tar gsoc2013-empathy-a4f73e80b9f3015356fd0ee7d33fc0c7a8a21c8c.tar.gz gsoc2013-empathy-a4f73e80b9f3015356fd0ee7d33fc0c7a8a21c8c.tar.bz2 gsoc2013-empathy-a4f73e80b9f3015356fd0ee7d33fc0c7a8a21c8c.tar.lz gsoc2013-empathy-a4f73e80b9f3015356fd0ee7d33fc0c7a8a21c8c.tar.xz gsoc2013-empathy-a4f73e80b9f3015356fd0ee7d33fc0c7a8a21c8c.tar.zst gsoc2013-empathy-a4f73e80b9f3015356fd0ee7d33fc0c7a8a21c8c.zip |
Implement close and cancel;
Also, move to implementing GTK+ signals rather than connecting
Diffstat (limited to 'src')
-rw-r--r-- | src/empathy-account-assistant.c | 101 |
1 files changed, 61 insertions, 40 deletions
diff --git a/src/empathy-account-assistant.c b/src/empathy-account-assistant.c index 91d90c83c..4e9044fdf 100644 --- a/src/empathy-account-assistant.c +++ b/src/empathy-account-assistant.c @@ -221,19 +221,6 @@ account_assistant_apply_account_and_finish (EmpathyAccountAssistant *self) } static void -account_assistant_apply_cb (GtkAssistant *assistant, - gpointer user_data) -{ - EmpathyAccountAssistant *self = EMPATHY_ACCOUNT_ASSISTANT (assistant); - gint current_page; - - current_page = gtk_assistant_get_current_page (assistant); - - if (current_page == RESPONSE_ENTER_ACCOUNT) - account_assistant_apply_account_and_finish (self); -} - -static void account_assistant_handle_apply_cb (EmpathyAccountWidget *widget_object, gboolean is_valid, EmpathyAccountAssistant *self) @@ -367,27 +354,6 @@ account_assistant_finish_enter_or_create_page (EmpathyAccountAssistant *self, account_assistant_protocol_changed_cb (GTK_COMBO_BOX (priv->chooser), self); } -static void -account_assistant_prepare_cb (GtkAssistant *assistant, - GtkWidget *current_page, - gpointer user_data) -{ - EmpathyAccountAssistant *self = EMPATHY_ACCOUNT_ASSISTANT (assistant); - EmpathyAccountAssistantPriv *priv = GET_PRIV (self); - gint current_idx; - - current_idx = gtk_assistant_get_current_page (assistant); - - g_print ("prepare, current idx = %d\n", current_idx); - - if (current_idx == PAGE_ENTER_CREATE) - { - account_assistant_finish_enter_or_create_page (self, - priv->first_resp == RESPONSE_ENTER_ACCOUNT ? - TRUE : FALSE); - } -} - static gint account_assistant_page_forward_func (gint current_page, gpointer user_data) @@ -421,12 +387,22 @@ account_assistant_radio_choice_toggled_cb (GtkToggleButton *button, { FirstPageResponse response; EmpathyAccountAssistantPriv *priv = GET_PRIV (self); + GtkWidget *intro_page; response = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (button), "response")); - g_print ("choice %d toggled\n", response); priv->first_resp = response; + + intro_page = gtk_assistant_get_nth_page (GTK_ASSISTANT (self), + PAGE_INTRO); + + if (response == RESPONSE_SALUT_ONLY) + gtk_assistant_set_page_type (GTK_ASSISTANT (self), intro_page, + GTK_ASSISTANT_PAGE_SUMMARY); + else + gtk_assistant_set_page_type (GTK_ASSISTANT (self), intro_page, + GTK_ASSISTANT_PAGE_INTRO); } static GtkWidget * @@ -584,6 +560,50 @@ account_assistant_build_enter_or_create_page (EmpathyAccountAssistant *self, } static void +impl_signal_apply (GtkAssistant *assistant) +{ + EmpathyAccountAssistant *self = EMPATHY_ACCOUNT_ASSISTANT (assistant); + gint current_page; + + current_page = gtk_assistant_get_current_page (assistant); + + if (current_page == RESPONSE_ENTER_ACCOUNT) + account_assistant_apply_account_and_finish (self); +} + +static void +impl_signal_close (GtkAssistant *assistant) +{ + gtk_widget_destroy (GTK_WIDGET (assistant)); +} + +static void +impl_signal_cancel (GtkAssistant *assistant) +{ + gtk_widget_destroy (GTK_WIDGET (assistant)); +} + +static void +impl_signal_prepare (GtkAssistant *assistant, + GtkWidget *current_page) +{ + EmpathyAccountAssistant *self = EMPATHY_ACCOUNT_ASSISTANT (assistant); + EmpathyAccountAssistantPriv *priv = GET_PRIV (self); + gint current_idx; + + current_idx = gtk_assistant_get_current_page (assistant); + + g_print ("prepare, current idx = %d\n", current_idx); + + if (current_idx == PAGE_ENTER_CREATE) + { + account_assistant_finish_enter_or_create_page (self, + priv->first_resp == RESPONSE_ENTER_ACCOUNT ? + TRUE : FALSE); + } +} + +static void do_get_property (GObject *object, guint property_id, GValue *value, @@ -657,6 +677,7 @@ static void empathy_account_assistant_class_init (EmpathyAccountAssistantClass *klass) { GObjectClass *oclass = G_OBJECT_CLASS (klass); + GtkAssistantClass *gtkclass = GTK_ASSISTANT_CLASS (klass); GParamSpec *param_spec; oclass->get_property = do_get_property; @@ -664,6 +685,11 @@ empathy_account_assistant_class_init (EmpathyAccountAssistantClass *klass) oclass->constructed = do_constructed; oclass->dispose = do_dispose; + gtkclass->apply = impl_signal_apply; + gtkclass->prepare = impl_signal_prepare; + gtkclass->close = impl_signal_close; + gtkclass->cancel = impl_signal_cancel; + param_spec = g_param_spec_object ("parent-window", "parent-window", "The parent window", GTK_TYPE_WINDOW, @@ -687,11 +713,6 @@ empathy_account_assistant_init (EmpathyAccountAssistant *self) gtk_assistant_set_forward_page_func (assistant, account_assistant_page_forward_func, self, NULL); - g_signal_connect (self, "apply", - G_CALLBACK (account_assistant_apply_cb), NULL); - g_signal_connect (self, "prepare", - G_CALLBACK (account_assistant_prepare_cb), NULL); - /* first page (introduction) */ page = account_assistant_build_introduction_page (self); gtk_assistant_append_page (assistant, page); |