[bijiben] mainToolbar: inherit GtkHeaderBar, not GdMainToolbar
- From: Pierre-Yves Luyten <pyluyten src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [bijiben] mainToolbar: inherit GtkHeaderBar, not GdMainToolbar
- Date: Mon, 17 Jun 2013 23:50:19 +0000 (UTC)
commit df1d50e7b1c782d69f937c2065109297ce0f33b9
Author: Pierre-Yves Luyten <py luyten fr>
Date: Tue Jun 18 01:18:47 2013 +0200
mainToolbar: inherit GtkHeaderBar, not GdMainToolbar
configure.ac | 1 -
src/bjb-main-toolbar.c | 155 +++++++++++++++++++++++++++++-------------------
src/bjb-main-toolbar.h | 16 +++--
3 files changed, 104 insertions(+), 68 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 6732738..4c328e2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -74,7 +74,6 @@ LIBGD_INIT([
view-common
gtk-hacks
main-view
- main-toolbar
revealer
stack
static
diff --git a/src/bjb-main-toolbar.c b/src/bjb-main-toolbar.c
index 324f6e1..a98557b 100644
--- a/src/bjb-main-toolbar.c
+++ b/src/bjb-main-toolbar.c
@@ -16,6 +16,7 @@
*/
#include <glib/gi18n.h>
+#include <libgd/gd.h>
#include "bjb-bijiben.h"
#include "bjb-color-button.h"
@@ -47,6 +48,7 @@ struct _BjbMainToolbarPrivate
BjbMainView *parent;
BjbController *controller;
GtkWindow *window;
+ GtkWidget *back;
/* Main View */
GtkWidget *new;
@@ -62,7 +64,9 @@ struct _BjbMainToolbarPrivate
/* When note view */
BijiNoteObj *note;
+ GtkWidget *color;
GtkWidget *share;
+ GtkWidget *menu;
gulong note_renamed;
gulong note_color_changed;
GtkAccelGroup *accel;
@@ -81,7 +85,22 @@ static GParamSpec *properties[NUM_PROPERTIES] = { NULL, };
#define BJB_MAIN_TOOLBAR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), BJB_TYPE_MAIN_TOOLBAR,
BjbMainToolbarPrivate))
-G_DEFINE_TYPE (BjbMainToolbar, bjb_main_toolbar, GD_TYPE_MAIN_TOOLBAR);
+G_DEFINE_TYPE (BjbMainToolbar, bjb_main_toolbar, GTK_TYPE_HEADER_BAR);
+
+
+static void
+bjb_main_toolbar_clear (BjbMainToolbar *self)
+{
+ g_clear_pointer (&self->priv->back ,gtk_widget_destroy);
+ g_clear_pointer (&self->priv->color ,gtk_widget_destroy);
+ g_clear_pointer (&self->priv->grid ,gtk_widget_destroy);
+ g_clear_pointer (&self->priv->list ,gtk_widget_destroy);
+ g_clear_pointer (&self->priv->menu ,gtk_widget_destroy);
+ g_clear_pointer (&self->priv->new ,gtk_widget_destroy);
+ 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);
+}
/* Callbacks */
@@ -117,7 +136,9 @@ update_selection_label (BjbMainToolbar *self)
else
label = g_strdup_printf (g_dngettext (GETTEXT_PACKAGE, "%d selected", "%d selected", length),length);
- gd_main_toolbar_set_labels (GD_MAIN_TOOLBAR (self), NULL, label);
+
+ gtk_header_bar_set_title (GTK_HEADER_BAR (self), NULL);
+ gtk_header_bar_set_subtitle (GTK_HEADER_BAR (self), label);
g_free (label);
return TRUE;
@@ -224,10 +245,10 @@ add_search_button (BjbMainToolbar *self)
BjbMainToolbarPrivate *priv = self->priv;
gboolean active;
- priv->search = gd_main_toolbar_add_toggle (GD_MAIN_TOOLBAR (self),
- "edit-find-symbolic",
- NULL,
- FALSE);
+ priv->search = gd_header_toggle_button_new ();
+ gd_header_button_set_symbolic_icon_name (GD_HEADER_BUTTON (priv->search),
+ "edit-find-symbolic");
+ gtk_header_bar_pack_end (GTK_HEADER_BAR (self), priv->search);
gtk_widget_set_tooltip_text (priv->search,
_("Search note titles, content and collections"));
@@ -265,8 +286,10 @@ populate_bar_for_selection (BjbMainToolbar *self)
add_search_button (self);
/* Select */
- priv->select = gd_main_toolbar_add_button (GD_MAIN_TOOLBAR (self),
- NULL, _("Done"), FALSE);
+ priv->select = gd_header_simple_button_new ();
+ gtk_button_set_label (GTK_BUTTON (priv->select), _("Done"));
+ gtk_header_bar_pack_end (GTK_HEADER_BAR (self), priv->select);
+
gtk_widget_set_tooltip_text (priv->select, _("Exit selection mode"));
context = gtk_widget_get_style_context (priv->select);
gtk_style_context_add_class (context, "suggested-action");
@@ -304,7 +327,9 @@ update_label_for_standard (BjbMainToolbar *self)
else
label = g_strdup (_("New and Recent"));
- gd_main_toolbar_set_labels (GD_MAIN_TOOLBAR (self), label, NULL);
+
+ gtk_header_bar_set_title (GTK_HEADER_BAR (self), label);
+ gtk_header_bar_set_subtitle (GTK_HEADER_BAR (self), NULL);
g_free (label);
self->priv->display_notes = g_signal_connect (self->priv->controller,
@@ -349,23 +374,21 @@ populate_bar_for_standard(BjbMainToolbar *self)
if (coll)
{
- GtkWidget *back, *button;
+ priv->back = gd_header_simple_button_new ();
+ gd_header_button_set_symbolic_icon_name (GD_HEADER_BUTTON (priv->back),
+ "go-previous-symbolic");
+ gtk_header_bar_pack_start (GTK_HEADER_BAR (self), priv->back);
- back = get_icon ("go-previous-symbolic");
- button = gd_main_toolbar_add_button (GD_MAIN_TOOLBAR (self), NULL, NULL, TRUE);
- gtk_container_add (GTK_CONTAINER (button), back);
-
- g_signal_connect_swapped (button, "clicked",
+ g_signal_connect_swapped (priv->back, "clicked",
G_CALLBACK (on_back_button_clicked), self);
}
/* New Note button */
else
{
- priv->new = gd_main_toolbar_add_button(GD_MAIN_TOOLBAR (self),
- NULL,
- _("New"),
- TRUE);
+ priv->new = gtk_button_new ();
+ gtk_button_set_label (GTK_BUTTON (priv->new), _("New"));
+ gtk_header_bar_pack_start (GTK_HEADER_BAR (self), priv->new);
gtk_widget_set_size_request (priv->new, 70, -1);
bin = gtk_bin_get_child (GTK_BIN (priv->new));
@@ -381,10 +404,10 @@ populate_bar_for_standard(BjbMainToolbar *self)
}
/* Go to selection mode */
- priv->select = gd_main_toolbar_add_button(GD_MAIN_TOOLBAR (self),
- "object-select-symbolic",
- NULL,
- FALSE);
+ priv->select = gd_header_simple_button_new ();
+ gd_header_button_set_symbolic_icon_name (GD_HEADER_BUTTON (priv->select),
+ "object-select-symbolic");
+ gtk_header_bar_pack_end (GTK_HEADER_BAR (self), priv->select);
gtk_widget_set_tooltip_text (priv->select, _("Selection mode"));
g_signal_connect (priv->select,"clicked",
@@ -401,10 +424,10 @@ populate_bar_for_icon_view(BjbMainToolbar *self)
/* Switch to list */
priv->grid = NULL;
- priv->list= gd_main_toolbar_add_button(GD_MAIN_TOOLBAR (self),
- "view-list-symbolic",
- NULL,
- FALSE);
+ priv->list = gd_header_simple_button_new ();
+ gd_header_button_set_symbolic_icon_name (GD_HEADER_BUTTON (priv->list),
+ "view-list-symbolic");
+ gtk_header_bar_pack_end (GTK_HEADER_BAR (self), priv->list);
gtk_widget_set_tooltip_text (priv->list,
_("View notes and collections in a list"));
@@ -421,10 +444,10 @@ populate_bar_for_list_view(BjbMainToolbar *self)
/* Switch to icon view */
priv->list = NULL;
- priv->grid = gd_main_toolbar_add_button(GD_MAIN_TOOLBAR (self),
- "view-grid-symbolic",
- NULL,
- FALSE);
+ priv->grid = gd_header_simple_button_new ();
+ gd_header_button_set_symbolic_icon_name (GD_HEADER_BUTTON (priv->grid),
+ "view-grid-symbolic");
+ gtk_header_bar_pack_end (GTK_HEADER_BAR (self), priv->grid);
gtk_widget_set_tooltip_text (priv->grid,
_("View notes and collections in a grid"));
@@ -465,10 +488,9 @@ static void
on_note_renamed (BijiNoteObj *note,
BjbMainToolbar *self)
{
- gd_main_toolbar_set_labels (
- GD_MAIN_TOOLBAR (self),
- biji_item_get_title (BIJI_ITEM (note)),
- NULL);
+ gtk_header_bar_set_title (GTK_HEADER_BAR (self),
+ biji_item_get_title (BIJI_ITEM (note)));
+ gtk_header_bar_set_subtitle (GTK_HEADER_BAR (self), NULL);
}
static void
@@ -652,9 +674,9 @@ static void
populate_bar_for_note_view (BjbMainToolbar *self)
{
BjbMainToolbarPrivate *priv = self->priv;
- GdMainToolbar *bar = GD_MAIN_TOOLBAR (self);
+ GtkHeaderBar *bar = GTK_HEADER_BAR (self);
BjbSettings *settings;
- GtkWidget *grid, *notes_icon, *notes_label, *button;
+ GtkWidget *grid, *notes_icon, *notes_label;
GdkRGBA color;
BijiItem *item;
@@ -673,17 +695,19 @@ populate_bar_for_note_view (BjbMainToolbar *self)
notes_label = gtk_label_new (_("Notes"));
gtk_box_pack_start (GTK_BOX (grid), notes_label, TRUE, TRUE, TRUE);
- button = gtk_button_new ();
- gtk_container_add (GTK_CONTAINER (button), grid);
- gd_main_toolbar_add_widget (bar, button, TRUE);
+ priv->back = gtk_button_new ();
+ gtk_container_add (GTK_CONTAINER (priv->back), grid);
+ gtk_header_bar_pack_start (bar, priv->back);
- g_signal_connect_swapped (button, "clicked",
+ g_signal_connect_swapped (priv->back, "clicked",
G_CALLBACK (just_switch_to_main_view), self);
- gtk_widget_add_accelerator (button, "activate", self->priv->accel,
+ gtk_widget_add_accelerator (priv->back, "activate", self->priv->accel,
GDK_KEY_w, GDK_CONTROL_MASK, GTK_ACCEL_MASK);
/* Note Title */
- gd_main_toolbar_set_labels (bar, biji_item_get_title (item), NULL);
+
+ gtk_header_bar_set_title (bar, biji_item_get_title (item));
+ gtk_header_bar_set_subtitle (bar, NULL);
self->priv->note_renamed = g_signal_connect (priv->note,"renamed",
G_CALLBACK (on_note_renamed), self);
@@ -701,24 +725,27 @@ populate_bar_for_note_view (BjbMainToolbar *self)
g_free (default_color);
}
- button = bjb_color_button_new ();
- gtk_widget_set_tooltip_text (button, _("Note color"));
- gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (button), &color);
+ priv->color = bjb_color_button_new ();
+ gtk_widget_set_tooltip_text (priv->color, _("Note color"));
+ gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (priv->color), &color);
+
- gd_main_toolbar_add_widget (bar, button, FALSE);
- gtk_widget_set_size_request (gtk_bin_get_child (GTK_BIN (button)),
+ gtk_header_bar_pack_end (bar, priv->color);
+ gtk_widget_set_size_request (gtk_bin_get_child (GTK_BIN (priv->color)),
COLOR_SIZE, COLOR_SIZE);
- gtk_widget_show (button);
+ gtk_widget_show (priv->color);
- g_signal_connect (button, "color-set",
+ g_signal_connect (priv->color, "color-set",
G_CALLBACK (on_color_button_clicked), self);
priv->note_color_changed = g_signal_connect (priv->note, "color-changed",
- G_CALLBACK (on_note_color_changed), button);
+ G_CALLBACK (on_note_color_changed), priv->color);
}
/* Sharing */
- priv->share = gd_main_toolbar_add_button (bar, "send-to-symbolic",
- NULL, FALSE);
+
+ priv->share = gd_header_simple_button_new ();
+ gd_header_button_set_symbolic_icon_name (GD_HEADER_BUTTON (priv->share), "send-to-symbolic");
+ gtk_header_bar_pack_end (GTK_HEADER_BAR (self), priv->share);
gtk_widget_set_tooltip_text (priv->share, _("Share note"));
g_signal_connect (priv->share, "clicked",
@@ -732,13 +759,14 @@ populate_bar_for_note_view (BjbMainToolbar *self)
on_note_content_changed (self);
/* Menu */
- button = gd_main_toolbar_add_menu (bar,
- "emblem-system-symbolic",
- NULL,
- FALSE);
- gtk_widget_set_tooltip_text (button, _("More options…"));
- gtk_menu_button_set_popup (GTK_MENU_BUTTON (button),
+ priv->menu = gd_header_menu_button_new ();
+ gd_header_button_set_symbolic_icon_name (GD_HEADER_BUTTON (priv->menu),
+ "emblem-system-symbolic");
+ gtk_header_bar_pack_end (bar, priv->menu);
+ gtk_widget_set_tooltip_text (priv->menu, _("More options…"));
+
+ gtk_menu_button_set_popup (GTK_MENU_BUTTON (priv->menu),
bjb_note_menu_new (self));
}
@@ -829,7 +857,8 @@ populate_main_toolbar(BjbMainToolbar *self)
disconnect_note_handlers (priv);
priv->type = to_be;
- gd_main_toolbar_clear (GD_MAIN_TOOLBAR (self));
+ bjb_main_toolbar_clear (self);
+
if (priv->search_handler != 0)
{
@@ -874,6 +903,7 @@ bjb_main_toolbar_init (BjbMainToolbar *self)
priv->type = BJB_TOOLBAR_0 ;
+ priv->back = NULL;
priv->grid = NULL;
priv->list = NULL;
priv->search = NULL;
@@ -883,6 +913,10 @@ bjb_main_toolbar_init (BjbMainToolbar *self)
priv->accel = NULL;
priv->note = NULL;
+ priv->back = NULL;
+ priv->color = NULL;
+ priv->menu = NULL;
+ priv->share = NULL;
priv->note_renamed = 0;
priv->note_color_changed = 0;
@@ -985,7 +1019,6 @@ BjbMainToolbar *
bjb_main_toolbar_new (BjbMainView *parent,
BjbController *controller)
{
- /* Since heriting GdMainToolbar, we populate bar _after_ construct */
BjbMainToolbar *self;
self = BJB_MAIN_TOOLBAR (g_object_new (BJB_TYPE_MAIN_TOOLBAR,
diff --git a/src/bjb-main-toolbar.h b/src/bjb-main-toolbar.h
index 7437af7..3429ad3 100644
--- a/src/bjb-main-toolbar.h
+++ b/src/bjb-main-toolbar.h
@@ -21,7 +21,6 @@ bijiben is free software: you can redistribute it and/or modify it
#include <glib-object.h>
#include <gtk/gtk.h>
-#include <libgd/gd.h>
#include "bjb-main-view.h"
@@ -40,20 +39,25 @@ typedef struct _BjbMainToolbarPrivate BjbMainToolbarPrivate;
struct _BjbMainToolbarClass
{
- GdMainToolbarClass parent_class;
+ GtkHeaderBarClass parent_class;
};
struct _BjbMainToolbar
{
- GdMainToolbar parent_instance;
+ GtkHeaderBar parent_instance;
BjbMainToolbarPrivate *priv;
};
-GType bjb_main_toolbar_get_type (void) G_GNUC_CONST;
-BjbMainToolbar *bjb_main_toolbar_new (BjbMainView *parent, BjbController *controller);
+GType bjb_main_toolbar_get_type (void) G_GNUC_CONST;
-void bjb_main_toolbar_set_search_toggle_state (BjbMainToolbar *self, gboolean active);
+
+BjbMainToolbar *bjb_main_toolbar_new (BjbMainView *parent,
+ BjbController *controller);
+
+
+void bjb_main_toolbar_set_search_toggle_state (BjbMainToolbar *self,
+ gboolean active);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]