[bijiben] bjb-editor-toolbar: moved from GtkPopover to GtkActionBar
- From: Pierre-Yves Luyten <pyluyten src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [bijiben] bjb-editor-toolbar: moved from GtkPopover to GtkActionBar
- Date: Sat, 25 Feb 2017 22:29:14 +0000 (UTC)
commit 81a8fe5245119663f15edb32aebaf9ebe3be5306
Author: Iñigo MartÃnez <inigomartinez gmail com>
Date: Sat Feb 25 23:28:35 2017 +0100
bjb-editor-toolbar: moved from GtkPopover to GtkActionBar
Popover approach had placement issues so it has been converted
to a GtkActionBar following one of the proposals from the GNOME
Desing team.
https://bugzilla.gnome.org/show_bug.cgi?id=728859
src/bjb-editor-toolbar.c | 374 +++++++++++++---------------------------------
src/bjb-editor-toolbar.h | 12 +-
src/bjb-note-view.c | 24 ++-
src/bjb-window-base.c | 2 +-
4 files changed, 129 insertions(+), 283 deletions(-)
---
diff --git a/src/bjb-editor-toolbar.c b/src/bjb-editor-toolbar.c
index d6c4fb4..7ca6dac 100644
--- a/src/bjb-editor-toolbar.c
+++ b/src/bjb-editor-toolbar.c
@@ -1,6 +1,7 @@
/* bjb-editor-toolbar.c
* Copyright © 2012, 2013 Red Hat, Inc.
* Copyright © 2013 Pierre-Yves LUYTEN <py luyten fr>
+ * Copyright © 2017 Iñigo MartÃnez <inigomartinez gmail com>
*
* bijiben is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -35,6 +36,7 @@
#include "bjb-editor-toolbar.h"
#include "bjb-window-base.h"
+#define CENTER_BUTTONS_SPACING 6
enum
{
@@ -52,17 +54,17 @@ struct _BjbEditorToolbarPrivate
BjbNoteView *view;
BijiNoteObj *note;
- GtkWidget *widget;
GtkAccelGroup *accel;
- /* If user rigth-clicks we want to keep the toolbar visible
- * untill user changes his mind */
- gboolean glued;
+ GtkWidget *box_actions;
+
+ GtkWidget *box_center;
+ GtkWidget *box_style;
+ GtkWidget *box_points;
/* Do not use toggle buttons. uggly there.
* Paste : the user might want to paste overriding selected text.
* Other : when no selection the user won't try to bold "null".*/
- GtkWidget *box;
GtkWidget *toolbar_cut;
GtkWidget *toolbar_copy;
GtkWidget *toolbar_paste;
@@ -74,23 +76,7 @@ struct _BjbEditorToolbarPrivate
GtkWidget *toolbar_link;
};
-G_DEFINE_TYPE (BjbEditorToolbar, bjb_editor_toolbar, G_TYPE_OBJECT);
-
-static void
-bjb_editor_toolbar_fade_in (BjbEditorToolbar *self)
-{
- BjbEditorToolbarPrivate *priv = self->priv;
- gtk_widget_show (priv->widget);
-}
-
-
-
-static void
-bjb_editor_toolbar_fade_out (BjbEditorToolbar *self)
-{
- gtk_widget_hide (self->priv->widget);
-}
-
+G_DEFINE_TYPE (BjbEditorToolbar, bjb_editor_toolbar, GTK_TYPE_ACTION_BAR);
static void
bjb_editor_toolbar_init (BjbEditorToolbar *self)
@@ -141,182 +127,83 @@ bjb_editor_toolbar_set_property (GObject *object,
}
}
-
-/* TODO identify selected text. if some text is selected,
- * compute x (left), y (top), width (columns), height (rows) */
-static void
-editor_toolbar_align (BjbEditorToolbar *self, GdkEvent *event)
-{
- gint x_alignment, y_alignment;
- BjbEditorToolbarPrivate *priv = self->priv;
- cairo_rectangle_int_t rect;
- GtkWidget *top;
- GdkDisplay *display;
- GdkCursor* cursor;
-
- if (event)
- {
- x_alignment = event->button.x;// + EDITOR_TOOLBAR_X_OFFSET;
- y_alignment = event->button.y + EDITOR_TOOLBAR_Y_OFFSET;
-
- if ( x_alignment < 0)
- x_alignment = 0;
-
- rect.x = x_alignment;
- rect.y = y_alignment;
- rect.width = 1;
- rect.height = 1;
-
- gtk_popover_set_pointing_to (GTK_POPOVER (priv->widget), &rect);
- }
-
- /* Hide the cursor from the main view */
- top = gtk_widget_get_toplevel (priv->widget);
-
- if (gtk_widget_is_toplevel (top))
- {
- display = gdk_screen_get_display (gtk_window_get_screen (GTK_WINDOW (top)));
- cursor = gdk_cursor_new_for_display (display, GDK_BLANK_CURSOR);
- gdk_window_set_cursor (gtk_widget_get_window (biji_note_obj_get_editor (priv->note)),
- cursor);
- }
-}
-
-static void
-show_edit_bar (BjbEditorToolbar *self, GdkEvent *event)
-{
- if (event)
- editor_toolbar_align (self, event);
-
- bjb_editor_toolbar_fade_in (self);
-}
-
-static gboolean
-on_button_released (GtkWidget *widget,
- GdkEvent *event,
- BjbEditorToolbar *self)
-{
- switch (event->button.button)
- {
- /* If left click, see if selection */
- case 1:
- if (biji_note_obj_editor_has_selection (self->priv->note))
- show_edit_bar (self, event);
-
- else
- bjb_editor_toolbar_fade_out (self);
-
- return FALSE;
-
- default:
- return FALSE;
- }
-}
-
-
static gboolean
-on_key_released (GtkWidget *widget,
- GdkEvent *event,
- gpointer user_data)
+on_release_event (GtkWidget *widget,
+ GdkEvent *event,
+ BjbEditorToolbar *self)
{
- BjbEditorToolbar *self = BJB_EDITOR_TOOLBAR (user_data);
-
- /* Do not provide event. Event is null in order not to align */
- if (biji_note_obj_editor_has_selection (self->priv->note))
- show_edit_bar (self, NULL);
-
- else
- bjb_editor_toolbar_fade_out (self);
+ gtk_widget_set_visible (GTK_WIDGET (self),
+ biji_note_obj_editor_has_selection (self->priv->note));
return FALSE;
}
-static gboolean
-on_button_pressed (GtkWidget *widget,
- GdkEvent *event,
- BjbEditorToolbar *self)
-{
- switch (event->button.button)
- {
- /* Show toolbar on right-click */
- case 3:
- show_edit_bar (self, event);
- return TRUE;
-
- /* Do not break stuff otherwise */
- default :
- return FALSE;
- }
-}
-
-static gboolean
-on_cut_clicked (GtkWidget *button, BjbEditorToolbar *self)
+static void
+on_cut_clicked (GtkWidget *button,
+ BjbEditorToolbar *self)
{
biji_note_obj_editor_cut (self->priv->note);
- bjb_editor_toolbar_fade_out (self);
- return TRUE ;
}
-static gboolean
-on_copy_clicked (GtkWidget *button, BjbEditorToolbar *self)
+static void
+on_copy_clicked (GtkWidget *button,
+ BjbEditorToolbar *self)
{
biji_note_obj_editor_copy (self->priv->note);
- bjb_editor_toolbar_fade_out (self);
- return TRUE ;
}
-static gboolean
-on_paste_clicked (GtkWidget *button, BjbEditorToolbar *self)
+static void
+on_paste_clicked (GtkWidget *button,
+ BjbEditorToolbar *self)
{
biji_note_obj_editor_paste (self->priv->note);
- bjb_editor_toolbar_fade_out (self);
- return TRUE ;
}
static void
-bold_button_callback (GtkWidget *button, BjbEditorToolbar *self)
+bold_button_callback (GtkWidget *button,
+ BjbEditorToolbar *self)
{
biji_note_obj_editor_apply_format (self->priv->note, BIJI_BOLD);
- bjb_editor_toolbar_fade_out (self);
}
static void
-italic_button_callback (GtkWidget *button, BjbEditorToolbar *self)
+italic_button_callback (GtkWidget *button,
+ BjbEditorToolbar *self)
{
biji_note_obj_editor_apply_format (self->priv->note, BIJI_ITALIC);
- bjb_editor_toolbar_fade_out (self);
}
static void
-strike_button_callback (GtkWidget *button, BjbEditorToolbar *self)
+strike_button_callback (GtkWidget *button,
+ BjbEditorToolbar *self)
{
biji_note_obj_editor_apply_format (self->priv->note, BIJI_STRIKE);
- bjb_editor_toolbar_fade_out (self);
}
static void
-on_bullet_clicked (GtkWidget *button, BjbEditorToolbar *self)
+on_bullet_clicked (GtkWidget *button,
+ BjbEditorToolbar *self)
{
biji_note_obj_editor_apply_format (self->priv->note, BIJI_BULLET_LIST);
- bjb_editor_toolbar_fade_out (self);
}
static void
-on_list_clicked (GtkWidget *button, BjbEditorToolbar *self)
+on_list_clicked (GtkWidget *button,
+ BjbEditorToolbar *self)
{
biji_note_obj_editor_apply_format (self->priv->note, BIJI_ORDER_LIST);
- bjb_editor_toolbar_fade_out (self);
}
static void
-link_callback (GtkWidget *button, BjbEditorToolbar *self)
+link_callback (GtkWidget *button,
+ BjbEditorToolbar *self)
{
BjbSettings *settings;
gchar *link;
GtkWidget *window;
BijiNoteObj *result;
- GdkRGBA color;
- BijiManager *manager;
+ GdkRGBA color;
+ BijiManager *manager;
BjbEditorToolbarPrivate *priv = self->priv;
link = biji_note_obj_editor_get_selection (priv->note);
@@ -337,156 +224,109 @@ link_callback (GtkWidget *button, BjbEditorToolbar *self)
biji_note_obj_set_rgba (result, &color);
bijiben_new_window_for_note(g_application_get_default(), result);
- bjb_editor_toolbar_fade_out (self);
}
static void
bjb_editor_toolbar_constructed (GObject *obj)
{
- BjbEditorToolbar *self;
- BjbEditorToolbarPrivate *priv;
- GtkWidget *view;
- GtkWidget *window;
- GtkWidget *image;
- GdkPixbuf *pixbuf;
- gchar *icons_path, *full_path;
- GError *error = NULL;
+ BjbEditorToolbar *self;
+ BjbEditorToolbarPrivate *priv;
+ GtkWidget *view;
+ GtkWidget *window;
+ gboolean can_format;
G_OBJECT_CLASS (bjb_editor_toolbar_parent_class)->constructed (obj);
self = BJB_EDITOR_TOOLBAR (obj);
priv = self->priv;
window = bjb_note_view_get_base_window (priv->view);
+ can_format = biji_note_obj_can_format (priv->note);
gtk_window_add_accel_group (GTK_WINDOW (window), priv->accel);
-
- /* Popover */
- priv->widget = gtk_popover_new (GTK_WIDGET (priv->view));
- gtk_style_context_add_class (gtk_widget_get_style_context (priv->widget),
+ /* Action Bar */
+ gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (self)),
GTK_STYLE_CLASS_OSD);
- gtk_popover_set_position (GTK_POPOVER (priv->widget),
- GTK_POS_TOP);
- gtk_popover_set_modal (GTK_POPOVER (priv->widget), FALSE);
-
-
- /* Toolbar */
- priv->box = GTK_WIDGET (gtk_toolbar_new ());
- gtk_toolbar_set_style (GTK_TOOLBAR (priv->box), GTK_TOOLBAR_TEXT);
- gtk_toolbar_set_show_arrow (GTK_TOOLBAR (priv->box), FALSE);
- gtk_widget_show (priv->box);
- gtk_container_add (GTK_CONTAINER (priv->widget), priv->box);
+ priv->box_actions = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+ gtk_widget_show (priv->box_actions);
+ gtk_action_bar_pack_start (GTK_ACTION_BAR (self), priv->box_actions);
/* Cut */
- priv->toolbar_cut = GTK_WIDGET (gtk_tool_button_new (NULL, _("Cut")));
- gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (priv->toolbar_cut), TRUE);
+ priv->toolbar_cut = gtk_button_new_with_label (_("Cut"));
+ gtk_button_set_use_underline (GTK_BUTTON (priv->toolbar_cut), TRUE);
gtk_widget_show (priv->toolbar_cut);
- gtk_toolbar_insert (GTK_TOOLBAR (priv->box), GTK_TOOL_ITEM (priv->toolbar_cut), -1);
-
+ gtk_box_pack_start (GTK_BOX (priv->box_actions), priv->toolbar_cut, TRUE, TRUE, 0);
/* Copy */
- priv->toolbar_copy = GTK_WIDGET (gtk_tool_button_new (NULL, _("Copy")));
- gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (priv->toolbar_copy), TRUE);
+ priv->toolbar_copy = gtk_button_new_with_label (_("Copy"));
+ gtk_button_set_use_underline (GTK_BUTTON (priv->toolbar_copy), TRUE);
gtk_widget_show (priv->toolbar_copy);
- gtk_toolbar_insert (GTK_TOOLBAR (priv->box), GTK_TOOL_ITEM (priv->toolbar_copy), -1);
+ gtk_box_pack_start (GTK_BOX (priv->box_actions), priv->toolbar_copy, TRUE, TRUE, 0);
/* 'n paste */
- priv->toolbar_paste = GTK_WIDGET (gtk_tool_button_new (NULL, _("Paste")));
- gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (priv->toolbar_paste), TRUE);
+ priv->toolbar_paste = gtk_button_new_with_label (_("Paste"));
+ gtk_button_set_use_underline (GTK_BUTTON (priv->toolbar_paste), TRUE);
gtk_widget_show (priv->toolbar_paste);
- gtk_toolbar_insert (GTK_TOOLBAR (priv->box), GTK_TOOL_ITEM (priv->toolbar_paste), -1);
-
- if (biji_note_obj_can_format (priv->note))
- {
-
- /* Bullet
- * Translator : "* " stands for a bullet list.
- * This is displayed inside a button. */
- priv->toolbar_bullet = GTK_WIDGET (gtk_tool_button_new (NULL, _("* ")));
- gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (priv->toolbar_bullet), TRUE);
- gtk_widget_show (priv->toolbar_bullet);
- gtk_toolbar_insert (GTK_TOOLBAR (priv->box), GTK_TOOL_ITEM (priv->toolbar_bullet), -1);
-
- /* List
- * Translator : this "1." temporarilly stands for ordered list.
- * This is displayed inside a button. */
- priv->toolbar_list = GTK_WIDGET (gtk_tool_button_new (NULL, _("1.")));
- gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (priv->toolbar_list), TRUE);
- gtk_widget_show (priv->toolbar_list);
- gtk_toolbar_insert (GTK_TOOLBAR (priv->box), GTK_TOOL_ITEM (priv->toolbar_list), -1);
-
-
- /* Bold */
- image = gtk_image_new_from_icon_name ("format-text-bold-symbolic", GTK_ICON_SIZE_INVALID);
- gtk_image_set_pixel_size (GTK_IMAGE (image), 24);
- priv->toolbar_bold = GTK_WIDGET (gtk_tool_button_new (image, NULL));
- gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (priv->toolbar_bold), TRUE);
- gtk_widget_show_all (priv->toolbar_bold);
- gtk_toolbar_insert (GTK_TOOLBAR (priv->box), GTK_TOOL_ITEM (priv->toolbar_bold), -1);
- gtk_widget_set_tooltip_text (GTK_WIDGET (priv->toolbar_bold), _("Bold"));
-
-
- /* Italic */
- image = gtk_image_new_from_icon_name ("format-text-italic-symbolic", GTK_ICON_SIZE_INVALID);
- gtk_image_set_pixel_size (GTK_IMAGE (image), 24);
- priv->toolbar_italic = GTK_WIDGET (gtk_tool_button_new (image, NULL));
- gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (priv->toolbar_italic), TRUE);
- gtk_widget_show_all (priv->toolbar_italic);
- gtk_toolbar_insert (GTK_TOOLBAR (priv->box), GTK_TOOL_ITEM (priv->toolbar_italic), -1);
- gtk_widget_set_tooltip_text (GTK_WIDGET (priv->toolbar_italic), _("Italic"));
-
-
- /* Strike */
- image = gtk_image_new_from_icon_name ("format-text-strikethrough-symbolic", GTK_ICON_SIZE_INVALID);
- gtk_image_set_pixel_size (GTK_IMAGE (image), 24);
- priv->toolbar_strike = GTK_WIDGET (gtk_tool_button_new (image, NULL));
- gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (priv->toolbar_strike), TRUE);
- gtk_widget_show_all (priv->toolbar_strike);
- gtk_toolbar_insert (GTK_TOOLBAR (priv->box), GTK_TOOL_ITEM (priv->toolbar_strike), -1);
- gtk_widget_set_tooltip_text (GTK_WIDGET (priv->toolbar_strike), _("Strike"));
- }
-
+ gtk_box_pack_start (GTK_BOX (priv->box_actions), priv->toolbar_paste, TRUE, TRUE, 0);
+
+ priv->box_center = gtk_box_new (GTK_ORIENTATION_HORIZONTAL,CENTER_BUTTONS_SPACING);
+ gtk_widget_show (priv->box_center);
+ gtk_action_bar_set_center_widget (GTK_ACTION_BAR (self), priv->box_center);
+
+ priv->box_style = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+ gtk_widget_show (priv->box_style);
+ gtk_box_pack_start (GTK_BOX (priv->box_center), priv->box_style, FALSE, TRUE, 0);
+
+ /* Bold */
+ priv->toolbar_bold = gtk_button_new_from_icon_name ("format-text-bold-symbolic",
GTK_ICON_SIZE_LARGE_TOOLBAR);
+ gtk_button_set_use_underline (GTK_BUTTON (priv->toolbar_bold), TRUE);
+ gtk_widget_set_sensitive (priv->toolbar_bold, can_format);
+ gtk_widget_show (priv->toolbar_bold);
+ gtk_widget_set_tooltip_text (priv->toolbar_bold, _("Bold"));
+ gtk_box_pack_start (GTK_BOX (priv->box_style), priv->toolbar_bold, TRUE, TRUE, 0);
+
+ /* Italic */
+ priv->toolbar_italic = gtk_button_new_from_icon_name ("format-text-italic-symbolic",
GTK_ICON_SIZE_LARGE_TOOLBAR);
+ gtk_button_set_use_underline (GTK_BUTTON (priv->toolbar_italic), TRUE);
+ gtk_widget_set_sensitive (priv->toolbar_italic, can_format);
+ gtk_widget_show (priv->toolbar_italic);
+ gtk_widget_set_tooltip_text (priv->toolbar_italic, _("Italic"));
+ gtk_box_pack_start (GTK_BOX (priv->box_style), priv->toolbar_italic, TRUE, TRUE, 0);
+
+ /* Strike */
+ priv->toolbar_strike = gtk_button_new_from_icon_name ("format-text-strikethrough-symbolic",
GTK_ICON_SIZE_LARGE_TOOLBAR);
+ gtk_button_set_use_underline (GTK_BUTTON (priv->toolbar_strike), TRUE);
+ gtk_widget_set_sensitive (priv->toolbar_strike, can_format);
+ gtk_widget_show (priv->toolbar_strike);
+ gtk_widget_set_tooltip_text (priv->toolbar_strike, _("Strike"));
+ gtk_box_pack_start (GTK_BOX (priv->box_style), priv->toolbar_strike, TRUE, TRUE, 0);
+
+ priv->box_points = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+ gtk_widget_show (priv->box_points);
+ gtk_box_pack_start (GTK_BOX (priv->box_center), priv->box_points, FALSE, TRUE, 0);
+
+ /* Bullet */
+ priv->toolbar_bullet = gtk_button_new_with_label (_("* "));
+ gtk_button_set_use_underline (GTK_BUTTON (priv->toolbar_bullet), TRUE);
+ gtk_widget_set_sensitive (priv->toolbar_bullet, can_format);
+ gtk_widget_show (priv->toolbar_bullet);
+ gtk_box_pack_start (GTK_BOX (priv->box_points), priv->toolbar_bullet, TRUE, TRUE, 0);
/* Link */
- icons_path = (gchar*) bijiben_get_bijiben_dir ();
- full_path = g_build_filename (icons_path,
- "bijiben",
- "icons",
- "hicolor",
- "scalable",
- "actions",
- "link.svg",
- NULL);
-
- pixbuf = gdk_pixbuf_new_from_file (full_path, &error);
- g_free (full_path);
-
- if (error)
- g_warning ("error loading link icon : %s",error->message);
-
- image = gtk_image_new_from_pixbuf (pixbuf);
- gtk_image_set_pixel_size (GTK_IMAGE (image), 24);
- priv->toolbar_link = GTK_WIDGET (gtk_tool_button_new (image, NULL));
- gtk_tool_button_set_use_underline (GTK_TOOL_BUTTON (priv->toolbar_link), TRUE);
- gtk_widget_show_all (priv->toolbar_link);
- gtk_toolbar_insert (GTK_TOOLBAR (priv->box), GTK_TOOL_ITEM (priv->toolbar_link), -1);
- gtk_widget_set_tooltip_text (GTK_WIDGET (priv->toolbar_link),
- _("Copy selection to a new note"));
-
-
- priv->glued = FALSE;
+ priv->toolbar_link = gtk_button_new_from_icon_name ("insert-link", GTK_ICON_SIZE_LARGE_TOOLBAR);
+ gtk_button_set_use_underline (GTK_BUTTON (priv->toolbar_link), TRUE);
+ gtk_widget_show (priv->toolbar_link);
+ gtk_widget_set_tooltip_text (priv->toolbar_link, _("Copy selection to a new note"));
+ gtk_action_bar_pack_end (GTK_ACTION_BAR (self), priv->toolbar_link);
/* text selected --> fade in , and not selected --> fade out */
view = biji_note_obj_get_editor (priv->note);
- g_signal_connect(view,"button-press-event",
- G_CALLBACK(on_button_pressed),self);
-
g_signal_connect(view,"button-release-event",
- G_CALLBACK(on_button_released),self);
+ G_CALLBACK(on_release_event),self);
g_signal_connect(view,"key-release-event",
- G_CALLBACK(on_key_released),self);
+ G_CALLBACK(on_release_event),self);
/* buttons */
@@ -577,7 +417,7 @@ bjb_editor_toolbar_class_init (BjbEditorToolbarClass *class)
}
-BjbEditorToolbar *
+GtkWidget *
bjb_editor_toolbar_new (BjbNoteView *bjb_note_view,
BijiNoteObj *biji_note_obj)
{
diff --git a/src/bjb-editor-toolbar.h b/src/bjb-editor-toolbar.h
index 5209916..4276665 100644
--- a/src/bjb-editor-toolbar.h
+++ b/src/bjb-editor-toolbar.h
@@ -1,6 +1,7 @@
/* bjb-editor-toolbar.h
* Copyright © 2012, 2013 Red Hat, Inc.
* Copyright © 2013, 2014 Pierre-Yves LUYTEN <py luyten fr>
+ * Copyright © 2017 Iñigo MartÃnez <inigomartinez gmail com>
*
* bijiben is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
@@ -41,20 +42,19 @@ typedef struct _BjbEditorToolbarPrivate BjbEditorToolbarPrivate;
struct _BjbEditorToolbar
{
- GObject parent_instance;
+ GtkActionBar parent_instance;
BjbEditorToolbarPrivate *priv;
};
struct _BjbEditorToolbarClass
{
- GObjectClass parent_class;
+ GtkActionBarClass parent_class;
};
-GType bjb_editor_toolbar_get_type (void) G_GNUC_CONST;
-
-BjbEditorToolbar *bjb_editor_toolbar_new (BjbNoteView *bjb_note_view,
- BijiNoteObj *biji_note_obj);
+GType bjb_editor_toolbar_get_type (void) G_GNUC_CONST;
+GtkWidget *bjb_editor_toolbar_new (BjbNoteView *bjb_note_view,
+ BijiNoteObj *biji_note_obj);
G_END_DECLS
diff --git a/src/bjb-note-view.c b/src/bjb-note-view.c
index 3283f76..d117ccb 100644
--- a/src/bjb-note-view.c
+++ b/src/bjb-note-view.c
@@ -1,16 +1,17 @@
/* bjb-note-view.c
- * Copyright (C) Pierre-Yves LUYTEN 2012 <py luyten fr>
- *
+ * Copyright © 2012 Pierre-Yves LUYTEN <py luyten fr>
+ * Copyright © 2017 Iñigo MartÃnez <inigomartinez gmail com>
+ *
* bijiben is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
- *
+ *
* bijiben is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
@@ -49,8 +50,8 @@ struct _BjbNoteViewPrivate {
/* UI */
BijiWebkitEditor *editor;
- BjbEditorToolbar *edit_bar;
- gboolean edit_bar_is_sticky;
+ GtkWidget *box;
+ GtkWidget *edit_bar;
GtkWidget *last_update;
};
@@ -229,7 +230,6 @@ bjb_note_view_constructed (GObject *obj)
/* view new from note deserializes the note-content. */
priv->view = biji_note_obj_open (priv->note);
-
g_signal_connect(priv->note,"deleted",
G_CALLBACK(on_note_trashed),self);
g_signal_connect(priv->note,"trashed",
@@ -238,6 +238,9 @@ bjb_note_view_constructed (GObject *obj)
g_signal_connect(priv->window,"destroy",
G_CALLBACK(on_window_closed), priv->note);
+ priv->box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+ gtk_container_add (GTK_CONTAINER (self), priv->box);
+ gtk_widget_show (priv->box);
/* Text Editor (WebKitMainView) */
scroll = gtk_scrolled_window_new (NULL,NULL);
@@ -251,8 +254,8 @@ bjb_note_view_constructed (GObject *obj)
GTK_POLICY_AUTOMATIC);
gtk_container_add (GTK_CONTAINER (scroll), GTK_WIDGET(priv->view));
- gtk_container_add (GTK_CONTAINER (self), scroll);
- gtk_widget_show (GTK_WIDGET (priv->view));
+ gtk_box_pack_start (GTK_BOX (priv->box), scroll, TRUE, TRUE, 0);
+ gtk_widget_show (priv->view);
/* Apply the gsettings font */
@@ -283,6 +286,8 @@ bjb_note_view_constructed (GObject *obj)
/* Edition Toolbar for text selection */
priv->edit_bar = bjb_editor_toolbar_new (self, priv->note);
+ gtk_box_pack_start (GTK_BOX (priv->box), priv->edit_bar, FALSE, TRUE, 0);
+ gtk_widget_hide (priv->edit_bar);
/* Last updated row */
bjb_note_view_last_updated_actor_new (self);
@@ -291,6 +296,7 @@ bjb_note_view_constructed (GObject *obj)
gtk_widget_set_valign (priv->last_update, GTK_ALIGN_END);
gtk_widget_set_margin_bottom (priv->last_update, 50);
gtk_overlay_add_overlay (GTK_OVERLAY (self), priv->last_update);
+ gtk_widget_show (priv->last_update);
}
BjbNoteView *
diff --git a/src/bjb-window-base.c b/src/bjb-window-base.c
index bd668a7..67672f0 100644
--- a/src/bjb-window-base.c
+++ b/src/bjb-window-base.c
@@ -551,7 +551,7 @@ bjb_window_base_switch_to (BjbWindowBase *self, BjbWindowViewType type)
case BJB_WINDOW_BASE_NOTE_VIEW:
- gtk_widget_show_all (GTK_WIDGET (priv->note_view));
+ gtk_widget_show (GTK_WIDGET (priv->note_view));
gtk_widget_hide (GTK_WIDGET (priv->search_bar));
gtk_stack_set_visible_child_name (priv->stack, "note-view");
break;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]