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
|
@ -1316,8 +1316,8 @@ xed_prefs_manager_source_style_scheme_changed (GSettings *settings,
|
|||
|
||||
static void
|
||||
xed_prefs_manager_max_recents_changed (GSettings *settings,
|
||||
gchar *key,
|
||||
gpointer user_data)
|
||||
gchar *key,
|
||||
gpointer user_data)
|
||||
{
|
||||
xed_debug (DEBUG_PREFS);
|
||||
|
||||
|
@ -1328,21 +1328,11 @@ xed_prefs_manager_max_recents_changed (GSettings *settings,
|
|||
|
||||
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;
|
||||
|
||||
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
|
||||
* update of the inline recents in the File menu */
|
||||
}
|
||||
|
|
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") },
|
||||
|
||||
/* 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) },
|
||||
{ "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) },
|
||||
|
||||
/* Edit menu */
|
||||
|
@ -69,7 +69,7 @@ static const GtkActionEntry xed_always_sensitive_menu_entries[] =
|
|||
N_("About this application"), G_CALLBACK (_xed_cmd_help_about) },
|
||||
|
||||
/* Fullscreen toolbar */
|
||||
{ "LeaveFullscreen", GTK_STOCK_LEAVE_FULLSCREEN, NULL,
|
||||
{ "LeaveFullscreen", "view-restore-symbolic", NULL,
|
||||
NULL, N_("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[] =
|
||||
{
|
||||
/* 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) },
|
||||
{ "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) },
|
||||
|
@ -89,15 +89,15 @@ static const GtkActionEntry xed_menu_entries[] =
|
|||
N_("Print the current page"), G_CALLBACK (_xed_cmd_file_print) },
|
||||
|
||||
/* 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) },
|
||||
{ "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) },
|
||||
{ "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) },
|
||||
{ "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) },
|
||||
{ "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) },
|
||||
{ "EditDelete", GTK_STOCK_DELETE, NULL, NULL,
|
||||
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") },
|
||||
|
||||
/* 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) },
|
||||
{ "SearchFindNext", NULL, N_("Find Ne_xt"), "<control>G",
|
||||
N_("Search forwards for the same text"), G_CALLBACK (_xed_cmd_search_find_next) },
|
||||
{ "SearchFindPrevious", NULL, N_("Find Pre_vious"), "<shift><control>G",
|
||||
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) },
|
||||
{ "SearchGoToLine", GTK_STOCK_JUMP_TO, N_("Go to _Line..."), "<control>I",
|
||||
N_("Go to a specific line"), G_CALLBACK (_xed_cmd_search_goto_line) },
|
||||
|
|
|
@ -56,6 +56,7 @@ struct _XedWindowPrivate
|
|||
|
||||
/* Widgets for fullscreen mode */
|
||||
GtkWidget *fullscreen_controls;
|
||||
GtkWidget *fullscreen_controls_container;
|
||||
guint fullscreen_animation_timeout_id;
|
||||
gboolean fullscreen_animation_enter;
|
||||
|
||||
|
@ -79,9 +80,7 @@ struct _XedWindowPrivate
|
|||
GtkActionGroup *documents_list_action_group;
|
||||
guint documents_list_menu_ui_id;
|
||||
GtkWidget *toolbar;
|
||||
GtkWidget *toolbar_recent_menu;
|
||||
GtkWidget *menubar;
|
||||
XedToolbarSetting toolbar_style;
|
||||
|
||||
/* recent files */
|
||||
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 */
|
||||
static gboolean
|
||||
set_toolbar_style (XedWindow *window,
|
||||
|
@ -456,20 +428,6 @@ set_toolbar_style (XedWindow *window,
|
|||
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;
|
||||
}
|
||||
|
||||
|
@ -950,19 +908,6 @@ open_recent_file (const gchar *uri,
|
|||
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
|
||||
recents_menu_activate (GtkAction *action,
|
||||
XedWindow *window)
|
||||
|
@ -1116,13 +1061,6 @@ update_recent_files_menu (XedWindow *window)
|
|||
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
|
||||
toolbar_visibility_changed (GtkWidget *toolbar,
|
||||
XedWindow *window)
|
||||
|
@ -1146,45 +1084,21 @@ toolbar_visibility_changed (GtkWidget *toolbar,
|
|||
}
|
||||
|
||||
static GtkWidget *
|
||||
setup_toolbar_open_button (XedWindow *window,
|
||||
GtkWidget *toolbar)
|
||||
create_toolbar_button (GtkAction *action)
|
||||
{
|
||||
GtkRecentManager *recent_manager;
|
||||
GtkRecentFilter *filter;
|
||||
GtkWidget *toolbar_recent_menu;
|
||||
GtkToolItem *open_button;
|
||||
GtkAction *action;
|
||||
GtkWidget *button;
|
||||
GtkWidget *image;
|
||||
|
||||
recent_manager = gtk_recent_manager_get_default ();
|
||||
button = gtk_button_new ();
|
||||
image = gtk_image_new ();
|
||||
|
||||
/* recent files menu tool button */
|
||||
toolbar_recent_menu = gtk_recent_chooser_menu_new_for_manager (recent_manager);
|
||||
gtk_button_set_image (GTK_BUTTON (button), image);
|
||||
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),
|
||||
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;
|
||||
return button;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1197,6 +1111,11 @@ create_menu_bar_and_toolbar (XedWindow *window,
|
|||
GtkRecentManager *recent_manager;
|
||||
GError *error = NULL;
|
||||
gchar *ui_file;
|
||||
GtkWidget *tool_item;
|
||||
GtkWidget *tool_box;
|
||||
GtkWidget *box;
|
||||
GtkWidget *separator;
|
||||
GtkWidget *button;
|
||||
|
||||
xed_debug (DEBUG_WINDOW);
|
||||
|
||||
|
@ -1223,16 +1142,6 @@ create_menu_bar_and_toolbar (XedWindow *window,
|
|||
g_object_unref (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");
|
||||
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);
|
||||
|
@ -1302,17 +1211,82 @@ create_menu_bar_and_toolbar (XedWindow *window,
|
|||
window->priv->menubar = gtk_ui_manager_get_widget (manager, "/MenuBar");
|
||||
gtk_box_pack_start (GTK_BOX(main_box), window->priv->menubar, FALSE, FALSE, 0);
|
||||
|
||||
window->priv->toolbar = gtk_ui_manager_get_widget (manager, "/ToolBar");
|
||||
gtk_style_context_add_class (gtk_widget_get_style_context (window->priv->toolbar),
|
||||
GTK_STYLE_CLASS_PRIMARY_TOOLBAR);
|
||||
window->priv->toolbar = gtk_toolbar_new ();
|
||||
gtk_style_context_add_class (gtk_widget_get_style_context (window->priv->toolbar), GTK_STYLE_CLASS_PRIMARY_TOOLBAR);
|
||||
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);
|
||||
|
||||
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), "hide", G_CALLBACK (toolbar_visibility_changed), window);
|
||||
}
|
||||
|
@ -2404,16 +2378,16 @@ fullscreen_controls_show (XedWindow *window)
|
|||
{
|
||||
GdkScreen *screen;
|
||||
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 (
|
||||
screen, gdk_screen_get_monitor_at_window (screen, gtk_widget_get_window (GTK_WIDGET(window))),
|
||||
&fs_rect);
|
||||
|
||||
gtk_window_get_size (GTK_WINDOW(window->priv->fullscreen_controls), &w, &h);
|
||||
gtk_window_resize (GTK_WINDOW(window->priv->fullscreen_controls), fs_rect.width, h);
|
||||
gtk_window_move (GTK_WINDOW(window->priv->fullscreen_controls), fs_rect.x, fs_rect.y - h + 1);
|
||||
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, nat_h);
|
||||
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);
|
||||
}
|
||||
|
@ -2544,9 +2518,11 @@ static void
|
|||
fullscreen_controls_build (XedWindow *window)
|
||||
{
|
||||
XedWindowPrivate *priv = window->priv;
|
||||
GtkWidget *toolbar;
|
||||
GtkWidget *toolbar_recent_menu;
|
||||
GtkAction *action;
|
||||
GtkWidget *box;
|
||||
GtkWidget *fullscreen_btn;
|
||||
GtkWidget *separator;
|
||||
GtkWidget *button;
|
||||
|
||||
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);
|
||||
|
||||
/* popup toolbar */
|
||||
toolbar = gtk_ui_manager_get_widget (priv->manager, "/FullscreenToolBar");
|
||||
gtk_container_add (GTK_CONTAINER(priv->fullscreen_controls), toolbar);
|
||||
window->priv->fullscreen_controls_container = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window->priv->fullscreen_controls_container), 6);
|
||||
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");
|
||||
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_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);
|
||||
gtk_widget_show_all (window->priv->fullscreen_controls_container);
|
||||
|
||||
g_signal_connect(priv->fullscreen_controls, "enter-notify-event",
|
||||
G_CALLBACK (on_fullscreen_controls_enter_notify_event), window);
|
||||
|
|
Loading…
Reference in New Issue