[gthumb] removed use of EmbeddedDialog and GtkStatusbar
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gthumb] removed use of EmbeddedDialog and GtkStatusbar
- Date: Sat, 9 Nov 2013 20:06:25 +0000 (UTC)
commit 6c0367dc0b2b94d4ed7c80d30996cfed3417b6c0
Author: Paolo Bacchilega <paobac src gnome org>
Date: Fri Oct 25 19:01:01 2013 +0200
removed use of EmbeddedDialog and GtkStatusbar
extensions/catalogs/callbacks.c | 18 +-
extensions/catalogs/dlg-organize-files.c | 2 +-
extensions/desktop_background/actions.c | 2 +-
extensions/desktop_background/callbacks.c | 4 +-
extensions/export_tools/callbacks.c | 9 +-
extensions/file_manager/callbacks.c | 22 +-
extensions/file_tools/gth-file-tool-flip.c | 2 +-
extensions/file_tools/gth-file-tool-mirror.c | 2 +-
extensions/file_tools/gth-file-tool-rotate-left.c | 2 +-
extensions/file_tools/gth-file-tool-rotate-right.c | 2 +-
extensions/find_duplicates/callbacks.c | 2 +-
extensions/image_viewer/gth-image-viewer-page.c | 4 +-
extensions/search/actions.c | 3 +-
extensions/search/actions.h | 6 +-
extensions/search/callbacks.c | 13 +-
extensions/search/gth-search-task.c | 35 +-
extensions/selections/callbacks.c | 20 +-
gthumb/Makefile.am | 8 +-
gthumb/gth-browser.c | 132 ++-
gthumb/gth-browser.h | 3 +-
gthumb/gth-embedded-dialog.c | 204 ----
gthumb/gth-embedded-dialog.h | 69 --
gthumb/gth-info-bar.c | 56 +-
gthumb/gth-info-bar.h | 24 +-
gthumb/gth-location-bar.c | 106 ++
gthumb/gth-location-bar.h | 60 ++
gthumb/gth-statusbar.c | 105 +--
gthumb/gth-statusbar.h | 5 +-
gthumb/gth-toggle-menu-action.c | 186 ----
gthumb/gth-toggle-menu-action.h | 62 --
gthumb/gth-toggle-menu-tool-button.c | 1070 --------------------
gthumb/gth-toggle-menu-tool-button.h | 80 --
gthumb/resources/gears-menu.ui | 20 +-
33 files changed, 392 insertions(+), 1946 deletions(-)
---
diff --git a/extensions/catalogs/callbacks.c b/extensions/catalogs/callbacks.c
index 6768d88..540d880 100644
--- a/extensions/catalogs/callbacks.c
+++ b/extensions/catalogs/callbacks.c
@@ -32,8 +32,6 @@
#define BROWSER_DATA_KEY "catalogs-browser-data"
-#define _RESPONSE_PROPERTIES 1
-#define _RESPONSE_ORGANIZE 2
#define UPDATE_RENAMED_FILES_DELAY 500
@@ -308,9 +306,11 @@ catalogs__gth_browser_update_extra_widget_cb (GthBrowser *browser)
gtk_button_set_relief (GTK_BUTTON (data->properties_button), GTK_RELIEF_NONE);
gtk_widget_set_tooltip_text (data->properties_button, _("Catalog Properties"));
gtk_widget_show_all (data->properties_button);
- gtk_info_bar_add_action_widget (GTK_INFO_BAR (gth_browser_get_list_extra_widget
(browser)),
- data->properties_button,
- _RESPONSE_PROPERTIES);
+ gtk_box_pack_start (GTK_BOX (gth_location_bar_get_action_area (GTH_LOCATION_BAR
(gth_browser_get_location_bar (browser)))),
+ data->properties_button,
+ FALSE,
+ FALSE,
+ 0);
g_signal_connect (data->properties_button,
"clicked",
G_CALLBACK (properties_button_clicked_cb),
@@ -325,9 +325,11 @@ catalogs__gth_browser_update_extra_widget_cb (GthBrowser *browser)
g_object_add_weak_pointer (G_OBJECT (data->organize_button), (gpointer
*)&data->organize_button);
gtk_button_set_relief (GTK_BUTTON (data->organize_button), GTK_RELIEF_NONE);
gtk_widget_show_all (data->organize_button);
- gtk_info_bar_add_action_widget (GTK_INFO_BAR (gth_browser_get_list_extra_widget
(browser)),
- data->organize_button,
- _RESPONSE_ORGANIZE);
+ gtk_box_pack_start (GTK_BOX (gth_location_bar_get_action_area (GTH_LOCATION_BAR
(gth_browser_get_location_bar (browser)))),
+ data->organize_button,
+ FALSE,
+ FALSE,
+ 0);
g_signal_connect (data->organize_button,
"clicked",
G_CALLBACK (organize_button_clicked_cb),
diff --git a/extensions/catalogs/dlg-organize-files.c b/extensions/catalogs/dlg-organize-files.c
index 42d7176..e52da70 100644
--- a/extensions/catalogs/dlg-organize-files.c
+++ b/extensions/catalogs/dlg-organize-files.c
@@ -111,7 +111,7 @@ dlg_organize_files (GthBrowser *browser,
data->builder = _gtk_builder_new_from_file ("organize-files.ui", "catalogs");
data->dialog = GET_WIDGET ("organize_files_dialog");
- info_bar = gth_info_bar_new (NULL, NULL, NULL);
+ info_bar = gth_info_bar_new ();
gtk_info_bar_set_message_type (GTK_INFO_BAR (info_bar), GTK_MESSAGE_INFO);
info_label = gth_info_bar_get_primary_label (GTH_INFO_BAR (info_bar));
gtk_label_set_ellipsize (GTK_LABEL (info_label), PANGO_ELLIPSIZE_NONE);
diff --git a/extensions/desktop_background/actions.c b/extensions/desktop_background/actions.c
index d4151bb..ed71f72 100644
--- a/extensions/desktop_background/actions.c
+++ b/extensions/desktop_background/actions.c
@@ -217,7 +217,7 @@ wallpaper_data_set (WallpaperData *wdata)
wallpaper_style_set_as_current (&wdata->new_style);
infobar = gth_browser_get_infobar (wdata->browser);
- gth_info_bar_set_icon (GTH_INFO_BAR (infobar), GTK_STOCK_DIALOG_INFO);
+ gth_info_bar_set_icon_name (GTH_INFO_BAR (infobar), "dialog-information-symbolic",
GTK_ICON_SIZE_DIALOG);
{
char *name;
diff --git a/extensions/desktop_background/callbacks.c b/extensions/desktop_background/callbacks.c
index a102909..8141cd4 100644
--- a/extensions/desktop_background/callbacks.c
+++ b/extensions/desktop_background/callbacks.c
@@ -43,13 +43,13 @@ db__gth_browser_construct_cb (GthBrowser *browser)
browser);
gth_menu_manager_append_entry (gth_browser_get_menu_manager (browser,
GTH_BROWSER_MENU_MANAGER_FILE_SCREEN_ACTIONS),
GTH_MENU_MANAGER_NEW_MERGE_ID,
- _("Desktop Background"),
+ _("Set as Desktop Background"),
"win.set-desktop-background",
NULL,
NULL);
gth_menu_manager_append_entry (gth_browser_get_menu_manager (browser,
GTH_BROWSER_MENU_MANAGER_FILE_LIST_SCREEN_ACTIONS),
GTH_MENU_MANAGER_NEW_MERGE_ID,
- _("Desktop Background"),
+ _("Set as Desktop Background"),
"win.set-desktop-background",
NULL,
NULL);
diff --git a/extensions/export_tools/callbacks.c b/extensions/export_tools/callbacks.c
index 53e4760..0fb234b 100644
--- a/extensions/export_tools/callbacks.c
+++ b/extensions/export_tools/callbacks.c
@@ -44,8 +44,15 @@ export_tools__gth_browser_construct_cb (GthBrowser *browser)
button = _gtk_menu_button_new_for_header_bar ();
gtk_widget_set_tooltip_text (button, _("Share"));
- gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_icon_name ("send-to-symbolic",
GTK_ICON_SIZE_MENU));
+ gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_icon_name
("folder-publicshare-symbolic", GTK_ICON_SIZE_MENU));
gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (button), menu);
gtk_widget_show_all (button);
gtk_box_pack_start (GTK_BOX (gth_browser_get_headerbar_section (browser,
GTH_BROWSER_HEADER_SECTION_BROWSER_TOOLS)), button, FALSE, FALSE, 0);
+
+ button = _gtk_menu_button_new_for_header_bar ();
+ gtk_widget_set_tooltip_text (button, _("Share"));
+ gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_icon_name
("folder-publicshare-symbolic", GTK_ICON_SIZE_MENU));
+ gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (button), menu);
+ gtk_widget_show_all (button);
+ gtk_box_pack_start (GTK_BOX (gth_browser_get_headerbar_section (browser,
GTH_BROWSER_HEADER_SECTION_VIEWER_TOOLS)), button, FALSE, FALSE, 0);
}
diff --git a/extensions/file_manager/callbacks.c b/extensions/file_manager/callbacks.c
index bbd86bc..6d71dd0 100644
--- a/extensions/file_manager/callbacks.c
+++ b/extensions/file_manager/callbacks.c
@@ -88,7 +88,7 @@ static const GthMenuEntry folder_context_open_entries[] = {
static const GthMenuEntry folder_context_create_entries[] = {
- { N_("Create Folder"), "win.folder-context-create" }
+ { N_("Create Folder"), "win.folder-context-create", "<Control><Shift>n" }
};
@@ -108,11 +108,6 @@ static const GthMenuEntry folder_context_folder_entries[] = {
};
-static const GthMenuEntry create_folder_entries[] = {
- { N_("Create Folder"), "win.create-folder", "<Control><Shift>n" }
-};
-
-
static const GthMenuEntry vfs_entries[] = {
{ N_("Duplicate"), "win.duplicate", "<Control>d" }
};
@@ -132,7 +127,6 @@ static GtkTargetEntry non_reorderable_drag_dest_targets[] = {
typedef struct {
guint vfs_merge_id;
- guint browser_vfs_merge_id;
guint folder_context_open_id;
guint folder_context_create_id;
guint folder_context_edit_id;
@@ -568,20 +562,6 @@ file_manager_update_ui (BrowserData *data,
gth_menu_manager_remove_entries (gth_browser_get_menu_manager (browser,
GTH_BROWSER_MENU_MANAGER_FILE_LIST_FILE_ACTIONS), data->vfs_merge_id);
data->vfs_merge_id = 0;
}
-
- if (GTH_IS_FILE_SOURCE_VFS (gth_browser_get_location_source (browser))
- && (gth_window_get_current_page (GTH_WINDOW (browser)) == GTH_BROWSER_PAGE_BROWSER))
- {
- if (data->browser_vfs_merge_id == 0)
- data->browser_vfs_merge_id =
- gth_menu_manager_append_entries (gth_browser_get_menu_manager
(browser, GTH_BROWSER_MENU_MANAGER_GEARS_FOLDER_ACTIONS),
- create_folder_entries,
- G_N_ELEMENTS
(create_folder_entries));
- }
- else {
- gth_menu_manager_remove_entries (gth_browser_get_menu_manager (browser,
GTH_BROWSER_MENU_MANAGER_GEARS_FOLDER_ACTIONS), data->browser_vfs_merge_id);
- data->browser_vfs_merge_id = 0;
- }
}
diff --git a/extensions/file_tools/gth-file-tool-flip.c b/extensions/file_tools/gth-file-tool-flip.c
index 0d5ae6b..1c60a27 100644
--- a/extensions/file_tools/gth-file-tool-flip.c
+++ b/extensions/file_tools/gth-file-tool-flip.c
@@ -87,6 +87,6 @@ gth_file_tool_flip_class_init (GthFileToolFlipClass *klass)
static void
gth_file_tool_flip_init (GthFileToolFlip *self)
{
- gth_file_tool_construct (GTH_FILE_TOOL (self), "tool-flip", _("Flip"), NULL, FALSE);
+ gth_file_tool_construct (GTH_FILE_TOOL (self), "object-flip-vertical-symbolic", _("Flip"), NULL,
FALSE);
gtk_widget_set_tooltip_text (GTK_WIDGET (self), _("Flip the image vertically"));
}
diff --git a/extensions/file_tools/gth-file-tool-mirror.c b/extensions/file_tools/gth-file-tool-mirror.c
index c29a1bc..5a2aeb2 100644
--- a/extensions/file_tools/gth-file-tool-mirror.c
+++ b/extensions/file_tools/gth-file-tool-mirror.c
@@ -87,6 +87,6 @@ gth_file_tool_mirror_class_init (GthFileToolMirrorClass *klass)
static void
gth_file_tool_mirror_init (GthFileToolMirror *self)
{
- gth_file_tool_construct (GTH_FILE_TOOL (self), "tool-mirror", _("Mirror"), NULL, FALSE);
+ gth_file_tool_construct (GTH_FILE_TOOL (self), "object-flip-horizontal-symbolic", _("Mirror"), NULL,
FALSE);
gtk_widget_set_tooltip_text (GTK_WIDGET (self), _("Mirror the image horizontally"));
}
diff --git a/extensions/file_tools/gth-file-tool-rotate-left.c
b/extensions/file_tools/gth-file-tool-rotate-left.c
index 048b4c5..03f69b9 100644
--- a/extensions/file_tools/gth-file-tool-rotate-left.c
+++ b/extensions/file_tools/gth-file-tool-rotate-left.c
@@ -87,6 +87,6 @@ gth_file_tool_rotate_left_class_init (GthFileToolRotateLeftClass *klass)
static void
gth_file_tool_rotate_left_init (GthFileToolRotateLeft *self)
{
- gth_file_tool_construct (GTH_FILE_TOOL (self), "tool-rotate-270", _("Rotate Left"), NULL, FALSE);
+ gth_file_tool_construct (GTH_FILE_TOOL (self), "object-rotate-left-symbolic", _("Rotate Left"), NULL,
FALSE);
gtk_widget_set_tooltip_text (GTK_WIDGET (self), _("Rotate the image by 90 degrees counterclockwise"));
}
diff --git a/extensions/file_tools/gth-file-tool-rotate-right.c
b/extensions/file_tools/gth-file-tool-rotate-right.c
index 28c605e..2bbcf3b 100644
--- a/extensions/file_tools/gth-file-tool-rotate-right.c
+++ b/extensions/file_tools/gth-file-tool-rotate-right.c
@@ -87,6 +87,6 @@ gth_file_tool_rotate_right_class_init (GthFileToolRotateRightClass *klass)
static void
gth_file_tool_rotate_right_init (GthFileToolRotateRight *self)
{
- gth_file_tool_construct (GTH_FILE_TOOL (self), "tool-rotate-90", _("Rotate Right"), NULL, TRUE);
+ gth_file_tool_construct (GTH_FILE_TOOL (self), "object-rotate-right-symbolic", _("Rotate Right"),
NULL, TRUE);
gtk_widget_set_tooltip_text (GTK_WIDGET (self), _("Rotate the image by 90 degrees clockwise"));
}
diff --git a/extensions/find_duplicates/callbacks.c b/extensions/find_duplicates/callbacks.c
index e2b967c..5c65470 100644
--- a/extensions/find_duplicates/callbacks.c
+++ b/extensions/find_duplicates/callbacks.c
@@ -47,7 +47,7 @@ find_dup__gth_browser_construct_cb (GthBrowser *browser)
actions,
G_N_ELEMENTS (actions),
browser);
- gth_menu_manager_append_entries (gth_browser_get_menu_manager (browser,
GTH_BROWSER_MENU_MANAGER_GEARS_FOLDER_ACTIONS),
+ gth_menu_manager_append_entries (gth_browser_get_menu_manager (browser,
GTH_BROWSER_MENU_MANAGER_GEARS_OTHER_ACTIONS),
action_entries,
G_N_ELEMENTS (action_entries));
}
diff --git a/extensions/image_viewer/gth-image-viewer-page.c b/extensions/image_viewer/gth-image-viewer-page.c
index 66c52a5..1cbbfcb 100644
--- a/extensions/image_viewer/gth-image-viewer-page.c
+++ b/extensions/image_viewer/gth-image-viewer-page.c
@@ -65,8 +65,8 @@ static const GthAccelerator accelerators[] = {
static const GthMenuEntry file_popup_entries[] = {
- { N_("Copy Image"), "win.copy-image", "<control>c" },
- { N_("Paste Image"), "win.paste-image", "<control>v" },
+ { N_("Copy Image"), "win.copy-image" },
+ { N_("Paste Image"), "win.paste-image" },
};
diff --git a/extensions/search/actions.c b/extensions/search/actions.c
index 925b481..8505cd9 100644
--- a/extensions/search/actions.c
+++ b/extensions/search/actions.c
@@ -137,8 +137,7 @@ search_update_buffer_ready_cb (void **buffer,
void
-gth_browser_activate_action_edit_search_update (GtkAction *action,
- GthBrowser *browser)
+gth_browser_update_search (GthBrowser *browser)
{
GFile *location;
SearchData *search_data;
diff --git a/extensions/search/actions.h b/extensions/search/actions.h
index da3bcd3..b93d283 100644
--- a/extensions/search/actions.h
+++ b/extensions/search/actions.h
@@ -22,11 +22,9 @@
#ifndef ACTIONS_H
#define ACTIONS_H
-#include <gtk/gtk.h>
-
-#define DEFINE_ACTION(x) void x (GtkAction *action, gpointer data);
+#include <gthumb.h>
DEF_ACTION_CALLBACK (gth_browser_activate_find)
-DEFINE_ACTION (gth_browser_activate_action_edit_search_update)
+void gth_browser_update_search (GthBrowser *browser);
#endif /* ACTIONS_H */
diff --git a/extensions/search/callbacks.c b/extensions/search/callbacks.c
index e2c2407..776b0d7 100644
--- a/extensions/search/callbacks.c
+++ b/extensions/search/callbacks.c
@@ -33,7 +33,6 @@
#define BROWSER_DATA_KEY "search-browser-data"
-#define _RESPONSE_REFRESH 2
static const GActionEntry actions[] = {
@@ -80,7 +79,7 @@ static void
refresh_button_clicked_cb (GtkButton *button,
GthBrowser *browser)
{
- gth_browser_activate_action_edit_search_update (NULL, browser);
+ gth_browser_update_search (browser);
}
@@ -98,14 +97,16 @@ search__gth_browser_update_extra_widget_cb (GthBrowser *browser)
if (data->refresh_button == NULL) {
data->refresh_button = gtk_button_new ();
- gtk_container_add (GTK_CONTAINER (data->refresh_button), gtk_image_new_from_stock
(GTK_STOCK_REFRESH, GTK_ICON_SIZE_MENU));
+ gtk_container_add (GTK_CONTAINER (data->refresh_button), gtk_image_new_from_icon_name
("view-refresh-symbolic", GTK_ICON_SIZE_MENU));
g_object_add_weak_pointer (G_OBJECT (data->refresh_button), (gpointer
*)&data->refresh_button);
gtk_button_set_relief (GTK_BUTTON (data->refresh_button), GTK_RELIEF_NONE);
gtk_widget_set_tooltip_text (data->refresh_button, _("Search again"));
gtk_widget_show_all (data->refresh_button);
- gtk_info_bar_add_action_widget (GTK_INFO_BAR (gth_browser_get_list_extra_widget (browser)),
- data->refresh_button,
- _RESPONSE_REFRESH);
+ gtk_box_pack_start (GTK_BOX (gth_location_bar_get_action_area (GTH_LOCATION_BAR
(gth_browser_get_location_bar (browser)))),
+ data->refresh_button,
+ FALSE,
+ FALSE,
+ 0);
g_signal_connect (data->refresh_button,
"clicked",
G_CALLBACK (refresh_button_clicked_cb),
diff --git a/extensions/search/gth-search-task.c b/extensions/search/gth-search-task.c
index 7773ffe..6f948f7 100644
--- a/extensions/search/gth-search-task.c
+++ b/extensions/search/gth-search-task.c
@@ -80,15 +80,15 @@ typedef struct {
GthBrowser *browser;
GthSearchTask *task;
gulong response_id;
-} EmbeddedDialogData;
+} InfoBarData;
static void
-embedded_dialog_response_cb (GthEmbeddedDialog *dialog,
- int response_id,
- gpointer user_data)
+info_bar_response_cb (GtkInfoBar *info_bar,
+ int response_id,
+ gpointer user_data)
{
- EmbeddedDialogData *data = user_data;
+ InfoBarData *data = user_data;
switch (response_id) {
case GTK_RESPONSE_CANCEL:
@@ -99,7 +99,7 @@ embedded_dialog_response_cb (GthEmbeddedDialog *dialog,
break;
}
- g_signal_handler_disconnect (dialog, data->response_id);
+ g_signal_handler_disconnect (info_bar, data->response_id);
g_free (data);
}
@@ -134,7 +134,7 @@ done_func (GObject *object,
gsize size;
GFile *search_result_real_file;
- gth_embedded_dialog_set_secondary_text (GTH_EMBEDDED_DIALOG (task->priv->dialog), NULL);
+ gth_info_bar_set_secondary_text (GTH_INFO_BAR (task->priv->dialog), NULL);
task->priv->error = NULL;
if (error != NULL) {
@@ -179,7 +179,7 @@ update_secondary_text (GthSearchTask *task)
format_str = g_strdup_printf ("%"G_GSIZE_FORMAT, task->priv->n_files);
msg = g_strdup_printf (_("Files found until now: %s"), format_str);
- gth_embedded_dialog_set_secondary_text (GTH_EMBEDDED_DIALOG (task->priv->dialog), msg);
+ gth_info_bar_set_secondary_text (GTH_INFO_BAR (task->priv->dialog), msg);
g_free (format_str);
g_free (msg);
@@ -236,7 +236,7 @@ start_dir_func (GFile *directory,
uri = g_file_get_parse_name (directory);
text = g_strdup_printf ("Searching in %s", uri);
- gth_embedded_dialog_set_primary_text (GTH_EMBEDDED_DIALOG (task->priv->dialog), text);
+ gth_info_bar_set_primary_text (GTH_INFO_BAR (task->priv->dialog), text);
g_free (text);
g_free (uri);
@@ -252,7 +252,7 @@ browser_location_ready_cb (GthBrowser *browser,
GthSearchTask *task)
{
GtkWidget *button;
- EmbeddedDialogData *dialog_data;
+ InfoBarData *dialog_data;
GSettings *settings;
GString *attributes;
const char *test_attributes;
@@ -266,26 +266,27 @@ browser_location_ready_cb (GthBrowser *browser,
task->priv->n_files = 0;
- task->priv->dialog = gth_browser_get_list_extra_widget (browser);
- gth_embedded_dialog_set_icon (GTH_EMBEDDED_DIALOG (task->priv->dialog), GTK_STOCK_FIND,
GTK_ICON_SIZE_DIALOG);
- gth_embedded_dialog_set_primary_text (GTH_EMBEDDED_DIALOG (task->priv->dialog), _("Searching..."));
+ task->priv->dialog = gth_browser_get_list_info_bar (browser);
+ gth_info_bar_set_icon_name (GTH_INFO_BAR (task->priv->dialog), "edit-find-symbolic",
GTK_ICON_SIZE_BUTTON);
+ gth_info_bar_set_primary_text (GTH_INFO_BAR (task->priv->dialog), _("Searching..."));
update_secondary_text (task);
_gtk_info_bar_clear_action_area (GTK_INFO_BAR (task->priv->dialog));
+ gtk_widget_show (task->priv->dialog);
+
button = gtk_button_new ();
- gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_stock (GTK_STOCK_STOP,
GTK_ICON_SIZE_BUTTON));
- gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);
+ gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_icon_name ("process-stop-symbolic",
GTK_ICON_SIZE_BUTTON));
gtk_widget_set_tooltip_text (button, _("Cancel the operation"));
gtk_widget_show_all (button);
gtk_info_bar_add_action_widget (GTK_INFO_BAR (task->priv->dialog),
button,
GTK_RESPONSE_CANCEL);
- dialog_data = g_new0 (EmbeddedDialogData, 1);
+ dialog_data = g_new0 (InfoBarData, 1);
dialog_data->browser = task->priv->browser;
dialog_data->task = task;
dialog_data->response_id = g_signal_connect (task->priv->dialog,
"response",
- G_CALLBACK (embedded_dialog_response_cb),
+ G_CALLBACK (info_bar_response_cb),
dialog_data);
/**/
diff --git a/extensions/selections/callbacks.c b/extensions/selections/callbacks.c
index 74932b9..75b6f49 100644
--- a/extensions/selections/callbacks.c
+++ b/extensions/selections/callbacks.c
@@ -298,7 +298,7 @@ void
selections__gth_browser_update_extra_widget_cb (GthBrowser *browser)
{
GthFileData *location_data;
- GtkWidget *extra_widget;
+ GtkWidget *info_bar;
int n_selection;
char *msg;
@@ -307,14 +307,16 @@ selections__gth_browser_update_extra_widget_cb (GthBrowser *browser)
return;
n_selection = g_file_info_get_attribute_int32 (location_data->info, "gthumb::n-selection");
- extra_widget = gth_browser_get_list_extra_widget (browser);
- gth_embedded_dialog_set_gicon (GTH_EMBEDDED_DIALOG (extra_widget), g_file_info_get_icon
(location_data->info), GTK_ICON_SIZE_DIALOG);
- gth_embedded_dialog_set_primary_text (GTH_EMBEDDED_DIALOG (extra_widget),
g_file_info_get_display_name (location_data->info));
- if (n_selection > 0)
- msg = g_strdup_printf (_("Use Alt-%d to add files to this selection, Ctrl-%d to view this
selection."), n_selection, n_selection);
- else
- msg = NULL;
- gth_embedded_dialog_set_secondary_text (GTH_EMBEDDED_DIALOG (extra_widget), msg);
+ if (n_selection <= 0)
+ return;
+
+ info_bar = gth_browser_get_list_info_bar (browser);
+ gtk_info_bar_set_message_type (GTK_INFO_BAR(info_bar), GTK_MESSAGE_INFO);
+ gth_info_bar_set_icon_name (GTH_INFO_BAR (info_bar), "dialog-information-symbolic",
GTK_ICON_SIZE_MENU);
+ gth_info_bar_set_primary_text (GTH_INFO_BAR (info_bar), NULL);
+ msg = g_strdup_printf (_("Use Alt-%d to add files to this selection, Ctrl-%d to view this
selection."), n_selection, n_selection);
+ gth_info_bar_set_secondary_text (GTH_INFO_BAR (info_bar), msg);
+ gtk_widget_show (info_bar);
g_free (msg);
}
diff --git a/gthumb/Makefile.am b/gthumb/Makefile.am
index 4a8705a..9d6586c 100644
--- a/gthumb/Makefile.am
+++ b/gthumb/Makefile.am
@@ -37,7 +37,6 @@ PUBLIC_HEADER_FILES = \
gth-color-scale.h \
gth-dumb-notebook.h \
gth-duplicable.h \
- gth-embedded-dialog.h \
gth-empty-list.h \
gth-extensions.h \
gth-file-chooser-dialog.h \
@@ -77,6 +76,7 @@ PUBLIC_HEADER_FILES = \
gth-image-viewer-tool.h \
gth-info-bar.h \
gth-load-file-data-task.h \
+ gth-location-bar.h \
gth-location-chooser.h \
gth-main.h \
gth-menu-action.h \
@@ -111,8 +111,6 @@ PUBLIC_HEADER_FILES = \
gth-thumb-loader.h \
gth-time.h \
gth-time-selector.h \
- gth-toggle-menu-action.h \
- gth-toggle-menu-tool-button.h \
gth-toolbox.h \
gth-uri-list.h \
gth-user-dir.h \
@@ -172,7 +170,6 @@ gthumb_SOURCES = \
gth-color-scale.c \
gth-dumb-notebook.c \
gth-duplicable.c \
- gth-embedded-dialog.c \
gth-empty-list.c \
gth-error.c \
gth-extensions.c \
@@ -212,6 +209,7 @@ gthumb_SOURCES = \
gth-image-viewer-tool.c \
gth-info-bar.c \
gth-load-file-data-task.c \
+ gth-location-bar.c \
gth-location-chooser.c \
gth-main.c \
gth-main-default-hooks.c \
@@ -251,8 +249,6 @@ gthumb_SOURCES = \
gth-thumb-loader.c \
gth-time.c \
gth-time-selector.c \
- gth-toggle-menu-action.c \
- gth-toggle-menu-tool-button.c \
gth-toolbox.c \
gth-uri-list.c \
gth-user-dir.c \
diff --git a/gthumb/gth-browser.c b/gthumb/gth-browser.c
index a61b331..f2bb8c3 100644
--- a/gthumb/gth-browser.c
+++ b/gthumb/gth-browser.c
@@ -31,7 +31,6 @@
#include "gth-browser-actions-callbacks.h"
#include "gth-browser-actions-entries.h"
#include "gth-duplicable.h"
-#include "gth-embedded-dialog.h"
#include "gth-enum-types.h"
#include "gth-error.h"
#include "gth-file-list.h"
@@ -44,6 +43,7 @@
#include "gth-icon-cache.h"
#include "gth-info-bar.h"
#include "gth-image-preloader.h"
+#include "gth-location-bar.h"
#include "gth-location-chooser.h"
#include "gth-main.h"
#include "gth-marshal.h"
@@ -54,7 +54,6 @@
#include "gth-progress-dialog.h"
#include "gth-sidebar.h"
#include "gth-statusbar.h"
-#include "gth-toggle-menu-tool-button.h"
#include "gth-user-dir.h"
#include "gth-viewer-page.h"
#include "gth-window.h"
@@ -74,6 +73,8 @@
#define SHIRNK_WRAP_HEIGHT_OFFSET 125
#define FILE_PROPERTIES_MINIMUM_HEIGHT 100
#define HISTORY_FILE "history.xbel"
+#define SECTION_BIG_MARGIN 12
+
G_DEFINE_TYPE (GthBrowser, gth_browser, GTH_TYPE_WINDOW)
@@ -109,9 +110,12 @@ struct _GthBrowserPrivate {
GtkWidget *filterbar;
GtkWidget *file_list;
GtkWidget *list_extra_widget_container;
- GtkWidget *list_extra_widget;
+ GtkWidget *list_info_bar;
+ GtkWidget *location_bar;
GtkWidget *file_properties;
GtkWidget *header_sections[GTH_BROWSER_N_HEADER_SECTIONS];
+ GtkWidget *browser_status_commands;
+ GtkWidget *viewer_status_commands;
GHashTable *menu_managers;
GtkWidget *thumbnail_list;
@@ -131,7 +135,6 @@ struct _GthBrowserPrivate {
/* Browser data */
- guint help_message_cid;
gulong folder_changed_id;
gulong file_renamed_id;
gulong metadata_changed_id;
@@ -384,8 +387,10 @@ gth_browser_update_sensitivity (GthBrowser *browser)
void
gth_browser_update_extra_widget (GthBrowser *browser)
{
- _gtk_info_bar_clear_action_area (GTK_INFO_BAR (browser->priv->list_extra_widget));
- gth_embedded_dialog_set_from_file (GTH_EMBEDDED_DIALOG (browser->priv->list_extra_widget),
browser->priv->location->file);
+ gtk_widget_hide (browser->priv->list_info_bar);
+ gtk_widget_show (browser->priv->location_bar);
+ _gtk_container_remove_children (GTK_CONTAINER (gth_location_bar_get_action_area (GTH_LOCATION_BAR
(browser->priv->location_bar))), NULL, NULL);
+ gth_location_bar_set_from_file (GTH_LOCATION_BAR (browser->priv->location_bar),
browser->priv->location->file);
gth_hook_invoke ("gth-browser-update-extra-widget", browser);
}
@@ -406,7 +411,7 @@ _gth_browser_set_location (GthBrowser *browser,
gth_browser_update_title (browser);
gth_browser_update_sensitivity (browser);
- location_chooser = gth_embedded_dialog_get_chooser (GTH_EMBEDDED_DIALOG
(browser->priv->list_extra_widget));
+ location_chooser = gth_location_bar_get_chooser (GTH_LOCATION_BAR (browser->priv->location_bar));
g_signal_handlers_block_by_data (location_chooser, browser);
gth_browser_update_extra_widget (browser);
g_signal_handlers_unblock_by_data (location_chooser, browser);
@@ -954,7 +959,7 @@ _gth_browser_show_error (GthBrowser *browser,
gth_info_bar_set_secondary_text (GTH_INFO_BAR (browser->priv->infobar), error->message);
gtk_orientable_set_orientation (GTK_ORIENTABLE (gtk_info_bar_get_action_area (GTK_INFO_BAR
(browser->priv->infobar))), GTK_ORIENTATION_HORIZONTAL);
- gth_info_bar_set_icon (GTH_INFO_BAR (browser->priv->infobar), GTK_STOCK_DIALOG_ERROR);
+ gth_info_bar_set_icon_name (GTH_INFO_BAR (browser->priv->infobar), "dialog-error-symbolic",
GTK_ICON_SIZE_DIALOG);
gtk_info_bar_set_message_type (GTK_INFO_BAR (browser->priv->infobar), GTK_MESSAGE_ERROR);
_gtk_info_bar_clear_action_area (GTK_INFO_BAR (browser->priv->infobar));
gtk_info_bar_add_buttons (GTK_INFO_BAR (browser->priv->infobar),
@@ -2165,6 +2170,9 @@ _gth_browser_real_set_current_page (GthWindow *window,
_gth_browser_update_header_section_visibility (browser, GTH_BROWSER_HEADER_SECTION_VIEWER_EDIT, page
== GTH_BROWSER_PAGE_VIEWER);
_gth_browser_update_header_section_visibility (browser, GTH_BROWSER_HEADER_SECTION_VIEWER_TOOLS, page
== GTH_BROWSER_PAGE_VIEWER);
+ gtk_widget_set_visible (browser->priv->browser_status_commands, page == GTH_BROWSER_PAGE_BROWSER);
+ gtk_widget_set_visible (browser->priv->viewer_status_commands, page == GTH_BROWSER_PAGE_VIEWER);
+
/* move the sidebar from the browser to the viewer and vice-versa */
gtk_widget_unrealize (browser->priv->file_properties);
@@ -3862,6 +3870,12 @@ gth_browser_init (GthBrowser *browser)
gtk_style_context_add_class (gtk_widget_get_style_context
(browser->priv->header_sections[i]), GTK_STYLE_CLASS_LINKED);
}
+ gtk_widget_set_margin_right
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_BROWSER_EDIT], SECTION_BIG_MARGIN);
+ gtk_widget_set_margin_left
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_BROWSER_EDIT], SECTION_BIG_MARGIN);
+
+ gtk_widget_set_margin_right
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_EDIT], SECTION_BIG_MARGIN);
+ gtk_widget_set_margin_left
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_EDIT], SECTION_BIG_MARGIN);
+
gtk_header_bar_pack_start (GTK_HEADER_BAR (header_bar),
browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_BROWSER_NAVIGATION]);
gtk_header_bar_pack_start (GTK_HEADER_BAR (header_bar),
browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_BROWSER_LOCATIONS]);
gtk_header_bar_pack_start (GTK_HEADER_BAR (header_bar),
browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_BROWSER_COMMANDS]);
@@ -3946,18 +3960,6 @@ gth_browser_init (GthBrowser *browser)
/* browser commands */
- gth_browser_add_header_bar_toggle_button (browser,
- GTH_BROWSER_HEADER_SECTION_BROWSER_VIEW,
- "document-properties-symbolic",
- _("View file properties"),
- "win.browser-properties",
- NULL);
- gth_browser_add_header_bar_button (browser,
- GTH_BROWSER_HEADER_SECTION_BROWSER_VIEW,
- "view-fullscreen-symbolic",
- _("Switch to fullscreen"),
- "win.fullscreen",
- NULL);
gth_browser_add_header_bar_button (browser,
GTH_BROWSER_HEADER_SECTION_BROWSER_EDIT,
"palette-symbolic",
@@ -3974,21 +3976,6 @@ gth_browser_init (GthBrowser *browser)
"win.browser-mode",
NULL);
- /* viewer view */
-
- gth_browser_add_header_bar_toggle_button (browser,
- GTH_BROWSER_HEADER_SECTION_VIEWER_VIEW,
- "document-properties-symbolic",
- _("View file properties"),
- "win.viewer-properties",
- NULL);
- gth_browser_add_header_bar_button (browser,
- GTH_BROWSER_HEADER_SECTION_VIEWER_VIEW,
- "view-fullscreen-symbolic",
- _("Switch to fullscreen"),
- "win.fullscreen",
- NULL);
-
/* viewer edit */
gth_browser_add_header_bar_toggle_button (browser,
@@ -4001,16 +3988,54 @@ gth_browser_init (GthBrowser *browser)
/* infobar */
- browser->priv->infobar = gth_info_bar_new (NULL, NULL, NULL);
+ browser->priv->infobar = gth_info_bar_new ();
gth_window_attach (GTH_WINDOW (browser), browser->priv->infobar, GTH_WINDOW_INFOBAR);
/* statusbar */
browser->priv->statusbar = gth_statusbar_new ();
- browser->priv->help_message_cid = gtk_statusbar_get_context_id (GTK_STATUSBAR
(browser->priv->statusbar), "gth_help_message");
_gth_browser_set_statusbar_visibility (browser, g_settings_get_boolean
(browser->priv->browser_settings, PREF_BROWSER_STATUSBAR_VISIBLE));
gth_window_attach (GTH_WINDOW (browser), browser->priv->statusbar, GTH_WINDOW_STATUSBAR);
+ {
+ GtkWidget *button;
+
+ /* statusbar commands in browser mode */
+
+ browser->priv->browser_status_commands = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
+ gtk_widget_show (browser->priv->browser_status_commands);
+ /*gtk_style_context_add_class (gtk_widget_get_style_context
(browser->priv->browser_status_commands), GTK_STYLE_CLASS_LINKED);*/
+ gtk_box_pack_start (GTK_BOX (gth_statubar_get_action_area (GTH_STATUSBAR
(browser->priv->statusbar))), browser->priv->browser_status_commands, FALSE, FALSE, 0);
+
+ button = gtk_toggle_button_new ();
+ /*gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);*/
+ gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_icon_name
("document-properties-symbolic", GTK_ICON_SIZE_MENU));
+ gtk_widget_show_all (button);
+ gtk_actionable_set_action_name (GTK_ACTIONABLE (button), "win.browser-properties");
+ gtk_box_pack_end (GTK_BOX (browser->priv->browser_status_commands), button, FALSE, FALSE, 0);
+
+ /* statusbar commands in viewer mode */
+
+ browser->priv->viewer_status_commands = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 3);
+ gtk_widget_show (browser->priv->viewer_status_commands);
+ /*gtk_style_context_add_class (gtk_widget_get_style_context
(browser->priv->viewer_status_commands), GTK_STYLE_CLASS_LINKED);*/
+ gtk_box_pack_start (GTK_BOX (gth_statubar_get_action_area (GTH_STATUSBAR
(browser->priv->statusbar))), browser->priv->viewer_status_commands, FALSE, FALSE, 0);
+
+ button = gtk_toggle_button_new ();
+ /*gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);*/
+ gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_icon_name
("document-properties-symbolic", GTK_ICON_SIZE_MENU));
+ gtk_widget_show_all (button);
+ gtk_actionable_set_action_name (GTK_ACTIONABLE (button), "win.viewer-properties");
+ gtk_box_pack_end (GTK_BOX (browser->priv->viewer_status_commands), button, FALSE, FALSE, 0);
+
+ button = gtk_toggle_button_new ();
+ /*gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);*/
+ gtk_container_add (GTK_CONTAINER (button), gtk_image_new_from_icon_name
("view-grid-symbolic", GTK_ICON_SIZE_MENU));
+ gtk_widget_show_all (button);
+ gtk_actionable_set_action_name (GTK_ACTIONABLE (button), "win.show-thumbnail-list");
+ gtk_box_pack_end (GTK_BOX (browser->priv->viewer_status_commands), button, FALSE, FALSE, 0);
+ }
+
/* main content */
browser->priv->browser_right_container = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL);
@@ -4125,20 +4150,25 @@ gth_browser_init (GthBrowser *browser)
/* the list extra widget container */
- browser->priv->list_extra_widget_container = gtk_alignment_new (0, 0.5, 1.0, 1.0);
- gtk_alignment_set_padding (GTK_ALIGNMENT (browser->priv->list_extra_widget_container), 0, 0, 0, 0);
+ browser->priv->list_extra_widget_container = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
gtk_widget_show (browser->priv->list_extra_widget_container);
gtk_box_pack_start (GTK_BOX (vbox), browser->priv->list_extra_widget_container, FALSE, FALSE, 0);
- browser->priv->list_extra_widget = gth_embedded_dialog_new ();
- gtk_widget_show (browser->priv->list_extra_widget);
- gtk_container_add (GTK_CONTAINER (browser->priv->list_extra_widget_container),
browser->priv->list_extra_widget);
+ /* location bar */
- g_signal_connect (gth_embedded_dialog_get_chooser (GTH_EMBEDDED_DIALOG
(browser->priv->list_extra_widget)),
+ browser->priv->location_bar = gth_location_bar_new ();
+ gtk_widget_show (browser->priv->location_bar);
+ gtk_box_pack_start (GTK_BOX (browser->priv->list_extra_widget_container),
browser->priv->location_bar, TRUE, TRUE, 0);
+ g_signal_connect (gth_location_bar_get_chooser (GTH_LOCATION_BAR (browser->priv->location_bar)),
"changed",
G_CALLBACK (location_chooser_changed_cb),
browser);
+ /* list info bar */
+
+ browser->priv->list_info_bar = gth_info_bar_new ();
+ gtk_box_pack_start (GTK_BOX (browser->priv->list_extra_widget_container),
browser->priv->list_info_bar, TRUE, TRUE, 0);
+
/* the file list */
browser->priv->file_list = gth_file_list_new (gth_grid_view_new (), GTH_FILE_LIST_MODE_NORMAL, TRUE);
@@ -4622,7 +4652,7 @@ _gth_browser_setup_header_bar_button (GthBrowser *browser,
const char *accelerator,
GtkWidget *button)
{
- gtk_actionable_set_action_name (GTK_ACTIONABLE (button),action_name);
+ gtk_actionable_set_action_name (GTK_ACTIONABLE (button), action_name);
if (tooltip != NULL)
gtk_widget_set_tooltip_text (button, tooltip);
if (accelerator != NULL)
@@ -4857,7 +4887,6 @@ foreground_task_completed_cb (GthTask *task,
g_signal_handler_disconnect (browser->priv->task, browser->priv->task_completed);
g_signal_handler_disconnect (browser->priv->task, browser->priv->task_progress);
- gth_statusbar_set_progress (GTH_STATUSBAR (browser->priv->statusbar), NULL, FALSE, 0.0);
gth_browser_update_sensitivity (browser);
if ((error != NULL) && ! g_error_matches (error, GTH_TASK_ERROR, GTH_TASK_ERROR_CANCELLED))
_gth_browser_show_error (browser, _("Could not perform the operation"), error);
@@ -4875,7 +4904,7 @@ foreground_task_progress_cb (GthTask *task,
double fraction,
GthBrowser *browser)
{
- gth_statusbar_set_progress (GTH_STATUSBAR (browser->priv->statusbar), description, pulse, fraction);
+ /* void */
}
@@ -4937,9 +4966,16 @@ gth_browser_get_close_with_task (GthBrowser *browser)
GtkWidget *
-gth_browser_get_list_extra_widget (GthBrowser *browser)
+gth_browser_get_location_bar (GthBrowser *browser)
+{
+ return browser->priv->location_bar;
+}
+
+
+GtkWidget *
+gth_browser_get_list_info_bar (GthBrowser *browser)
{
- return browser->priv->list_extra_widget;
+ return browser->priv->list_info_bar;
}
diff --git a/gthumb/gth-browser.h b/gthumb/gth-browser.h
index 3039c24..0397a38 100644
--- a/gthumb/gth-browser.h
+++ b/gthumb/gth-browser.h
@@ -189,7 +189,8 @@ void gth_browser_exec_task (GthBrowser *browser,
void gth_browser_set_close_with_task (GthBrowser *browser,
gboolean value);
gboolean gth_browser_get_close_with_task (GthBrowser *browser);
-GtkWidget * gth_browser_get_list_extra_widget (GthBrowser *browser);
+GtkWidget * gth_browser_get_location_bar (GthBrowser *browser);
+GtkWidget * gth_browser_get_list_info_bar (GthBrowser *browser);
gboolean gth_browser_viewer_button_press_cb (GthBrowser *browser,
GdkEventButton *event);
gboolean gth_browser_viewer_scroll_event_cb (GthBrowser *browser,
diff --git a/gthumb/gth-info-bar.c b/gthumb/gth-info-bar.c
index a4f412e..90a896f 100644
--- a/gthumb/gth-info-bar.c
+++ b/gthumb/gth-info-bar.c
@@ -42,13 +42,6 @@ gth_info_bar_class_init (GthInfoBarClass *klass)
static void
-gth_info_bar_init (GthInfoBar *self)
-{
- self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GTH_TYPE_INFO_BAR, GthInfoBarPrivate);
-}
-
-
-static void
infobar_response_cb (GtkInfoBar *self,
int response_id,
gpointer user_data)
@@ -62,7 +55,7 @@ infobar_response_cb (GtkInfoBar *self,
static void
-gth_info_bar_construct (GthInfoBar *self)
+gth_info_bar_init (GthInfoBar *self)
{
GtkWidget *hbox_content;
GtkWidget *image;
@@ -70,7 +63,9 @@ gth_info_bar_construct (GthInfoBar *self)
GtkWidget *primary_label;
GtkWidget *secondary_label;
GtkWidget *area;
-
+
+ self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GTH_TYPE_INFO_BAR, GthInfoBarPrivate);
+
hbox_content = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8);
gtk_widget_show (hbox_content);
@@ -91,7 +86,7 @@ gth_info_bar_construct (GthInfoBar *self)
gtk_label_set_ellipsize (GTK_LABEL (primary_label), PANGO_ELLIPSIZE_MIDDLE);
gtk_misc_set_alignment (GTK_MISC (primary_label), 0, 0.5);
gtk_label_set_selectable (GTK_LABEL (primary_label), TRUE);
-
+
self->priv->secondary_text_label = secondary_label = gtk_label_new (NULL);
gtk_box_pack_start (GTK_BOX (vbox), secondary_label, TRUE, TRUE, 0);
gtk_widget_set_can_focus (secondary_label, TRUE);
@@ -101,7 +96,7 @@ gth_info_bar_construct (GthInfoBar *self)
gtk_label_set_ellipsize (GTK_LABEL (secondary_label), PANGO_ELLIPSIZE_END);
gtk_misc_set_alignment (GTK_MISC (secondary_label), 0, 0.5);
gtk_label_set_selectable (GTK_LABEL (secondary_label), TRUE);
-
+
area = gtk_info_bar_get_action_area (GTK_INFO_BAR (self));
gtk_container_set_border_width (GTK_CONTAINER (self), 0);
gtk_box_set_homogeneous (GTK_BOX (area), FALSE);
@@ -113,7 +108,6 @@ gth_info_bar_construct (GthInfoBar *self)
gtk_widget_set_name (GTK_WIDGET (self), "GthInfoBar");
gtk_info_bar_set_message_type (GTK_INFO_BAR (self), GTK_MESSAGE_OTHER);
- gtk_container_set_border_width (GTK_CONTAINER (self), 0);
g_signal_connect (self,
"response",
@@ -123,19 +117,9 @@ gth_info_bar_construct (GthInfoBar *self)
GtkWidget *
-gth_info_bar_new (const char *icon_stock_id,
- const char *primary_text,
- const char *secondary_text)
+gth_info_bar_new (void)
{
- GthInfoBar *self;
-
- self = g_object_new (GTH_TYPE_INFO_BAR, NULL);
- gth_info_bar_construct (self);
- gth_info_bar_set_icon (self, icon_stock_id);
- gth_info_bar_set_primary_text (self, primary_text);
- gth_info_bar_set_secondary_text (self, secondary_text);
-
- return (GtkWidget *) self;
+ return GTK_WIDGET (g_object_new (GTH_TYPE_INFO_BAR, NULL));
}
@@ -147,29 +131,31 @@ gth_info_bar_get_primary_label (GthInfoBar *dialog)
void
-gth_info_bar_set_icon (GthInfoBar *self,
- const char *icon_stock_id)
+gth_info_bar_set_icon_name (GthInfoBar *self,
+ const char *icon_name,
+ GtkIconSize icon_size)
{
- if (icon_stock_id == NULL) {
+ if (icon_name == NULL) {
gtk_widget_hide (self->priv->icon_image);
return;
}
- gtk_image_set_from_stock (GTK_IMAGE (self->priv->icon_image), icon_stock_id, GTK_ICON_SIZE_BUTTON);
+ gtk_image_set_from_icon_name (GTK_IMAGE (self->priv->icon_image), icon_name, icon_size);
gtk_widget_show (self->priv->icon_image);
}
void
-gth_info_bar_set_gicon (GthInfoBar *self,
- GIcon *icon)
+gth_info_bar_set_gicon (GthInfoBar *self,
+ GIcon *icon,
+ GtkIconSize icon_size)
{
if (icon == NULL) {
gtk_widget_hide (self->priv->icon_image);
return;
}
- gtk_image_set_from_gicon (GTK_IMAGE (self->priv->icon_image), icon, GTK_ICON_SIZE_BUTTON);
+ gtk_image_set_from_gicon (GTK_IMAGE (self->priv->icon_image), icon, icon_size);
gtk_widget_show (self->priv->icon_image);
}
@@ -185,12 +171,12 @@ gth_info_bar_set_primary_text (GthInfoBar *self,
gtk_widget_hide (self->priv->primary_text_label);
return;
}
-
+
escaped = g_markup_escape_text (text, -1);
markup = g_strdup_printf ("<b>%s</b>", escaped);
gtk_label_set_markup (GTK_LABEL (self->priv->primary_text_label), markup);
gtk_widget_show (self->priv->primary_text_label);
-
+
g_free (markup);
g_free (escaped);
}
@@ -207,12 +193,12 @@ gth_info_bar_set_secondary_text (GthInfoBar *self,
gtk_widget_hide (self->priv->secondary_text_label);
return;
}
-
+
escaped = g_markup_escape_text (text, -1);
markup = g_strdup_printf ("<small>%s</small>", escaped);
gtk_label_set_markup (GTK_LABEL (self->priv->secondary_text_label), markup);
gtk_widget_show (self->priv->secondary_text_label);
-
+
g_free (markup);
g_free (escaped);
}
diff --git a/gthumb/gth-info-bar.h b/gthumb/gth-info-bar.h
index a17825f..d47c975 100644
--- a/gthumb/gth-info-bar.h
+++ b/gthumb/gth-info-bar.h
@@ -49,18 +49,18 @@ struct _GthInfoBarClass
};
GType gth_info_bar_get_type (void) G_GNUC_CONST;
-GtkWidget * gth_info_bar_new (const char *icon_stock_id,
- const char *primary_text,
- const char *secondary_text);
-GtkWidget * gth_info_bar_get_primary_label (GthInfoBar *dialog);
-void gth_info_bar_set_icon (GthInfoBar *dialog,
- const char *icon_stock_id);
-void gth_info_bar_set_gicon (GthInfoBar *dialog,
- GIcon *icon);
-void gth_info_bar_set_primary_text (GthInfoBar *dialog,
- const char *primary_text);
-void gth_info_bar_set_secondary_text (GthInfoBar *dialog,
- const char *secondary_text);
+GtkWidget * gth_info_bar_new (void);
+GtkWidget * gth_info_bar_get_primary_label (GthInfoBar *dialog);
+void gth_info_bar_set_icon_name (GthInfoBar *dialog,
+ const char *icon_name,
+ GtkIconSize icon_size);
+void gth_info_bar_set_gicon (GthInfoBar *dialog,
+ GIcon *icon,
+ GtkIconSize icon_size);
+void gth_info_bar_set_primary_text (GthInfoBar *dialog,
+ const char *primary_text);
+void gth_info_bar_set_secondary_text (GthInfoBar *dialog,
+ const char *secondary_text);
G_END_DECLS
diff --git a/gthumb/gth-location-bar.c b/gthumb/gth-location-bar.c
new file mode 100644
index 0000000..48526ff
--- /dev/null
+++ b/gthumb/gth-location-bar.c
@@ -0,0 +1,106 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+/*
+ * GThumb
+ *
+ * Copyright (C) 2013 The Free Software Foundation, Inc.
+ *
+ * This program 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 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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/>.
+ */
+
+#include <config.h>
+#include <gtk/gtk.h>
+#include "gth-location-bar.h"
+#include "gth-location-chooser.h"
+
+
+#define LOCATION_BAR_MARGIN 3
+
+
+struct _GthLocationBarPrivate {
+ GtkWidget *location_chooser;
+ GtkWidget *action_area;
+};
+
+
+G_DEFINE_TYPE_WITH_CODE (GthLocationBar, gth_location_bar, GTK_TYPE_BOX,
+ G_ADD_PRIVATE (GthLocationBar))
+
+
+static void
+gth_location_bar_class_init (GthLocationBarClass *klass)
+{
+ /* void */
+}
+
+
+static void
+gth_location_bar_init (GthLocationBar *self)
+{
+ GtkWidget *box;
+
+ self->priv = gth_location_bar_get_instance_private (self);
+
+ gtk_orientable_set_orientation (GTK_ORIENTABLE (self), GTK_ORIENTATION_HORIZONTAL);
+ gtk_widget_set_margin_top (GTK_WIDGET (self), LOCATION_BAR_MARGIN);
+ gtk_widget_set_margin_bottom (GTK_WIDGET (self), LOCATION_BAR_MARGIN);
+ gtk_widget_set_margin_right (GTK_WIDGET (self), LOCATION_BAR_MARGIN);
+
+ /* location chooser */
+
+ box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+ gtk_widget_show (box);
+ self->priv->location_chooser = g_object_new (GTH_TYPE_LOCATION_CHOOSER,
+ "show-entry-points", FALSE,
+ "relief", GTK_RELIEF_NONE,
+ NULL);
+ gtk_widget_show (self->priv->location_chooser);
+ gtk_box_pack_start (GTK_BOX (box), self->priv->location_chooser, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (self), box, TRUE, TRUE, 0);
+
+ /* action area */
+
+ self->priv->action_area = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
+ gtk_widget_show (self->priv->action_area);
+ gtk_box_pack_end (GTK_BOX (self), self->priv->action_area, FALSE, FALSE, 0);
+}
+
+
+GtkWidget *
+gth_location_bar_new (void)
+{
+ return g_object_new (GTH_TYPE_LOCATION_BAR, NULL);
+}
+
+
+void
+gth_location_bar_set_from_file (GthLocationBar *self,
+ GFile *file)
+{
+ gth_location_chooser_set_current (GTH_LOCATION_CHOOSER (self->priv->location_chooser), file);
+}
+
+
+GtkWidget *
+gth_location_bar_get_chooser (GthLocationBar *self)
+{
+ return self->priv->location_chooser;
+}
+
+
+GtkWidget *
+gth_location_bar_get_action_area (GthLocationBar *self)
+{
+ return self->priv->action_area;
+}
diff --git a/gthumb/gth-location-bar.h b/gthumb/gth-location-bar.h
new file mode 100644
index 0000000..6f82e18
--- /dev/null
+++ b/gthumb/gth-location-bar.h
@@ -0,0 +1,60 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+/*
+ * GThumb
+ *
+ * Copyright (C) 2013 Free Software Foundation, Inc.
+ *
+ * This program 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 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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/>.
+ */
+
+#ifndef GTH_LOCATION_BAR_H
+#define GTH_LOCATION_BAR_H
+
+#include <gtk/gtk.h>
+
+G_BEGIN_DECLS
+
+#define GTH_TYPE_LOCATION_BAR (gth_location_bar_get_type ())
+#define GTH_LOCATION_BAR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GTH_TYPE_LOCATION_BAR,
GthLocationBar))
+#define GTH_LOCATION_BAR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GTH_TYPE_LOCATION_BAR,
GthLocationBarClass))
+#define GTH_IS_LOCATION_BAR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GTH_TYPE_LOCATION_BAR))
+#define GTH_IS_LOCATION_BAR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GTH_TYPE_LOCATION_BAR))
+#define GTH_LOCATION_BAR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), GTH_TYPE_LOCATION_BAR,
GthLocationBarClass))
+
+typedef struct _GthLocationBar GthLocationBar;
+typedef struct _GthLocationBarPrivate GthLocationBarPrivate;
+typedef struct _GthLocationBarClass GthLocationBarClass;
+
+struct _GthLocationBar
+{
+ GtkBox __parent;
+ GthLocationBarPrivate *priv;
+};
+
+struct _GthLocationBarClass
+{
+ GtkBoxClass __parent_class;
+};
+
+GType gth_location_bar_get_type (void) G_GNUC_CONST;
+GtkWidget * gth_location_bar_new (void);
+void gth_location_bar_set_from_file (GthLocationBar *dialog,
+ GFile *file);
+GtkWidget * gth_location_bar_get_chooser (GthLocationBar *dialog);
+GtkWidget * gth_location_bar_get_action_area (GthLocationBar *self);
+
+G_END_DECLS
+
+#endif /* GTH_LOCATION_BAR_H */
diff --git a/gthumb/gth-statusbar.c b/gthumb/gth-statusbar.c
index 6c97348..1e5ffd4 100644
--- a/gthumb/gth-statusbar.c
+++ b/gthumb/gth-statusbar.c
@@ -25,19 +25,16 @@
struct _GthStatusbarPrivate {
- guint list_info_cid;
+ GtkWidget *list_info_label;
GtkWidget *primary_text;
GtkWidget *primary_text_frame;
GtkWidget *secondary_text;
GtkWidget *secondary_text_frame;
- GtkWidget *progress_box;
- GtkWidget *progress_bar;
- GtkWidget *progress_label;
- /*GtkWidget *stop_button;*/
+ GtkWidget *action_area;
};
-G_DEFINE_TYPE (GthStatusbar, gth_statusbar, GTK_TYPE_STATUSBAR)
+G_DEFINE_TYPE (GthStatusbar, gth_statusbar, GTK_TYPE_BOX)
static void
@@ -50,55 +47,37 @@ gth_statusbar_class_init (GthStatusbarClass *klass)
static void
gth_statusbar_init (GthStatusbar *statusbar)
{
- GtkWidget *separator;
- GtkWidget *hbox;
- GtkWidget *vbox;
- /*GtkWidget *image;*/
-
- gtk_box_set_spacing (GTK_BOX (statusbar), 0);
-
statusbar->priv = G_TYPE_INSTANCE_GET_PRIVATE (statusbar, GTH_TYPE_STATUSBAR, GthStatusbarPrivate);
- statusbar->priv->list_info_cid = gtk_statusbar_get_context_id (GTK_STATUSBAR (statusbar),
"gth_list_info");
- /* Progress info */
+ gtk_box_set_spacing (GTK_BOX (statusbar), 6);
+ gtk_widget_set_margin_top (GTK_WIDGET (statusbar), 3);
+ gtk_widget_set_margin_right (GTK_WIDGET (statusbar), 6);
+ gtk_widget_set_margin_bottom (GTK_WIDGET (statusbar), 3);
+ gtk_widget_set_margin_left (GTK_WIDGET (statusbar), 6);
- statusbar->priv->progress_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
- gtk_widget_hide (statusbar->priv->progress_box);
- gtk_box_pack_start (GTK_BOX (statusbar), statusbar->priv->progress_box, FALSE, FALSE, 0);
+ /* List info */
- separator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
- gtk_widget_show (separator);
- gtk_box_pack_start (GTK_BOX (statusbar->priv->progress_box), separator, FALSE, FALSE, 0);
+ statusbar->priv->list_info_label = gtk_label_new (NULL);
+ gtk_widget_show (statusbar->priv->list_info_label);
+ gtk_box_pack_start (GTK_BOX (statusbar), statusbar->priv->list_info_label, FALSE, FALSE, 0);
- hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
- gtk_widget_show (hbox);
- gtk_box_pack_start (GTK_BOX (statusbar->priv->progress_box), hbox, FALSE, FALSE, 0);
+ /* Action area */
- statusbar->priv->progress_label = gtk_label_new (NULL);
- gtk_widget_show (statusbar->priv->progress_label);
- gtk_box_pack_start (GTK_BOX (hbox), statusbar->priv->progress_label, TRUE, TRUE, 0);
+ statusbar->priv->action_area = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
+ gtk_widget_show (statusbar->priv->action_area);
+ gtk_box_pack_end (GTK_BOX (statusbar), statusbar->priv->action_area, FALSE, FALSE, 0);
- vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
- gtk_box_set_homogeneous (GTK_BOX (vbox), TRUE);
- gtk_widget_show (vbox);
- gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 0);
+ /* Primary text */
- statusbar->priv->progress_bar = gtk_progress_bar_new ();
- gtk_widget_set_size_request (statusbar->priv->progress_bar, 60, 12);
- gtk_widget_show (statusbar->priv->progress_bar);
- gtk_box_pack_start (GTK_BOX (vbox), statusbar->priv->progress_bar, FALSE, FALSE, 0);
+ statusbar->priv->primary_text = gtk_label_new (NULL);
+ gtk_widget_show (statusbar->priv->primary_text);
- /*
- statusbar->priv->stop_button = gtk_button_new ();
- gtk_widget_set_size_request (statusbar->priv->stop_button, 26, 26);
- gtk_button_set_relief (GTK_BUTTON (statusbar->priv->stop_button), GTK_RELIEF_NONE);
- gtk_widget_show (statusbar->priv->stop_button);
- gtk_box_pack_start (GTK_BOX (hbox), statusbar->priv->stop_button, FALSE, FALSE, 0);
+ statusbar->priv->primary_text_frame = gtk_frame_new (NULL);
+ gtk_widget_show (statusbar->priv->primary_text_frame);
- image = gtk_image_new_from_stock (GTK_STOCK_STOP, GTK_ICON_SIZE_MENU);
- gtk_widget_show (image);
- gtk_container_add (GTK_CONTAINER (statusbar->priv->stop_button), image);
- */
+ gtk_frame_set_shadow_type (GTK_FRAME (statusbar->priv->primary_text_frame), GTK_SHADOW_NONE);
+ gtk_container_add (GTK_CONTAINER (statusbar->priv->primary_text_frame),
statusbar->priv->primary_text);
+ gtk_box_pack_end (GTK_BOX (statusbar), statusbar->priv->primary_text_frame, FALSE, FALSE, 0);
/* Secondary text */
@@ -109,19 +88,7 @@ gth_statusbar_init (GthStatusbar *statusbar)
gtk_widget_show (statusbar->priv->secondary_text_frame);
gtk_frame_set_shadow_type (GTK_FRAME (statusbar->priv->secondary_text_frame), GTK_SHADOW_NONE);
gtk_container_add (GTK_CONTAINER (statusbar->priv->secondary_text_frame),
statusbar->priv->secondary_text);
- gtk_box_pack_start (GTK_BOX (statusbar), statusbar->priv->secondary_text_frame, FALSE, FALSE, 0);
-
- /* Primary text */
-
- statusbar->priv->primary_text = gtk_label_new (NULL);
- gtk_widget_show (statusbar->priv->primary_text);
-
- statusbar->priv->primary_text_frame = gtk_frame_new (NULL);
- gtk_widget_show (statusbar->priv->primary_text_frame);
-
- gtk_frame_set_shadow_type (GTK_FRAME (statusbar->priv->primary_text_frame), GTK_SHADOW_NONE);
- gtk_container_add (GTK_CONTAINER (statusbar->priv->primary_text_frame),
statusbar->priv->primary_text);
- gtk_box_pack_start (GTK_BOX (statusbar), statusbar->priv->primary_text_frame, FALSE, FALSE, 0);
+ gtk_box_pack_end (GTK_BOX (statusbar), statusbar->priv->secondary_text_frame, FALSE, FALSE, 0);
}
@@ -136,8 +103,7 @@ void
gth_statusbar_set_list_info (GthStatusbar *statusbar,
const char *text)
{
- gtk_statusbar_pop (GTK_STATUSBAR (statusbar), statusbar->priv->list_info_cid);
- gtk_statusbar_push (GTK_STATUSBAR (statusbar), statusbar->priv->list_info_cid, text);
+ gtk_label_set_text (GTK_LABEL (statusbar->priv->list_info_label), text);
}
@@ -167,21 +133,8 @@ gth_statusbar_set_secondary_text (GthStatusbar *statusbar,
}
-void
-gth_statusbar_set_progress (GthStatusbar *statusbar,
- const char *text,
- gboolean pulse,
- double fraction)
+GtkWidget *
+gth_statubar_get_action_area (GthStatusbar *statusbar)
{
- if (text == NULL) {
- gtk_widget_hide (statusbar->priv->progress_box);
- return;
- }
-
- gtk_widget_show (statusbar->priv->progress_box);
- gtk_label_set_text (GTK_LABEL (statusbar->priv->progress_label), text);
- if (pulse)
- gtk_progress_bar_pulse (GTK_PROGRESS_BAR (statusbar->priv->progress_bar));
- else
- gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (statusbar->priv->progress_bar), fraction);
+ return statusbar->priv->action_area;
}
diff --git a/gthumb/gth-statusbar.h b/gthumb/gth-statusbar.h
index f30bb74..b0dbb80 100644
--- a/gthumb/gth-statusbar.h
+++ b/gthumb/gth-statusbar.h
@@ -38,12 +38,12 @@ typedef struct _GthStatusbarClass GthStatusbarClass;
typedef struct _GthStatusbarPrivate GthStatusbarPrivate;
struct _GthStatusbar {
- GtkStatusbar parent_instance;
+ GtkBox parent_instance;
GthStatusbarPrivate *priv;
};
struct _GthStatusbarClass {
- GtkStatusbarClass parent_class;
+ GtkBoxClass parent_class;
};
GType gth_statusbar_get_type (void);
@@ -58,6 +58,7 @@ void gth_statusbar_set_progress (GthStatusbar *statusbar,
const char *text,
gboolean pulse,
double fraction);
+GtkWidget * gth_statubar_get_action_area (GthStatusbar *statusbar);
G_END_DECLS
diff --git a/gthumb/resources/gears-menu.ui b/gthumb/resources/gears-menu.ui
index f964d2b..ec011fc 100644
--- a/gthumb/resources/gears-menu.ui
+++ b/gthumb/resources/gears-menu.ui
@@ -32,6 +32,10 @@
</section>
<section id="view-actions">
<item>
+ <attribute name="label" translatable="yes">Sort By…</attribute>
+ <attribute name="action">win.sort-by</attribute>
+ </item>
+ <item>
<attribute name="label" translatable="yes">Hidden Files</attribute>
<attribute name="action">win.show-hidden-files</attribute>
</item>
@@ -42,24 +46,8 @@
</item>
</section>
<section id="folder-actions">
- <item>
- <attribute name="label" translatable="yes">Sort By…</attribute>
- <attribute name="action">win.sort-by</attribute>
- </item>
</section>
<section id="other-actions">
</section>
- <section>
- <item>
- <attribute name="label" translatable="yes">Close All Windows</attribute>
- <attribute name="action">app.quit</attribute>
- <attribute name="accel"><![CDATA[<Ctrl>q]]></attribute>
- </item>
- <item>
- <attribute name="label" translatable="yes">Close</attribute>
- <attribute name="action">win.close</attribute>
- <attribute name="accel"><![CDATA[<Ctrl>w]]></attribute>
- </item>
- </section>
</menu>
</interface>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]