]> git.0d.be Git - empathy.git/commitdiff
irc-network-chooser-dialog: use GNOME 3 +/- buttons
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Tue, 8 Jan 2013 14:05:42 +0000 (15:05 +0100)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Tue, 8 Jan 2013 14:11:54 +0000 (15:11 +0100)
https://bugzilla.gnome.org/show_bug.cgi?id=668464

libempathy-gtk/empathy-irc-network-chooser-dialog.c

index 6a1de710841fcb804e1bbdf238ea1db19c2e3526..5e4cb35838e654b006acd2474476f3839d92c917 100644 (file)
@@ -427,13 +427,7 @@ dialog_response_cb (GtkDialog *dialog,
     gint response,
     EmpathyIrcNetworkChooserDialog *self)
 {
     gint response,
     EmpathyIrcNetworkChooserDialog *self)
 {
-  if (response == GTK_RESPONSE_OK)
-    add_network (self);
-  else if (response == GTK_RESPONSE_APPLY)
-    edit_network (self);
-  else if (response == GTK_RESPONSE_REJECT)
-    remove_network (self);
-  else if (response == RESPONSE_RESET)
+  if (response == RESPONSE_RESET)
     reset_networks (self);
 }
 
     reset_networks (self);
 }
 
@@ -514,6 +508,27 @@ dialog_destroy_cb (GtkWidget *widget,
   g_signal_handler_disconnect (priv->search, priv->activate_sig);
 }
 
   g_signal_handler_disconnect (priv->search, priv->activate_sig);
 }
 
+static void
+add_clicked_cb (GtkToolButton *button,
+    EmpathyIrcNetworkChooserDialog *self)
+{
+  add_network (self);
+}
+
+static void
+remove_clicked_cb (GtkToolButton *button,
+    EmpathyIrcNetworkChooserDialog *self)
+{
+  remove_network (self);
+}
+
+static void
+edit_clicked_cb (GtkToolButton *button,
+    EmpathyIrcNetworkChooserDialog *self)
+{
+  edit_network (self);
+}
+
 static void
 empathy_irc_network_chooser_dialog_constructed (GObject *object)
 {
 static void
 empathy_irc_network_chooser_dialog_constructed (GObject *object)
 {
@@ -524,6 +539,9 @@ empathy_irc_network_chooser_dialog_constructed (GObject *object)
   GtkWidget *vbox;
   GtkTreeViewColumn *column;
   GtkWidget *scroll;
   GtkWidget *vbox;
   GtkTreeViewColumn *column;
   GtkWidget *scroll;
+  GtkWidget *toolbar;
+  GtkToolItem *item;
+  GtkStyleContext *context;
 
   g_assert (priv->settings != NULL);
 
 
   g_assert (priv->settings != NULL);
 
@@ -560,6 +578,35 @@ empathy_irc_network_chooser_dialog_constructed (GObject *object)
   gtk_container_add (GTK_CONTAINER (scroll), priv->treeview);
   gtk_box_pack_start (GTK_BOX (vbox), scroll, TRUE, TRUE, 6);
 
   gtk_container_add (GTK_CONTAINER (scroll), priv->treeview);
   gtk_box_pack_start (GTK_BOX (vbox), scroll, TRUE, TRUE, 6);
 
+  /* Treeview toolbar */
+  toolbar = gtk_toolbar_new ();
+  gtk_toolbar_set_icon_size (GTK_TOOLBAR (toolbar), GTK_ICON_SIZE_MENU);
+  gtk_box_pack_start (GTK_BOX (vbox), toolbar, FALSE, TRUE, 0);
+
+  item = gtk_tool_button_new (NULL, "");
+  gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "list-add-symbolic");
+  g_signal_connect (item, "clicked", G_CALLBACK (add_clicked_cb), self);
+  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1);
+
+  item = gtk_tool_button_new (NULL, "");
+  gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item),
+      "list-remove-symbolic");
+  g_signal_connect (item, "clicked", G_CALLBACK (remove_clicked_cb), self);
+  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1);
+
+  item = gtk_tool_button_new (NULL, "");
+  gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item),
+      "preferences-system-symbolic");
+  g_signal_connect (item, "clicked", G_CALLBACK (edit_clicked_cb), self);
+  gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1);
+
+  context = gtk_widget_get_style_context (scroll);
+  gtk_style_context_set_junction_sides (context, GTK_JUNCTION_BOTTOM);
+
+  context = gtk_widget_get_style_context (toolbar);
+  gtk_style_context_add_class (context, GTK_STYLE_CLASS_INLINE_TOOLBAR);
+  gtk_style_context_set_junction_sides (context, GTK_JUNCTION_TOP);
+
   /* Live search */
   priv->search = empathy_live_search_new (priv->treeview);
 
   /* Live search */
   priv->search = empathy_live_search_new (priv->treeview);
 
@@ -581,9 +628,6 @@ empathy_irc_network_chooser_dialog_constructed (GObject *object)
 
   /* Add buttons */
   gtk_dialog_add_buttons (dialog,
 
   /* Add buttons */
   gtk_dialog_add_buttons (dialog,
-      GTK_STOCK_ADD, GTK_RESPONSE_OK,
-      GTK_STOCK_EDIT, GTK_RESPONSE_APPLY,
-      GTK_STOCK_REMOVE, GTK_RESPONSE_REJECT,
       _("Reset _Networks List"), RESPONSE_RESET,
       NULL);
 
       _("Reset _Networks List"), RESPONSE_RESET,
       NULL);