[Xfce4-commits] <ristretto:master> Modify toolbar stuff
Stephan Arts
stephan at xfce.org
Wed Aug 12 12:22:25 CEST 2009
Updating branch refs/heads/master
to d144f6ee499591485ba8976d0aa2b1c17d756e46 (commit)
from 6172880e2f774831f5a8ffd111808cae965a9f62 (commit)
commit d144f6ee499591485ba8976d0aa2b1c17d756e46
Author: Stephan Arts <stephan at xfce.org>
Date: Tue May 26 09:31:05 2009 +0200
Modify toolbar stuff
src/main_window.c | 264 +++++++++++++++++++++-------------------------
src/main_window_ui.xml | 28 +++---
src/picture_viewer.c | 2 +-
src/preferences_dialog.c | 92 ----------------
src/settings.c | 19 ----
5 files changed, 135 insertions(+), 270 deletions(-)
diff --git a/src/main_window.c b/src/main_window.c
index 2f3f3c3..184e015 100644
--- a/src/main_window.c
+++ b/src/main_window.c
@@ -71,7 +71,8 @@ struct _RsttoMainWindowPriv
GtkWidget *menubar;
GtkWidget *toolbar;
- GtkWidget *fs_toolbar;
+ GtkWidget *navigator_toolbar;
+ GtkWidget *navigator_toolbar_menu;
GtkWidget *picture_viewer;
GtkWidget *p_viewer_s_window;
GtkWidget *statusbar;
@@ -81,8 +82,10 @@ struct _RsttoMainWindowPriv
guint recent_merge_id;
guint play_merge_id;
guint pause_merge_id;
- guint fs_play_merge_id;
- guint fs_pause_merge_id;
+ guint toolbar_play_merge_id;
+ guint toolbar_pause_merge_id;
+ guint toolbar_fullscreen_merge_id;
+ guint toolbar_unfullscreen_merge_id;
GtkAction *play_action;
GtkAction *pause_action;
@@ -124,12 +127,27 @@ static void
cb_rstto_main_window_state_event(GtkWidget *widget, GdkEventWindowState *event, gpointer user_data);
static gboolean
cb_rstto_main_window_show_fs_toolbar_timeout (RsttoMainWindow *window);
+static gboolean
+cb_rstto_main_window_navigator_toolbar_enter_notify_event (GtkWidget *widget,
+ GdkEventCrossing *event,
+ gpointer user_data);
+static gboolean
+cb_rstto_main_window_navigator_toolbar_leave_notify_event (GtkWidget *widget,
+ GdkEventCrossing *evet,
+ gpointer user_data);
static void
cb_rstto_main_window_navigator_new_image (RsttoNavigator *navigator, RsttoImage *image, RsttoMainWindow *window);
static void
cb_rstto_main_window_navigator_remove_image (RsttoNavigator *navigator, RsttoImage *image, RsttoMainWindow *window);
+static gboolean
+cb_rstto_main_window_navigator_toolbar_popup_context_menu (GtkToolbar *toolbar,
+ gint x,
+ gint y,
+ gint button,
+ gpointer user_data);
+
static void
cb_rstto_main_window_zoom_100 (GtkWidget *widget, RsttoMainWindow *window);
static void
@@ -202,9 +220,6 @@ cb_rstto_main_window_quit (GtkWidget *widget, RsttoMainWindow *window);
static void
cb_rstto_main_window_settings_notify (GObject *settings, GParamSpec *spec, RsttoMainWindow *window);
-static void
-cb_rstto_main_window_fullscreen_toolbar_sticky (GtkWidget *widget, RsttoMainWindow *window);
-
static gboolean
cb_rstto_main_window_picture_viewer_motion_notify_event (RsttoPictureViewer *viewer,
GdkEventMotion *event,
@@ -221,8 +236,6 @@ static GtkActionEntry action_entries[] =
{ "file-menu", NULL, N_ ("_File"), NULL, },
{ "open", "document-open", N_ ("_Open"), "<control>O", N_ ("Open an image"), G_CALLBACK (cb_rstto_main_window_open_image), },
{ "open-folder", "folder-open", N_ ("Open _Folder"), NULL, N_ ("Open a folder"), G_CALLBACK (cb_rstto_main_window_open_folder), },
- { "t_open", "document-open", N_ ("_Open"), "<control>O", N_ ("Open an image"), G_CALLBACK (cb_rstto_main_window_open_image), },
- { "t_open-folder", "folder-open", N_ ("Open _Folder"), NULL, N_ ("Open a folder"), G_CALLBACK (cb_rstto_main_window_open_folder), },
{ "save-copy", GTK_STOCK_SAVE_AS, N_ ("_Save copy"), "<control>s", N_ ("Save a copy the image"), G_CALLBACK (cb_rstto_main_window_save_copy), },
{ "print", GTK_STOCK_PRINT, N_ ("_Print"), "<control>p", N_ ("Print the image"), G_CALLBACK (cb_rstto_main_window_print), },
{ "close", GTK_STOCK_CLOSE, N_ ("_Close"), "<control>W", N_ ("Close this image"), G_CALLBACK (cb_rstto_main_window_close), },
@@ -236,6 +249,7 @@ static GtkActionEntry action_entries[] =
/* View Menu */
{ "view-menu", NULL, N_ ("_View"), NULL, },
{ "fullscreen", GTK_STOCK_FULLSCREEN, N_ ("_Fullscreen"), "F11", NULL, G_CALLBACK (cb_rstto_main_window_fullscreen), },
+ { "unfullscreen", GTK_STOCK_LEAVE_FULLSCREEN, N_ ("_Leave Fullscreen"), NULL, NULL, G_CALLBACK (cb_rstto_main_window_fullscreen), },
{ "set-as-wallpaper", NULL, N_ ("_Set as Wallpaper"), NULL, NULL, NULL, },
/* Thumbnailbar submenu */
{ "thumbnailbar-menu", NULL, N_ ("_Thumbnail Bar"), NULL, },
@@ -268,14 +282,14 @@ static GtkActionEntry action_entries[] =
N_ ("Display information about ristretto"),
G_CALLBACK (cb_rstto_main_window_about), },
/* Misc */
- { "leave-fullscreen", GTK_STOCK_LEAVE_FULLSCREEN, N_ ("Leave _Fullscreen"), NULL, NULL, G_CALLBACK (cb_rstto_main_window_fullscreen), }
+ { "leave-fullscreen", GTK_STOCK_LEAVE_FULLSCREEN, N_ ("Leave _Fullscreen"), NULL, NULL, G_CALLBACK (cb_rstto_main_window_fullscreen), },
+ { "tb-menu", NULL, NULL, NULL, }
};
static const GtkToggleActionEntry toggle_action_entries[] =
{
{ "show-toolbar", NULL, N_ ("Show _Toolbar"), NULL, NULL, G_CALLBACK (cb_rstto_main_window_toggle_show_toolbar), TRUE, },
{ "show-thumbnailbar", NULL, N_ ("Show Thumb_nailbar"), NULL, NULL, NULL, FALSE},
- { "sticky", GTK_STOCK_ADD, N_("Sticky"), NULL, NULL, G_CALLBACK (cb_rstto_main_window_fullscreen_toolbar_sticky), FALSE }
};
@@ -309,7 +323,7 @@ static void
rstto_main_window_init (RsttoMainWindow *window)
{
GtkAccelGroup *accel_group;
- GValue show_toolbar_val = {0,}, window_width = {0, }, window_height = {0, }, toolbar_open = {0, };
+ GValue show_toolbar_val = {0,}, window_width = {0, }, window_height = {0, };
GtkWidget *separator, *back, *forward, *leave_fullscreen;
GtkWidget *main_vbox = gtk_vbox_new (FALSE, 0);
GtkRecentFilter *recent_filter;
@@ -340,18 +354,18 @@ rstto_main_window_init (RsttoMainWindow *window)
gtk_accel_map_change_entry ("<Window>/previous-image", GDK_Page_Up, 0, FALSE);
/* Create mergeid's for adding ui-components */
- window->priv->t_open_merge_id = gtk_ui_manager_new_merge_id (window->priv->ui_manager);
- window->priv->t_open_folder_merge_id = gtk_ui_manager_new_merge_id (window->priv->ui_manager);
window->priv->recent_merge_id = gtk_ui_manager_new_merge_id (window->priv->ui_manager);
window->priv->play_merge_id = gtk_ui_manager_new_merge_id (window->priv->ui_manager);
window->priv->pause_merge_id = gtk_ui_manager_new_merge_id (window->priv->ui_manager);
- window->priv->fs_play_merge_id = gtk_ui_manager_new_merge_id (window->priv->ui_manager);
- window->priv->fs_pause_merge_id = gtk_ui_manager_new_merge_id (window->priv->ui_manager);
+ window->priv->toolbar_play_merge_id = gtk_ui_manager_new_merge_id (window->priv->ui_manager);
+ window->priv->toolbar_pause_merge_id = gtk_ui_manager_new_merge_id (window->priv->ui_manager);
+ window->priv->toolbar_fullscreen_merge_id = gtk_ui_manager_new_merge_id (window->priv->ui_manager);
+ window->priv->toolbar_unfullscreen_merge_id = gtk_ui_manager_new_merge_id (window->priv->ui_manager);
window->priv->play_action = gtk_action_new ("play", "_Play", "Play slideshow", GTK_STOCK_MEDIA_PLAY);
window->priv->pause_action = gtk_action_new ("pause", "_Pause", "Pause slideshow", GTK_STOCK_MEDIA_PAUSE);
- window->priv->recent_action = gtk_recent_action_new_for_manager ("recent", "_Recently used", "Recently used", 0, GTK_RECENT_MANAGER(window->priv->recent_manager));
+ window->priv->recent_action = gtk_recent_action_new_for_manager ("document-open-recent", "_Recently used", "Recently used", 0, GTK_RECENT_MANAGER(window->priv->recent_manager));
/**
* Add a filter to the recent-chooser
@@ -386,16 +400,15 @@ rstto_main_window_init (RsttoMainWindow *window)
gtk_ui_manager_add_ui_from_string (window->priv->ui_manager,main_window_ui, main_window_ui_length, NULL);
window->priv->menubar = gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-menu");
window->priv->toolbar = gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-toolbar");
- window->priv->fs_toolbar = gtk_ui_manager_get_widget (window->priv->ui_manager, "/fullscreen-toolbar");
+ window->priv->navigator_toolbar = gtk_ui_manager_get_widget (window->priv->ui_manager, "/navigation-toolbar");
+ window->priv->navigator_toolbar_menu = gtk_ui_manager_get_widget (window->priv->ui_manager, "/tb-menu");
+
+
/**
* Get the separator toolitem and tell it to expand
*/
- separator = gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-toolbar/separator-1");
- gtk_tool_item_set_expand (GTK_TOOL_ITEM (separator), TRUE);
- gtk_separator_tool_item_set_draw (GTK_SEPARATOR_TOOL_ITEM (separator), FALSE);
-
- separator = gtk_ui_manager_get_widget (window->priv->ui_manager, "/fullscreen-toolbar/separator-1");
+ separator = gtk_ui_manager_get_widget (window->priv->ui_manager, "/navigation-toolbar/separator-1");
gtk_tool_item_set_expand (GTK_TOOL_ITEM (separator), TRUE);
gtk_separator_tool_item_set_draw (GTK_SEPARATOR_TOOL_ITEM (separator), FALSE);
@@ -403,17 +416,11 @@ rstto_main_window_init (RsttoMainWindow *window)
* Make the back and forward toolitems important,
* when they are, the labels are shown when the toolbar style is 'both-horizontal'
*/
- back = gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-toolbar/back");
+ back = gtk_ui_manager_get_widget (window->priv->ui_manager, "/navigation-toolbar/back");
gtk_tool_item_set_is_important (GTK_TOOL_ITEM (back), TRUE);
- forward = gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-toolbar/forward");
+ forward = gtk_ui_manager_get_widget (window->priv->ui_manager, "/navigation-toolbar/forward");
gtk_tool_item_set_is_important (GTK_TOOL_ITEM (forward), TRUE);
- /* Make the leave-fullscreen toolitem important,
- * when it is, the label is shown when the toolbar style is 'both-horizontal'
- */
- leave_fullscreen = gtk_ui_manager_get_widget (window->priv->ui_manager, "/fullscreen-toolbar/leave-fullscreen");
- gtk_tool_item_set_is_important (GTK_TOOL_ITEM (leave_fullscreen), TRUE);
-
window->priv->picture_viewer = rstto_picture_viewer_new ();
window->priv->p_viewer_s_window = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (window->priv->p_viewer_s_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
@@ -426,16 +433,11 @@ rstto_main_window_init (RsttoMainWindow *window)
gtk_box_pack_start(GTK_BOX(main_vbox), window->priv->menubar, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(main_vbox), window->priv->toolbar, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(main_vbox), window->priv->p_viewer_s_window, TRUE, TRUE, 0);
- gtk_box_pack_start(GTK_BOX(main_vbox), window->priv->fs_toolbar, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(main_vbox), window->priv->navigator_toolbar, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(main_vbox), window->priv->statusbar, FALSE, FALSE, 0);
rstto_main_window_set_sensitive (window, FALSE);
gtk_widget_set_no_show_all (window->priv->toolbar, TRUE);
- gtk_widget_set_no_show_all (window->priv->fs_toolbar, TRUE);
-
- g_value_init (&toolbar_open, G_TYPE_STRING);
- g_object_get_property (G_OBJECT(window->priv->settings_manager), "toolbar-open", &toolbar_open);
- g_signal_connect (G_OBJECT (window->priv->settings_manager), "notify::toolbar-open", G_CALLBACK (cb_rstto_main_window_settings_notify), window);
/**
* Add missing pieces to the UI
@@ -448,41 +450,26 @@ rstto_main_window_init (RsttoMainWindow *window)
GTK_UI_MANAGER_MENUITEM,
FALSE);
gtk_ui_manager_add_ui (window->priv->ui_manager,
- window->priv->fs_play_merge_id,
- "/fullscreen-toolbar/placeholder-slideshow",
- "play",
- "play",
- GTK_UI_MANAGER_TOOLITEM,
- FALSE);
- gtk_ui_manager_add_ui (window->priv->ui_manager,
window->priv->recent_merge_id,
"/main-menu/file-menu/placeholder-open-recent",
- "recent",
- "recent",
+ "document-open-recent",
+ "document-open-recent",
GTK_UI_MANAGER_MENUITEM,
FALSE);
-
- /* Attach the riight 'open' toolbar item */
- if (g_strcasecmp (g_value_get_string (&toolbar_open), "file") == 0)
- {
- gtk_ui_manager_add_ui (window->priv->ui_manager,
- window->priv->t_open_merge_id,
- "/main-toolbar/placeholder-t_open",
- "t_open",
- "t_open",
+ gtk_ui_manager_add_ui (window->priv->ui_manager,
+ window->priv->toolbar_play_merge_id,
+ "/navigation-toolbar/placeholder-slideshow",
+ "play",
+ "play",
GTK_UI_MANAGER_TOOLITEM,
FALSE);
- }
- if (g_strcasecmp (g_value_get_string (&toolbar_open), "folder") == 0)
- {
- gtk_ui_manager_add_ui (window->priv->ui_manager,
- window->priv->t_open_folder_merge_id,
- "/main-toolbar/placeholder-t_open",
- "t_open-folder",
- "t_open-folder",
+ gtk_ui_manager_add_ui (window->priv->ui_manager,
+ window->priv->toolbar_fullscreen_merge_id,
+ "/navigation-toolbar/placeholder-fullscreen",
+ "fullscreen",
+ "fullscreen",
GTK_UI_MANAGER_TOOLITEM,
FALSE);
- }
/**
* Retrieve the last window-size from the settings-manager
@@ -516,8 +503,6 @@ rstto_main_window_init (RsttoMainWindow *window)
gtk_widget_hide (window->priv->toolbar);
}
- gtk_widget_hide (window->priv->fs_toolbar);
-
g_signal_connect(G_OBJECT(window->priv->picture_viewer), "motion-notify-event", G_CALLBACK(cb_rstto_main_window_picture_viewer_motion_notify_event), window);
g_signal_connect(G_OBJECT(window), "configure-event", G_CALLBACK(cb_rstto_main_window_configure_event), NULL);
g_signal_connect(G_OBJECT(window), "window-state-event", G_CALLBACK(cb_rstto_main_window_state_event), NULL);
@@ -700,16 +685,14 @@ rstto_main_window_set_sensitive (RsttoMainWindow *window, gboolean sensitive)
*/
/* Toolbar */
- gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-toolbar/forward"), sensitive);
- gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-toolbar/back"), sensitive);
- gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-toolbar/zoom-in"), sensitive);
- gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-toolbar/zoom-out"), sensitive);
- gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-toolbar/zoom-fit"), sensitive);
- gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-toolbar/zoom-100"), sensitive);
-
- /* FS Toolbar */
- gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->priv->ui_manager, "/fullscreen-toolbar/forward"), sensitive);
- gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->priv->ui_manager, "/fullscreen-toolbar/back"), sensitive);
+ gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->priv->ui_manager, "/main-toolbar/save-copy"), sensitive);
+ gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->priv->ui_manager, "/navigation-toolbar/forward"), sensitive);
+ gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->priv->ui_manager, "/navigation-toolbar/back"), sensitive);
+ gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->priv->ui_manager, "/navigation-toolbar/zoom-in"), sensitive);
+ gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->priv->ui_manager, "/navigation-toolbar/zoom-out"), sensitive);
+ gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->priv->ui_manager, "/navigation-toolbar/zoom-fit"), sensitive);
+ gtk_widget_set_sensitive (gtk_ui_manager_get_widget (window->priv->ui_manager, "/navigation-toolbar/zoom-100"), sensitive);
+
}
/**
@@ -1331,14 +1314,15 @@ cb_rstto_main_window_play (GtkWidget *widget, RsttoMainWindow *window)
window->priv->play_merge_id);
gtk_ui_manager_add_ui (window->priv->ui_manager,
- window->priv->fs_pause_merge_id,
- "/fullscreen-toolbar/placeholder-slideshow",
+ window->priv->toolbar_pause_merge_id,
+ "/navigation-toolbar/placeholder-slideshow",
"pause",
"pause",
GTK_UI_MANAGER_TOOLITEM,
FALSE);
gtk_ui_manager_remove_ui (window->priv->ui_manager,
- window->priv->fs_play_merge_id);
+ window->priv->toolbar_play_merge_id);
+
g_value_init (&timeout, G_TYPE_UINT);
g_object_get_property (G_OBJECT(window->priv->settings_manager), "slideshow-timeout", &timeout);
@@ -1369,14 +1353,14 @@ cb_rstto_main_window_pause (GtkWidget *widget, RsttoMainWindow *window)
window->priv->pause_merge_id);
gtk_ui_manager_add_ui (window->priv->ui_manager,
- window->priv->fs_play_merge_id,
- "/fullscreen-toolbar/placeholder-slideshow",
+ window->priv->toolbar_play_merge_id,
+ "/navigation-toolbar/placeholder-slideshow",
"play",
"play",
GTK_UI_MANAGER_TOOLITEM,
FALSE);
gtk_ui_manager_remove_ui (window->priv->ui_manager,
- window->priv->fs_pause_merge_id);
+ window->priv->toolbar_pause_merge_id);
window->priv->playing = FALSE;
}
@@ -1750,15 +1734,47 @@ cb_rstto_main_window_state_event(GtkWidget *widget, GdkEventWindowState *event,
gtk_widget_hide (window->priv->menubar);
gtk_widget_hide (window->priv->toolbar);
gtk_widget_hide (window->priv->statusbar);
+ if (window->priv->fs_toolbar_sticky)
+ {
+ if (window->priv->show_fs_toolbar_timeout_id > 0)
+ {
+ g_source_remove (window->priv->show_fs_toolbar_timeout_id);
+ window->priv->show_fs_toolbar_timeout_id = 0;
+ }
+ window->priv->show_fs_toolbar_timeout_id = g_timeout_add (3000, (GSourceFunc)cb_rstto_main_window_show_fs_toolbar_timeout, window);
+ }
+ else
+ {
+ gtk_widget_hide (window->priv->navigator_toolbar);
+ }
+
+ gtk_ui_manager_add_ui (window->priv->ui_manager,
+ window->priv->toolbar_unfullscreen_merge_id,
+ "/navigation-toolbar/placeholder-fullscreen",
+ "unfullscreen",
+ "unfullscreen",
+ GTK_UI_MANAGER_TOOLITEM,
+ FALSE);
+ gtk_ui_manager_remove_ui (window->priv->ui_manager,
+ window->priv->toolbar_fullscreen_merge_id);
}
else
{
+ gtk_ui_manager_add_ui (window->priv->ui_manager,
+ window->priv->toolbar_fullscreen_merge_id,
+ "/navigation-toolbar/placeholder-fullscreen",
+ "fullscreen",
+ "fullscreen",
+ GTK_UI_MANAGER_TOOLITEM,
+ FALSE);
+ gtk_ui_manager_remove_ui (window->priv->ui_manager,
+ window->priv->toolbar_unfullscreen_merge_id);
if (window->priv->show_fs_toolbar_timeout_id > 0)
{
g_source_remove (window->priv->show_fs_toolbar_timeout_id);
window->priv->show_fs_toolbar_timeout_id = 0;
}
- gtk_widget_hide (window->priv->fs_toolbar);
+ gtk_widget_show (window->priv->navigator_toolbar);
g_value_init (&show_toolbar_val, G_TYPE_BOOLEAN);
g_object_get_property (G_OBJECT(window->priv->settings_manager), "show-toolbar", &show_toolbar_val);
@@ -1787,7 +1803,7 @@ cb_rstto_main_window_picture_viewer_motion_notify_event (RsttoPictureViewer *vie
{
if (event->state == 0)
{
- gtk_widget_show (window->priv->fs_toolbar);
+ gtk_widget_show (window->priv->navigator_toolbar);
if (window->priv->fs_toolbar_sticky == FALSE)
{
@@ -1805,27 +1821,11 @@ cb_rstto_main_window_picture_viewer_motion_notify_event (RsttoPictureViewer *vie
static gboolean
cb_rstto_main_window_show_fs_toolbar_timeout (RsttoMainWindow *window)
{
- gtk_widget_hide (window->priv->fs_toolbar);
+ gtk_widget_hide (window->priv->navigator_toolbar);
return FALSE;
}
static void
-cb_rstto_main_window_fullscreen_toolbar_sticky (GtkWidget *widget, RsttoMainWindow *window)
-{
- if (window->priv->show_fs_toolbar_timeout_id > 0)
- {
- g_source_remove (window->priv->show_fs_toolbar_timeout_id);
- window->priv->show_fs_toolbar_timeout_id = 0;
- }
- window->priv->fs_toolbar_sticky = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (widget));
-
- if (window->priv->fs_toolbar_sticky == FALSE)
- {
- window->priv->show_fs_toolbar_timeout_id = g_timeout_add (1500, (GSourceFunc)cb_rstto_main_window_show_fs_toolbar_timeout, window);
- }
-}
-
-static void
cb_rstto_main_window_settings_notify (GObject *settings, GParamSpec *spec, RsttoMainWindow *window)
{
GValue val = {0,};
@@ -1837,51 +1837,25 @@ cb_rstto_main_window_settings_notify (GObject *settings, GParamSpec *spec, Rstto
g_object_get_property (settings, spec->name, &val);
- /* Manage the toolbar-open property */
- if (!strcmp (spec->name, "toolbar-open"))
- {
- /* Check if the 'open-file' toolbar item should be displayed */
- if (!strcmp (g_value_get_string (&val), "file"))
- {
- gtk_ui_manager_remove_ui (window->priv->ui_manager,
- window->priv->t_open_folder_merge_id);
- gtk_ui_manager_add_ui (window->priv->ui_manager,
- window->priv->t_open_merge_id,
- "/main-toolbar/placeholder-t_open",
- "t_open",
- "t_open",
- GTK_UI_MANAGER_TOOLITEM,
- FALSE);
-
- }
- else
- {
- /* Check if the 'open-folder' toolbar item should be displayed */
- if (!strcmp (g_value_get_string (&val), "folder"))
- {
- gtk_ui_manager_remove_ui (window->priv->ui_manager,
- window->priv->t_open_merge_id);
- gtk_ui_manager_add_ui (window->priv->ui_manager,
- window->priv->t_open_folder_merge_id,
- "/main-toolbar/placeholder-t_open",
- "t_open-folder",
- "t_open-folder",
- GTK_UI_MANAGER_TOOLITEM,
- FALSE);
-
- }
- else
- {
- /* neither file nor folder should be displayed, hide them all */
- gtk_ui_manager_remove_ui (window->priv->ui_manager,
- window->priv->t_open_folder_merge_id);
- gtk_ui_manager_remove_ui (window->priv->ui_manager,
- window->priv->t_open_merge_id);
-
- }
- }
- }
-
g_value_unset (&val);
}
+/*
+static gboolean
+cb_rstto_main_window_navigator_toolbar_popup_context_menu (GtkToolbar *toolbar,
+ gint x,
+ gint y,
+ gint button,
+ gpointer user_data)
+{
+ RsttoMainWindow *window = RSTTO_MAIN_WINDOW (user_data);
+
+ gtk_menu_popup (window->priv->navigator_toolbar_menu,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ 3,
+ gtk_get_current_event_time ());
+}
+*/
diff --git a/src/main_window_ui.xml b/src/main_window_ui.xml
index c96d5e7..b55ac10 100644
--- a/src/main_window_ui.xml
+++ b/src/main_window_ui.xml
@@ -58,32 +58,34 @@
</menu>
</menubar>
- <!--
+ <popup name="tb-menu">
+ <menuitem action="open"/>
+ </popup>
+ <!--
-->
<toolbar name="main-toolbar">
- <placeholder name="placeholder-t_open"/>
+ <toolitem action="open"/>
+ <toolitem action="open-folder"/>
<separator />
- <toolitem action="back"/>
- <toolitem action="forward"/>
- <separator name="separator-1"/>
- <toolitem action="zoom-in"/>
- <toolitem action="zoom-out"/>
- <toolitem action="zoom-100"/>
- <toolitem action="zoom-fit"/>
+ <toolitem action="save-copy"/>
</toolbar>
<!--
-->
- <toolbar name="fullscreen-toolbar">
- <toolitem action="sticky"/>
- <separator/>
+ <toolbar name="navigation-toolbar">
<toolitem action="back"/>
<placeholder name="placeholder-slideshow" />
<toolitem action="forward"/>
<separator name="separator-1"/>
- <toolitem action="leave-fullscreen"/>
+ <toolitem action="zoom-in"/>
+ <toolitem action="zoom-out"/>
+ <toolitem action="zoom-100"/>
+ <toolitem action="zoom-fit"/>
+ <separator name="separator-1"/>
+ <placeholder name="placeholder-fullscreen" />
</toolbar>
+
</ui>
diff --git a/src/picture_viewer.c b/src/picture_viewer.c
index c2f4bdf..348db4e 100644
--- a/src/picture_viewer.c
+++ b/src/picture_viewer.c
@@ -361,7 +361,7 @@ rstto_picture_viewer_size_allocate(GtkWidget *widget, GtkAllocation *allocation)
/**
* TODO: Check if we really nead a refresh
*/
- rstto_picture_viewer_queued_repaint (viewer, FALSE);
+ rstto_picture_viewer_queued_repaint (viewer, TRUE);
}
/**
diff --git a/src/preferences_dialog.c b/src/preferences_dialog.c
index 71154c3..adb34b2 100644
--- a/src/preferences_dialog.c
+++ b/src/preferences_dialog.c
@@ -52,13 +52,6 @@ cb_rstto_preferences_dialog_cache_spin_button_value_changed (GtkSpinButton *, gp
static void
cb_rstto_preferences_dialog_image_quality_combo_box_changed (GtkComboBox *, gpointer);
-static void
-cb_rstto_preferences_dialog_toolbar_open_hide_toggled (GtkToggleButton *, gpointer );
-static void
-cb_rstto_preferences_dialog_toolbar_open_file_toggled (GtkToggleButton *, gpointer );
-static void
-cb_rstto_preferences_dialog_toolbar_open_folder_toggled (GtkToggleButton *, gpointer );
-
static GtkWidgetClass *parent_class = NULL;
struct _RsttoPreferencesDialogPriv
@@ -83,9 +76,6 @@ struct _RsttoPreferencesDialogPriv
struct
{
- GtkWidget *toolbar_open_hide_radio;
- GtkWidget *toolbar_open_file_radio;
- GtkWidget *toolbar_open_folder_radio;
} control_tab;
struct
@@ -142,7 +132,6 @@ rstto_preferences_dialog_init(RsttoPreferencesDialog *dialog)
gboolean bool_enable_cache;
gboolean bool_bgcolor_override;
GdkColor *bgcolor;
- gchar *toolbar_open;
g_object_get (G_OBJECT (dialog->priv->settings),
"image-quality", &uint_image_quality,
@@ -151,7 +140,6 @@ rstto_preferences_dialog_init(RsttoPreferencesDialog *dialog)
"enable-cache", &bool_enable_cache,
"bgcolor-override", &bool_bgcolor_override,
"bgcolor", &bgcolor,
- "toolbar-open", &toolbar_open,
NULL);
GtkObject *cache_adjustment;
@@ -289,41 +277,6 @@ rstto_preferences_dialog_init(RsttoPreferencesDialog *dialog)
widget = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (widget), _("Switch images"));
gtk_container_add (GTK_CONTAINER (scroll_vbox), widget);
- toolbar_vbox = gtk_vbox_new(FALSE, 0);
- toolbar_frame = xfce_create_framebox_with_content (_("Toolbar"), toolbar_vbox);
- gtk_box_pack_start (GTK_BOX (control_main_vbox), toolbar_frame, FALSE, FALSE, 0);
-
- dialog->priv->control_tab.toolbar_open_hide_radio = gtk_radio_button_new_with_label (NULL, _("Hide"));
- gtk_container_add (GTK_CONTAINER (toolbar_vbox), dialog->priv->control_tab.toolbar_open_hide_radio);
- g_signal_connect (G_OBJECT (dialog->priv->control_tab.toolbar_open_hide_radio), "toggled",
- G_CALLBACK (cb_rstto_preferences_dialog_toolbar_open_hide_toggled), dialog);
-
- dialog->priv->control_tab.toolbar_open_file_radio = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (dialog->priv->control_tab.toolbar_open_hide_radio), _("Open files"));
- gtk_container_add (GTK_CONTAINER (toolbar_vbox), dialog->priv->control_tab.toolbar_open_file_radio);
- g_signal_connect (G_OBJECT (dialog->priv->control_tab.toolbar_open_file_radio), "toggled",
- G_CALLBACK (cb_rstto_preferences_dialog_toolbar_open_file_toggled), dialog);
-
- dialog->priv->control_tab.toolbar_open_folder_radio = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (dialog->priv->control_tab.toolbar_open_hide_radio), _("Open folder"));
- gtk_container_add (GTK_CONTAINER (toolbar_vbox), dialog->priv->control_tab.toolbar_open_folder_radio);
- g_signal_connect (G_OBJECT (dialog->priv->control_tab.toolbar_open_folder_radio), "toggled",
- G_CALLBACK (cb_rstto_preferences_dialog_toolbar_open_folder_toggled), dialog);
-
- if (!strcmp (toolbar_open, "file"))
- {
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->priv->control_tab.toolbar_open_file_radio), TRUE);
- }
- else
- {
- if (!strcmp (toolbar_open, "folder"))
- {
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->priv->control_tab.toolbar_open_folder_radio), TRUE);
- }
- else
- {
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->priv->control_tab.toolbar_open_hide_radio), TRUE);
- }
- }
-
/*******************/
/** Behaviour tab **/
/*******************/
@@ -570,48 +523,3 @@ cb_rstto_preferences_dialog_image_quality_combo_box_changed (GtkComboBox *combo_
}
}
-
-static void
-cb_rstto_preferences_dialog_toolbar_open_hide_toggled (GtkToggleButton *button,
- gpointer user_data)
-{
- RsttoPreferencesDialog *dialog = RSTTO_PREFERENCES_DIALOG (user_data);
-
- GValue value = {0, };
- g_value_init (&value, G_TYPE_STRING);
-
- g_value_set_string (&value, "hide");
- g_object_set_property (G_OBJECT (dialog->priv->settings), "toolbar-open", &value);
-
- g_value_unset (&value);
-}
-
-static void
-cb_rstto_preferences_dialog_toolbar_open_file_toggled (GtkToggleButton *button,
- gpointer user_data)
-{
- RsttoPreferencesDialog *dialog = RSTTO_PREFERENCES_DIALOG (user_data);
-
- GValue value = {0, };
- g_value_init (&value, G_TYPE_STRING);
-
- g_value_set_string (&value, "file");
- g_object_set_property (G_OBJECT (dialog->priv->settings), "toolbar-open", &value);
-
- g_value_unset (&value);
-}
-
-static void
-cb_rstto_preferences_dialog_toolbar_open_folder_toggled (GtkToggleButton *button,
- gpointer user_data)
-{
- RsttoPreferencesDialog *dialog = RSTTO_PREFERENCES_DIALOG (user_data);
-
- GValue value = {0, };
- g_value_init (&value, G_TYPE_STRING);
-
- g_value_set_string (&value, "folder");
- g_object_set_property (G_OBJECT (dialog->priv->settings), "toolbar-open", &value);
-
- g_value_unset (&value);
-}
diff --git a/src/settings.c b/src/settings.c
index 6bb84fc..e7bb66d 100644
--- a/src/settings.c
+++ b/src/settings.c
@@ -100,7 +100,6 @@ struct _RsttoSettingsPriv
XfconfChannel *channel;
gboolean show_toolbar;
- gchar *toolbar_open;
guint preload_images;
gboolean enable_cache;
guint cache_size;
@@ -138,7 +137,6 @@ rstto_settings_init (GObject *object)
settings->priv->bgcolor = g_new0 (GdkColor, 1);
settings->priv->bgcolor_fullscreen = g_new0 (GdkColor, 1);
settings->priv->image_quality = 2;
- settings->priv->toolbar_open = "file";
xfconf_g_property_bind (settings->priv->channel, "/window/width", G_TYPE_UINT, settings, "window-width");
xfconf_g_property_bind (settings->priv->channel, "/window/height", G_TYPE_UINT, settings, "window-height");
@@ -147,7 +145,6 @@ rstto_settings_init (GObject *object)
xfconf_g_property_bind (settings->priv->channel, "/window/show-toolbar", G_TYPE_BOOLEAN, settings, "show-toolbar");
xfconf_g_property_bind (settings->priv->channel, "/window/scrollwheel-action", G_TYPE_STRING, settings, "scrollwheel-action");
- xfconf_g_property_bind (settings->priv->channel, "/window/toolbar-open", G_TYPE_STRING, settings, "toolbar-open");
xfconf_g_property_bind (settings->priv->channel, "/slideshow/timeout", G_TYPE_UINT, settings, "slideshow-timeout");
@@ -208,16 +205,6 @@ rstto_settings_class_init (GObjectClass *object_class)
PROP_SHOW_TOOLBAR,
pspec);
- pspec = g_param_spec_string ("toolbar-open",
- "",
- "",
- "file",
- G_PARAM_READWRITE);
- g_object_class_install_property (object_class,
- PROP_TOOLBAR_OPEN,
- pspec);
-
-
pspec = g_param_spec_uint ("preload-images",
"",
"",
@@ -393,9 +380,6 @@ rstto_settings_set_property (GObject *object,
case PROP_SHOW_TOOLBAR:
settings->priv->show_toolbar = g_value_get_boolean (value);
break;
- case PROP_TOOLBAR_OPEN:
- settings->priv->toolbar_open = g_value_dup_string (value);
- break;
case PROP_PRELOAD_IMAGES:
settings->priv->preload_images = g_value_get_uint (value);
break;
@@ -461,9 +445,6 @@ rstto_settings_get_property (GObject *object,
case PROP_SHOW_TOOLBAR:
g_value_set_boolean (value, settings->priv->show_toolbar);
break;
- case PROP_TOOLBAR_OPEN:
- g_value_set_string (value, settings->priv->toolbar_open);
- break;
case PROP_PRELOAD_IMAGES:
g_value_set_uint (value, settings->priv->preload_images);
break;
More information about the Xfce4-commits
mailing list