[empathy] added spinner to connecting infobar



commit f9d025086633f300da83d1222609cea3953fe20d
Author: Felix Kaser <f kaser gmx net>
Date:   Tue Dec 8 11:48:36 2009 +0100

    added spinner to connecting infobar

 src/empathy-accounts-dialog.c |   32 +++++++++++++++++++++++---------
 1 files changed, 23 insertions(+), 9 deletions(-)
---
diff --git a/src/empathy-accounts-dialog.c b/src/empathy-accounts-dialog.c
index 7dd9aa4..c327633 100644
--- a/src/empathy-accounts-dialog.c
+++ b/src/empathy-accounts-dialog.c
@@ -50,6 +50,7 @@
 #include "empathy-accounts-dialog.h"
 #include "empathy-import-dialog.h"
 #include "empathy-import-utils.h"
+#include "ephy-spinner.h"
 
 #define DEBUG_FLAG EMPATHY_DEBUG_ACCOUNT
 #include <libempathy/empathy-debug.h>
@@ -81,6 +82,7 @@ typedef struct {
   GtkWidget *infobar;
   GtkWidget *label_status;
   GtkWidget *image_status;
+  GtkWidget *throbber;
   GtkWidget *frame_no_protocol;
 
   GtkWidget *treeview;
@@ -190,6 +192,10 @@ accounts_dialog_update_status_infobar (EmpathyAccountsDialog *dialog,
             _("Connecting..."));
         gtk_info_bar_set_message_type (GTK_INFO_BAR (priv->infobar),
             GTK_MESSAGE_INFO);
+
+        ephy_spinner_start (EPHY_SPINNER (priv->throbber));
+        gtk_widget_show (priv->throbber);
+        gtk_widget_hide (priv->image_status);
         break;
       case TP_CONNECTION_STATUS_DISCONNECTED:
         gtk_label_set_text (GTK_LABEL (priv->label_status),
@@ -197,16 +203,19 @@ accounts_dialog_update_status_infobar (EmpathyAccountsDialog *dialog,
         gtk_info_bar_set_message_type (GTK_INFO_BAR (priv->infobar),
             GTK_MESSAGE_WARNING);
 
-        gtk_image_set_from_icon_name (GTK_IMAGE (priv->image_status),
-            empathy_icon_name_for_presence (
-            TP_CONNECTION_PRESENCE_TYPE_OFFLINE), GTK_ICON_SIZE_SMALL_TOOLBAR);
+        ephy_spinner_stop (EPHY_SPINNER (priv->throbber));
         gtk_widget_show (priv->image_status);
+        gtk_widget_hide (priv->throbber);
         break;
       default:
         gtk_label_set_text (GTK_LABEL (priv->label_status),
             _("Unknown Status"));
         gtk_info_bar_set_message_type (GTK_INFO_BAR (priv->infobar),
             GTK_MESSAGE_WARNING);
+
+        ephy_spinner_stop (EPHY_SPINNER (priv->throbber));
+        gtk_widget_hide (priv->image_status);
+        gtk_widget_hide (priv->throbber);
     }
 
   gtk_widget_show (priv->label_status);
@@ -1666,20 +1675,25 @@ accounts_dialog_build_ui (EmpathyAccountsDialog *dialog)
     gtk_window_set_transient_for (GTK_WINDOW (priv->window),
         priv->parent_window);
 
+  /* set up spinner */
+  priv->throbber = ephy_spinner_new ();
+  ephy_spinner_set_size (EPHY_SPINNER (priv->throbber), GTK_ICON_SIZE_SMALL_TOOLBAR);
+
   priv->infobar = gtk_info_bar_new ();
   gtk_container_add (GTK_CONTAINER (priv->alignment_infobar),
       priv->infobar);
 
+  priv->image_status = gtk_image_new_from_icon_name (
+            empathy_icon_name_for_presence (
+            TP_CONNECTION_PRESENCE_TYPE_OFFLINE), GTK_ICON_SIZE_SMALL_TOOLBAR);
 
-  content_area = gtk_info_bar_get_content_area (GTK_INFO_BAR (priv->infobar));
+  priv->label_status = gtk_label_new (NULL);
 
-  priv->image_status = gtk_image_new_from_stock (
-      GTK_STOCK_INFO, GTK_ICON_SIZE_SMALL_TOOLBAR);
-  gtk_widget_show (priv->image_status);
+  content_area = gtk_info_bar_get_content_area (GTK_INFO_BAR (priv->infobar));
+  gtk_box_pack_start (GTK_BOX (content_area), priv->throbber,
+      FALSE, FALSE, 0);
   gtk_box_pack_start (GTK_BOX (content_area), priv->image_status,
       FALSE, FALSE, 0);
-
-  priv->label_status = gtk_label_new (NULL);
   gtk_container_add (GTK_CONTAINER (content_area), priv->label_status);
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]