[gedit/wip/redesign] Add close button to headerbar
- From: Ignacio Casal Quinteiro <icq src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit/wip/redesign] Add close button to headerbar
- Date: Fri, 10 May 2013 10:31:51 +0000 (UTC)
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]