toolbar: Revamp the main toolbar style
Get rid of the text and switch all icons to slightly smaller symoblic icons. This will allow it to behave much better with dark gtk themes. Replace the recent documents button with a button for file open. Changing the style of the buttons on the main toolbar also effects the fullscreen toolbar so update this as well to use a matching layout.
This commit is contained in:
parent
bafaeaca98
commit
94dae95b95
|
@ -1328,19 +1328,9 @@ xed_prefs_manager_max_recents_changed (GSettings *settings,
|
||||||
|
|
||||||
max = g_settings_get_int (settings, key);
|
max = g_settings_get_int (settings, key);
|
||||||
|
|
||||||
if (max < 0) {
|
if (max < 0)
|
||||||
max = GPM_DEFAULT_MAX_RECENTS;
|
|
||||||
}
|
|
||||||
|
|
||||||
windows = xed_app_get_windows (xed_app_get_default ());
|
|
||||||
while (windows != NULL)
|
|
||||||
{
|
{
|
||||||
XedWindow *w = windows->data;
|
max = GPM_DEFAULT_MAX_RECENTS;
|
||||||
|
|
||||||
gtk_recent_chooser_set_limit (GTK_RECENT_CHOOSER (w->priv->toolbar_recent_menu),
|
|
||||||
max);
|
|
||||||
|
|
||||||
windows = g_list_next (windows);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* FIXME: we have no way at the moment to trigger the
|
/* FIXME: we have no way at the moment to trigger the
|
||||||
|
|
22
xed/xed-ui.h
22
xed/xed-ui.h
|
@ -53,9 +53,9 @@ static const GtkActionEntry xed_always_sensitive_menu_entries[] =
|
||||||
{ "Help", NULL, N_("_Help") },
|
{ "Help", NULL, N_("_Help") },
|
||||||
|
|
||||||
/* File menu */
|
/* File menu */
|
||||||
{ "FileNew", GTK_STOCK_NEW, NULL, "<control>N",
|
{ "FileNew", "document-new-symbolic", N_("_New"), "<control>N",
|
||||||
N_("Create a new document"), G_CALLBACK (_xed_cmd_file_new) },
|
N_("Create a new document"), G_CALLBACK (_xed_cmd_file_new) },
|
||||||
{ "FileOpen", GTK_STOCK_OPEN, N_("_Open..."), "<control>O",
|
{ "FileOpen", "document-open-symbolic", N_("_Open..."), "<control>O",
|
||||||
N_("Open a file"), G_CALLBACK (_xed_cmd_file_open) },
|
N_("Open a file"), G_CALLBACK (_xed_cmd_file_open) },
|
||||||
|
|
||||||
/* Edit menu */
|
/* Edit menu */
|
||||||
|
@ -69,7 +69,7 @@ static const GtkActionEntry xed_always_sensitive_menu_entries[] =
|
||||||
N_("About this application"), G_CALLBACK (_xed_cmd_help_about) },
|
N_("About this application"), G_CALLBACK (_xed_cmd_help_about) },
|
||||||
|
|
||||||
/* Fullscreen toolbar */
|
/* Fullscreen toolbar */
|
||||||
{ "LeaveFullscreen", GTK_STOCK_LEAVE_FULLSCREEN, NULL,
|
{ "LeaveFullscreen", "view-restore-symbolic", NULL,
|
||||||
NULL, N_("Leave fullscreen mode"),
|
NULL, N_("Leave fullscreen mode"),
|
||||||
G_CALLBACK (_xed_cmd_view_leave_fullscreen_mode) }
|
G_CALLBACK (_xed_cmd_view_leave_fullscreen_mode) }
|
||||||
};
|
};
|
||||||
|
@ -77,7 +77,7 @@ static const GtkActionEntry xed_always_sensitive_menu_entries[] =
|
||||||
static const GtkActionEntry xed_menu_entries[] =
|
static const GtkActionEntry xed_menu_entries[] =
|
||||||
{
|
{
|
||||||
/* File menu */
|
/* File menu */
|
||||||
{ "FileSave", GTK_STOCK_SAVE, NULL, "<control>S",
|
{ "FileSave", "document-save-symbolic", N_("_Save"), "<control>S",
|
||||||
N_("Save the current file"), G_CALLBACK (_xed_cmd_file_save) },
|
N_("Save the current file"), G_CALLBACK (_xed_cmd_file_save) },
|
||||||
{ "FileSaveAs", GTK_STOCK_SAVE_AS, N_("Save _As..."), "<shift><control>S",
|
{ "FileSaveAs", GTK_STOCK_SAVE_AS, N_("Save _As..."), "<shift><control>S",
|
||||||
N_("Save the current file with a different name"), G_CALLBACK (_xed_cmd_file_save_as) },
|
N_("Save the current file with a different name"), G_CALLBACK (_xed_cmd_file_save_as) },
|
||||||
|
@ -89,15 +89,15 @@ static const GtkActionEntry xed_menu_entries[] =
|
||||||
N_("Print the current page"), G_CALLBACK (_xed_cmd_file_print) },
|
N_("Print the current page"), G_CALLBACK (_xed_cmd_file_print) },
|
||||||
|
|
||||||
/* Edit menu */
|
/* Edit menu */
|
||||||
{ "EditUndo", GTK_STOCK_UNDO, NULL, "<control>Z",
|
{ "EditUndo", "edit-undo-symbolic", N_("Undo"), "<control>Z",
|
||||||
N_("Undo the last action"), G_CALLBACK (_xed_cmd_edit_undo) },
|
N_("Undo the last action"), G_CALLBACK (_xed_cmd_edit_undo) },
|
||||||
{ "EditRedo", GTK_STOCK_REDO, NULL, "<control>Y",
|
{ "EditRedo", "edit-redo-symbolic", N_("Redo"), "<control>Y",
|
||||||
N_("Redo the last undone action"), G_CALLBACK (_xed_cmd_edit_redo) },
|
N_("Redo the last undone action"), G_CALLBACK (_xed_cmd_edit_redo) },
|
||||||
{ "EditCut", GTK_STOCK_CUT, NULL, "<control>X",
|
{ "EditCut", "edit-cut-symbolic", N_("Cut"), "<control>X",
|
||||||
N_("Cut the selection"), G_CALLBACK (_xed_cmd_edit_cut) },
|
N_("Cut the selection"), G_CALLBACK (_xed_cmd_edit_cut) },
|
||||||
{ "EditCopy", GTK_STOCK_COPY, NULL, "<control>C",
|
{ "EditCopy", "edit-copy-symbolic", N_("Copy"), "<control>C",
|
||||||
N_("Copy the selection"), G_CALLBACK (_xed_cmd_edit_copy) },
|
N_("Copy the selection"), G_CALLBACK (_xed_cmd_edit_copy) },
|
||||||
{ "EditPaste", GTK_STOCK_PASTE, NULL, "<control>V",
|
{ "EditPaste", "edit-paste-symbolic", N_("Paste"), "<control>V",
|
||||||
N_("Paste the clipboard"), G_CALLBACK (_xed_cmd_edit_paste) },
|
N_("Paste the clipboard"), G_CALLBACK (_xed_cmd_edit_paste) },
|
||||||
{ "EditDelete", GTK_STOCK_DELETE, NULL, NULL,
|
{ "EditDelete", GTK_STOCK_DELETE, NULL, NULL,
|
||||||
N_("Delete the selected text"), G_CALLBACK (_xed_cmd_edit_delete) },
|
N_("Delete the selected text"), G_CALLBACK (_xed_cmd_edit_delete) },
|
||||||
|
@ -108,13 +108,13 @@ static const GtkActionEntry xed_menu_entries[] =
|
||||||
{ "ViewHighlightMode", NULL, N_("_Highlight Mode") },
|
{ "ViewHighlightMode", NULL, N_("_Highlight Mode") },
|
||||||
|
|
||||||
/* Search menu */
|
/* Search menu */
|
||||||
{ "SearchFind", GTK_STOCK_FIND, N_("_Find..."), "<control>F",
|
{ "SearchFind", "edit-find-symbolic", N_("_Find"), "<control>F",
|
||||||
N_("Search for text"), G_CALLBACK (_xed_cmd_search_find) },
|
N_("Search for text"), G_CALLBACK (_xed_cmd_search_find) },
|
||||||
{ "SearchFindNext", NULL, N_("Find Ne_xt"), "<control>G",
|
{ "SearchFindNext", NULL, N_("Find Ne_xt"), "<control>G",
|
||||||
N_("Search forwards for the same text"), G_CALLBACK (_xed_cmd_search_find_next) },
|
N_("Search forwards for the same text"), G_CALLBACK (_xed_cmd_search_find_next) },
|
||||||
{ "SearchFindPrevious", NULL, N_("Find Pre_vious"), "<shift><control>G",
|
{ "SearchFindPrevious", NULL, N_("Find Pre_vious"), "<shift><control>G",
|
||||||
N_("Search backwards for the same text"), G_CALLBACK (_xed_cmd_search_find_prev) },
|
N_("Search backwards for the same text"), G_CALLBACK (_xed_cmd_search_find_prev) },
|
||||||
{ "SearchReplace", GTK_STOCK_FIND_AND_REPLACE, N_("_Replace..."), "<control>H",
|
{ "SearchReplace", "edit-find-replace-symbolic", N_("_Replace"), "<control>H",
|
||||||
N_("Search for and replace text"), G_CALLBACK (_xed_cmd_search_replace) },
|
N_("Search for and replace text"), G_CALLBACK (_xed_cmd_search_replace) },
|
||||||
{ "SearchGoToLine", GTK_STOCK_JUMP_TO, N_("Go to _Line..."), "<control>I",
|
{ "SearchGoToLine", GTK_STOCK_JUMP_TO, N_("Go to _Line..."), "<control>I",
|
||||||
N_("Go to a specific line"), G_CALLBACK (_xed_cmd_search_goto_line) },
|
N_("Go to a specific line"), G_CALLBACK (_xed_cmd_search_goto_line) },
|
||||||
|
|
|
@ -56,6 +56,7 @@ struct _XedWindowPrivate
|
||||||
|
|
||||||
/* Widgets for fullscreen mode */
|
/* Widgets for fullscreen mode */
|
||||||
GtkWidget *fullscreen_controls;
|
GtkWidget *fullscreen_controls;
|
||||||
|
GtkWidget *fullscreen_controls_container;
|
||||||
guint fullscreen_animation_timeout_id;
|
guint fullscreen_animation_timeout_id;
|
||||||
gboolean fullscreen_animation_enter;
|
gboolean fullscreen_animation_enter;
|
||||||
|
|
||||||
|
@ -79,9 +80,7 @@ struct _XedWindowPrivate
|
||||||
GtkActionGroup *documents_list_action_group;
|
GtkActionGroup *documents_list_action_group;
|
||||||
guint documents_list_menu_ui_id;
|
guint documents_list_menu_ui_id;
|
||||||
GtkWidget *toolbar;
|
GtkWidget *toolbar;
|
||||||
GtkWidget *toolbar_recent_menu;
|
|
||||||
GtkWidget *menubar;
|
GtkWidget *menubar;
|
||||||
XedToolbarSetting toolbar_style;
|
|
||||||
|
|
||||||
/* recent files */
|
/* recent files */
|
||||||
GtkActionGroup *recents_action_group;
|
GtkActionGroup *recents_action_group;
|
||||||
|
|
286
xed/xed-window.c
286
xed/xed-window.c
|
@ -393,34 +393,6 @@ disconnect_proxy_cb (GtkUIManager *manager,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
apply_toolbar_style (XedWindow *window,
|
|
||||||
GtkWidget *toolbar)
|
|
||||||
{
|
|
||||||
switch (window->priv->toolbar_style)
|
|
||||||
{
|
|
||||||
case XED_TOOLBAR_SYSTEM:
|
|
||||||
xed_debug_message (DEBUG_WINDOW, "XED: SYSTEM");
|
|
||||||
gtk_toolbar_unset_style (GTK_TOOLBAR(toolbar));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case XED_TOOLBAR_ICONS:
|
|
||||||
xed_debug_message (DEBUG_WINDOW, "XED: ICONS");
|
|
||||||
gtk_toolbar_set_style (GTK_TOOLBAR(toolbar), GTK_TOOLBAR_ICONS);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case XED_TOOLBAR_ICONS_AND_TEXT:
|
|
||||||
xed_debug_message (DEBUG_WINDOW, "XED: ICONS_AND_TEXT");
|
|
||||||
gtk_toolbar_set_style (GTK_TOOLBAR(toolbar), GTK_TOOLBAR_BOTH);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case XED_TOOLBAR_ICONS_BOTH_HORIZ:
|
|
||||||
xed_debug_message (DEBUG_WINDOW, "XED: ICONS_BOTH_HORIZ");
|
|
||||||
gtk_toolbar_set_style (GTK_TOOLBAR(toolbar), GTK_TOOLBAR_BOTH_HORIZ);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Returns TRUE if toolbar is visible */
|
/* Returns TRUE if toolbar is visible */
|
||||||
static gboolean
|
static gboolean
|
||||||
set_toolbar_style (XedWindow *window,
|
set_toolbar_style (XedWindow *window,
|
||||||
|
@ -456,20 +428,6 @@ set_toolbar_style (XedWindow *window,
|
||||||
gtk_toggle_action_set_active (GTK_TOGGLE_ACTION(action), visible);
|
gtk_toggle_action_set_active (GTK_TOGGLE_ACTION(action), visible);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Set style */
|
|
||||||
if (origin == NULL)
|
|
||||||
{
|
|
||||||
style = xed_prefs_manager_get_toolbar_buttons_style ();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
style = origin->priv->toolbar_style;
|
|
||||||
}
|
|
||||||
|
|
||||||
window->priv->toolbar_style = style;
|
|
||||||
|
|
||||||
apply_toolbar_style (window, window->priv->toolbar);
|
|
||||||
|
|
||||||
return visible;
|
return visible;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -950,19 +908,6 @@ open_recent_file (const gchar *uri,
|
||||||
g_slist_free (uris);
|
g_slist_free (uris);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
recent_chooser_item_activated (GtkRecentChooser *chooser,
|
|
||||||
XedWindow *window)
|
|
||||||
{
|
|
||||||
gchar *uri;
|
|
||||||
|
|
||||||
uri = gtk_recent_chooser_get_current_uri (chooser);
|
|
||||||
|
|
||||||
open_recent_file (uri, window);
|
|
||||||
|
|
||||||
g_free (uri);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
recents_menu_activate (GtkAction *action,
|
recents_menu_activate (GtkAction *action,
|
||||||
XedWindow *window)
|
XedWindow *window)
|
||||||
|
@ -1116,13 +1061,6 @@ update_recent_files_menu (XedWindow *window)
|
||||||
g_list_free (items);
|
g_list_free (items);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
set_non_homogeneus (GtkWidget *widget,
|
|
||||||
gpointer data)
|
|
||||||
{
|
|
||||||
gtk_tool_item_set_homogeneous (GTK_TOOL_ITEM(widget), FALSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
toolbar_visibility_changed (GtkWidget *toolbar,
|
toolbar_visibility_changed (GtkWidget *toolbar,
|
||||||
XedWindow *window)
|
XedWindow *window)
|
||||||
|
@ -1146,45 +1084,21 @@ toolbar_visibility_changed (GtkWidget *toolbar,
|
||||||
}
|
}
|
||||||
|
|
||||||
static GtkWidget *
|
static GtkWidget *
|
||||||
setup_toolbar_open_button (XedWindow *window,
|
create_toolbar_button (GtkAction *action)
|
||||||
GtkWidget *toolbar)
|
|
||||||
{
|
{
|
||||||
GtkRecentManager *recent_manager;
|
GtkWidget *button;
|
||||||
GtkRecentFilter *filter;
|
GtkWidget *image;
|
||||||
GtkWidget *toolbar_recent_menu;
|
|
||||||
GtkToolItem *open_button;
|
|
||||||
GtkAction *action;
|
|
||||||
|
|
||||||
recent_manager = gtk_recent_manager_get_default ();
|
button = gtk_button_new ();
|
||||||
|
image = gtk_image_new ();
|
||||||
|
|
||||||
/* recent files menu tool button */
|
gtk_button_set_image (GTK_BUTTON (button), image);
|
||||||
toolbar_recent_menu = gtk_recent_chooser_menu_new_for_manager (recent_manager);
|
gtk_style_context_add_class (gtk_widget_get_style_context (button), "flat");
|
||||||
|
gtk_activatable_set_related_action (GTK_ACTIVATABLE (button), action);
|
||||||
|
gtk_button_set_label (GTK_BUTTON (button), NULL);
|
||||||
|
gtk_widget_set_tooltip_text (button, gtk_action_get_tooltip (action));
|
||||||
|
|
||||||
gtk_recent_chooser_set_local_only (GTK_RECENT_CHOOSER(toolbar_recent_menu),
|
return button;
|
||||||
FALSE);
|
|
||||||
gtk_recent_chooser_set_sort_type (GTK_RECENT_CHOOSER(toolbar_recent_menu), GTK_RECENT_SORT_MRU);
|
|
||||||
gtk_recent_chooser_set_limit (GTK_RECENT_CHOOSER(toolbar_recent_menu), xed_prefs_manager_get_max_recents ());
|
|
||||||
|
|
||||||
filter = gtk_recent_filter_new ();
|
|
||||||
gtk_recent_filter_add_group (filter, "xed");
|
|
||||||
gtk_recent_chooser_set_filter (GTK_RECENT_CHOOSER(toolbar_recent_menu), filter);
|
|
||||||
|
|
||||||
g_signal_connect(toolbar_recent_menu, "item_activated", G_CALLBACK (recent_chooser_item_activated), window);
|
|
||||||
|
|
||||||
/* add the custom Open button to the toolbar */
|
|
||||||
open_button = gtk_menu_tool_button_new_from_stock (GTK_STOCK_OPEN);
|
|
||||||
gtk_menu_tool_button_set_menu (GTK_MENU_TOOL_BUTTON(open_button), toolbar_recent_menu);
|
|
||||||
|
|
||||||
gtk_tool_item_set_tooltip_text (open_button, _("Open a file"));
|
|
||||||
gtk_menu_tool_button_set_arrow_tooltip_text (GTK_MENU_TOOL_BUTTON(open_button), _("Open a recently used file"));
|
|
||||||
|
|
||||||
action = gtk_action_group_get_action (window->priv->always_sensitive_action_group, "FileOpen");
|
|
||||||
g_object_set (action, "short_label", _("Open"), NULL);
|
|
||||||
gtk_activatable_set_related_action (GTK_ACTIVATABLE(open_button), action);
|
|
||||||
|
|
||||||
gtk_toolbar_insert (GTK_TOOLBAR(toolbar), open_button, 1);
|
|
||||||
|
|
||||||
return toolbar_recent_menu;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1197,6 +1111,11 @@ create_menu_bar_and_toolbar (XedWindow *window,
|
||||||
GtkRecentManager *recent_manager;
|
GtkRecentManager *recent_manager;
|
||||||
GError *error = NULL;
|
GError *error = NULL;
|
||||||
gchar *ui_file;
|
gchar *ui_file;
|
||||||
|
GtkWidget *tool_item;
|
||||||
|
GtkWidget *tool_box;
|
||||||
|
GtkWidget *box;
|
||||||
|
GtkWidget *separator;
|
||||||
|
GtkWidget *button;
|
||||||
|
|
||||||
xed_debug (DEBUG_WINDOW);
|
xed_debug (DEBUG_WINDOW);
|
||||||
|
|
||||||
|
@ -1223,16 +1142,6 @@ create_menu_bar_and_toolbar (XedWindow *window,
|
||||||
g_object_unref (action_group);
|
g_object_unref (action_group);
|
||||||
window->priv->action_group = action_group;
|
window->priv->action_group = action_group;
|
||||||
|
|
||||||
/* set short labels to use in the toolbar */
|
|
||||||
action = gtk_action_group_get_action (action_group, "FileSave");
|
|
||||||
g_object_set (action, "short_label", _("Save"), NULL);
|
|
||||||
action = gtk_action_group_get_action (action_group, "FilePrint");
|
|
||||||
g_object_set (action, "short_label", _("Print"), NULL);
|
|
||||||
action = gtk_action_group_get_action (action_group, "SearchFind");
|
|
||||||
g_object_set (action, "short_label", _("Find"), NULL);
|
|
||||||
action = gtk_action_group_get_action (action_group, "SearchReplace");
|
|
||||||
g_object_set (action, "short_label", _("Replace"), NULL);
|
|
||||||
|
|
||||||
action_group = gtk_action_group_new ("XedQuitWindowActions");
|
action_group = gtk_action_group_new ("XedQuitWindowActions");
|
||||||
gtk_action_group_set_translation_domain (action_group, NULL);
|
gtk_action_group_set_translation_domain (action_group, NULL);
|
||||||
gtk_action_group_add_actions (action_group, xed_quit_menu_entries, G_N_ELEMENTS(xed_quit_menu_entries), window);
|
gtk_action_group_add_actions (action_group, xed_quit_menu_entries, G_N_ELEMENTS(xed_quit_menu_entries), window);
|
||||||
|
@ -1302,17 +1211,82 @@ create_menu_bar_and_toolbar (XedWindow *window,
|
||||||
window->priv->menubar = gtk_ui_manager_get_widget (manager, "/MenuBar");
|
window->priv->menubar = gtk_ui_manager_get_widget (manager, "/MenuBar");
|
||||||
gtk_box_pack_start (GTK_BOX(main_box), window->priv->menubar, FALSE, FALSE, 0);
|
gtk_box_pack_start (GTK_BOX(main_box), window->priv->menubar, FALSE, FALSE, 0);
|
||||||
|
|
||||||
window->priv->toolbar = gtk_ui_manager_get_widget (manager, "/ToolBar");
|
window->priv->toolbar = gtk_toolbar_new ();
|
||||||
gtk_style_context_add_class (gtk_widget_get_style_context (window->priv->toolbar),
|
gtk_style_context_add_class (gtk_widget_get_style_context (window->priv->toolbar), GTK_STYLE_CLASS_PRIMARY_TOOLBAR);
|
||||||
GTK_STYLE_CLASS_PRIMARY_TOOLBAR);
|
|
||||||
gtk_box_pack_start (GTK_BOX(main_box), window->priv->toolbar, FALSE, FALSE, 0);
|
gtk_box_pack_start (GTK_BOX(main_box), window->priv->toolbar, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
tool_item = gtk_tool_item_new ();
|
||||||
|
gtk_tool_item_set_expand (GTK_TOOL_ITEM (tool_item), TRUE);
|
||||||
|
gtk_toolbar_insert (GTK_TOOLBAR (window->priv->toolbar), GTK_TOOL_ITEM (tool_item), 0);
|
||||||
|
|
||||||
|
tool_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
|
||||||
|
gtk_container_add (GTK_CONTAINER (tool_item), tool_box);
|
||||||
|
|
||||||
|
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
|
||||||
|
gtk_box_pack_start (GTK_BOX (tool_box), box, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
action = gtk_action_group_get_action (window->priv->always_sensitive_action_group, "FileNew");
|
||||||
|
button = create_toolbar_button (action);
|
||||||
|
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
action = gtk_action_group_get_action (window->priv->always_sensitive_action_group, "FileOpen");
|
||||||
|
button = create_toolbar_button (action);
|
||||||
|
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
action = gtk_action_group_get_action (window->priv->action_group, "FileSave");
|
||||||
|
button = create_toolbar_button (action);
|
||||||
|
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
separator = gtk_separator_new (GTK_ORIENTATION_VERTICAL);
|
||||||
|
gtk_box_pack_start (GTK_BOX (tool_box), separator, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
|
||||||
|
gtk_box_pack_start (GTK_BOX (tool_box), box, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
action = gtk_action_group_get_action (window->priv->action_group, "EditUndo");
|
||||||
|
button = create_toolbar_button (action);
|
||||||
|
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
action = gtk_action_group_get_action (window->priv->action_group, "EditRedo");
|
||||||
|
button = create_toolbar_button (action);
|
||||||
|
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
separator = gtk_separator_new (GTK_ORIENTATION_VERTICAL);
|
||||||
|
gtk_box_pack_start (GTK_BOX (tool_box), separator, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
|
||||||
|
gtk_box_pack_start (GTK_BOX (tool_box), box, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
action = gtk_action_group_get_action (window->priv->action_group, "EditCut");
|
||||||
|
button = create_toolbar_button (action);
|
||||||
|
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
action = gtk_action_group_get_action (window->priv->action_group, "EditCopy");
|
||||||
|
button = create_toolbar_button (action);
|
||||||
|
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
action = gtk_action_group_get_action (window->priv->action_group, "EditPaste");
|
||||||
|
button = create_toolbar_button (action);
|
||||||
|
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
separator = gtk_separator_new (GTK_ORIENTATION_VERTICAL);
|
||||||
|
gtk_box_pack_start (GTK_BOX (tool_box), separator, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
|
||||||
|
gtk_box_pack_start (GTK_BOX (tool_box), box, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
action = gtk_action_group_get_action (window->priv->action_group, "SearchFind");
|
||||||
|
button = create_toolbar_button (action);
|
||||||
|
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
action = gtk_action_group_get_action (window->priv->action_group, "SearchReplace");
|
||||||
|
button = create_toolbar_button (action);
|
||||||
|
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
gtk_widget_show_all (GTK_WIDGET (window->priv->toolbar));
|
||||||
|
|
||||||
set_toolbar_style (window, NULL);
|
set_toolbar_style (window, NULL);
|
||||||
|
|
||||||
window->priv->toolbar_recent_menu = setup_toolbar_open_button (window, window->priv->toolbar);
|
|
||||||
|
|
||||||
gtk_container_foreach (GTK_CONTAINER(window->priv->toolbar), (GtkCallback) set_non_homogeneus, NULL);
|
|
||||||
|
|
||||||
g_signal_connect_after(G_OBJECT (window->priv->toolbar), "show", G_CALLBACK (toolbar_visibility_changed), window);
|
g_signal_connect_after(G_OBJECT (window->priv->toolbar), "show", G_CALLBACK (toolbar_visibility_changed), window);
|
||||||
g_signal_connect_after(G_OBJECT (window->priv->toolbar), "hide", G_CALLBACK (toolbar_visibility_changed), window);
|
g_signal_connect_after(G_OBJECT (window->priv->toolbar), "hide", G_CALLBACK (toolbar_visibility_changed), window);
|
||||||
}
|
}
|
||||||
|
@ -2404,16 +2378,16 @@ fullscreen_controls_show (XedWindow *window)
|
||||||
{
|
{
|
||||||
GdkScreen *screen;
|
GdkScreen *screen;
|
||||||
GdkRectangle fs_rect;
|
GdkRectangle fs_rect;
|
||||||
gint w, h;
|
gint min_h, nat_h;
|
||||||
|
|
||||||
screen = gtk_window_get_screen (GTK_WINDOW(window));
|
screen = gtk_window_get_screen (GTK_WINDOW (window));
|
||||||
gdk_screen_get_monitor_geometry (
|
gdk_screen_get_monitor_geometry (
|
||||||
screen, gdk_screen_get_monitor_at_window (screen, gtk_widget_get_window (GTK_WIDGET(window))),
|
screen, gdk_screen_get_monitor_at_window (screen, gtk_widget_get_window (GTK_WIDGET(window))),
|
||||||
&fs_rect);
|
&fs_rect);
|
||||||
|
|
||||||
gtk_window_get_size (GTK_WINDOW(window->priv->fullscreen_controls), &w, &h);
|
gtk_widget_get_preferred_height (window->priv->fullscreen_controls_container, &min_h, &nat_h);
|
||||||
gtk_window_resize (GTK_WINDOW(window->priv->fullscreen_controls), fs_rect.width, h);
|
gtk_window_resize (GTK_WINDOW (window->priv->fullscreen_controls), fs_rect.width, nat_h);
|
||||||
gtk_window_move (GTK_WINDOW(window->priv->fullscreen_controls), fs_rect.x, fs_rect.y - h + 1);
|
gtk_window_move (GTK_WINDOW (window->priv->fullscreen_controls), fs_rect.x, fs_rect.y - nat_h + 1);
|
||||||
|
|
||||||
gtk_widget_show_all (window->priv->fullscreen_controls);
|
gtk_widget_show_all (window->priv->fullscreen_controls);
|
||||||
}
|
}
|
||||||
|
@ -2544,9 +2518,11 @@ static void
|
||||||
fullscreen_controls_build (XedWindow *window)
|
fullscreen_controls_build (XedWindow *window)
|
||||||
{
|
{
|
||||||
XedWindowPrivate *priv = window->priv;
|
XedWindowPrivate *priv = window->priv;
|
||||||
GtkWidget *toolbar;
|
|
||||||
GtkWidget *toolbar_recent_menu;
|
|
||||||
GtkAction *action;
|
GtkAction *action;
|
||||||
|
GtkWidget *box;
|
||||||
|
GtkWidget *fullscreen_btn;
|
||||||
|
GtkWidget *separator;
|
||||||
|
GtkWidget *button;
|
||||||
|
|
||||||
if (priv->fullscreen_controls != NULL)
|
if (priv->fullscreen_controls != NULL)
|
||||||
{
|
{
|
||||||
|
@ -2557,19 +2533,69 @@ fullscreen_controls_build (XedWindow *window)
|
||||||
|
|
||||||
gtk_window_set_transient_for (GTK_WINDOW(priv->fullscreen_controls), &window->window);
|
gtk_window_set_transient_for (GTK_WINDOW(priv->fullscreen_controls), &window->window);
|
||||||
|
|
||||||
/* popup toolbar */
|
window->priv->fullscreen_controls_container = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
|
||||||
toolbar = gtk_ui_manager_get_widget (priv->manager, "/FullscreenToolBar");
|
gtk_container_set_border_width (GTK_CONTAINER (window->priv->fullscreen_controls_container), 6);
|
||||||
gtk_container_add (GTK_CONTAINER(priv->fullscreen_controls), toolbar);
|
gtk_container_add (GTK_CONTAINER (priv->fullscreen_controls), window->priv->fullscreen_controls_container);
|
||||||
|
|
||||||
|
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
|
||||||
|
gtk_widget_set_vexpand (box, FALSE);
|
||||||
|
gtk_box_pack_start (GTK_BOX (window->priv->fullscreen_controls_container), box, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
action = gtk_action_group_get_action (window->priv->always_sensitive_action_group, "FileNew");
|
||||||
|
button = create_toolbar_button (action);
|
||||||
|
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
action = gtk_action_group_get_action (window->priv->always_sensitive_action_group, "FileOpen");
|
||||||
|
button = create_toolbar_button (action);
|
||||||
|
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
action = gtk_action_group_get_action (window->priv->action_group, "FileSave");
|
||||||
|
button = create_toolbar_button (action);
|
||||||
|
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
separator = gtk_separator_new (GTK_ORIENTATION_VERTICAL);
|
||||||
|
gtk_box_pack_start (GTK_BOX (box), separator, FALSE, FALSE, 6);
|
||||||
|
|
||||||
|
action = gtk_action_group_get_action (window->priv->action_group, "EditUndo");
|
||||||
|
button = create_toolbar_button (action);
|
||||||
|
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
action = gtk_action_group_get_action (window->priv->action_group, "EditRedo");
|
||||||
|
button = create_toolbar_button (action);
|
||||||
|
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
separator = gtk_separator_new (GTK_ORIENTATION_VERTICAL);
|
||||||
|
gtk_box_pack_start (GTK_BOX (box), separator, FALSE, FALSE, 6);
|
||||||
|
|
||||||
|
action = gtk_action_group_get_action (window->priv->action_group, "EditCut");
|
||||||
|
button = create_toolbar_button (action);
|
||||||
|
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
action = gtk_action_group_get_action (window->priv->action_group, "EditCopy");
|
||||||
|
button = create_toolbar_button (action);
|
||||||
|
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
action = gtk_action_group_get_action (window->priv->action_group, "EditPaste");
|
||||||
|
button = create_toolbar_button (action);
|
||||||
|
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
separator = gtk_separator_new (GTK_ORIENTATION_VERTICAL);
|
||||||
|
gtk_box_pack_start (GTK_BOX (box), separator, FALSE, FALSE, 6);
|
||||||
|
|
||||||
|
action = gtk_action_group_get_action (window->priv->action_group, "SearchFind");
|
||||||
|
button = create_toolbar_button (action);
|
||||||
|
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
action = gtk_action_group_get_action (window->priv->action_group, "SearchReplace");
|
||||||
|
button = create_toolbar_button (action);
|
||||||
|
gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
|
||||||
|
|
||||||
action = gtk_action_group_get_action (priv->always_sensitive_action_group, "LeaveFullscreen");
|
action = gtk_action_group_get_action (priv->always_sensitive_action_group, "LeaveFullscreen");
|
||||||
g_object_set (action, "is-important", TRUE, NULL);
|
g_object_set (action, "is-important", TRUE, NULL);
|
||||||
|
fullscreen_btn = create_toolbar_button (action);
|
||||||
|
gtk_box_pack_end (GTK_BOX (box), fullscreen_btn, FALSE, FALSE, 0);
|
||||||
|
|
||||||
toolbar_recent_menu = setup_toolbar_open_button (window, toolbar);
|
gtk_widget_show_all (window->priv->fullscreen_controls_container);
|
||||||
|
|
||||||
gtk_container_foreach (GTK_CONTAINER(toolbar), (GtkCallback) set_non_homogeneus, NULL);
|
|
||||||
|
|
||||||
/* Set the toolbar style */
|
|
||||||
gtk_toolbar_set_style (GTK_TOOLBAR(toolbar), GTK_TOOLBAR_BOTH_HORIZ);
|
|
||||||
|
|
||||||
g_signal_connect(priv->fullscreen_controls, "enter-notify-event",
|
g_signal_connect(priv->fullscreen_controls, "enter-notify-event",
|
||||||
G_CALLBACK (on_fullscreen_controls_enter_notify_event), window);
|
G_CALLBACK (on_fullscreen_controls_enter_notify_event), window);
|
||||||
|
|
Loading…
Reference in New Issue