[bijiben] selections: Update the selection bar to newer pattern
- From: Pierre-Yves Luyten <pyluyten src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [bijiben] selections: Update the selection bar to newer pattern
- Date: Fri, 9 Aug 2013 01:02:47 +0000 (UTC)
commit 86f927efce1b7d101760cd45f2dc96273f9adc1b
Author: Pierre-Yves Luyten <py luyten fr>
Date: Fri Aug 9 03:01:54 2013 +0200
selections: Update the selection bar to newer pattern
src/bjb-main-toolbar.c | 9 ++--
src/bjb-main-view.c | 8 +---
src/bjb-selection-toolbar.c | 93 +++++++++++++------------------------------
src/bjb-selection-toolbar.h | 4 +-
4 files changed, 36 insertions(+), 78 deletions(-)
---
diff --git a/src/bjb-main-toolbar.c b/src/bjb-main-toolbar.c
index fbdc482..ebad076 100644
--- a/src/bjb-main-toolbar.c
+++ b/src/bjb-main-toolbar.c
@@ -321,22 +321,21 @@ update_selection_buttons (BjbController *controller,
static void
populate_bar_for_selection (BjbMainToolbar *self)
{
- BjbMainToolbarPrivate *priv = self->priv;
- GtkStyleContext *context;
+ BjbMainToolbarPrivate *priv;
+
+ priv = self->priv;
/* Search button */
add_search_button (self);
/* Select */
- priv->select = gtk_button_new_with_mnemonic (_("Done"));
+ priv->select = gtk_button_new_with_mnemonic (_("Cancel"));
gtk_widget_set_valign (priv->select, GTK_ALIGN_CENTER);
gtk_style_context_add_class (gtk_widget_get_style_context (priv->select),
"text-button");
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");
gtk_widget_reset_style (priv->select);
g_signal_connect (priv->select, "clicked",
diff --git a/src/bjb-main-view.c b/src/bjb-main-view.c
index bc296b5..db579e8 100644
--- a/src/bjb-main-view.c
+++ b/src/bjb-main-view.c
@@ -448,13 +448,9 @@ bjb_main_view_constructed(GObject *o)
priv->view = gd_main_view_new (DEFAULT_VIEW);
/* Main view */
- overlay = GTK_OVERLAY (gtk_overlay_new ());
-
gd_main_view_set_selection_mode (priv->view, FALSE);
gd_main_view_set_model (priv->view, bjb_controller_get_model(priv->controller));
-
- gtk_container_add (GTK_CONTAINER (overlay), GTK_WIDGET (priv->view));
- gtk_box_pack_start (vbox, GTK_WIDGET (overlay), TRUE, TRUE, 0);
+ gtk_box_pack_start (vbox, GTK_WIDGET (priv->view), TRUE, TRUE, 0);
/* Load more */
priv->load_more = bjb_load_more_button_new (priv->controller);
@@ -462,7 +458,7 @@ bjb_main_view_constructed(GObject *o)
/* Selection Panel */
priv->select_bar = bjb_selection_toolbar_new (priv->view, self);
- gtk_overlay_add_overlay (overlay, GTK_WIDGET (priv->select_bar));
+ gtk_box_pack_start (vbox, priv->select_bar, FALSE, FALSE, 0);
/* Drag n drop */
gtk_drag_dest_set (GTK_WIDGET (priv->view), GTK_DEST_DEFAULT_ALL,
diff --git a/src/bjb-selection-toolbar.c b/src/bjb-selection-toolbar.c
index d171f43..c749645 100644
--- a/src/bjb-selection-toolbar.c
+++ b/src/bjb-selection-toolbar.c
@@ -42,6 +42,8 @@ static GParamSpec *properties[NUM_PROPERTIES] = { NULL, };
struct _BjbSelectionToolbarPrivate
{
+ GtkHeaderBar *bar;
+
GtkWidget *toolbar_trash;
GtkWidget *toolbar_color;
GtkWidget *toolbar_tag;
@@ -59,7 +61,7 @@ struct _BjbSelectionToolbarPrivate
GtkWidget *right_box;
};
-G_DEFINE_TYPE (BjbSelectionToolbar, bjb_selection_toolbar, GTK_TYPE_TOOLBAR);
+G_DEFINE_TYPE (BjbSelectionToolbar, bjb_selection_toolbar, GTK_TYPE_REVEALER);
/*
@@ -71,7 +73,7 @@ G_DEFINE_TYPE (BjbSelectionToolbar, bjb_selection_toolbar, GTK_TYPE_TOOLBAR);
static void
hide_self (GtkWidget *self)
{
- gtk_widget_set_visible (self, FALSE);
+ gtk_revealer_set_reveal_child (GTK_REVEALER (self), TRUE);
}
@@ -130,14 +132,14 @@ action_delete_selected_items (GtkWidget *w, BjbSelectionToolbar *self)
static void
bjb_selection_toolbar_fade_in (BjbSelectionToolbar *self)
{
- gtk_widget_set_opacity (self->priv->widget, 1);
+ gtk_revealer_set_reveal_child (GTK_REVEALER (self), TRUE);
}
static void
bjb_selection_toolbar_fade_out (BjbSelectionToolbar *self)
{
- gtk_widget_set_opacity (self->priv->widget, 0);
+ gtk_revealer_set_reveal_child (GTK_REVEALER (self), FALSE);
}
@@ -153,19 +155,16 @@ bjb_selection_toolbar_set_item_visibility (BjbSelectionToolbar *self)
priv = self->priv;
selection = bjb_main_view_get_selected_items (priv->view);
- /* Trash, always */
- gtk_widget_set_visible (priv->toolbar_trash, TRUE);
-
/* Color */
- gtk_widget_set_visible (priv->toolbar_color, FALSE);
+ gtk_widget_set_sensitive (priv->toolbar_color, FALSE);
for (l=selection; l !=NULL; l=l->next)
{
if (!biji_item_has_color (l->data))
{
- gtk_widget_set_visible (priv->toolbar_color, FALSE);
+ gtk_widget_set_sensitive (priv->toolbar_color, FALSE);
break;
}
@@ -174,7 +173,7 @@ bjb_selection_toolbar_set_item_visibility (BjbSelectionToolbar *self)
if (biji_note_obj_get_rgba (BIJI_NOTE_OBJ (l->data), &color))
{
gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (priv->toolbar_color), &color);
- gtk_widget_set_visible (priv->toolbar_color, TRUE);
+ gtk_widget_set_sensitive (priv->toolbar_color, TRUE);
break;
}
}
@@ -182,13 +181,13 @@ bjb_selection_toolbar_set_item_visibility (BjbSelectionToolbar *self)
/* Organize */
- gtk_widget_set_visible (priv->toolbar_tag, TRUE);
+ gtk_widget_set_sensitive (priv->toolbar_tag, TRUE);
for (l=selection; l!=NULL; l=l->next)
{
if (!biji_item_is_collectable (l->data))
{
- gtk_widget_set_visible (priv->toolbar_tag, FALSE);
+ gtk_widget_set_sensitive (priv->toolbar_tag, FALSE);
break;
}
}
@@ -226,74 +225,38 @@ static void
bjb_selection_toolbar_init (BjbSelectionToolbar *self)
{
BjbSelectionToolbarPrivate *priv;
- GtkWidget *image;
- GtkStyleContext *context;
- GdkRGBA color = {0.0, 0.0, 0.0, 0.0};
- GtkToolbar *tlbar;
+ GtkWidget *widget;
+
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, BJB_TYPE_SELECTION_TOOLBAR, BjbSelectionToolbarPrivate);
priv = self->priv;
- priv->widget = GTK_WIDGET (self);
- tlbar = GTK_TOOLBAR (self);
-
- gtk_toolbar_set_show_arrow (tlbar, FALSE);
- gtk_toolbar_set_icon_size (tlbar, GTK_ICON_SIZE_LARGE_TOOLBAR);
-
- gtk_widget_set_halign (priv->widget, GTK_ALIGN_CENTER);
- gtk_widget_set_valign (priv->widget, GTK_ALIGN_END);
- gtk_widget_set_margin_bottom (priv->widget, 40);
- gtk_widget_set_opacity (priv->widget, 0);
- gtk_widget_set_size_request (priv->widget, 500, -1);
+ widget = GTK_WIDGET (self);
- context = gtk_widget_get_style_context (priv->widget);
- gtk_style_context_add_class (context, "osd");
+ gtk_revealer_set_transition_type (
+ GTK_REVEALER (self), GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP);
- gtk_widget_override_background_color (priv->widget,
- GTK_STATE_FLAG_NORMAL,
- &color);
-
- priv->left_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
- priv->left_group = gtk_tool_item_new ();
- gtk_container_add (GTK_CONTAINER (priv->left_group), priv->left_box);
- gtk_toolbar_insert (tlbar, priv->left_group, -1);
- gtk_widget_show_all (GTK_WIDGET (priv->left_group));
+ priv->bar = GTK_HEADER_BAR (gtk_header_bar_new ());
+ gtk_container_add (GTK_CONTAINER (self), GTK_WIDGET (priv->bar));
/* Trash notes */
- priv->toolbar_trash = gtk_button_new ();
- image = gtk_image_new_from_icon_name ("user-trash-symbolic", GTK_ICON_SIZE_INVALID);
- gtk_image_set_pixel_size (GTK_IMAGE (image), 32);
- gtk_container_add (GTK_CONTAINER (priv->toolbar_trash), image);
- gtk_widget_set_tooltip_text (GTK_WIDGET (priv->toolbar_trash), _("Delete"));
- gtk_container_add (GTK_CONTAINER (priv->left_box), priv->toolbar_trash);
+ priv->toolbar_trash = gtk_button_new_with_label (_("Delete"));
+ gtk_header_bar_pack_start (priv->bar, priv->toolbar_trash);
+
/* Notes color */
priv->toolbar_color = bjb_color_button_new ();
- gtk_container_add (GTK_CONTAINER (priv->left_box), priv->toolbar_color);
gtk_widget_set_tooltip_text (GTK_WIDGET (priv->toolbar_color),
_("Note color"));
+ gtk_header_bar_pack_end (priv->bar, priv->toolbar_color);
- priv->separator = gtk_separator_tool_item_new ();
- gtk_separator_tool_item_set_draw (GTK_SEPARATOR_TOOL_ITEM (priv->separator), FALSE);
- gtk_widget_set_visible (GTK_WIDGET (priv->separator), TRUE);
- gtk_tool_item_set_expand (priv->separator, TRUE);
- gtk_toolbar_insert (tlbar, priv->separator, -1);
-
- priv->right_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
- priv->right_group = gtk_tool_item_new ();
- gtk_container_add (GTK_CONTAINER (priv->right_group), priv->right_box);
- gtk_toolbar_insert (tlbar, priv->right_group, -1);
- gtk_widget_show_all (GTK_WIDGET (priv->right_group));
/* Notes tags */
- priv->toolbar_tag = gtk_button_new ();
- image = gtk_image_new_from_icon_name ("list-add-symbolic", GTK_ICON_SIZE_INVALID);
- gtk_image_set_pixel_size (GTK_IMAGE (image), 32);
- gtk_container_add (GTK_CONTAINER (priv->toolbar_tag), image);
- gtk_widget_set_tooltip_text (GTK_WIDGET (priv->toolbar_tag),
- _("Edit collections"));
- gtk_container_add (GTK_CONTAINER (priv->right_box), priv->toolbar_tag);
-
- gtk_widget_show_all (priv->widget);
+ priv->toolbar_tag = gtk_button_new_with_label (_("Add to Collection"));
+ gtk_header_bar_pack_end (priv->bar, priv->toolbar_tag);
+
+
+ gtk_widget_show_all (widget);
+ bjb_selection_toolbar_fade_out (self);
}
static void
diff --git a/src/bjb-selection-toolbar.h b/src/bjb-selection-toolbar.h
index 3289166..d956e71 100644
--- a/src/bjb-selection-toolbar.h
+++ b/src/bjb-selection-toolbar.h
@@ -41,13 +41,13 @@ typedef struct _BjbSelectionToolbarPrivate BjbSelectionToolbarPrivate;
struct _BjbSelectionToolbar
{
- GtkToolbar parent_instance;
+ GtkRevealer parent_instance;
BjbSelectionToolbarPrivate *priv;
};
struct _BjbSelectionToolbarClass
{
- GtkToolbarClass parent_class;
+ GtkRevealerClass parent_class;
};
GType bjb_selection_toolbar_get_type (void) G_GNUC_CONST;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]