annotate src/layout_util.c @ 9:d907d608745f

Sync to GQview 1.5.9 release. ######## DO NOT BASE ENHANCEMENTS OR TRANSLATION UPDATES ON CODE IN THIS CVS! This CVS is never up to date with current development and is provided solely for reference purposes, please use the latest official release package when making any changes or translation updates. ########
author gqview
date Sat, 26 Feb 2005 00:13:35 +0000
parents
children 147f4c4b9025
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2 * GQview
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
3 * (C) 2004 John Ellis
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
4 *
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
5 * Author: John Ellis
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
6 *
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
7 * This software is released under the GNU General Public License (GNU GPL).
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
8 * Please read the included file COPYING for more information.
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
9 * This software comes with no warranty of any kind, use at your own risk!
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
10 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
11
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
12
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
13 #include "gqview.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
14 #include "layout_util.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
15
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
16 #include "bar_info.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
17 #include "bar_exif.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
18 #include "bar_sort.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
19 #include "cache_maint.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
20 #include "collect.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
21 #include "collect-dlg.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
22 #include "dupe.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
23 #include "editors.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
24 #include "info.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
25 #include "layout_image.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
26 #include "pixbuf_util.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
27 #include "preferences.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
28 #include "print.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
29 #include "search.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
30 #include "utilops.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
31 #include "ui_bookmark.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
32 #include "ui_fileops.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
33 #include "ui_menu.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
34 #include "ui_misc.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
35 #include "ui_tabcomp.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
36
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
37 #include <gdk/gdkkeysyms.h> /* for keyboard values */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
38
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
39 #include "icons/icon_thumb.xpm"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
40 #include "icons/icon_float.xpm"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
41
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
42
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
43 #define MENU_EDIT_ACTION_OFFSET 16
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
44
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
45
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
46 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
47 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
48 * keyboard handler
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
49 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
50 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
51
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
52 static guint tree_key_overrides[] = {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
53 GDK_Page_Up, GDK_KP_Page_Up,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
54 GDK_Page_Down, GDK_KP_Page_Down,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
55 GDK_Home, GDK_KP_Home,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
56 GDK_End, GDK_KP_End
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
57 };
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
58
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
59 static gint layout_key_match(guint keyval)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
60 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
61 gint i;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
62
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
63 for (i = 0; i < sizeof(tree_key_overrides) / sizeof(guint); i++)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
64 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
65 if (keyval == tree_key_overrides[i]) return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
66 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
67
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
68 return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
69 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
70
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
71 static gint layout_key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
72 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
73 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
74 gint stop_signal = FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
75 gint x = 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
76 gint y = 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
77
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
78 if (lw->path_entry && GTK_WIDGET_HAS_FOCUS(lw->path_entry))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
79 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
80 if (event->keyval == GDK_Escape && lw->path)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
81 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
82 gtk_entry_set_text(GTK_ENTRY(lw->path_entry), lw->path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
83 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
84
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
85 /* the gtkaccelgroup of the window is stealing presses before they get to the entry (and more),
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
86 * so when the some widgets have focus, give them priority (HACK)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
87 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
88 if (gtk_widget_event(lw->path_entry, (GdkEvent *)event))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
89 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
90 return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
91 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
92 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
93 if (lw->vdt && GTK_WIDGET_HAS_FOCUS(lw->vdt->treeview) &&
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
94 !layout_key_match(event->keyval) &&
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
95 gtk_widget_event(lw->vdt->treeview, (GdkEvent *)event))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
96 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
97 return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
98 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
99 if (lw->bar_info &&
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
100 bar_info_event(lw->bar_info, (GdkEvent *)event))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
101 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
102 return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
103 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
104
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
105 if (lw->image &&
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
106 (GTK_WIDGET_HAS_FOCUS(lw->image->widget) || (lw->tools && widget == lw->window)) )
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
107 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
108 switch (event->keyval)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
109 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
110 case GDK_Left: case GDK_KP_Left:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
111 x -= 1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
112 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
113 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
114 case GDK_Right: case GDK_KP_Right:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
115 x += 1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
116 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
117 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
118 case GDK_Up: case GDK_KP_Up:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
119 y -= 1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
120 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
121 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
122 case GDK_Down: case GDK_KP_Down:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
123 y += 1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
124 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
125 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
126 case GDK_BackSpace:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
127 case 'B': case 'b':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
128 layout_image_prev(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
129 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
130 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
131 case GDK_space:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
132 case 'N': case 'n':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
133 layout_image_next(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
134 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
135 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
136 case GDK_Menu:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
137 layout_image_menu_popup(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
138 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
139 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
140 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
141 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
142
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
143 if (!stop_signal && !(event->state & GDK_CONTROL_MASK) )
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
144 switch (event->keyval)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
145 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
146 case '+': case GDK_KP_Add:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
147 layout_image_zoom_adjust(lw, get_zoom_increment());
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
148 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
149 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
150 case GDK_KP_Subtract:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
151 layout_image_zoom_adjust(lw, -get_zoom_increment());
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
152 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
153 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
154 case GDK_KP_Multiply:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
155 layout_image_zoom_set(lw, 0.0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
156 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
157 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
158 case GDK_KP_Divide:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
159 case '1':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
160 layout_image_zoom_set(lw, 1.0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
161 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
162 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
163 case '2':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
164 layout_image_zoom_set(lw, 2.0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
165 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
166 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
167 case '3':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
168 layout_image_zoom_set(lw, 3.0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
169 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
170 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
171 case '4':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
172 layout_image_zoom_set(lw, 4.0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
173 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
174 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
175 case '7':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
176 layout_image_zoom_set(lw, -4.0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
177 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
178 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
179 case '8':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
180 layout_image_zoom_set(lw, -3.0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
181 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
182 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
183 case '9':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
184 layout_image_zoom_set(lw, -2.0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
185 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
186 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
187 case 'W': case 'w':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
188 layout_image_zoom_set_fill_geometry(lw, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
189 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
190 case 'H': case 'h':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
191 layout_image_zoom_set_fill_geometry(lw, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
192 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
193 case GDK_Page_Up: case GDK_KP_Page_Up:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
194 layout_image_prev(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
195 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
196 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
197 case GDK_Page_Down: case GDK_KP_Page_Down:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
198 layout_image_next(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
199 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
200 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
201 case GDK_Home: case GDK_KP_Home:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
202 layout_image_first(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
203 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
204 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
205 case GDK_End: case GDK_KP_End:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
206 layout_image_last(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
207 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
208 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
209 case GDK_Delete: case GDK_KP_Delete:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
210 if (enable_delete_key)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
211 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
212 file_util_delete(NULL, layout_selection_list(lw), widget);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
213 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
214 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
215 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
216 case GDK_Escape:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
217 /* FIXME:interrupting thumbs no longer allowed */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
218 #if 0
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
219 interrupt_thumbs();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
220 #endif
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
221 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
222 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
223 case 'P': case 'p':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
224 layout_image_slideshow_pause_toggle(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
225 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
226 case 'V': case 'v':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
227 if (!(event->state & GDK_MOD1_MASK)) layout_image_full_screen_toggle(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
228 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
229 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
230
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
231 if (event->state & GDK_SHIFT_MASK)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
232 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
233 x *= 3;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
234 y *= 3;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
235 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
236
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
237 if (x != 0 || y!= 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
238 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
239 keyboard_scroll_calc(&x, &y, event);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
240 layout_image_scroll(lw, x, y);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
241 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
242
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
243 if (stop_signal) g_signal_stop_emission_by_name(G_OBJECT(widget), "key_press_event");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
244
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
245 return stop_signal;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
246 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
247
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
248 void layout_keyboard_init(LayoutWindow *lw, GtkWidget *window)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
249 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
250 g_signal_connect(G_OBJECT(window), "key_press_event",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
251 G_CALLBACK(layout_key_press_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
252 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
253
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
254 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
255 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
256 * menu callbacks
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
257 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
258 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
259
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
260 static void layout_menu_new_window_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
261 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
262 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
263 LayoutWindow *nw;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
264
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
265 nw = layout_new(NULL, FALSE, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
266 layout_sort_set(nw, file_sort_method, file_sort_ascending);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
267 layout_set_path(nw, layout_get_path(lw));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
268 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
269
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
270 static void layout_menu_new_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
271 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
272 collection_window_new(NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
273 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
274
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
275 static void layout_menu_open_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
276 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
277 collection_dialog_load(NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
278 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
279
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
280 static void layout_menu_search_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
281 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
282 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
283
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
284 search_new(lw->path, layout_image_get_path(lw));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
285 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
286
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
287 static void layout_menu_dupes_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
288 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
289 dupe_window_new(DUPE_MATCH_NAME);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
290 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
291
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
292 static void layout_menu_print_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
293 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
294 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
295
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
296 print_window_new(layout_image_get_path(lw), layout_selection_list(lw), layout_list(lw), lw->window);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
297 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
298
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
299 static void layout_menu_dir_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
300 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
301 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
302
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
303 file_util_create_dir(lw->path, lw->window);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
304 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
305
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
306 static void layout_menu_copy_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
307 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
308 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
309
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
310 file_util_copy(NULL, layout_selection_list(lw), NULL, lw->window);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
311 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
312
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
313 static void layout_menu_move_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
314 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
315 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
316
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
317 file_util_move(NULL, layout_selection_list(lw), NULL, lw->window);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
318 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
319
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
320 static void layout_menu_rename_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
321 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
322 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
323
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
324 file_util_rename(NULL, layout_selection_list(lw), lw->window);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
325 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
326
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
327 static void layout_menu_delete_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
328 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
329 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
330
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
331 file_util_delete(NULL, layout_selection_list(lw), lw->window);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
332 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
333
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
334 static void layout_menu_close_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
335 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
336 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
337
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
338 layout_close(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
339 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
340
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
341 static void layout_menu_exit_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
342 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
343 exit_gqview();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
344 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
345
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
346 static void layout_menu_alter_90_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
347 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
348 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
349
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
350 layout_image_alter(lw, ALTER_ROTATE_90);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
351 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
352
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
353 static void layout_menu_alter_90cc_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
354 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
355 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
356
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
357 layout_image_alter(lw, ALTER_ROTATE_90_CC);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
358 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
359
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
360 static void layout_menu_alter_180_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
361 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
362 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
363
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
364 layout_image_alter(lw, ALTER_ROTATE_180);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
365 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
366
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
367 static void layout_menu_alter_mirror_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
368 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
369 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
370
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
371 layout_image_alter(lw, ALTER_MIRROR);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
372 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
373
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
374 static void layout_menu_alter_flip_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
375 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
376 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
377
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
378 layout_image_alter(lw, ALTER_FLIP);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
379 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
380
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
381 static void layout_menu_info_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
382 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
383 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
384 GList *list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
385 const gchar *path = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
386
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
387 list = layout_selection_list(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
388 if (!list) path = layout_image_get_path(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
389
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
390 info_window_new(path, list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
391 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
392
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
393 static void layout_menu_select_all_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
394 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
395 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
396
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
397 layout_select_all(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
398 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
399
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
400 static void layout_menu_unselect_all_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
401 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
402 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
403
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
404 layout_select_none(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
405 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
406
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
407 static void layout_menu_config_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
408 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
409 show_config_window();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
410 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
411
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
412 static void layout_menu_remove_thumb_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
413 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
414 cache_manager_show();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
415 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
416
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
417 static void layout_menu_wallpaper_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
418 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
419 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
420
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
421 layout_image_to_root(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
422 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
423
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
424 static void layout_menu_zoom_in_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
425 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
426 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
427
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
428 layout_image_zoom_adjust(lw, get_zoom_increment());
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
429 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
430
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
431 static void layout_menu_zoom_out_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
432 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
433 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
434
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
435 layout_image_zoom_adjust(lw, -get_zoom_increment());
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
436 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
437
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
438 static void layout_menu_zoom_1_1_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
439 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
440 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
441
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
442 layout_image_zoom_set(lw, 1.0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
443 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
444
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
445 static void layout_menu_zoom_fit_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
446 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
447 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
448
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
449 layout_image_zoom_set(lw, 0.0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
450 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
451
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
452 static void layout_menu_thumb_cb(GtkToggleAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
453 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
454 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
455
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
456 layout_thumb_set(lw, gtk_toggle_action_get_active(action));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
457 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
458
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
459 static void layout_menu_list_cb(GtkRadioAction *action, GtkRadioAction *current, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
460 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
461 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
462
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
463 layout_views_set(lw, lw->tree_view, (gtk_radio_action_get_current_value(action) == 1));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
464 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
465
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
466 #if 0
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
467 static void layout_menu_icon_cb(gpointer data, guint action, GtkWidget *widget)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
468 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
469 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
470
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
471 if (!GTK_CHECK_MENU_ITEM(widget)->active) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
472
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
473 layout_views_set(lw, lw->tree_view, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
474 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
475 #endif
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
476
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
477 static void layout_menu_tree_cb(GtkToggleAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
478 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
479 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
480
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
481 layout_views_set(lw, gtk_toggle_action_get_active(action), lw->icon_view);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
482 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
483
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
484 static void layout_menu_fullscreen_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
485 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
486 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
487
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
488 layout_image_full_screen_toggle(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
489 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
490
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
491 static void layout_menu_refresh_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
492 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
493 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
494
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
495 layout_refresh(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
496 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
497
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
498 static void layout_menu_float_cb(GtkToggleAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
499 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
500 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
501
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
502 if (lw->tools_float != gtk_toggle_action_get_active(action))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
503 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
504 layout_tools_float_toggle(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
505 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
506 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
507
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
508 static void layout_menu_hide_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
509 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
510 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
511
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
512 layout_tools_hide_toggle(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
513 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
514
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
515 static void layout_menu_toolbar_cb(GtkToggleAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
516 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
517 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
518
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
519 if (lw->toolbar_hidden != gtk_toggle_action_get_active(action))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
520 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
521 layout_toolbar_toggle(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
522 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
523 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
524
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
525 static void layout_menu_bar_info_cb(GtkToggleAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
526 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
527 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
528
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
529 if (lw->bar_info_enabled != gtk_toggle_action_get_active(action))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
530 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
531 layout_bar_info_toggle(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
532 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
533 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
534
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
535 static void layout_menu_bar_exif_cb(GtkToggleAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
536 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
537 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
538
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
539 if (lw->bar_exif_enabled != gtk_toggle_action_get_active(action))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
540 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
541 layout_bar_exif_toggle(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
542 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
543 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
544
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
545 static void layout_menu_bar_sort_cb(GtkToggleAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
546 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
547 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
548
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
549 if (lw->bar_sort_enabled != gtk_toggle_action_get_active(action))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
550 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
551 layout_bar_sort_toggle(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
552 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
553 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
554
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
555 static void layout_menu_slideshow_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
556 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
557 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
558
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
559 layout_image_slideshow_toggle(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
560 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
561
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
562 static void layout_menu_help_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
563 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
564 help_window_show("html_contents");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
565 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
566
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
567 static void layout_menu_help_keys_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
568 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
569 help_window_show("documentation");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
570 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
571
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
572 static void layout_menu_notes_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
573 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
574 help_window_show("release_notes");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
575 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
576
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
577 static void layout_menu_about_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
578 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
579 show_about_window();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
580 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
581
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
582 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
583 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
584 * edit menu
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
585 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
586 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
587
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
588 static void layout_menu_edit_cb(GtkAction *action, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
589 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
590 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
591 GList *list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
592 gint n;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
593
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
594 n = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(action), "edit_index"));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
595
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
596 list = layout_selection_list(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
597 start_editor_from_path_list(n, list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
598 path_list_free(list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
599 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
600
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
601 static void layout_menu_edit_update(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
602 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
603 gint i;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
604
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
605 /* main edit menu */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
606
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
607 if (!lw->action_group) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
608
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
609 for (i = 0; i < 10; i++)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
610 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
611 gchar *key;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
612 GtkAction *action;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
613
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
614 key = g_strdup_printf("Editor%d", i);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
615
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
616 action = gtk_action_group_get_action(lw->action_group, key);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
617 g_object_set_data(G_OBJECT(action), "edit_index", GINT_TO_POINTER(i));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
618
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
619 if (editor_command[i] && strlen(editor_command[i]) > 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
620 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
621 gchar *text;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
622
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
623 if (editor_name[i] && strlen(editor_name[i]) > 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
624 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
625 text = g_strdup_printf(_("in %s..."), editor_name[i]);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
626 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
627 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
628 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
629 text = g_strdup(_("in (unknown)..."));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
630 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
631 g_object_set(action, "label", text,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
632 "sensitive", TRUE, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
633 g_free(text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
634 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
635 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
636 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
637 g_object_set(action, "label", _("empty"),
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
638 "sensitive", FALSE, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
639 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
640
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
641 g_free(key);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
642 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
643 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
644
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
645 void layout_edit_update_all(void)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
646 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
647 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
648
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
649 work = layout_window_list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
650 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
651 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
652 LayoutWindow *lw = work->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
653 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
654
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
655 layout_menu_edit_update(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
656 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
657 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
658
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
659 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
660 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
661 * recent menu
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
662 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
663 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
664
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
665 static void layout_menu_recent_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
666 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
667 gint n;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
668 gchar *path;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
669
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
670 n = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "recent_index"));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
671
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
672 path = g_list_nth_data(history_list_get_by_key("recent"), n);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
673
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
674 if (!path) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
675
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
676 /* make a copy of it */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
677 path = g_strdup(path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
678 collection_window_new(path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
679 g_free(path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
680 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
681
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
682 static void layout_menu_recent_update(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
683 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
684 GtkWidget *menu;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
685 GtkWidget *recent;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
686 GtkWidget *item;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
687 GList *list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
688 gint n;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
689
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
690 if (!lw->ui_manager) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
691
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
692 list = history_list_get_by_key("recent");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
693 n = 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
694
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
695 menu = gtk_menu_new();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
696
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
697 while (list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
698 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
699 item = menu_item_add_simple(menu, filename_from_path((gchar *)list->data),
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
700 G_CALLBACK(layout_menu_recent_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
701 g_object_set_data(G_OBJECT(item), "recent_index", GINT_TO_POINTER(n));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
702 list = list->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
703 n++;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
704 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
705
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
706 if (n == 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
707 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
708 menu_item_add(menu, _("Empty"), NULL, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
709 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
710
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
711 recent = gtk_ui_manager_get_widget(lw->ui_manager, "/MainMenu/FileMenu/OpenRecent");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
712 gtk_menu_item_set_submenu(GTK_MENU_ITEM(recent), menu);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
713 gtk_widget_set_sensitive(recent, (n != 0));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
714 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
715
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
716 void layout_recent_update_all(void)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
717 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
718 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
719
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
720 work = layout_window_list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
721 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
722 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
723 LayoutWindow *lw = work->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
724 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
725
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
726 layout_menu_recent_update(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
727 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
728 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
729
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
730 void layout_recent_add_path(const gchar *path)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
731 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
732 if (!path) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
733
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
734 history_list_add_to_key("recent", path, recent_list_max);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
735
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
736 layout_recent_update_all();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
737 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
738
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
739 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
740 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
741 * menu
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
742 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
743 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
744
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
745 #define CB G_CALLBACK
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
746
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
747 static GtkActionEntry menu_entries[] = {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
748 { "FileMenu", NULL, N_("_File") },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
749 { "EditMenu", NULL, N_("_Edit") },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
750 { "AdjustMenu", NULL, N_("_Adjust") },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
751 { "ViewMenu", NULL, N_("_View") },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
752 { "HelpMenu", NULL, N_("_Help") },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
753
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
754 { "NewWindow", GTK_STOCK_NEW, N_("New _window"), NULL, NULL, CB(layout_menu_new_window_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
755 { "NewCollection", GTK_STOCK_INDEX,N_("_New collection"), "C", NULL, CB(layout_menu_new_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
756 { "OpenCollection", GTK_STOCK_OPEN, N_("_Open collection..."),"O", NULL, CB(layout_menu_open_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
757 { "OpenRecent", NULL, N_("Open _recent") },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
758 { "Search", GTK_STOCK_FIND, N_("_Search..."), "F3", NULL, CB(layout_menu_search_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
759 { "FindDupes", GTK_STOCK_FIND, N_("_Find duplicates..."),"D", NULL, CB(layout_menu_dupes_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
760 { "Print", GTK_STOCK_PRINT,N_("_Print..."), "<shift>P", NULL, CB(layout_menu_print_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
761 { "NewFolder", NULL, N_("N_ew folder..."), "<control>F", NULL, CB(layout_menu_dir_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
762 { "Copy", NULL, N_("_Copy..."), "<control>C", NULL, CB(layout_menu_copy_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
763 { "Move", NULL, N_("_Move..."), "<control>M", NULL, CB(layout_menu_move_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
764 { "Rename", NULL, N_("_Rename..."), "<control>R", NULL, CB(layout_menu_rename_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
765 { "Delete", GTK_STOCK_DELETE, N_("_Delete..."), "<control>D", NULL, CB(layout_menu_delete_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
766 { "CloseWindow", GTK_STOCK_CLOSE,N_("C_lose window"), "<control>W", NULL, CB(layout_menu_close_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
767 { "Quit", GTK_STOCK_QUIT, N_("_Quit"), "<control>Q", NULL, CB(layout_menu_exit_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
768
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
769 { "Editor0", NULL, "editor0", "<control>1", NULL, CB(layout_menu_edit_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
770 { "Editor1", NULL, "editor1", "<control>2", NULL, CB(layout_menu_edit_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
771 { "Editor2", NULL, "editor2", "<control>3", NULL, CB(layout_menu_edit_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
772 { "Editor3", NULL, "editor3", "<control>4", NULL, CB(layout_menu_edit_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
773 { "Editor4", NULL, "editor4", "<control>5", NULL, CB(layout_menu_edit_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
774 { "Editor5", NULL, "editor5", "<control>6", NULL, CB(layout_menu_edit_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
775 { "Editor6", NULL, "editor6", "<control>7", NULL, CB(layout_menu_edit_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
776 { "Editor7", NULL, "editor7", "<control>8", NULL, CB(layout_menu_edit_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
777 { "Editor8", NULL, "editor8", "<control>9", NULL, CB(layout_menu_edit_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
778 { "Editor9", NULL, "editor9", "<control>0", NULL, CB(layout_menu_edit_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
779 { "RotateCW", NULL, N_("_Rotate clockwise"), "bracketright", NULL, CB(layout_menu_alter_90_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
780 { "RotateCCW", NULL, N_("Rotate _counterclockwise"), "bracketleft", NULL, CB(layout_menu_alter_90cc_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
781 { "Rotate180", NULL, N_("Rotate 1_80"), "<shift>R", NULL, CB(layout_menu_alter_180_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
782 { "Mirror", NULL, N_("_Mirror"), "<shift>M", NULL, CB(layout_menu_alter_mirror_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
783 { "Flip", NULL, N_("_Flip"), "<shift>F", NULL, CB(layout_menu_alter_flip_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
784 { "Properties",GTK_STOCK_PROPERTIES, N_("_Properties"), "<control>P", NULL, CB(layout_menu_info_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
785 { "SelectAll", NULL, N_("Select _all"), "<control>A", NULL, CB(layout_menu_select_all_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
786 { "SelectNone", NULL, N_("Select _none"), "<control><shift>A",NULL, CB(layout_menu_unselect_all_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
787 { "Preferences",GTK_STOCK_PREFERENCES,N_("P_references..."), "<control>O", NULL, CB(layout_menu_config_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
788 { "Maintenance", NULL, N_("_Thumbnail maintenance..."),NULL, NULL, CB(layout_menu_remove_thumb_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
789 { "Wallpaper", NULL, N_("Set as _wallpaper"),NULL, NULL, CB(layout_menu_wallpaper_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
790
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
791 { "ZoomIn", GTK_STOCK_ZOOM_IN, N_("Zoom _in"), "equal", NULL, CB(layout_menu_zoom_in_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
792 { "ZoomOut", GTK_STOCK_ZOOM_OUT, N_("Zoom _out"), "minus", NULL, CB(layout_menu_zoom_out_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
793 { "Zoom100", GTK_STOCK_ZOOM_100, N_("Zoom _1:1"), "Z", NULL, CB(layout_menu_zoom_1_1_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
794 { "ZoomFit", GTK_STOCK_ZOOM_FIT, N_("_Zoom to fit"), "X", NULL, CB(layout_menu_zoom_fit_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
795 { "FullScreen", NULL, N_("F_ull screen"), "F", NULL, CB(layout_menu_fullscreen_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
796 { "HideTools", NULL, N_("_Hide file list"), "<control>H", NULL, CB(layout_menu_hide_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
797 { "SlideShow", NULL, N_("Toggle _slideshow"),"S", NULL, CB(layout_menu_slideshow_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
798 { "Refresh", GTK_STOCK_REFRESH, N_("_Refresh"), "R", NULL, CB(layout_menu_refresh_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
799
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
800 { "HelpContents", GTK_STOCK_HELP, N_("_Contents"), "F1", NULL, CB(layout_menu_help_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
801 { "HelpShortcuts", NULL, N_("_Keyboard shortcuts"),NULL, NULL, CB(layout_menu_help_keys_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
802 { "HelpNotes", NULL, N_("_Release notes"), NULL, NULL, CB(layout_menu_notes_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
803 { "About", NULL, N_("_About"), NULL, NULL, CB(layout_menu_about_cb) }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
804 };
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
805
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
806 static GtkToggleActionEntry menu_toggle_entries[] = {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
807 { "Thumbnails", NULL, N_("_Thumbnails"), "T", NULL, CB(layout_menu_thumb_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
808 { "FolderTree", NULL, N_("Tr_ee"), "<control>T", NULL, CB(layout_menu_tree_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
809 { "FloatTools", NULL, N_("_Float file list"), "L", NULL, CB(layout_menu_float_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
810 { "HideToolbar", NULL, N_("Hide tool_bar"), NULL, NULL, CB(layout_menu_toolbar_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
811 { "SBarKeywords", NULL, N_("_Keywords"), "<control>K", NULL, CB(layout_menu_bar_info_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
812 { "SBarExif", NULL, N_("E_xif data"), "<control>E", NULL, CB(layout_menu_bar_exif_cb) },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
813 { "SBarSort", NULL, N_("Sort _manager"), "<control>S", NULL, CB(layout_menu_bar_sort_cb) }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
814 };
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
815
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
816 static GtkRadioActionEntry menu_radio_entries[] = {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
817 { "ViewList", NULL, N_("_List"), "<control>L", NULL, 0 },
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
818 { "ViewIcons", NULL, N_("I_cons"), "<control>I", NULL, 1 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
819 };
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
820
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
821 #undef CB
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
822
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
823 static const char *menu_ui_description =
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
824 "<ui>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
825 " <menubar name='MainMenu'>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
826 " <menu action='FileMenu'>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
827 " <menuitem action='NewWindow'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
828 " <menuitem action='NewCollection'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
829 " <menuitem action='OpenCollection'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
830 " <menuitem action='OpenRecent'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
831 " <separator/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
832 " <menuitem action='Search'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
833 " <menuitem action='FindDupes'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
834 " <separator/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
835 " <menuitem action='Print'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
836 " <menuitem action='NewFolder'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
837 " <separator/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
838 " <menuitem action='Copy'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
839 " <menuitem action='Move'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
840 " <menuitem action='Rename'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
841 " <menuitem action='Delete'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
842 " <separator/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
843 " <menuitem action='CloseWindow'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
844 " <menuitem action='Quit'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
845 " </menu>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
846 " <menu action='EditMenu'>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
847 " <menuitem action='Editor0'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
848 " <menuitem action='Editor1'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
849 " <menuitem action='Editor2'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
850 " <menuitem action='Editor3'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
851 " <menuitem action='Editor4'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
852 " <menuitem action='Editor5'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
853 " <menuitem action='Editor6'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
854 " <menuitem action='Editor7'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
855 " <menuitem action='Editor8'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
856 " <menuitem action='Editor9'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
857 " <separator/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
858 " <menu action='AdjustMenu'>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
859 " <menuitem action='RotateCW'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
860 " <menuitem action='RotateCCW'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
861 " <menuitem action='Rotate180'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
862 " <menuitem action='Mirror'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
863 " <menuitem action='Flip'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
864 " </menu>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
865 " <menuitem action='Properties'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
866 " <separator/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
867 " <menuitem action='SelectAll'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
868 " <menuitem action='SelectNone'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
869 " <separator/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
870 " <menuitem action='Preferences'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
871 " <menuitem action='Maintenance'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
872 " <separator/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
873 " <menuitem action='Wallpaper'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
874 " </menu>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
875 " <menu action='ViewMenu'>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
876 " <separator/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
877 " <menuitem action='ZoomIn'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
878 " <menuitem action='ZoomOut'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
879 " <menuitem action='Zoom100'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
880 " <menuitem action='ZoomFit'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
881 " <separator/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
882 " <menuitem action='Thumbnails'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
883 " <menuitem action='ViewList'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
884 " <menuitem action='ViewIcons'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
885 " <separator/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
886 " <menuitem action='FolderTree'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
887 " <menuitem action='FullScreen'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
888 " <separator/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
889 " <menuitem action='FloatTools'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
890 " <menuitem action='HideTools'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
891 " <menuitem action='HideToolbar'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
892 " <separator/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
893 " <menuitem action='SBarKeywords'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
894 " <menuitem action='SBarExif'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
895 " <menuitem action='SBarSort'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
896 " <separator/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
897 " <menuitem action='SlideShow'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
898 " <menuitem action='Refresh'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
899 " </menu>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
900 " <menu action='HelpMenu'>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
901 " <separator/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
902 " <menuitem action='HelpContents'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
903 " <menuitem action='HelpShortcuts'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
904 " <menuitem action='HelpNotes'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
905 " <separator/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
906 " <menuitem action='About'/>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
907 " </menu>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
908 " </menubar>"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
909 "</ui>";
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
910
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
911
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
912 static gchar *menu_translate(const gchar *path, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
913 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
914 return _(path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
915 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
916
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
917 void layout_actions_setup(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
918 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
919 GError *error;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
920
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
921 if (lw->ui_manager) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
922
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
923 lw->action_group = gtk_action_group_new ("MenuActions");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
924 gtk_action_group_set_translate_func(lw->action_group, menu_translate, NULL, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
925
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
926 gtk_action_group_add_actions(lw->action_group,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
927 menu_entries, G_N_ELEMENTS(menu_entries), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
928 gtk_action_group_add_toggle_actions(lw->action_group,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
929 menu_toggle_entries, G_N_ELEMENTS(menu_toggle_entries), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
930 gtk_action_group_add_radio_actions(lw->action_group,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
931 menu_radio_entries, G_N_ELEMENTS(menu_radio_entries),
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
932 0, G_CALLBACK(layout_menu_list_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
933
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
934 lw->ui_manager = gtk_ui_manager_new();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
935 gtk_ui_manager_set_add_tearoffs(lw->ui_manager, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
936 gtk_ui_manager_insert_action_group(lw->ui_manager, lw->action_group, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
937
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
938 error = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
939 if (!gtk_ui_manager_add_ui_from_string(lw->ui_manager, menu_ui_description, -1, &error))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
940 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
941 g_message ("building menus failed: %s", error->message);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
942 g_error_free (error);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
943 exit (EXIT_FAILURE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
944 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
945 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
946
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
947 void layout_actions_add_window(LayoutWindow *lw, GtkWidget *window)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
948 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
949 GtkAccelGroup *group;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
950
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
951 if (!lw->ui_manager) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
952
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
953 group = gtk_ui_manager_get_accel_group(lw->ui_manager);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
954 gtk_window_add_accel_group(GTK_WINDOW(window), group);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
955 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
956
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
957 GtkWidget *layout_actions_menu_bar(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
958 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
959 return gtk_ui_manager_get_widget(lw->ui_manager, "/MainMenu");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
960 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
961
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
962
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
963 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
964 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
965 * toolbar
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
966 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
967 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
968
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
969 static void layout_button_thumb_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
970 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
971 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
972
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
973 layout_thumb_set(lw, GTK_TOGGLE_BUTTON(widget)->active);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
974 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
975
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
976 static void layout_button_home_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
977 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
978 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
979 const gchar *path = homedir();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
980
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
981 if (path) layout_set_path(lw, path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
982 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
983
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
984 static void layout_button_refresh_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
985 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
986 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
987
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
988 layout_refresh(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
989 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
990
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
991 static void layout_button_zoom_in_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
992 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
993 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
994
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
995 layout_image_zoom_adjust(lw, get_zoom_increment());
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
996 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
997
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
998 static void layout_button_zoom_out_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
999 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1000 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1001
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1002 layout_image_zoom_adjust(lw, -get_zoom_increment());
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1003 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1004
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1005 static void layout_button_zoom_fit_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1006 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1007 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1008
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1009 layout_image_zoom_set(lw, 0.0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1010 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1011
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1012 static void layout_button_zoom_1_1_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1013 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1014 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1015
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1016 layout_image_zoom_set(lw, 1.0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1017 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1018
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1019 static void layout_button_config_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1020 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1021 show_config_window();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1022 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1023
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1024 static void layout_button_float_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1025 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1026 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1027
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1028 layout_tools_float_toggle(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1029 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1030
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1031 GtkWidget *layout_button(GtkWidget *box, gchar **pixmap_data, const gchar *stock_id, gint toggle,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1032 GtkTooltips *tooltips, const gchar *tip_text,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1033 GCallback func, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1034 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1035 GtkWidget *button;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1036 GtkWidget *icon;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1037
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1038 if (toggle)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1039 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1040 button = gtk_toggle_button_new();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1041 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1042 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1043 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1044 button = gtk_button_new();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1045 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1046
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1047 g_signal_connect(G_OBJECT(button), "clicked", func, data);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1048 gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1049 gtk_widget_show(button);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1050 gtk_tooltips_set_tip(tooltips, button, tip_text, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1051
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1052 if (stock_id)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1053 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1054 icon = gtk_image_new_from_stock(stock_id, GTK_ICON_SIZE_BUTTON);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1055 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1056 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1057 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1058 GdkPixbuf *pixbuf;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1059
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1060 pixbuf = gdk_pixbuf_new_from_xpm_data((const char **)pixmap_data);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1061 icon = gtk_image_new_from_pixbuf(pixbuf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1062 gdk_pixbuf_unref(pixbuf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1063 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1064
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1065 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1066
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1067 gtk_container_add(GTK_CONTAINER(button), icon);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1068 gtk_widget_show(icon);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1069
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1070 return button;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1071 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1072
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1073 GtkWidget *layout_button_bar(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1074 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1075 GtkWidget *box;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1076 GtkTooltips *tooltips;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1077
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1078 tooltips = lw->tooltips;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1079
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1080 box = gtk_hbox_new(FALSE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1081
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1082 lw->thumb_button = layout_button(box, (gchar **)icon_thumb_xpm, NULL, TRUE,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1083 tooltips, _("Show thumbnails"), G_CALLBACK(layout_button_thumb_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1084 layout_button(box, NULL, GTK_STOCK_HOME, FALSE,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1085 tooltips, _("Change to home folder"), G_CALLBACK(layout_button_home_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1086 layout_button(box, NULL, GTK_STOCK_REFRESH, FALSE,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1087 tooltips, _("Refresh file list"), G_CALLBACK(layout_button_refresh_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1088 layout_button(box, NULL, GTK_STOCK_ZOOM_IN, FALSE,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1089 tooltips, _("Zoom in"), G_CALLBACK(layout_button_zoom_in_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1090 layout_button(box, NULL, GTK_STOCK_ZOOM_OUT, FALSE,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1091 tooltips, _("Zoom out"), G_CALLBACK(layout_button_zoom_out_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1092 layout_button(box, NULL, GTK_STOCK_ZOOM_FIT, FALSE,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1093 tooltips, _("Fit image to window"), G_CALLBACK(layout_button_zoom_fit_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1094 layout_button(box, NULL, GTK_STOCK_ZOOM_100, FALSE,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1095 tooltips, _("Set zoom 1:1"), G_CALLBACK(layout_button_zoom_1_1_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1096 layout_button(box, NULL, GTK_STOCK_PREFERENCES, FALSE,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1097 tooltips, _("Configure options"), G_CALLBACK(layout_button_config_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1098 layout_button(box, (gchar **)icon_float_xpm, NULL, FALSE,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1099 tooltips, _("Float Controls"), G_CALLBACK(layout_button_float_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1100
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1101 return box;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1102 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1103
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1104 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1105 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1106 * misc
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1107 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1108 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1109
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1110 static void layout_util_sync_views(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1111 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1112 GtkAction *action;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1113
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1114 if (!lw->action_group) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1115
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1116 action = gtk_action_group_get_action(lw->action_group, "FolderTree");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1117 gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), lw->tree_view);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1118
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1119 action = gtk_action_group_get_action(lw->action_group, "ViewIcons");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1120 gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), lw->icon_view);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1121
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1122 action = gtk_action_group_get_action(lw->action_group, "FloatTools");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1123 gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), lw->tools_float);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1124
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1125 action = gtk_action_group_get_action(lw->action_group, "SBarKeywords");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1126 gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), lw->bar_info_enabled);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1127
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1128 action = gtk_action_group_get_action(lw->action_group, "SBarExif");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1129 gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), lw->bar_exif_enabled);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1130
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1131 action = gtk_action_group_get_action(lw->action_group, "SBarSort");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1132 gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), lw->bar_sort_enabled);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1133
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1134 action = gtk_action_group_get_action(lw->action_group, "HideToolbar");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1135 gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), lw->toolbar_hidden);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1136 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1137
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1138 void layout_util_sync_thumb(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1139 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1140 GtkAction *action;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1141
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1142 if (!lw->action_group) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1143
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1144 action = gtk_action_group_get_action(lw->action_group, "Thumbnails");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1145 gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), lw->thumbs_enabled);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1146 g_object_set(action, "sensitive", !lw->icon_view, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1147
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1148 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lw->thumb_button), lw->thumbs_enabled);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1149 gtk_widget_set_sensitive(lw->thumb_button, !lw->icon_view);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1150 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1151
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1152 void layout_util_sync(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1153 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1154 layout_util_sync_views(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1155 layout_util_sync_thumb(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1156 layout_menu_recent_update(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1157 layout_menu_edit_update(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1158 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1159
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1160 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1161 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1162 * icons (since all the toolbar icons are included here, best place as any)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1163 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1164 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1165
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1166 PixmapFolders *folder_icons_new(void)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1167 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1168 PixmapFolders *pf;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1169
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1170 pf = g_new0(PixmapFolders, 1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1171
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1172 pf->close = pixbuf_inline(PIXBUF_INLINE_FOLDER_CLOSED);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1173 pf->open = pixbuf_inline(PIXBUF_INLINE_FOLDER_OPEN);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1174 pf->deny = pixbuf_inline(PIXBUF_INLINE_FOLDER_LOCKED);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1175 pf->parent = pixbuf_inline(PIXBUF_INLINE_FOLDER_UP);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1176
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1177 return pf;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1178 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1179
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1180 void folder_icons_free(PixmapFolders *pf)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1181 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1182 if (!pf) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1183
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1184 g_object_unref(pf->close);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1185 g_object_unref(pf->open);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1186 g_object_unref(pf->deny);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1187 g_object_unref(pf->parent);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1188
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1189 g_free(pf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1190 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1191
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1192 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1193 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1194 * sidebars
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1195 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1196 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1197
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1198 #define SIDEBAR_WIDTH 288
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1199
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1200 static void layout_bar_info_destroyed(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1201 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1202 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1203
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1204 lw->bar_info = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1205
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1206 if (lw->utility_box)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1207 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1208 /* destroyed from within itself */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1209 lw->bar_info_enabled = FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1210 layout_util_sync_views(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1211 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1212 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1213
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1214 static GList *layout_bar_info_list_cb(gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1215 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1216 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1217
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1218 return layout_selection_list(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1219 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1220
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1221 static void layout_bar_info_new(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1222 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1223 if (!lw->utility_box) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1224
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1225 lw->bar_info = bar_info_new(layout_image_get_path(lw), FALSE, lw->utility_box);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1226 bar_info_set_selection_func(lw->bar_info, layout_bar_info_list_cb, lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1227 bar_info_selection(lw->bar_info, layout_selection_count(lw, NULL) - 1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1228 bar_info_size_request(lw->bar_info, SIDEBAR_WIDTH * 3 / 4);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1229 g_signal_connect(G_OBJECT(lw->bar_info), "destroy",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1230 G_CALLBACK(layout_bar_info_destroyed), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1231 lw->bar_info_enabled = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1232
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1233 gtk_box_pack_start(GTK_BOX(lw->utility_box), lw->bar_info, FALSE, FALSE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1234 gtk_widget_show(lw->bar_info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1235 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1236
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1237 static void layout_bar_info_close(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1238 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1239 if (lw->bar_info)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1240 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1241 bar_info_close(lw->bar_info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1242 lw->bar_info = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1243 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1244 lw->bar_info_enabled = FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1245 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1246
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1247 void layout_bar_info_toggle(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1248 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1249 if (lw->bar_info_enabled)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1250 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1251 layout_bar_info_close(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1252 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1253 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1254 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1255 layout_bar_info_new(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1256 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1257 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1258
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1259 static void layout_bar_info_new_image(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1260 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1261 if (!lw->bar_info || !lw->bar_info_enabled) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1262
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1263 bar_info_set(lw->bar_info, layout_image_get_path(lw));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1264 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1265
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1266 static void layout_bar_info_new_selection(LayoutWindow *lw, gint count)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1267 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1268 if (!lw->bar_info || !lw->bar_info_enabled) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1269
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1270 bar_info_selection(lw->bar_info, count - 1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1271 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1272
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1273 static void layout_bar_info_maint_renamed(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1274 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1275 if (!lw->bar_info || !lw->bar_info_enabled) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1276
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1277 bar_info_maint_renamed(lw->bar_info, layout_image_get_path(lw));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1278 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1279
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1280 static void layout_bar_exif_destroyed(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1281 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1282 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1283
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1284 if (lw->bar_exif)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1285 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1286 lw->bar_exif_advanced = bar_exif_is_advanced(lw->bar_exif);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1287 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1288
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1289 lw->bar_exif = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1290 if (lw->utility_box)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1291 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1292 /* destroyed from within itself */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1293 lw->bar_exif_enabled = FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1294 layout_util_sync_views(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1295 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1296 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1297
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1298 static void layout_bar_exif_sized(GtkWidget *widget, GtkAllocation *allocation, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1299 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1300 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1301
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1302 if (lw->bar_exif)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1303 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1304 lw->bar_exif_size = allocation->width;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1305 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1306 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1307
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1308 static void layout_bar_exif_new(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1309 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1310 if (!lw->utility_box) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1311
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1312 lw->bar_exif = bar_exif_new(TRUE, layout_image_get_path(lw),
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1313 lw->bar_exif_advanced, lw->utility_box);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1314 g_signal_connect(G_OBJECT(lw->bar_exif), "destroy",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1315 G_CALLBACK(layout_bar_exif_destroyed), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1316 g_signal_connect(G_OBJECT(lw->bar_exif), "size_allocate",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1317 G_CALLBACK(layout_bar_exif_sized), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1318 lw->bar_exif_enabled = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1319
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1320 if (lw->bar_exif_size < 1) lw->bar_exif_size = SIDEBAR_WIDTH;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1321 gtk_widget_set_size_request(lw->bar_exif, lw->bar_exif_size, -1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1322 gtk_box_pack_start(GTK_BOX(lw->utility_box), lw->bar_exif, FALSE, FALSE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1323 if (lw->bar_info) gtk_box_reorder_child(GTK_BOX(lw->utility_box), lw->bar_exif, 1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1324 gtk_widget_show(lw->bar_exif);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1325 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1326
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1327 static void layout_bar_exif_close(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1328 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1329 if (lw->bar_exif)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1330 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1331 bar_exif_close(lw->bar_exif);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1332 lw->bar_exif = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1333 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1334 lw->bar_exif_enabled = FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1335 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1336
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1337 void layout_bar_exif_toggle(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1338 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1339 if (lw->bar_exif_enabled)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1340 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1341 layout_bar_exif_close(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1342 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1343 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1344 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1345 layout_bar_exif_new(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1346 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1347 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1348
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1349 static void layout_bar_exif_new_image(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1350 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1351 if (!lw->bar_exif || !lw->bar_exif_enabled) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1352
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1353 bar_exif_set(lw->bar_exif, layout_image_get_path(lw));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1354 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1355
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1356 static void layout_bar_sort_destroyed(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1357 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1358 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1359
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1360 lw->bar_sort = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1361
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1362 if (lw->utility_box)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1363 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1364 /* destroyed from within itself */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1365 lw->bar_sort_enabled = FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1366
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1367 layout_util_sync_views(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1368 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1369 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1370
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1371 static void layout_bar_sort_new(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1372 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1373 if (!lw->utility_box) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1374
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1375 lw->bar_sort = bar_sort_new(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1376 g_signal_connect(G_OBJECT(lw->bar_sort), "destroy",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1377 G_CALLBACK(layout_bar_sort_destroyed), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1378 lw->bar_sort_enabled = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1379
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1380 gtk_box_pack_end(GTK_BOX(lw->utility_box), lw->bar_sort, FALSE, FALSE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1381 gtk_widget_show(lw->bar_sort);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1382 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1383
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1384 static void layout_bar_sort_close(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1385 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1386 if (lw->bar_sort)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1387 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1388 bar_sort_close(lw->bar_sort);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1389 lw->bar_sort = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1390 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1391 lw->bar_sort_enabled = FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1392 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1393
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1394 void layout_bar_sort_toggle(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1395 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1396 if (lw->bar_sort_enabled)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1397 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1398 layout_bar_sort_close(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1399 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1400 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1401 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1402 layout_bar_sort_new(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1403 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1404 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1405
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1406 void layout_bars_new_image(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1407 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1408 layout_bar_info_new_image(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1409 layout_bar_exif_new_image(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1410 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1411
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1412 void layout_bars_new_selection(LayoutWindow *lw, gint count)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1413 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1414 layout_bar_info_new_selection(lw, count);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1415 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1416
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1417 GtkWidget *layout_bars_prepare(LayoutWindow *lw, GtkWidget *image)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1418 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1419 lw->utility_box = gtk_hbox_new(FALSE, PREF_PAD_GAP);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1420 gtk_box_pack_start(GTK_BOX(lw->utility_box), image, TRUE, TRUE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1421 gtk_widget_show(image);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1422
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1423 if (lw->bar_sort_enabled)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1424 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1425 layout_bar_sort_new(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1426 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1427
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1428 if (lw->bar_info_enabled)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1429 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1430 layout_bar_info_new(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1431 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1432
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1433 if (lw->bar_exif_enabled)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1434 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1435 layout_bar_exif_new(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1436 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1437
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1438 return lw->utility_box;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1439 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1440
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1441 void layout_bars_close(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1442 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1443 layout_bar_sort_close(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1444 layout_bar_exif_close(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1445 layout_bar_info_close(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1446 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1447
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1448 void layout_bars_maint_renamed(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1449 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1450 layout_bar_info_maint_renamed(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1451 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1452