[gedit/wip/redesign] Add close button to headerbar



commit 5e59a20502805342460368fde067fe090e35cd03
Author: Ignacio Casal Quinteiro <icq gnome org>
Date:   Fri May 10 09:04:48 2013 +0200

    Add close button to headerbar

 gedit/gedit-window-private.h |    1 +
 gedit/gedit-window.c         |   19 +++++++++++++++++++
 gedit/gedit-window.ui        |   22 ++++++++++++++++++++++
 3 files changed, 42 insertions(+), 0 deletions(-)
---
diff --git a/gedit/gedit-window-private.h b/gedit/gedit-window-private.h
index 164bfed..4d68fdb 100644
--- a/gedit/gedit-window-private.h
+++ b/gedit/gedit-window-private.h
@@ -90,6 +90,7 @@ struct _GeditWindowPrivate
        GtkWidget      *headerbar;
        GtkWidget      *open_button;
        GtkWidget      *open_menu;
+       GtkWidget      *close_button;
 
        /* recent files */
        guint           update_documents_list_menu_id;
diff --git a/gedit/gedit-window.c b/gedit/gedit-window.c
index 0cb3515..09e2e3c 100644
--- a/gedit/gedit-window.c
+++ b/gedit/gedit-window.c
@@ -427,6 +427,7 @@ gedit_window_class_init (GeditWindowClass *klass)
                                                     "/org/gnome/gedit/ui/gedit-window.ui");
        gtk_widget_class_bind_child (widget_class, GeditWindowPrivate, headerbar);
        gtk_widget_class_bind_child (widget_class, GeditWindowPrivate, open_menu);
+       gtk_widget_class_bind_child (widget_class, GeditWindowPrivate, close_button);
        gtk_widget_class_bind_child (widget_class, GeditWindowPrivate, hpaned);
        gtk_widget_class_bind_child (widget_class, GeditWindowPrivate, side_panel);
        gtk_widget_class_bind_child (widget_class, GeditWindowPrivate, vpaned);
@@ -3092,6 +3093,21 @@ static GActionEntry win_entries[] = {
 };
 
 static void
+on_window_close_button_clicked (GtkButton *button,
+                                GtkWidget *window)
+{
+       GdkEvent *event;
+
+       event = gdk_event_new (GDK_DELETE);
+
+       event->any.window = g_object_ref (gtk_widget_get_window (window));
+       event->any.send_event = TRUE;
+
+       gtk_main_do_event (event);
+       gdk_event_free (event);
+}
+
+static void
 gedit_window_init (GeditWindow *window)
 {
        GtkTargetList *tl;
@@ -3132,6 +3148,9 @@ gedit_window_init (GeditWindow *window)
 
        setup_headerbar_open_button (window);
 
+       g_signal_connect (window->priv->close_button, "clicked",
+                         G_CALLBACK (on_window_close_button_clicked), window);
+
        /* Setup status bar */
        setup_statusbar (window);
 
diff --git a/gedit/gedit-window.ui b/gedit/gedit-window.ui
index 5ebd416..0c3bdd3 100644
--- a/gedit/gedit-window.ui
+++ b/gedit/gedit-window.ui
@@ -253,6 +253,28 @@
             <property name="pack_type">end</property>
           </packing>
         </child>
+        <child>
+          <object class="GtkButton" id="close_button">
+            <property name="visible">True</property>
+            <property name="valign">fill</property>
+            <property name="halign">fill</property>
+            <property name="vexpand">True</property>
+            <property name="hexpand">True</property>
+            <style>
+              <class name="close-button"/>
+            </style>
+            <child>
+              <object class="GtkImage" id="close_image">
+                <property name="visible">True</property>
+                <property name="icon_size">1</property>
+                <property name="icon_name">window-close-symbolic</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="pack_type">end</property>
+          </packing>
+        </child>
       </object>
     </child>
     <child>


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