annotate src/layout_image.c @ 368:95fe470440ad

New Go to directory view feature that permits to find and display the directory corresponding to an image view. For example, when you open an image in new window from collection, right clicking on the newly displayed image will let you choose Go to directory view, which would open a new window, with image and directory list. If current directory is the one of the image, menu item is disabled.
author zas_
date Tue, 15 Apr 2008 06:56:25 +0000
parents de1c2cd06fce
children 959b6fcdaa17
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 /*
196
f6e307c7bad6 rename GQview -> Geeqie over the code
nadvornik
parents: 175
diff changeset
2 * Geeqie
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
3 * (C) 2006 John Ellis
9
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
281
9995c5fb202a gqview.h -> main.h
zas_
parents: 278
diff changeset
12 #include "main.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
13 #include "layout_image.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
14
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
15 #include "collect.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
16 #include "dnd.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
17 #include "editors.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
18 #include "filelist.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
19 #include "fullscreen.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
20 #include "image.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
21 #include "image-overlay.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
22 #include "img-view.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
23 #include "info.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
24 #include "layout.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
25 #include "layout_util.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
26 #include "menu.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
27 #include "pixbuf_util.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
28 #include "utilops.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
29 #include "slideshow.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
30 #include "ui_bookmark.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
31 #include "ui_fileops.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
32 #include "ui_menu.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
33
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
34 #include <gdk/gdkkeysyms.h> /* for keyboard values */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
35
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 static GtkWidget *layout_image_pop_menu(LayoutWindow *lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
38 static void layout_image_set_buttons(LayoutWindow *lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
39
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
40 /*
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 * full screen overlay
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
43 *----------------------------------------------------------------------------
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
122
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
46 void layout_image_overlay_toggle(LayoutWindow *lw)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
47 {
122
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
48 if (image_osd_get(lw->image, NULL, NULL))
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
49 {
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
50 image_osd_set(lw->image, FALSE, FALSE);
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
51 }
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
52 else
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
53 {
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
54 image_osd_set(lw->image, (lw->full_screen != NULL), TRUE);
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
55 image_osd_icon(lw->image, IMAGE_OSD_ICON, -1);
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
56 }
9
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 void layout_image_overlay_update(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
60 {
122
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
61 if (!lw) return;
117
0c2e1f0a001b Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents: 113
diff changeset
62
0c2e1f0a001b Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents: 113
diff changeset
63 image_osd_update(lw->image);
9
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
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 * full screen
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 */
246
bee34a6a4aec Drop 3 unused variables and comment out 2 unused functions.
zas_
parents: 220
diff changeset
71 #if 0
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
72 static void layout_image_fullscreen_menu_pos_cb(GtkMenu *menu, gint *x, gint *y, gboolean *push_in, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
73 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
74 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
75
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
76 if (!lw->full_screen) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
77
23
17acca639a86 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
78 gdk_window_get_origin(lw->full_screen->imd->pr->window, x, y);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
79 popup_menu_position_clamp(menu, x, y, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
80 }
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 static void layout_image_full_screen_menu_popup(LayoutWindow *lw)
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 GtkWidget *menu;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
85
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
86 menu = layout_image_pop_menu(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
87 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, layout_image_fullscreen_menu_pos_cb, lw, 0, GDK_CURRENT_TIME);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
88 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
89
160
85657b4766c9 use accels also in fullscreen mode
nadvornik
parents: 156
diff changeset
90 /* this is handled by layout_key_press_cb */
85657b4766c9 use accels also in fullscreen mode
nadvornik
parents: 156
diff changeset
91
85657b4766c9 use accels also in fullscreen mode
nadvornik
parents: 156
diff changeset
92
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
93 static gint layout_image_full_screen_key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
94 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
95 LayoutWindow *lw = data;
84
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
96 gint stop_signal;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
97 gint x = 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
98 gint y = 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
99
84
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
100 stop_signal = TRUE;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
101 switch (event->keyval)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
102 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
103 case GDK_Left: case GDK_KP_Left:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
104 x -= 1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
105 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
106 case GDK_Right: case GDK_KP_Right:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
107 x += 1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
108 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
109 case GDK_Up: case GDK_KP_Up:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
110 y -= 1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
111 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
112 case GDK_Down: case GDK_KP_Down:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
113 y += 1;
84
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
114 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
115 default:
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
116 stop_signal = FALSE;
9
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 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
119
84
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
120 if (x != 0 || y!= 0)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
121 {
84
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
122 if (event->state & GDK_SHIFT_MASK)
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
123 {
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
124 x *= 3;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
125 y *= 3;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
126 }
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
127
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
128 keyboard_scroll_calc(&x, &y, event);
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
129 layout_image_scroll(lw, x, y);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
130 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
131
84
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
132 if (stop_signal) return stop_signal;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
133
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
134 if (event->state & GDK_CONTROL_MASK)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
135 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
136 gint n = -1;
84
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
137
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
138 stop_signal = TRUE;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
139 switch (event->keyval)
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 case '1':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
142 n = 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
143 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
144 case '2':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
145 n = 1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
146 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
147 case '3':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
148 n = 2;
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 '4':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
151 n = 3;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
152 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
153 case '5':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
154 n = 4;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
155 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
156 case '6':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
157 n = 5;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
158 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
159 case '7':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
160 n = 6;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
161 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
162 case '8':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
163 n = 7;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
164 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
165 case '9':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
166 n = 8;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
167 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
168 case '0':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
169 n = 9;
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 'C': case 'c':
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
172 file_util_copy(layout_image_get_fd(lw), NULL, NULL, widget);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
173 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
174 case 'M': case 'm':
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
175 file_util_move(layout_image_get_fd(lw), NULL, NULL, widget);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
176 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
177 case 'R': case 'r':
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
178 file_util_rename(layout_image_get_fd(lw), NULL, widget);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
179 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
180 case 'D': case 'd':
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
181 file_util_delete(layout_image_get_fd(lw), NULL, widget);
9
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 'P': case 'p':
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
184 info_window_new(layout_image_get_fd(lw), NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
185 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
186 case 'Q': case 'q':
278
04abf5b160eb exit_gqview() renamed to exit_program().
zas_
parents: 246
diff changeset
187 exit_program();
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
188 return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
189 break;
84
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
190 default:
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
191 stop_signal = FALSE;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
192 break;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
193 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
194 if (n != -1)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
195 {
60
9c0c402b0ef3 Mon Jun 13 17:31:46 2005 John Ellis <johne@verizon.net>
gqview
parents: 23
diff changeset
196 if (!editor_window_flag_set(n))
9c0c402b0ef3 Mon Jun 13 17:31:46 2005 John Ellis <johne@verizon.net>
gqview
parents: 23
diff changeset
197 {
9c0c402b0ef3 Mon Jun 13 17:31:46 2005 John Ellis <johne@verizon.net>
gqview
parents: 23
diff changeset
198 layout_image_full_screen_stop(lw);
9c0c402b0ef3 Mon Jun 13 17:31:46 2005 John Ellis <johne@verizon.net>
gqview
parents: 23
diff changeset
199 }
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
200 start_editor_from_file(n, layout_image_get_fd(lw));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
201 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
202 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
203 else if (event->state & GDK_SHIFT_MASK)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
204 {
84
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
205 stop_signal = TRUE;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
206 switch (event->keyval)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
207 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
208 case 'R': case 'r':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
209 layout_image_alter(lw, ALTER_ROTATE_180);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
210 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
211 case 'M': case 'm':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
212 layout_image_alter(lw, ALTER_MIRROR);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
213 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
214 case 'F': case 'f':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
215 layout_image_alter(lw, ALTER_FLIP);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
216 break;
82
a4c1b7014e6e Thu Oct 19 15:20:51 2006 John Ellis <johne@verizon.net>
gqview
parents: 64
diff changeset
217 case 'G': case 'g':
a4c1b7014e6e Thu Oct 19 15:20:51 2006 John Ellis <johne@verizon.net>
gqview
parents: 64
diff changeset
218 layout_image_alter(lw, ALTER_DESATURATE);
a4c1b7014e6e Thu Oct 19 15:20:51 2006 John Ellis <johne@verizon.net>
gqview
parents: 64
diff changeset
219 break;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
220 default:
84
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
221 stop_signal = FALSE;
9
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 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
224 }
84
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
225 else
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
226 {
84
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
227 stop_signal = TRUE;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
228 switch (event->keyval)
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
229 {
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
230 case '+': case '=': case GDK_KP_Add:
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
231 layout_image_zoom_adjust(lw, get_zoom_increment());
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
232 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
233 case '-': case GDK_KP_Subtract:
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
234 layout_image_zoom_adjust(lw, -get_zoom_increment());
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
235 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
236 case 'X': case 'x': case GDK_KP_Multiply:
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
237 layout_image_zoom_set(lw, 0.0);
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
238 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
239 case 'Z': case 'z': case GDK_KP_Divide:
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
240 case '1':
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
241 layout_image_zoom_set(lw, 1.0);
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
242 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
243 case '2':
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
244 layout_image_zoom_set(lw, 2.0);
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
245 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
246 case '3':
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
247 layout_image_zoom_set(lw, 3.0);
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
248 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
249 case '4':
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
250 layout_image_zoom_set(lw, 4.0);
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
251 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
252 case '7':
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
253 layout_image_zoom_set(lw, -4.0);
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
254 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
255 case '8':
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
256 layout_image_zoom_set(lw, -3.0);
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
257 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
258 case '9':
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
259 layout_image_zoom_set(lw, -2.0);
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
260 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
261 case 'W': case 'w':
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
262 layout_image_zoom_set_fill_geometry(lw, FALSE);
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
263 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
264 case 'H': case 'h':
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
265 layout_image_zoom_set_fill_geometry(lw, TRUE);
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
266 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
267 case GDK_Page_Up: case GDK_KP_Page_Up:
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
268 case GDK_BackSpace:
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
269 case 'B': case 'b':
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
270 layout_image_prev(lw);
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
271 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
272 case GDK_Page_Down: case GDK_KP_Page_Down:
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
273 case GDK_space:
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
274 case 'N': case 'n':
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
275 layout_image_next(lw);
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
276 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
277 case GDK_Home: case GDK_KP_Home:
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
278 layout_image_first(lw);
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
279 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
280 case GDK_End: case GDK_KP_End:
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
281 layout_image_last(lw);
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
282 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
283 case ']':
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
284 layout_image_alter(lw, ALTER_ROTATE_90);
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
285 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
286 case '[':
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
287 layout_image_alter(lw, ALTER_ROTATE_90_CC);
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
288 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
289 case GDK_Delete: case GDK_KP_Delete:
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
290 if (enable_delete_key)
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
291 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
292 file_util_delete(layout_image_get_fd(lw), NULL, widget);
84
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
293 }
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
294 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
295 case GDK_Escape:
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
296 layout_image_full_screen_stop(lw);
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
297 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
298 case 'R': case 'r':
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
299 layout_refresh(lw);
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
300 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
301 case 'S': case 's':
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
302 layout_image_slideshow_toggle(lw);
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
303 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
304 case 'P': case 'p':
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
305 layout_image_slideshow_pause_toggle(lw);
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
306 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
307 case 'F': case 'f':
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
308 case 'V': case 'v':
86
cade6a52a165 Mon Oct 23 05:34:29 2006 John Ellis <johne@verizon.net>
gqview
parents: 84
diff changeset
309 case GDK_F11:
84
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
310 layout_image_full_screen_stop(lw);
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
311 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
312 case GDK_Menu:
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
313 case GDK_F10:
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
314 layout_image_full_screen_menu_popup(lw);
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
315 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
316 case 'I': case 'i':
122
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
317 layout_image_overlay_toggle(lw);
84
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
318 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
319 default:
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
320 stop_signal = FALSE;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
321 break;
ba3c39002a24 Fri Oct 20 08:00:08 2006 John Ellis <johne@verizon.net>
gqview
parents: 82
diff changeset
322 }
9
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
325 return stop_signal;
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
160
85657b4766c9 use accels also in fullscreen mode
nadvornik
parents: 156
diff changeset
328 #endif
85657b4766c9 use accels also in fullscreen mode
nadvornik
parents: 156
diff changeset
329
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
330 static void layout_image_full_screen_stop_func(FullScreenData *fs, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
331 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
332 LayoutWindow *lw = data;
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 /* restore image window */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
335 lw->image = fs->normal_imd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
336
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
337 if (lw->slideshow)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
338 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
339 lw->slideshow->imd = lw->image;
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
342 lw->full_screen = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
343 }
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 void layout_image_full_screen_start(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
346 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
347 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
348
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
349 if (lw->full_screen) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
350
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
351 lw->full_screen = fullscreen_start(lw->window, lw->image,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
352 layout_image_full_screen_stop_func, lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
353
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
354 /* set to new image window */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
355 lw->image = lw->full_screen->imd;
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 if (lw->slideshow)
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 lw->slideshow->imd = lw->image;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
360 }
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 layout_image_set_buttons(lw);
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 g_signal_connect(G_OBJECT(lw->full_screen->window), "key_press_event",
160
85657b4766c9 use accels also in fullscreen mode
nadvornik
parents: 156
diff changeset
365 G_CALLBACK(layout_key_press_cb), lw);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
366
160
85657b4766c9 use accels also in fullscreen mode
nadvornik
parents: 156
diff changeset
367 layout_actions_add_window(lw, lw->full_screen->window);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
368 #if 0
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
369 gtk_widget_set_sensitive(lw->window, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
370 if (lw->tools) gtk_widget_set_sensitive(lw->tools, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
371 #endif
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
372
122
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
373 if (image_osd_get(lw->full_screen->normal_imd, NULL, NULL))
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
374 {
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
375 image_osd_set(lw->image, TRUE, TRUE);
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
376 image_osd_set(lw->full_screen->normal_imd, FALSE, FALSE);
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
377 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
378 }
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 void layout_image_full_screen_stop(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
381 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
382 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
383 if (!lw->full_screen) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
384
122
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
385 if (image_osd_get(lw->image, NULL, NULL))
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
386 {
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
387 image_osd_set(lw->full_screen->normal_imd, FALSE, TRUE);
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
388 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
389 fullscreen_stop(lw->full_screen);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
390
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
391 #if 0
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
392 gtk_widget_set_sensitive(lw->window, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
393 if (lw->tools) gtk_widget_set_sensitive(lw->tools, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
394 #endif
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
395 }
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 void layout_image_full_screen_toggle(LayoutWindow *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 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
400 if (lw->full_screen)
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 layout_image_full_screen_stop(lw);
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 else
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 layout_image_full_screen_start(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
407 }
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
410 gint layout_image_full_screen_active(LayoutWindow *lw)
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 if (!layout_valid(&lw)) return FALSE;
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 return (lw->full_screen != NULL);
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 /*
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 * slideshow
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 */
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 static void layout_image_slideshow_next(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
424 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
425 if (lw->slideshow) slideshow_next(lw->slideshow);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
426 }
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 static void layout_image_slideshow_prev(LayoutWindow *lw)
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 if (lw->slideshow) slideshow_prev(lw->slideshow);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
431 }
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 static void layout_image_slideshow_stop_func(SlideShowData *ss, gpointer 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 LayoutWindow *lw = data;
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 lw->slideshow = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
438 layout_status_update_info(lw, NULL);
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
441 void layout_image_slideshow_start(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
442 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
443 CollectionData *cd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
444 CollectInfo *info;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
445
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
446 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
447 if (lw->slideshow) return;
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 cd = image_get_collection(lw->image, &info);
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 if (cd && info)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
452 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
453 lw->slideshow = slideshow_start_from_collection(lw->image, cd,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
454 layout_image_slideshow_stop_func, lw, info);
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 else
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 lw->slideshow = slideshow_start(lw->image, lw,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
459 layout_list_get_index(lw, layout_image_get_path(lw)),
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
460 layout_image_slideshow_stop_func, lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
461 }
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_status_update_info(lw, NULL);
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 /* note that slideshow will take ownership of the list, do not free it */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
467 void layout_image_slideshow_start_from_list(LayoutWindow *lw, GList *list)
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 if (!layout_valid(&lw)) return;
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 (lw->slideshow || !list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
472 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
473 filelist_free(list);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
474 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
475 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
476
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
477 lw->slideshow = slideshow_start_from_filelist(lw->image, list,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
478 layout_image_slideshow_stop_func, lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
479
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
480 layout_status_update_info(lw, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
481 }
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 void layout_image_slideshow_stop(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
484 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
485 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
486
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
487 if (!lw->slideshow) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
488
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
489 slideshow_free(lw->slideshow);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
490 /* the stop_func sets lw->slideshow to NULL for us */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
491 }
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 void layout_image_slideshow_toggle(LayoutWindow *lw)
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 if (!layout_valid(&lw)) return;
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 if (lw->slideshow)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
498 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
499 layout_image_slideshow_stop(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
500 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
501 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
502 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
503 layout_image_slideshow_start(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
504 }
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 gint layout_image_slideshow_active(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
508 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
509 if (!layout_valid(&lw)) return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
510
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
511 return (lw->slideshow != NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
512 }
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 gint layout_image_slideshow_pause_toggle(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
515 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
516 gint ret;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
517
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
518 if (!layout_valid(&lw)) return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
519
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
520 ret = slideshow_pause_toggle(lw->slideshow);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
521
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
522 layout_status_update_info(lw, NULL);
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 return ret;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
525 }
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 gint layout_image_slideshow_paused(LayoutWindow *lw)
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 (!layout_valid(&lw)) return FALSE;
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 return (slideshow_paused(lw->slideshow));
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 static gint layout_image_slideshow_continue_check(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
535 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
536 if (!lw->slideshow) return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
537
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
538 if (!slideshow_should_continue(lw->slideshow))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
539 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
540 layout_image_slideshow_stop(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
541 return FALSE;
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 return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
545 }
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 /*
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 * pop-up menus
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 */
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 static void li_pop_menu_zoom_in_cb(GtkWidget *widget, gpointer data)
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 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
556
130
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
557 layout_image_zoom_adjust(lw, get_zoom_increment());
9
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
560 static void li_pop_menu_zoom_out_cb(GtkWidget *widget, gpointer data)
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 LayoutWindow *lw = data;
130
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
563 layout_image_zoom_adjust(lw, -get_zoom_increment());
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
564 }
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 static void li_pop_menu_zoom_1_1_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
567 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
568 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
569
130
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
570 layout_image_zoom_set(lw, 1.0);
9
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
573 static void li_pop_menu_zoom_fit_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
574 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
575 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
576
130
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
577 layout_image_zoom_set(lw, 0.0);
9
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
580 static void li_pop_menu_edit_cb(GtkWidget *widget, gpointer data)
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 LayoutWindow *lw;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
583 gint n;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
584
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
585 lw = submenu_item_get_data(widget);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
586 n = GPOINTER_TO_INT(data);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
587
60
9c0c402b0ef3 Mon Jun 13 17:31:46 2005 John Ellis <johne@verizon.net>
gqview
parents: 23
diff changeset
588 if (!editor_window_flag_set(n))
9c0c402b0ef3 Mon Jun 13 17:31:46 2005 John Ellis <johne@verizon.net>
gqview
parents: 23
diff changeset
589 {
9c0c402b0ef3 Mon Jun 13 17:31:46 2005 John Ellis <johne@verizon.net>
gqview
parents: 23
diff changeset
590 layout_image_full_screen_stop(lw);
9c0c402b0ef3 Mon Jun 13 17:31:46 2005 John Ellis <johne@verizon.net>
gqview
parents: 23
diff changeset
591 }
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
592 start_editor_from_file(n, layout_image_get_fd(lw));
9
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
595 static void li_pop_menu_wallpaper_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
596 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
597 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
598
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
599 layout_image_to_root(lw);
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
602 static void li_pop_menu_alter_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
603 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
604 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
605 AlterType type;
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 lw = submenu_item_get_data(widget);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
608 type = (AlterType)GPOINTER_TO_INT(data);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
609
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
610 image_alter(lw->image, type);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
611 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
612
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
613 static void li_pop_menu_info_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
614 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
615 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
616
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
617 info_window_new(layout_image_get_fd(lw), NULL);
9
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
620 static void li_pop_menu_new_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
621 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
622 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
623
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
624 view_window_new(layout_image_get_fd(lw));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
625 }
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 static GtkWidget *li_pop_menu_click_parent(GtkWidget *widget, LayoutWindow *lw)
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 GtkWidget *menu;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
630 GtkWidget *parent;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
631
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
632 menu = gtk_widget_get_toplevel(widget);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
633 if (!menu) return NULL;
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 parent = g_object_get_data(G_OBJECT(menu), "click_parent");
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 if (!parent && lw->full_screen)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
638 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
639 parent = lw->full_screen->imd->widget;
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
642 return parent;
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 static void li_pop_menu_copy_cb(GtkWidget *widget, gpointer data)
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 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
648
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
649 file_util_copy(layout_image_get_fd(lw), NULL, NULL,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
650 li_pop_menu_click_parent(widget, lw));
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
653 static void li_pop_menu_move_cb(GtkWidget *widget, gpointer data)
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 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
656
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
657 file_util_move(layout_image_get_fd(lw), NULL, NULL,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
658 li_pop_menu_click_parent(widget, lw));
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 static void li_pop_menu_rename_cb(GtkWidget *widget, gpointer data)
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 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
664
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
665 file_util_rename(layout_image_get_fd(lw), NULL,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
666 li_pop_menu_click_parent(widget, lw));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
667 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
668
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
669 static void li_pop_menu_delete_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
670 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
671 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
672
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
673 file_util_delete(layout_image_get_fd(lw), NULL,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
674 li_pop_menu_click_parent(widget, lw));
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
677 static void li_pop_menu_slide_start_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
678 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
679 LayoutWindow *lw = data;
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 layout_image_slideshow_start(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
682 }
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 static void li_pop_menu_slide_stop_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
685 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
686 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
687
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
688 layout_image_slideshow_stop(lw);
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
691 static void li_pop_menu_slide_pause_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
692 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
693 LayoutWindow *lw = data;
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 layout_image_slideshow_pause_toggle(lw);
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
698 static void li_pop_menu_full_screen_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
699 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
700 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
701
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
702 layout_image_full_screen_toggle(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
703 }
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 static void li_pop_menu_hide_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
706 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
707 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
708
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
709 layout_tools_hide_toggle(lw);
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
368
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
712 static void li_set_layout_path_cb(GtkWidget *widget, gpointer data)
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
713 {
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
714 LayoutWindow *lw = data;
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
715 const gchar *path;
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
716
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
717 if (!layout_valid(&lw)) return;
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
718
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
719 path = layout_image_get_path(lw);
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
720 if (path) layout_set_path(lw, path);
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
721 }
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
722
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
723 static gint li_check_if_current_path(LayoutWindow *lw, const gchar *path)
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
724 {
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
725 gchar *dirname;
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
726 gint ret;
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
727
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
728 if (!path || !layout_valid(&lw) || !lw->path) return FALSE;
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
729
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
730 dirname = g_path_get_dirname(path);
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
731 ret = (strcmp(lw->path, dirname) == 0);
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
732 g_free(dirname);
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
733 return ret;
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
734 }
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
735
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
736 static GtkWidget *layout_image_pop_menu(LayoutWindow *lw)
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 GtkWidget *menu;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
739 GtkWidget *item;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
740 GtkWidget *submenu;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
741 const gchar *path;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
742 gint fullscreen;
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 path = layout_image_get_path(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
745 fullscreen = layout_image_full_screen_active(lw);
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 menu = popup_menu_short_lived();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
748
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
749 menu_item_add_stock(menu, _("Zoom _in"), GTK_STOCK_ZOOM_IN, G_CALLBACK(li_pop_menu_zoom_in_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
750 menu_item_add_stock(menu, _("Zoom _out"), GTK_STOCK_ZOOM_OUT, G_CALLBACK(li_pop_menu_zoom_out_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
751 menu_item_add_stock(menu, _("Zoom _1:1"), GTK_STOCK_ZOOM_100, G_CALLBACK(li_pop_menu_zoom_1_1_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
752 menu_item_add_stock(menu, _("Fit image to _window"), GTK_STOCK_ZOOM_FIT, G_CALLBACK(li_pop_menu_zoom_fit_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
753 menu_item_add_divider(menu);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
754
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
755 submenu = submenu_add_edit(menu, &item, G_CALLBACK(li_pop_menu_edit_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
756 if (!path) gtk_widget_set_sensitive(item, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
757 menu_item_add_divider(submenu);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
758 menu_item_add(submenu, _("Set as _wallpaper"), G_CALLBACK(li_pop_menu_wallpaper_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
759
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
760 item = submenu_add_alter(menu, G_CALLBACK(li_pop_menu_alter_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
761
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
762 item = menu_item_add_stock(menu, _("_Properties"), GTK_STOCK_PROPERTIES, G_CALLBACK(li_pop_menu_info_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
763 if (!path) gtk_widget_set_sensitive(item, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
764
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
765 item = menu_item_add_stock(menu, _("View in _new window"), GTK_STOCK_NEW, G_CALLBACK(li_pop_menu_new_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
766 if (!path || fullscreen) gtk_widget_set_sensitive(item, FALSE);
368
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
767
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
768 item = menu_item_add(menu, _("_Go to directory view"), G_CALLBACK(li_set_layout_path_cb), lw);
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
769 if (!path || li_check_if_current_path(lw, path)) gtk_widget_set_sensitive(item, FALSE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
770
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
771 menu_item_add_divider(menu);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
772
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
773 item = menu_item_add_stock(menu, _("_Copy..."), GTK_STOCK_COPY, G_CALLBACK(li_pop_menu_copy_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
774 if (!path) gtk_widget_set_sensitive(item, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
775 item = menu_item_add(menu, _("_Move..."), G_CALLBACK(li_pop_menu_move_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
776 if (!path) gtk_widget_set_sensitive(item, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
777 item = menu_item_add(menu, _("_Rename..."), G_CALLBACK(li_pop_menu_rename_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
778 if (!path) gtk_widget_set_sensitive(item, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
779 item = menu_item_add_stock(menu, _("_Delete..."), GTK_STOCK_DELETE, G_CALLBACK(li_pop_menu_delete_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
780 if (!path) gtk_widget_set_sensitive(item, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
781
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
782 menu_item_add_divider(menu);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
783
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
784 if (layout_image_slideshow_active(lw))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
785 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
786 menu_item_add(menu, _("_Stop slideshow"), G_CALLBACK(li_pop_menu_slide_stop_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
787 if (layout_image_slideshow_paused(lw))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
788 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
789 item = menu_item_add(menu, _("Continue slides_how"),
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
790 G_CALLBACK(li_pop_menu_slide_pause_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
791 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
792 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
793 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
794 item = menu_item_add(menu, _("Pause slides_how"),
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
795 G_CALLBACK(li_pop_menu_slide_pause_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
796 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
797 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
798 else
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 menu_item_add(menu, _("_Start slideshow"), G_CALLBACK(li_pop_menu_slide_start_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
801 item = menu_item_add(menu, _("Pause slides_how"), G_CALLBACK(li_pop_menu_slide_pause_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
802 gtk_widget_set_sensitive(item, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
803 }
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 if (!fullscreen)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
806 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
807 menu_item_add(menu, _("_Full screen"), G_CALLBACK(li_pop_menu_full_screen_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
808 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
809 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
810 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
811 menu_item_add(menu, _("Exit _full screen"), G_CALLBACK(li_pop_menu_full_screen_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
812 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
813
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
814 menu_item_add_divider(menu);
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 item = menu_item_add_check(menu, _("Hide file _list"), lw->tools_hidden,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
817 G_CALLBACK(li_pop_menu_hide_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
818 if (fullscreen) gtk_widget_set_sensitive(item, FALSE);
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 return menu;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
821 }
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 void layout_image_menu_pos_cb(GtkMenu *menu, gint *x, gint *y, gboolean *push_in, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
824 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
825 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
826
23
17acca639a86 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
827 gdk_window_get_origin(lw->image->pr->window, x, y);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
828 popup_menu_position_clamp(menu, x, y, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
829 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
830
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
831 void layout_image_menu_popup(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
832 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
833 GtkWidget *menu;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
834
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
835 menu = layout_image_pop_menu(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
836 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, layout_image_menu_pos_cb, lw, 0, GDK_CURRENT_TIME);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
837 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
838
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
839 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
840 *----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
841 * dnd
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
842 *----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
843 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
844
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
845 static void layout_image_dnd_receive(GtkWidget *widget, GdkDragContext *context,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
846 gint x, gint y,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
847 GtkSelectionData *selection_data, guint info,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
848 guint time, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
849 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
850 LayoutWindow *lw = data;
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
851 gint i;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
852
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
853
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
854 for (i=0; i < MAX_SPLIT_IMAGES; i++)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
855 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
856 if (lw->split_images[i] && lw->split_images[i]->pr == widget)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
857 break;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
858 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
859 if (i < MAX_SPLIT_IMAGES)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
860 {
302
c1f75ee307ec Only display these messages if debug mode is enabled.
zas_
parents: 288
diff changeset
861 if (debug) printf("dnd image activate %d\n", i);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
862 layout_image_activate(lw, i);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
863 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
864
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
865
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
866 if (info == TARGET_URI_LIST || info == TARGET_APP_COLLECTION_MEMBER)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
867 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
868 CollectionData *source;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
869 GList *list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
870 GList *info_list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
871
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
872 if (info == TARGET_URI_LIST)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
873 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
874 list = uri_filelist_from_text((gchar *)selection_data->data, TRUE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
875 source = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
876 info_list = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
877 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
878 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
879 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
880 source = collection_from_dnd_data((gchar *)selection_data->data, &list, &info_list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
881 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
882
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
883 if (list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
884 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
885 FileData *fd = list->data;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
886
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
887 if (isfile(fd->path))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
888 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
889 gchar *base;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
890 gint row;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
891
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
892 base = remove_level_from_path(fd->path);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
893 if (strcmp(base, layout_get_path(lw)) != 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
894 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
895 layout_set_path(lw, base);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
896 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
897 g_free(base);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
898
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
899 row = layout_list_get_index(lw, fd->path);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
900 if (source && info_list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
901 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
902 layout_image_set_collection(lw, source, info_list->data);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
903 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
904 else if (row == -1)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
905 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
906 layout_image_set_fd(lw, fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
907 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
908 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
909 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
910 layout_image_set_index(lw, row);
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 }
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
913 else if (isdir(fd->path))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
914 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
915 layout_set_path(lw, fd->path);
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
916 layout_image_set_fd(lw, NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
917 }
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
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
920 filelist_free(list);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
921 g_list_free(info_list);
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 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
924
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
925 static void layout_image_dnd_get(GtkWidget *widget, GdkDragContext *context,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
926 GtkSelectionData *selection_data, guint info,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
927 guint time, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
928 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
929 LayoutWindow *lw = data;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
930 FileData *fd;
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
931 gint i;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
932
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
933
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
934 for (i=0; i < MAX_SPLIT_IMAGES; i++)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
935 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
936 if (lw->split_images[i] && lw->split_images[i]->pr == widget)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
937 break;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
938 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
939 if (i < MAX_SPLIT_IMAGES)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
940 {
302
c1f75ee307ec Only display these messages if debug mode is enabled.
zas_
parents: 288
diff changeset
941 if (debug) printf("dnd get from %d\n", i);
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
942 fd = image_get_fd(lw->split_images[i]);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
943 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
944 else
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
945 fd = layout_image_get_fd(lw);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
946
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
947 if (fd)
9
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 gchar *text = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
950 gint len;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
951 gint plain_text;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
952 GList *list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
953
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
954 switch (info)
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 case TARGET_URI_LIST:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
957 plain_text = FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
958 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
959 case TARGET_TEXT_PLAIN:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
960 default:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
961 plain_text = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
962 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
963 }
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
964 list = g_list_append(NULL, fd);
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
965 text = uri_text_from_filelist(list, &len, plain_text);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
966 g_list_free(list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
967 if (text)
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 gtk_selection_data_set (selection_data, selection_data->target,
64
04ff0df3ad2f Mon Aug 15 17:13:57 2005 John Ellis <johne@verizon.net>
gqview
parents: 60
diff changeset
970 8, (guchar *)text, len);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
971 g_free(text);
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 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
974 else
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 gtk_selection_data_set (selection_data, selection_data->target,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
977 8, NULL, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
978 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
979 }
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 static void layout_image_dnd_end(GtkWidget *widget, GdkDragContext *context, gpointer data)
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 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
984 if (context->action == GDK_ACTION_MOVE)
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 const gchar *path;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
987 gint row;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
988
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
989 path = layout_image_get_path(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
990 row = layout_list_get_index(lw, path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
991 if (row < 0) return;
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 if (!isfile(path))
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 if (row < layout_list_count(lw, NULL) - 1)
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 layout_image_next(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
998 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
999 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1000 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1001 layout_image_prev(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1002 }
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 layout_refresh(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1005 }
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
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1008 static void layout_image_dnd_init(LayoutWindow *lw, gint i)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1009 {
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1010 ImageWindow *imd = lw->split_images[i];
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1011
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1012 gtk_drag_source_set(imd->pr, GDK_BUTTON2_MASK,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1013 dnd_file_drag_types, dnd_file_drag_types_count,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1014 GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1015 g_signal_connect(G_OBJECT(imd->pr), "drag_data_get",
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1016 G_CALLBACK(layout_image_dnd_get), lw);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1017 g_signal_connect(G_OBJECT(imd->pr), "drag_end",
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1018 G_CALLBACK(layout_image_dnd_end), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1019
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1020 gtk_drag_dest_set(imd->pr,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1021 GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1022 dnd_file_drop_types, dnd_file_drop_types_count,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1023 GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1024 g_signal_connect(G_OBJECT(imd->pr), "drag_data_received",
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1025 G_CALLBACK(layout_image_dnd_receive), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1026 }
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
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 * misc
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1032 *----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1033 */
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 void layout_image_to_root(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1036 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1037 image_to_root_window(lw->image, (image_zoom_get(lw->image) == 0));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1038 }
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 /*
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 * manipulation + accessors
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 */
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 void layout_image_scroll(LayoutWindow *lw, gint x, gint y)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1047 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1048 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1049
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1050 image_scroll(lw->image, x, y);
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1053 void layout_image_zoom_adjust(LayoutWindow *lw, gdouble increment)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1054 {
130
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
1055 gint i;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1056 if (!layout_valid(&lw)) return;
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 image_zoom_adjust(lw->image, increment);
130
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
1059
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
1060 for (i=0; i < MAX_SPLIT_IMAGES; i++)
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
1061 {
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
1062 if (lw->split_images[i] && lw->split_images[i] != lw->image && lw->connect_zoom)
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
1063 image_zoom_adjust(lw->split_images[i], increment); ;
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
1064 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1065 }
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 void layout_image_zoom_set(LayoutWindow *lw, gdouble zoom)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1068 {
130
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
1069 gint i;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1070 if (!layout_valid(&lw)) return;
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 image_zoom_set(lw->image, zoom);
130
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
1073
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
1074 for (i=0; i < MAX_SPLIT_IMAGES; i++)
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
1075 {
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
1076 if (lw->split_images[i] && lw->split_images[i] != lw->image && lw->connect_zoom)
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
1077 image_zoom_set(lw->split_images[i], zoom);
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
1078 }
9
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1081 void layout_image_zoom_set_fill_geometry(LayoutWindow *lw, gint vertical)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1082 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1083 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1084
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1085 image_zoom_set_fill_geometry(lw->image, vertical);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1086 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1087
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1088 void layout_image_alter(LayoutWindow *lw, AlterType type)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1089 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1090 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1091
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1092 image_alter(lw->image, type);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1093 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1094
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1095 const gchar *layout_image_get_path(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1096 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1097 if (!layout_valid(&lw)) return NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1098
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1099 return image_get_path(lw->image);
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1102 const gchar *layout_image_get_name(LayoutWindow *lw)
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 if (!layout_valid(&lw)) return NULL;
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 return image_get_name(lw->image);
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
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1109 FileData *layout_image_get_fd(LayoutWindow *lw)
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1110 {
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1111 if (!layout_valid(&lw)) return NULL;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1112
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1113 return image_get_fd(lw->image);
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1114 }
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1115
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1116 CollectionData *layout_image_get_collection(LayoutWindow *lw, CollectInfo **info)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1117 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1118 if (!layout_valid(&lw)) return NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1119
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1120 return image_get_collection(lw->image, info);
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1123 gint layout_image_get_index(LayoutWindow *lw)
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 return layout_list_get_index(lw, image_get_path(lw->image));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1126 }
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 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1129 *----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1130 * image changers
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1131 *----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1132 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1133
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1134 void layout_image_set_fd(LayoutWindow *lw, FileData *fd)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1135 {
131
b1acdfc7271b relative scroll is working; some cleanup
nadvornik
parents: 130
diff changeset
1136 gdouble sx, sy;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1137 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1138
129
89fc00ffbce2 started relative scroll, keep scroll position
nadvornik
parents: 128
diff changeset
1139 image_get_scroll_center(lw->image, &sx, &sy);
89fc00ffbce2 started relative scroll, keep scroll position
nadvornik
parents: 128
diff changeset
1140
334
df868b947aa0 Rename image-related options.
zas_
parents: 327
diff changeset
1141 image_change_fd(lw->image, fd, image_zoom_get_default(lw->image, options->image.zoom_mode));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1142
129
89fc00ffbce2 started relative scroll, keep scroll position
nadvornik
parents: 128
diff changeset
1143 image_set_scroll_center(lw->image, sx, sy);
89fc00ffbce2 started relative scroll, keep scroll position
nadvornik
parents: 128
diff changeset
1144
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1145 layout_list_sync_fd(lw, fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1146 layout_image_slideshow_continue_check(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1147 layout_bars_new_image(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1148 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1149
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1150 void layout_image_set_with_ahead(LayoutWindow *lw, FileData *fd, FileData *read_ahead_fd)
9
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 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1153
144
2310066cc55a fixed preloading images in file list
nadvornik
parents: 138
diff changeset
1154 /*
2310066cc55a fixed preloading images in file list
nadvornik
parents: 138
diff changeset
1155 This should be handled at the caller: in vflist_select_image
2310066cc55a fixed preloading images in file list
nadvornik
parents: 138
diff changeset
1156 if (path)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1157 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1158 const gchar *old_path;
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 old_path = layout_image_get_path(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1161 if (old_path && strcmp(path, old_path) == 0) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1162 }
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1163 */
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1164 layout_image_set_fd(lw, fd);
334
df868b947aa0 Rename image-related options.
zas_
parents: 327
diff changeset
1165 if (options->image.enable_read_ahead) image_prebuffer_set(lw->image, read_ahead_fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1166 }
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 void layout_image_set_index(LayoutWindow *lw, gint index)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1169 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1170 FileData *fd;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1171 FileData *read_ahead_fd;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1172 gint old;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1173
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1174 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1175
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1176 old = layout_list_get_index(lw, layout_image_get_path(lw));
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1177 fd = layout_list_get_fd(lw, index);
9
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 if (old > index)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1180 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1181 read_ahead_fd = layout_list_get_fd(lw, index - 1);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1182 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1183 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1184 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1185 read_ahead_fd = layout_list_get_fd(lw, index + 1);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1186 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1187
220
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1188 if (layout_selection_count(lw, 0) > 1)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1189 {
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1190 GList *x = layout_selection_list_by_index(lw);
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1191 GList *y;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1192 GList *last;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1193
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1194 for (last = y = x; y; y = y->next)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1195 last = y;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1196 for (y = x; y && ((gint)y->data) != index; y = y->next)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1197 ;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1198
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1199 if (y)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1200 {
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1201 gint newindex;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1202
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1203 if ((index > old && (index != (gint) last->data || old != (gint) x->data))
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1204 || (old == (gint) last->data && index == (gint) x->data))
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1205 {
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1206 if (y->next)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1207 newindex = (gint) y->next->data;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1208 else
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1209 newindex = (gint) x->data;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1210 }
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1211 else
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1212 {
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1213 if (y->prev)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1214 newindex = (gint) y->prev->data;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1215 else
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1216 newindex = (gint) last->data;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1217 }
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1218
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1219 read_ahead_fd = layout_list_get_fd(lw, newindex);
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1220 }
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1221
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1222 while (x)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1223 x = g_list_remove(x, x->data);
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1224 }
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1225
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1226 layout_image_set_with_ahead(lw, fd, read_ahead_fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1227 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1228
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1229 static void layout_image_set_collection_real(LayoutWindow *lw, CollectionData *cd, CollectInfo *info, gint forward)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1230 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1231 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1232
334
df868b947aa0 Rename image-related options.
zas_
parents: 327
diff changeset
1233 image_change_from_collection(lw->image, cd, info, image_zoom_get_default(lw->image, options->image.zoom_mode));
df868b947aa0 Rename image-related options.
zas_
parents: 327
diff changeset
1234 if (options->image.enable_read_ahead)
9
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 CollectInfo *r_info;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1237 if (forward)
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 r_info = collection_next_by_info(cd, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1240 if (!r_info) r_info = collection_prev_by_info(cd, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1241 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1242 else
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 r_info = collection_prev_by_info(cd, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1245 if (!r_info) r_info = collection_next_by_info(cd, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1246 }
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1247 if (r_info) image_prebuffer_set(lw->image, r_info->fd);
9
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1250 layout_image_slideshow_continue_check(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1251 layout_bars_new_image(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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1254 void layout_image_set_collection(LayoutWindow *lw, CollectionData *cd, CollectInfo *info)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1255 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1256 layout_image_set_collection_real(lw, cd, info, TRUE);
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1257 layout_list_sync_fd(lw, layout_image_get_fd(lw));
9
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1260 void layout_image_refresh(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1261 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1262 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1263
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1264 image_reload(lw->image);
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
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1267 void layout_image_color_profile_set(LayoutWindow *lw,
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1268 gint input_type, gint screen_type,
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1269 gint use_image)
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1270 {
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1271 if (!layout_valid(&lw)) return;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1272
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1273 image_color_profile_set(lw->image, input_type, screen_type, use_image);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1274 }
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1275
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1276 gint layout_image_color_profile_get(LayoutWindow *lw,
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1277 gint *input_type, gint *screen_type,
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1278 gint *use_image)
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1279 {
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1280 if (!layout_valid(&lw)) return FALSE;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1281
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1282 return image_color_profile_get(lw->image, input_type, screen_type, use_image);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1283 }
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1284
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1285 void layout_image_color_profile_set_use(LayoutWindow *lw, gint enable)
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1286 {
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1287 if (!layout_valid(&lw)) return;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1288
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1289 image_color_profile_set_use(lw->image, enable);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1290
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1291 if (lw->info_color)
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1292 {
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1293 #ifndef HAVE_LCMS
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1294 enable = FALSE;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1295 #endif
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1296 gtk_widget_set_sensitive(GTK_BIN(lw->info_color)->child, enable);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1297 }
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1298 }
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1299
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1300 gint layout_image_color_profile_get_use(LayoutWindow *lw)
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1301 {
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1302 if (!layout_valid(&lw)) return FALSE;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1303
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1304 return image_color_profile_get_use(lw->image);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1305 }
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1306
9
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 *----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1309 * list walkers
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1310 *----------------------------------------------------------------------------
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1313 void layout_image_next(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1314 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1315 gint current;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1316 CollectionData *cd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1317 CollectInfo *info;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1318
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1319 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1320
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1321 if (layout_image_slideshow_active(lw))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1322 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1323 layout_image_slideshow_next(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1324 return;
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
220
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1327 if (layout_selection_count(lw, 0) > 1)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1328 {
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1329 GList *x = layout_selection_list_by_index(lw);
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1330 gint old = layout_list_get_index(lw, layout_image_get_path(lw));
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1331 GList *y;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1332
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1333 for (y = x; y && ((gint) y->data) != old; y = y->next)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1334 ;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1335 if (y)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1336 {
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1337 if (y->next)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1338 layout_image_set_index(lw, (gint) y->next->data);
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1339 else
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1340 layout_image_set_index(lw, (gint) x->data);
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1341 }
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1342 while (x)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1343 x = g_list_remove(x, x->data);
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1344 if (y) /* not dereferenced */
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1345 return;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1346 }
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1347
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1348 cd = image_get_collection(lw->image, &info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1349
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1350 if (cd && info)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1351 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1352 info = collection_next_by_info(cd, info);
122
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1353 if (info)
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1354 {
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1355 layout_image_set_collection_real(lw, cd, info, TRUE);
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1356 }
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1357 else
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1358 {
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1359 image_osd_icon(lw->image, IMAGE_OSD_LAST, -1);
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1360 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1361 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1362 }
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 current = layout_image_get_index(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1365
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1366 if (current >= 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1367 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1368 if (current < layout_list_count(lw, NULL) - 1)
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 layout_image_set_index(lw, current + 1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1371 }
122
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1372 else
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1373 {
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1374 image_osd_icon(lw->image, IMAGE_OSD_LAST, -1);
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1375 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1376 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1377 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1378 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1379 layout_image_set_index(lw, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1380 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1381 }
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 void layout_image_prev(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1384 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1385 gint current;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1386 CollectionData *cd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1387 CollectInfo *info;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1388
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1389 if (!layout_valid(&lw)) return;
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 if (layout_image_slideshow_active(lw))
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 layout_image_slideshow_prev(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1394 return;
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
220
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1397 if (layout_selection_count(lw, 0) > 1)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1398 {
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1399 GList *x = layout_selection_list_by_index(lw);
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1400 gint old = layout_list_get_index(lw, layout_image_get_path(lw));
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1401 GList *y;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1402 GList *last;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1403
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1404 for (last = y = x; y; y = y->next)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1405 last = y;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1406 for (y = x; y && ((gint) y->data) != old; y = y->next)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1407 ;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1408 if (y)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1409 {
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1410 if (y->prev)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1411 layout_image_set_index(lw, (gint) y->prev->data);
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1412 else
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1413 layout_image_set_index(lw, (gint) last->data);
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1414 }
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1415 while (x)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1416 x = g_list_remove(x, x->data);
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1417 if (y) /* not dereferenced */
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1418 return;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1419 }
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1420
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1421 cd = image_get_collection(lw->image, &info);
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 (cd && info)
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 info = collection_prev_by_info(cd, info);
122
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1426 if (info)
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1427 {
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1428 layout_image_set_collection_real(lw, cd, info, FALSE);
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1429 }
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1430 else
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1431 {
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1432 image_osd_icon(lw->image, IMAGE_OSD_FIRST, -1);
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1433 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1434 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1435 }
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 current = layout_image_get_index(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1438
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1439 if (current >= 0)
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 if (current > 0)
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_image_set_index(lw, current - 1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1444 }
122
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1445 else
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1446 {
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1447 image_osd_icon(lw->image, IMAGE_OSD_FIRST, -1);
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1448 }
9
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 else
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 layout_image_set_index(lw, layout_list_count(lw, NULL) - 1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1453 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1454 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1455
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1456 void layout_image_first(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1457 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1458 gint current;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1459 CollectionData *cd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1460 CollectInfo *info;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1461
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1462 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1463
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1464 cd = image_get_collection(lw->image, &info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1465
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1466 if (cd && info)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1467 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1468 CollectInfo *new;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1469 new = collection_get_first(cd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1470 if (new != info) layout_image_set_collection_real(lw, cd, new, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1471 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1472 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1473
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1474 current = layout_image_get_index(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1475 if (current != 0 && layout_list_count(lw, NULL) > 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1476 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1477 layout_image_set_index(lw, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1478 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1479 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1480
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1481 void layout_image_last(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1482 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1483 gint current;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1484 gint count;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1485 CollectionData *cd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1486 CollectInfo *info;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1487
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1488 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1489
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1490 cd = image_get_collection(lw->image, &info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1491
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1492 if (cd && info)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1493 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1494 CollectInfo *new;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1495 new = collection_get_last(cd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1496 if (new != info) layout_image_set_collection_real(lw, cd, new, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1497 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1498 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1499
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1500 current = layout_image_get_index(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1501 count = layout_list_count(lw, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1502 if (current != count - 1 && count > 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1503 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1504 layout_image_set_index(lw, count - 1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1505 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1506 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1507
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1508 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1509 *----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1510 * mouse callbacks
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1511 *----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1512 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1513
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1514 static gint image_idx(LayoutWindow *lw, ImageWindow *imd)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1515 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1516 gint i;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1517
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1518 for (i=0; i < MAX_SPLIT_IMAGES; i++)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1519 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1520 if (lw->split_images[i] == imd)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1521 break;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1522 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1523 if (i < MAX_SPLIT_IMAGES)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1524 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1525 return i;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1526 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1527 return -1;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1528 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1529
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1530
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1531 static void layout_image_button_cb(ImageWindow *imd, gint button, guint32 time,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1532 gdouble x, gdouble y, guint state, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1533 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1534 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1535 GtkWidget *menu;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1536
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1537 switch (button)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1538 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1539 case 1:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1540 layout_image_next(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1541 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1542 case 2:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1543 layout_image_prev(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1544 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1545 case 3:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1546 menu = layout_image_pop_menu(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1547 if (imd == lw->image)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1548 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1549 g_object_set_data(G_OBJECT(menu), "click_parent", imd->widget);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1550 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1551 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 3, time);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1552 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1553 default:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1554 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1555 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1556 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1557
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1558 static void layout_image_scroll_cb(ImageWindow *imd, GdkScrollDirection direction, guint32 time,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1559 gdouble x, gdouble y, guint state, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1560 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1561 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1562
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1563 gint i = image_idx(lw, imd);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1564
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1565 if (i != -1)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1566 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1567 printf("image activate scroll %d\n", i);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1568 layout_image_activate(lw, i);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1569 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1570
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1571
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1572 if (state & GDK_CONTROL_MASK)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1573 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1574 switch (direction)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1575 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1576 case GDK_SCROLL_UP:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1577 image_zoom_adjust_at_point(imd, get_zoom_increment(), x, y);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1578 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1579 case GDK_SCROLL_DOWN:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1580 image_zoom_adjust_at_point(imd, -get_zoom_increment(), x, y);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1581 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1582 default:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1583 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1584 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1585 }
318
b16b9b8979e5 Add a new struct ConfOptions to handle options.
zas_
parents: 302
diff changeset
1586 else if ( (state & GDK_SHIFT_MASK) != (options->mousewheel_scrolls))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1587 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1588 switch (direction)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1589 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1590 case GDK_SCROLL_UP:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1591 image_scroll(imd, 0, -MOUSEWHEEL_SCROLL_SIZE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1592 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1593 case GDK_SCROLL_DOWN:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1594 image_scroll(imd, 0, MOUSEWHEEL_SCROLL_SIZE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1595 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1596 case GDK_SCROLL_LEFT:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1597 image_scroll(imd, -MOUSEWHEEL_SCROLL_SIZE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1598 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1599 case GDK_SCROLL_RIGHT:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1600 image_scroll(imd, MOUSEWHEEL_SCROLL_SIZE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1601 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1602 default:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1603 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1604 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1605 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1606 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1607 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1608 switch (direction)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1609 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1610 case GDK_SCROLL_UP:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1611 layout_image_prev(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1612 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1613 case GDK_SCROLL_DOWN:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1614 layout_image_next(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1615 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1616 default:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1617 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1618 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1619 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1620 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1621
128
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1622 static void layout_image_drag_cb(ImageWindow *imd, gint button, guint32 time,
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1623 gdouble x, gdouble y, guint state, gdouble dx, gdouble dy, gpointer data)
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1624 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1625 gint i;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1626 LayoutWindow *lw = data;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1627
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1628
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1629 for (i=0; i < MAX_SPLIT_IMAGES; i++)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1630 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1631 if (lw->split_images[i] && lw->split_images[i] != imd)
129
89fc00ffbce2 started relative scroll, keep scroll position
nadvornik
parents: 128
diff changeset
1632 if (lw->connect_scroll)
89fc00ffbce2 started relative scroll, keep scroll position
nadvornik
parents: 128
diff changeset
1633 {
131
b1acdfc7271b relative scroll is working; some cleanup
nadvornik
parents: 130
diff changeset
1634 gdouble sx, sy;
b1acdfc7271b relative scroll is working; some cleanup
nadvornik
parents: 130
diff changeset
1635 if (state & GDK_CONTROL_MASK)
129
89fc00ffbce2 started relative scroll, keep scroll position
nadvornik
parents: 128
diff changeset
1636 {
89fc00ffbce2 started relative scroll, keep scroll position
nadvornik
parents: 128
diff changeset
1637 image_get_scroll_center(imd, &sx, &sy);
89fc00ffbce2 started relative scroll, keep scroll position
nadvornik
parents: 128
diff changeset
1638 }
89fc00ffbce2 started relative scroll, keep scroll position
nadvornik
parents: 128
diff changeset
1639 else
89fc00ffbce2 started relative scroll, keep scroll position
nadvornik
parents: 128
diff changeset
1640 {
89fc00ffbce2 started relative scroll, keep scroll position
nadvornik
parents: 128
diff changeset
1641 image_get_scroll_center(lw->split_images[i], &sx, &sy);
89fc00ffbce2 started relative scroll, keep scroll position
nadvornik
parents: 128
diff changeset
1642 sx += dx;
89fc00ffbce2 started relative scroll, keep scroll position
nadvornik
parents: 128
diff changeset
1643 sy += dy;
89fc00ffbce2 started relative scroll, keep scroll position
nadvornik
parents: 128
diff changeset
1644 }
89fc00ffbce2 started relative scroll, keep scroll position
nadvornik
parents: 128
diff changeset
1645 image_set_scroll_center(lw->split_images[i], sx, sy);
89fc00ffbce2 started relative scroll, keep scroll position
nadvornik
parents: 128
diff changeset
1646 }
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1647 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1648 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1649
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1650 static void layout_image_button_inactive_cb(ImageWindow *imd, gint button, guint32 time,
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1651 gdouble x, gdouble y, guint state, gpointer data)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1652 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1653 LayoutWindow *lw = data;
128
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1654 GtkWidget *menu;
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1655 gint i = image_idx(lw, imd);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1656
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1657 if (i != -1)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1658 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1659 layout_image_activate(lw, i);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1660 }
128
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1661
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1662 switch (button)
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1663 {
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1664 case 3:
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1665 menu = layout_image_pop_menu(lw);
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1666 if (imd == lw->image)
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1667 {
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1668 g_object_set_data(G_OBJECT(menu), "click_parent", imd->widget);
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1669 }
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1670 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 3, time);
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1671 break;
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1672 default:
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1673 break;
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1674 }
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1675
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1676 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1677
128
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1678 static void layout_image_drag_inactive_cb(ImageWindow *imd, gint button, guint32 time,
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1679 gdouble x, gdouble y, guint state, gdouble dx, gdouble dy, gpointer data)
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1680 {
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1681 LayoutWindow *lw = data;
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1682
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1683 gint i = image_idx(lw, imd);
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1684
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1685 if (i != -1)
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1686 {
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1687 layout_image_activate(lw, i);
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1688 }
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1689
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1690
129
89fc00ffbce2 started relative scroll, keep scroll position
nadvornik
parents: 128
diff changeset
1691 /* continue as with active image */
89fc00ffbce2 started relative scroll, keep scroll position
nadvornik
parents: 128
diff changeset
1692 layout_image_drag_cb(imd, button, time, x, y, state, dx, dy, data);
128
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1693 }
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1694
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1695
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1696 static void layout_image_set_buttons(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1697 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1698 image_set_button_func(lw->image, layout_image_button_cb, lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1699 image_set_scroll_func(lw->image, layout_image_scroll_cb, lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1700 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1701
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1702 static void layout_image_set_buttons_inactive(LayoutWindow *lw, gint i)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1703 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1704 image_set_button_func(lw->split_images[i], layout_image_button_inactive_cb, lw);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1705 image_set_scroll_func(lw->split_images[i], layout_image_scroll_cb, lw);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1706 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1707
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1708 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1709 *----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1710 * setup
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1711 *----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1712 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1713
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1714 static void layout_image_update_cb(ImageWindow *imd, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1715 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1716 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1717 layout_status_update_image(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1718 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1719
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1720 GtkWidget *layout_image_new(LayoutWindow *lw, gint i)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1721 {
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1722 if (!lw->split_images[i])
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1723 {
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1724 lw->split_images[i] = image_new(TRUE);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1725
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1726 gtk_widget_ref(lw->split_images[i]->widget);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1727
339
de1c2cd06fce Rename user_specified_window_background and window_background_color
zas_
parents: 334
diff changeset
1728 image_background_set_color(lw->split_images[i], options->image.use_custom_border_color ? &options->image.border_color : NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1729
207
ec068409bee7 fixed color management initialization
nadvornik
parents: 196
diff changeset
1730 image_auto_refresh(lw->split_images[i], 0);
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1731
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1732 layout_image_dnd_init(lw, i);
207
ec068409bee7 fixed color management initialization
nadvornik
parents: 196
diff changeset
1733 image_color_profile_set(lw->split_images[i],
327
049d6b00cc14 Rename color profile options.
zas_
parents: 320
diff changeset
1734 options->color_profile.input_type,
049d6b00cc14 Rename color profile options.
zas_
parents: 320
diff changeset
1735 options->color_profile.screen_type,
049d6b00cc14 Rename color profile options.
zas_
parents: 320
diff changeset
1736 options->color_profile.use_image);
049d6b00cc14 Rename color profile options.
zas_
parents: 320
diff changeset
1737 image_color_profile_set_use(lw->split_images[i], options->color_profile.enabled);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1738 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1739
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1740 return lw->split_images[i]->widget;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1741 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1742
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1743 void layout_image_deactivate(LayoutWindow *lw, gint i)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1744 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1745
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1746 if (!lw->split_images[i]) return;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1747 image_set_update_func(lw->split_images[i], NULL, NULL);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1748 layout_image_set_buttons_inactive(lw, i);
129
89fc00ffbce2 started relative scroll, keep scroll position
nadvornik
parents: 128
diff changeset
1749 image_set_drag_func(lw->split_images[i], layout_image_drag_inactive_cb, lw);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1750
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1751 image_attach_window(lw->split_images[i], NULL, NULL, NULL, FALSE);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1752 image_select(lw->split_images[i], FALSE);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1753 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1754
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1755
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1756 void layout_image_activate(LayoutWindow *lw, gint i)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1757 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1758 FileData *fd;
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1759
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1760 if (!lw->split_images[i]) return;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1761
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1762 /* deactivate currently active */
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1763 if (lw->active_split_image != i)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1764 layout_image_deactivate(lw, lw->active_split_image);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1765
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1766 lw->image = lw->split_images[i];
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1767 lw->active_split_image = i;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1768
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1769 image_set_update_func(lw->image, layout_image_update_cb, lw);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1770 layout_image_set_buttons(lw);
128
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1771 image_set_drag_func(lw->image, layout_image_drag_cb, lw);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1772
288
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 281
diff changeset
1773 image_attach_window(lw->image, lw->window, NULL, GQ_APPNAME, FALSE);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1774
152
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1775 /* do not hilight selected image in SPLIT_NONE */
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1776 /* maybe the image should be selected always and hilight should be controled by
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1777 another image option */
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1778 if (lw->split_mode != SPLIT_NONE)
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1779 image_select(lw->split_images[i], TRUE);
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1780 else
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1781 image_select(lw->split_images[i], FALSE);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1782
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1783 fd = image_get_fd(lw->image);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1784
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1785 if (fd)
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1786 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1787 // layout_list_sync_path(lw, path);
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1788 layout_set_path(lw, fd->path);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1789 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1790 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1791
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1792
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1793 GtkWidget *layout_image_setup_split_none(LayoutWindow *lw)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1794 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1795 gint i;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1796
152
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1797 lw->split_mode = SPLIT_NONE;
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1798
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1799 if (!lw->split_images[0])
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1800 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1801 layout_image_new(lw, 0);
175
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1802 image_set_frame(lw->split_images[0], (!lw->tools_float && !lw->tools_hidden));
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1803 image_set_selectable(lw->split_images[0], 0);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1804 layout_image_activate(lw, 0);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1805 }
175
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1806 else
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1807 {
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1808 image_set_frame(lw->split_images[0], (!lw->tools_float && !lw->tools_hidden));
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1809 image_set_selectable(lw->split_images[0], 0);
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1810 }
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1811
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1812 for (i=1; i < MAX_SPLIT_IMAGES; i++)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1813 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1814 if (lw->split_images[i])
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1815 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1816 gtk_widget_unref(lw->split_images[i]->widget);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1817 lw->split_images[i] = NULL;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1818 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1819 }
152
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1820
175
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1821
152
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1822 layout_image_activate(lw, 0);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1823
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1824 lw->split_image_widget = lw->split_images[0]->widget;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1825
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1826 return lw->split_image_widget;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1827 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1828
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1829 GtkWidget *layout_image_setup_split_hv(LayoutWindow *lw, gboolean horizontal)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1830 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1831 GtkWidget *paned;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1832 gint i;
152
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1833
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1834 lw->split_mode = horizontal ? SPLIT_HOR : SPLIT_VERT;
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1835
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1836 if (!lw->split_images[0])
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1837 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1838 layout_image_new(lw, 0);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1839 }
175
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1840 image_set_frame(lw->split_images[0], 1);
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1841 image_set_selectable(lw->split_images[0], 1);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1842
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1843 if (!lw->split_images[1])
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1844 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1845 layout_image_new(lw, 1);
175
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1846 image_set_frame(lw->split_images[1], 1);
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1847 image_set_selectable(lw->split_images[1], 1);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1848 if (lw->image)
153
0e54267762f6 fixed copying zoom an scroll values from the original image on splitting
nadvornik
parents: 152
diff changeset
1849 {
0e54267762f6 fixed copying zoom an scroll values from the original image on splitting
nadvornik
parents: 152
diff changeset
1850 gdouble sx, sy;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1851 image_change_fd(lw->split_images[1],
153
0e54267762f6 fixed copying zoom an scroll values from the original image on splitting
nadvornik
parents: 152
diff changeset
1852 image_get_fd(lw->image), image_zoom_get(lw->image));
0e54267762f6 fixed copying zoom an scroll values from the original image on splitting
nadvornik
parents: 152
diff changeset
1853 image_get_scroll_center(lw->image, &sx, &sy);
0e54267762f6 fixed copying zoom an scroll values from the original image on splitting
nadvornik
parents: 152
diff changeset
1854 image_set_scroll_center(lw->split_images[1], sx, sy);
0e54267762f6 fixed copying zoom an scroll values from the original image on splitting
nadvornik
parents: 152
diff changeset
1855 }
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1856 layout_image_deactivate(lw, 1);
152
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1857 layout_image_activate(lw, 0);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1858 }
175
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1859 else
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1860 {
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1861 image_set_frame(lw->split_images[1], 1);
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1862 image_set_selectable(lw->split_images[1], 1);
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1863 }
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1864
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1865
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1866 for (i=2; i < MAX_SPLIT_IMAGES; i++)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1867 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1868 if (lw->split_images[i])
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1869 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1870 gtk_widget_unref(lw->split_images[i]->widget);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1871 lw->split_images[i] = NULL;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1872 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1873 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1874
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1875 if (!lw->image || lw->active_split_image < 0 || lw->active_split_image > 1)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1876 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1877 layout_image_activate(lw, 0);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1878 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1879
156
dd6dc0a55d3d better integration of split image functions into menu
nadvornik
parents: 153
diff changeset
1880 /* horizontal split means vpaned and vice versa */
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1881 if (horizontal)
156
dd6dc0a55d3d better integration of split image functions into menu
nadvornik
parents: 153
diff changeset
1882 paned = gtk_vpaned_new ();
dd6dc0a55d3d better integration of split image functions into menu
nadvornik
parents: 153
diff changeset
1883 else
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1884 paned = gtk_hpaned_new ();
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1885
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1886 gtk_paned_pack1 (GTK_PANED (paned), lw->split_images[0]->widget, TRUE, TRUE);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1887 gtk_paned_pack2 (GTK_PANED (paned), lw->split_images[1]->widget, TRUE, TRUE);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1888
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1889 gtk_widget_show (lw->split_images[0]->widget);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1890 gtk_widget_show (lw->split_images[1]->widget);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1891
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1892
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1893 lw->split_image_widget = paned;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1894
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1895 return lw->split_image_widget;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1896
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1897 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1898
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1899 GtkWidget *layout_image_setup_split_quad(LayoutWindow *lw)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1900 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1901 GtkWidget *hpaned;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1902 GtkWidget *vpaned1;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1903 GtkWidget *vpaned2;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1904 gint i;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1905
152
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1906 lw->split_mode = SPLIT_QUAD;
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1907
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1908 if (!lw->split_images[0])
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1909 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1910 layout_image_new(lw, 0);
152
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1911 }
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1912
175
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1913 image_set_frame(lw->split_images[0], 1);
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1914 image_set_selectable(lw->split_images[0], 1);
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1915
152
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1916 if (!lw->split_images[1])
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1917 {
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1918 layout_image_activate(lw, 0);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1919 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1920
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1921 for (i=1; i < 4; i++)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1922 if (!lw->split_images[i])
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1923 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1924 layout_image_new(lw, i);
175
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1925 image_set_frame(lw->split_images[i], 1);
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1926 image_set_selectable(lw->split_images[i], 1);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1927 if (lw->image)
153
0e54267762f6 fixed copying zoom an scroll values from the original image on splitting
nadvornik
parents: 152
diff changeset
1928 {
0e54267762f6 fixed copying zoom an scroll values from the original image on splitting
nadvornik
parents: 152
diff changeset
1929 gdouble sx, sy;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1930 image_change_fd(lw->split_images[i],
153
0e54267762f6 fixed copying zoom an scroll values from the original image on splitting
nadvornik
parents: 152
diff changeset
1931 image_get_fd(lw->image), image_zoom_get(lw->image));
0e54267762f6 fixed copying zoom an scroll values from the original image on splitting
nadvornik
parents: 152
diff changeset
1932 image_get_scroll_center(lw->image, &sx, &sy);
0e54267762f6 fixed copying zoom an scroll values from the original image on splitting
nadvornik
parents: 152
diff changeset
1933 image_set_scroll_center(lw->split_images[i], sx, sy);
0e54267762f6 fixed copying zoom an scroll values from the original image on splitting
nadvornik
parents: 152
diff changeset
1934 }
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1935 layout_image_deactivate(lw, i);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1936 }
175
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1937 else
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1938 {
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1939 image_set_frame(lw->split_images[i], 1);
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1940 image_set_selectable(lw->split_images[i], 1);
682705e0c0e0 do not show frame for full-window images
nadvornik
parents: 174
diff changeset
1941 }
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1942
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1943 for (i=4; i < MAX_SPLIT_IMAGES; i++)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1944 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1945 if (lw->split_images[i])
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1946 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1947 gtk_widget_unref(lw->split_images[i]->widget);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1948 lw->split_images[i] = NULL;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1949 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1950 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1951
174
126724275319 improved drawing of image frames
nadvornik
parents: 160
diff changeset
1952
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1953 if (!lw->image || lw->active_split_image < 0 || lw->active_split_image > 3)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1954 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1955 layout_image_activate(lw, 0);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1956 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1957
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1958 hpaned = gtk_hpaned_new ();
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1959 vpaned1 = gtk_vpaned_new ();
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1960 vpaned2 = gtk_vpaned_new ();
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1961
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1962 gtk_paned_pack1 (GTK_PANED (vpaned1), lw->split_images[0]->widget, TRUE, TRUE);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1963 gtk_paned_pack2 (GTK_PANED (vpaned1), lw->split_images[2]->widget, TRUE, TRUE);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1964
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1965 gtk_paned_pack1 (GTK_PANED (vpaned2), lw->split_images[1]->widget, TRUE, TRUE);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1966 gtk_paned_pack2 (GTK_PANED (vpaned2), lw->split_images[3]->widget, TRUE, TRUE);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1967
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1968 gtk_paned_pack1 (GTK_PANED (hpaned), vpaned1, TRUE, TRUE);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1969 gtk_paned_pack2 (GTK_PANED (hpaned), vpaned2, TRUE, TRUE);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1970
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1971
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1972 for (i=0; i < 4; i++)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1973 gtk_widget_show (lw->split_images[i]->widget);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1974 gtk_widget_show (vpaned1);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1975 gtk_widget_show (vpaned2);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1976
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1977
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1978 lw->split_image_widget = hpaned;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1979
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1980 return lw->split_image_widget;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1981
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1982 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1983
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1984 GtkWidget *layout_image_setup_split(LayoutWindow *lw, ImageSplitMode mode)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1985 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1986 switch (mode)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1987 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1988 case SPLIT_HOR:
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1989 return layout_image_setup_split_hv(lw, TRUE);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1990 case SPLIT_VERT:
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1991 return layout_image_setup_split_hv(lw, FALSE);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1992 case SPLIT_QUAD:
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1993 return layout_image_setup_split_quad(lw);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1994 case SPLIT_NONE:
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1995 default:
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1996 return layout_image_setup_split_none(lw);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1997 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1998 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1999
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
2000
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2001 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2002 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2003 * maintenance (for rename, move, remove)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2004 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2005 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2006
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
2007 void layout_image_maint_renamed(LayoutWindow *lw, FileData *fd)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2008 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
2009 FileData *img_fd;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2010
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
2011 img_fd = layout_image_get_fd(lw);
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
2012 if (img_fd == fd)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2013 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
2014 image_set_fd(lw->image, fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2015 layout_bars_maint_renamed(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2016 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2017 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2018
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
2019 void layout_image_maint_removed(LayoutWindow *lw, FileData *fd)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2020 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
2021 FileData *img_fd;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2022
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
2023 img_fd = layout_image_get_fd(lw);
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
2024 if (img_fd == fd)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2025 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2026 CollectionData *cd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2027 CollectInfo *info;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2028
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2029 cd = image_get_collection(lw->image, &info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2030 if (cd && info)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2031 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2032 CollectInfo *new;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2033
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2034 new = collection_next_by_info(cd, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2035 if (!new) new = collection_prev_by_info(cd, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2036
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2037 if (new)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2038 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2039 layout_image_set_collection(lw, cd, new);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2040 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2041 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2042 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2043
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
2044 layout_image_set_fd(lw, NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2045 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2046 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2047
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
2048 void layout_image_maint_moved(LayoutWindow *lw, FileData *fd)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2049 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
2050 layout_image_maint_renamed(lw, fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2051 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2052