[bijiben] mainToolbar: Make headerbar a titlebar and add close button
- From: Pierre-Yves Luyten <pyluyten src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [bijiben] mainToolbar: Make headerbar a titlebar and add close button
- Date: Sun, 23 Jun 2013 19:49:00 +0000 (UTC)
commit 52a235f59a2a3a9f132700063a6f2d212a68acd7
Author: Yosef Or Boczko <yosefor3 walla com>
Date: Sun Jun 23 21:48:12 2013 +0200
mainToolbar: Make headerbar a titlebar and add close button
src/bjb-main-toolbar.c | 36 ++++++++++++++++++++++++++++++++++++
src/bjb-window-base.c | 3 +--
2 files changed, 37 insertions(+), 2 deletions(-)
---
diff --git a/src/bjb-main-toolbar.c b/src/bjb-main-toolbar.c
index 410d5b1..cb0c623 100644
--- a/src/bjb-main-toolbar.c
+++ b/src/bjb-main-toolbar.c
@@ -56,6 +56,8 @@ struct _BjbMainToolbarPrivate
GtkWidget *grid;
GtkWidget *select;
GtkWidget *search;
+ GtkWidget *separator;
+ GtkWidget *close;
gulong finish_sig;
gulong update_selection;
gulong search_handler;
@@ -100,6 +102,8 @@ bjb_main_toolbar_clear (BjbMainToolbar *self)
g_clear_pointer (&self->priv->search ,gtk_widget_destroy);
g_clear_pointer (&self->priv->select ,gtk_widget_destroy);
g_clear_pointer (&self->priv->share ,gtk_widget_destroy);
+ g_clear_pointer (&self->priv->separator,gtk_widget_destroy);
+ g_clear_pointer (&self->priv->close ,gtk_widget_destroy);
}
/* Callbacks */
@@ -240,6 +244,13 @@ on_search_button_clicked (BjbMainToolbarPrivate *priv)
}
static void
+on_close_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ gtk_widget_destroy (GTK_WIDGET (BJB_MAIN_TOOLBAR (user_data)->priv->window));
+}
+
+static void
add_search_button (BjbMainToolbar *self)
{
BjbMainToolbarPrivate *priv = self->priv;
@@ -260,6 +271,25 @@ add_search_button (BjbMainToolbar *self)
G_CALLBACK (on_search_button_clicked), priv);
}
+static void
+add_close_button (BjbMainToolbar *self)
+{
+ BjbMainToolbarPrivate *priv = self->priv;
+ GtkWidget *close_image;
+
+ /* Close button */
+ priv->separator = gtk_separator_new (GTK_ORIENTATION_VERTICAL);
+ gtk_header_bar_pack_end (GTK_HEADER_BAR (self), priv->separator);
+
+ priv->close = gtk_button_new ();
+ gtk_button_set_relief (GTK_BUTTON (priv->close), GTK_RELIEF_NONE);
+ close_image = gtk_image_new_from_icon_name ("window-close-symbolic", GTK_ICON_SIZE_MENU);
+ gtk_button_set_image (GTK_BUTTON (priv->close), close_image);
+ gtk_header_bar_pack_end (GTK_HEADER_BAR (self), priv->close);
+ g_signal_connect (priv->close,"clicked",
+ G_CALLBACK(on_close_clicked), self);
+}
+
static void
update_selection_buttons (BjbController *controller,
@@ -419,6 +449,9 @@ populate_bar_for_standard(BjbMainToolbar *self)
g_signal_connect (priv->select,"clicked",
G_CALLBACK(on_selection_mode_clicked),self);
+ /* Close button */
+ add_close_button (self);
+
/* Watch for main view changing */
connect_main_view_handlers (self);
}
@@ -780,6 +813,9 @@ populate_bar_for_note_view (BjbMainToolbar *self)
gtk_header_bar_pack_end (bar, priv->menu);
gtk_widget_set_tooltip_text (priv->menu, _("More options…"));
+ /* Close button */
+ add_close_button (self);
+
gtk_menu_button_set_popup (GTK_MENU_BUTTON (priv->menu),
bjb_note_menu_new (self));
}
diff --git a/src/bjb-window-base.c b/src/bjb-window-base.c
index 32cc62a..2a1ba56 100644
--- a/src/bjb-window-base.c
+++ b/src/bjb-window-base.c
@@ -150,7 +150,7 @@ bjb_window_base_constructed (GObject *obj)
/* Shared toolbar */
priv->view = bjb_main_view_new (GTK_WIDGET (obj), priv->controller);
priv->main_toolbar = bjb_main_toolbar_new (priv->view, priv->controller);
- gtk_box_pack_start (GTK_BOX (priv->vbox), GTK_WIDGET (priv->main_toolbar), FALSE, FALSE, 0);
+ gtk_window_set_titlebar (GTK_WINDOW (self), GTK_WIDGET (priv->main_toolbar));
/* Search entry toolbar */
priv->search_bar = bjb_search_toolbar_new (GTK_WIDGET (obj), priv->controller);
@@ -221,7 +221,6 @@ bjb_window_base_new(void)
{
return g_object_new (BJB_TYPE_WINDOW_BASE,
"application", g_application_get_default(),
- "hide-titlebar-when-maximized", TRUE,
NULL);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]