annotate src/layout_image.c @ 1678:c029adbabb70

do not try to reload deleted image deleted image is replaced by the next one from the list, keep the old image displayed until the new one is set
author nadvornik
date Fri, 24 Jul 2009 12:56:54 +0000
parents 717374fb1bbd
children 5276dabe836f
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
1284
8b89e3ff286b Add year 2009 to copyright info everywhere.
zas_
parents: 1273
diff changeset
4 * Copyright (C) 2008 - 2009 The Geeqie Team
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
5 *
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
6 * Author: John Ellis
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
7 *
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
8 * This software is released under the GNU General Public License (GNU GPL).
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
9 * Please read the included file COPYING for more information.
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
10 * 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
11 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
12
281
9995c5fb202a gqview.h -> main.h
zas_
parents: 278
diff changeset
13 #include "main.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
14 #include "layout_image.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
15
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
16 #include "collect.h"
1431
7e180091e0b7 More gboolean and tidy up.
zas_
parents: 1397
diff changeset
17 #include "color-man.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
18 #include "dnd.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
19 #include "editors.h"
586
905688aa2317 split filelist.c to filefilter.c and filedata.c
nadvornik
parents: 530
diff changeset
20 #include "filedata.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
21 #include "fullscreen.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
22 #include "image.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
23 #include "image-overlay.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
24 #include "img-view.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
25 #include "layout.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
26 #include "layout_util.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
27 #include "menu.h"
1022
9962b24b6b43 Move miscellaneous functions to their own files (new misc.[ch]).
zas_
parents: 995
diff changeset
28 #include "misc.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
29 #include "pixbuf_util.h"
1375
df58e511d90e Display pixel coordinates and rgb - patch by Ruben Stein
nadvornik
parents: 1373
diff changeset
30 #include "pixbuf-renderer.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
31 #include "slideshow.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
32 #include "ui_fileops.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
33 #include "ui_menu.h"
904
1698baa37871 Move uri_*() functions to separate files: uri_utils.[ch]
zas_
parents: 888
diff changeset
34 #include "uri_utils.h"
1022
9962b24b6b43 Move miscellaneous functions to their own files (new misc.[ch]).
zas_
parents: 995
diff changeset
35 #include "utilops.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
36
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
37 #include <gdk/gdkkeysyms.h> /* for keyboard values */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
38
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
39
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
40 static GtkWidget *layout_image_pop_menu(LayoutWindow *lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
41 static void layout_image_set_buttons(LayoutWindow *lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
42
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
43 /*
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 * full screen overlay
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
46 *----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
47 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
48
122
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
49 void layout_image_overlay_toggle(LayoutWindow *lw)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
50 {
481
67a612985686 Merge view_overlay_toggle() and layout_image_overlay_toggle() into new image_osd_toggle().
zas_
parents: 479
diff changeset
51 if (!lw) return;
67a612985686 Merge view_overlay_toggle() and layout_image_overlay_toggle() into new image_osd_toggle().
zas_
parents: 479
diff changeset
52 image_osd_toggle(lw->image);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
53 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
54
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
55 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
56 *----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
57 * full screen
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 */
160
85657b4766c9 use accels also in fullscreen mode
nadvornik
parents: 156
diff changeset
60
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
61 static void layout_image_full_screen_stop_func(FullScreenData *fs, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
62 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
63 LayoutWindow *lw = data;
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 /* restore image window */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
66 lw->image = fs->normal_imd;
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 lw->full_screen = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
69 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
70
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
71 void layout_image_full_screen_start(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
72 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
73 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
74
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
75 if (lw->full_screen) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
76
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
77 lw->full_screen = fullscreen_start(lw->window, lw->image,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
78 layout_image_full_screen_stop_func, lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
79
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
80 /* set to new image window */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
81 lw->image = lw->full_screen->imd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
82
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
83 layout_image_set_buttons(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
84
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
85 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
86 G_CALLBACK(layout_key_press_cb), lw);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
87
160
85657b4766c9 use accels also in fullscreen mode
nadvornik
parents: 156
diff changeset
88 layout_actions_add_window(lw, lw->full_screen->window);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
89 #if 0
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
90 gtk_widget_set_sensitive(lw->window, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
91 if (lw->tools) gtk_widget_set_sensitive(lw->tools, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
92 #endif
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
93
1336
4179d41d1149 fixed overlay configuration
nadvornik
parents: 1317
diff changeset
94 image_osd_copy_status(lw->full_screen->normal_imd, lw->image);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
95 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
96
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
97 void layout_image_full_screen_stop(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
98 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
99 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
100 if (!lw->full_screen) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
101
1336
4179d41d1149 fixed overlay configuration
nadvornik
parents: 1317
diff changeset
102 image_osd_copy_status(lw->image, lw->full_screen->normal_imd);
621
734b6b0a3356 image_osd_get() now returns OsdShowFlags.
zas_
parents: 614
diff changeset
103
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
104 fullscreen_stop(lw->full_screen);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
105
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
106 #if 0
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
107 gtk_widget_set_sensitive(lw->window, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
108 if (lw->tools) gtk_widget_set_sensitive(lw->tools, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
109 #endif
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
110 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
111
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
112 void layout_image_full_screen_toggle(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
113 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
114 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
115 if (lw->full_screen)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
116 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
117 layout_image_full_screen_stop(lw);
1591
3681f85cd262 forced image update to re-get cm when it backs from full screen mode.
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 1590
diff changeset
118 if(lw->image->func_update) lw->image->func_update(lw->image, lw->image->data_update);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
119 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
120 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
121 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
122 layout_image_full_screen_start(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
123 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
124 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
125
1433
b4ad1d201279 Use gboolean where applicable, minor cleanup and indentations fixes.
zas_
parents: 1432
diff changeset
126 gboolean layout_image_full_screen_active(LayoutWindow *lw)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
127 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
128 if (!layout_valid(&lw)) return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
129
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
130 return (lw->full_screen != NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
131 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
132
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
133 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
134 *----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
135 * slideshow
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
136 *----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
137 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
138
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
139 static void layout_image_slideshow_next(LayoutWindow *lw)
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 if (lw->slideshow) slideshow_next(lw->slideshow);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
142 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
143
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
144 static void layout_image_slideshow_prev(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
145 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
146 if (lw->slideshow) slideshow_prev(lw->slideshow);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
147 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
148
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
149 static void layout_image_slideshow_stop_func(SlideShowData *ss, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
150 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
151 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
152
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
153 lw->slideshow = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
154 layout_status_update_info(lw, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
155 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
156
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
157 void layout_image_slideshow_start(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
158 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
159 CollectionData *cd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
160 CollectInfo *info;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
161
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
162 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
163 if (lw->slideshow) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
164
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
165 cd = image_get_collection(lw->image, &info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
166
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
167 if (cd && info)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
168 {
1623
66d4bd637fd7 use layout_set_fd() for changing images from a slideshow
nadvornik
parents: 1622
diff changeset
169 lw->slideshow = slideshow_start_from_collection(lw, NULL, cd,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
170 layout_image_slideshow_stop_func, lw, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
171 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
172 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
173 {
1623
66d4bd637fd7 use layout_set_fd() for changing images from a slideshow
nadvornik
parents: 1622
diff changeset
174 lw->slideshow = slideshow_start(lw,
783
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 753
diff changeset
175 layout_list_get_index(lw, layout_image_get_fd(lw)),
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
176 layout_image_slideshow_stop_func, lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
177 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
178
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
179 layout_status_update_info(lw, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
180 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
181
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
182 /* 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
183 void layout_image_slideshow_start_from_list(LayoutWindow *lw, GList *list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
184 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
185 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
186
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
187 if (lw->slideshow || !list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
188 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
189 filelist_free(list);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
190 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
191 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
192
1623
66d4bd637fd7 use layout_set_fd() for changing images from a slideshow
nadvornik
parents: 1622
diff changeset
193 lw->slideshow = slideshow_start_from_filelist(lw, NULL, list,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
194 layout_image_slideshow_stop_func, lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
195
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
196 layout_status_update_info(lw, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
197 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
198
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
199 void layout_image_slideshow_stop(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
200 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
201 if (!layout_valid(&lw)) return;
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 if (!lw->slideshow) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
204
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
205 slideshow_free(lw->slideshow);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
206 /* the stop_func sets lw->slideshow to NULL for us */
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
209 void layout_image_slideshow_toggle(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
210 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
211 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
212
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
213 if (lw->slideshow)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
214 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
215 layout_image_slideshow_stop(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
216 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
217 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
218 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
219 layout_image_slideshow_start(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
220 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
221 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
222
1433
b4ad1d201279 Use gboolean where applicable, minor cleanup and indentations fixes.
zas_
parents: 1432
diff changeset
223 gboolean layout_image_slideshow_active(LayoutWindow *lw)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
224 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
225 if (!layout_valid(&lw)) return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
226
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
227 return (lw->slideshow != NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
228 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
229
1433
b4ad1d201279 Use gboolean where applicable, minor cleanup and indentations fixes.
zas_
parents: 1432
diff changeset
230 gboolean layout_image_slideshow_pause_toggle(LayoutWindow *lw)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
231 {
1433
b4ad1d201279 Use gboolean where applicable, minor cleanup and indentations fixes.
zas_
parents: 1432
diff changeset
232 gboolean ret;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
233
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
234 if (!layout_valid(&lw)) return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
235
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
236 ret = slideshow_pause_toggle(lw->slideshow);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
237
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
238 layout_status_update_info(lw, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
239
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
240 return ret;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
241 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
242
1433
b4ad1d201279 Use gboolean where applicable, minor cleanup and indentations fixes.
zas_
parents: 1432
diff changeset
243 gboolean layout_image_slideshow_paused(LayoutWindow *lw)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
244 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
245 if (!layout_valid(&lw)) return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
246
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
247 return (slideshow_paused(lw->slideshow));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
248 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
249
1433
b4ad1d201279 Use gboolean where applicable, minor cleanup and indentations fixes.
zas_
parents: 1432
diff changeset
250 static gboolean layout_image_slideshow_continue_check(LayoutWindow *lw)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
251 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
252 if (!lw->slideshow) return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
253
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
254 if (!slideshow_should_continue(lw->slideshow))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
255 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
256 layout_image_slideshow_stop(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
257 return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
258 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
259
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
260 return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
261 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
262
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
263 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
264 *----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
265 * pop-up menus
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
266 *----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
267 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
268
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
269 static void li_pop_menu_zoom_in_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
270 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
271 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
272
1047
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
273 layout_image_zoom_adjust(lw, get_zoom_increment(), FALSE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
274 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
275
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
276 static void li_pop_menu_zoom_out_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
277 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
278 LayoutWindow *lw = data;
1047
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
279 layout_image_zoom_adjust(lw, -get_zoom_increment(), FALSE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
280 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
281
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
282 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
283 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
284 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
285
1047
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
286 layout_image_zoom_set(lw, 1.0, FALSE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
287 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
288
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
289 static void li_pop_menu_zoom_fit_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
290 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
291 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
292
1047
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
293 layout_image_zoom_set(lw, 0.0, FALSE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
294 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
295
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
296 static void li_pop_menu_edit_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
297 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
298 LayoutWindow *lw;
1272
e0e12512cde2 read external editors from .desktop files
nadvornik
parents: 1269
diff changeset
299 const gchar *key = data;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
300
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
301 lw = submenu_item_get_data(widget);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
302
1272
e0e12512cde2 read external editors from .desktop files
nadvornik
parents: 1269
diff changeset
303 if (!editor_window_flag_set(key))
60
9c0c402b0ef3 Mon Jun 13 17:31:46 2005 John Ellis <johne@verizon.net>
gqview
parents: 23
diff changeset
304 {
9c0c402b0ef3 Mon Jun 13 17:31:46 2005 John Ellis <johne@verizon.net>
gqview
parents: 23
diff changeset
305 layout_image_full_screen_stop(lw);
9c0c402b0ef3 Mon Jun 13 17:31:46 2005 John Ellis <johne@verizon.net>
gqview
parents: 23
diff changeset
306 }
1272
e0e12512cde2 read external editors from .desktop files
nadvornik
parents: 1269
diff changeset
307 file_util_start_editor_from_file(key, layout_image_get_fd(lw), lw->window);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
308 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
309
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
310 static void li_pop_menu_wallpaper_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
311 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
312 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
313
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
314 layout_image_to_root(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
315 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
316
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
317 static void li_pop_menu_alter_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
318 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
319 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
320 AlterType type;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
321
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
322 lw = submenu_item_get_data(widget);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
323 type = (AlterType)GPOINTER_TO_INT(data);
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 image_alter(lw->image, type);
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
328 static void li_pop_menu_new_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
329 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
330 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
331
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
332 view_window_new(layout_image_get_fd(lw));
9
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
335 static GtkWidget *li_pop_menu_click_parent(GtkWidget *widget, LayoutWindow *lw)
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 GtkWidget *menu;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
338 GtkWidget *parent;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
339
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
340 menu = gtk_widget_get_toplevel(widget);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
341 if (!menu) return NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
342
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
343 parent = g_object_get_data(G_OBJECT(menu), "click_parent");
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 if (!parent && lw->full_screen)
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 parent = lw->full_screen->imd->widget;
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
350 return parent;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
351 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
352
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
353 static void li_pop_menu_copy_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
354 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
355 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
356
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
357 file_util_copy(layout_image_get_fd(lw), NULL, NULL,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
358 li_pop_menu_click_parent(widget, lw));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
359 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
360
497
a33badd85f16 Allow the copy of file paths to clipboard.
zas_
parents: 495
diff changeset
361 static void li_pop_menu_copy_path_cb(GtkWidget *widget, gpointer data)
a33badd85f16 Allow the copy of file paths to clipboard.
zas_
parents: 495
diff changeset
362 {
a33badd85f16 Allow the copy of file paths to clipboard.
zas_
parents: 495
diff changeset
363 LayoutWindow *lw = data;
a33badd85f16 Allow the copy of file paths to clipboard.
zas_
parents: 495
diff changeset
364
a33badd85f16 Allow the copy of file paths to clipboard.
zas_
parents: 495
diff changeset
365 file_util_copy_path_to_clipboard(layout_image_get_fd(lw));
a33badd85f16 Allow the copy of file paths to clipboard.
zas_
parents: 495
diff changeset
366 }
a33badd85f16 Allow the copy of file paths to clipboard.
zas_
parents: 495
diff changeset
367
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
368 static void li_pop_menu_move_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
369 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
370 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
371
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
372 file_util_move(layout_image_get_fd(lw), NULL, NULL,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
373 li_pop_menu_click_parent(widget, lw));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
374 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
375
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
376 static void li_pop_menu_rename_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
377 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
378 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
379
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
380 file_util_rename(layout_image_get_fd(lw), NULL,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
381 li_pop_menu_click_parent(widget, lw));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
382 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
383
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
384 static void li_pop_menu_delete_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
385 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
386 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
387
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
388 file_util_delete(layout_image_get_fd(lw), NULL,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
389 li_pop_menu_click_parent(widget, lw));
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
392 static void li_pop_menu_slide_start_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
393 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
394 LayoutWindow *lw = data;
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 layout_image_slideshow_start(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
397 }
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 static void li_pop_menu_slide_stop_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
400 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
401 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
402
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
403 layout_image_slideshow_stop(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
404 }
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 static void li_pop_menu_slide_pause_cb(GtkWidget *widget, gpointer data)
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 LayoutWindow *lw = data;
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 layout_image_slideshow_pause_toggle(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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
413 static void li_pop_menu_full_screen_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
414 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
415 LayoutWindow *lw = data;
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 layout_image_full_screen_toggle(lw);
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
420 static void li_pop_menu_hide_cb(GtkWidget *widget, gpointer data)
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 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
423
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
424 layout_tools_hide_toggle(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
425 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
426
368
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
427 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
428 {
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
429 LayoutWindow *lw = data;
783
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 753
diff changeset
430 FileData *fd;
368
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
431
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
432 if (!layout_valid(&lw)) return;
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
433
783
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 753
diff changeset
434 fd = layout_image_get_fd(lw);
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 753
diff changeset
435 if (fd) layout_set_fd(lw, fd);
368
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
436 }
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
437
1433
b4ad1d201279 Use gboolean where applicable, minor cleanup and indentations fixes.
zas_
parents: 1432
diff changeset
438 static gboolean li_check_if_current_path(LayoutWindow *lw, const gchar *path)
368
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
439 {
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
440 gchar *dirname;
1433
b4ad1d201279 Use gboolean where applicable, minor cleanup and indentations fixes.
zas_
parents: 1432
diff changeset
441 gboolean ret;
368
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
442
783
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 753
diff changeset
443 if (!path || !layout_valid(&lw) || !lw->dir_fd) return FALSE;
368
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
444
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
445 dirname = g_path_get_dirname(path);
783
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 753
diff changeset
446 ret = (strcmp(lw->dir_fd->path, dirname) == 0);
368
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
447 g_free(dirname);
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
448 return ret;
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
449 }
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
450
1397
a0bd58a6535f In various Edit context menus, only display editors that match the file types in the selection.
zas_
parents: 1383
diff changeset
451 static void layout_image_popup_menu_destroy_cb(GtkWidget *widget, gpointer data)
a0bd58a6535f In various Edit context menus, only display editors that match the file types in the selection.
zas_
parents: 1383
diff changeset
452 {
1675
717374fb1bbd fixed destroying of menu data
nadvornik
parents: 1653
diff changeset
453 GList *editmenu_fd_list = data;
1397
a0bd58a6535f In various Edit context menus, only display editors that match the file types in the selection.
zas_
parents: 1383
diff changeset
454
1675
717374fb1bbd fixed destroying of menu data
nadvornik
parents: 1653
diff changeset
455 filelist_free(editmenu_fd_list);
717374fb1bbd fixed destroying of menu data
nadvornik
parents: 1653
diff changeset
456 }
1397
a0bd58a6535f In various Edit context menus, only display editors that match the file types in the selection.
zas_
parents: 1383
diff changeset
457
a0bd58a6535f In various Edit context menus, only display editors that match the file types in the selection.
zas_
parents: 1383
diff changeset
458 static GList *layout_image_get_fd_list(LayoutWindow *lw)
a0bd58a6535f In various Edit context menus, only display editors that match the file types in the selection.
zas_
parents: 1383
diff changeset
459 {
a0bd58a6535f In various Edit context menus, only display editors that match the file types in the selection.
zas_
parents: 1383
diff changeset
460 GList *list = NULL;
a0bd58a6535f In various Edit context menus, only display editors that match the file types in the selection.
zas_
parents: 1383
diff changeset
461 FileData *fd = layout_image_get_fd(lw);
a0bd58a6535f In various Edit context menus, only display editors that match the file types in the selection.
zas_
parents: 1383
diff changeset
462
a0bd58a6535f In various Edit context menus, only display editors that match the file types in the selection.
zas_
parents: 1383
diff changeset
463 if (fd)
a0bd58a6535f In various Edit context menus, only display editors that match the file types in the selection.
zas_
parents: 1383
diff changeset
464 list = g_list_append(NULL, file_data_ref(fd));
a0bd58a6535f In various Edit context menus, only display editors that match the file types in the selection.
zas_
parents: 1383
diff changeset
465
a0bd58a6535f In various Edit context menus, only display editors that match the file types in the selection.
zas_
parents: 1383
diff changeset
466 return list;
a0bd58a6535f In various Edit context menus, only display editors that match the file types in the selection.
zas_
parents: 1383
diff changeset
467 }
a0bd58a6535f In various Edit context menus, only display editors that match the file types in the selection.
zas_
parents: 1383
diff changeset
468
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
469 static GtkWidget *layout_image_pop_menu(LayoutWindow *lw)
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 GtkWidget *menu;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
472 GtkWidget *item;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
473 GtkWidget *submenu;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
474 const gchar *path;
1433
b4ad1d201279 Use gboolean where applicable, minor cleanup and indentations fixes.
zas_
parents: 1432
diff changeset
475 gboolean fullscreen;
1675
717374fb1bbd fixed destroying of menu data
nadvornik
parents: 1653
diff changeset
476 GList *editmenu_fd_list;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
477
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
478 path = layout_image_get_path(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
479 fullscreen = layout_image_full_screen_active(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
480
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
481 menu = popup_menu_short_lived();
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 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
484 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
485 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
486 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
487 menu_item_add_divider(menu);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
488
1675
717374fb1bbd fixed destroying of menu data
nadvornik
parents: 1653
diff changeset
489 editmenu_fd_list = layout_image_get_fd_list(lw);
717374fb1bbd fixed destroying of menu data
nadvornik
parents: 1653
diff changeset
490 g_signal_connect(G_OBJECT(menu), "destroy",
717374fb1bbd fixed destroying of menu data
nadvornik
parents: 1653
diff changeset
491 G_CALLBACK(layout_image_popup_menu_destroy_cb), editmenu_fd_list);
717374fb1bbd fixed destroying of menu data
nadvornik
parents: 1653
diff changeset
492 submenu = submenu_add_edit(menu, &item, G_CALLBACK(li_pop_menu_edit_cb), lw, editmenu_fd_list);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
493 if (!path) gtk_widget_set_sensitive(item, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
494 menu_item_add_divider(submenu);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
495 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
496
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
497 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
498
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
499 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
500 if (!path || fullscreen) gtk_widget_set_sensitive(item, FALSE);
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
501
368
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 339
diff changeset
502 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
503 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
504
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
505 menu_item_add_divider(menu);
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 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
508 if (!path) gtk_widget_set_sensitive(item, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
509 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
510 if (!path) gtk_widget_set_sensitive(item, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
511 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
512 if (!path) gtk_widget_set_sensitive(item, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
513 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
514 if (!path) gtk_widget_set_sensitive(item, FALSE);
497
a33badd85f16 Allow the copy of file paths to clipboard.
zas_
parents: 495
diff changeset
515
1513
c9ed5a43c576 dropped show_copy_path option
nadvornik
parents: 1498
diff changeset
516 item = menu_item_add(menu, _("_Copy path"), G_CALLBACK(li_pop_menu_copy_path_cb), lw);
c9ed5a43c576 dropped show_copy_path option
nadvornik
parents: 1498
diff changeset
517 if (!path) gtk_widget_set_sensitive(item, FALSE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
518
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
519 menu_item_add_divider(menu);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
520
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
521 if (layout_image_slideshow_active(lw))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
522 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
523 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
524 if (layout_image_slideshow_paused(lw))
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 item = menu_item_add(menu, _("Continue slides_how"),
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
527 G_CALLBACK(li_pop_menu_slide_pause_cb), 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 else
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 item = menu_item_add(menu, _("Pause slides_how"),
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
532 G_CALLBACK(li_pop_menu_slide_pause_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
533 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
534 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
535 else
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
536 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
537 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
538 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
539 gtk_widget_set_sensitive(item, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
540 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
541
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
542 if (!fullscreen)
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 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
545 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
546 else
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 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
549 }
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 menu_item_add_divider(menu);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
552
1309
55ea4962887a config file format changed to XML
nadvornik
parents: 1292
diff changeset
553 item = menu_item_add_check(menu, _("Hide file _list"), lw->options.tools_hidden,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
554 G_CALLBACK(li_pop_menu_hide_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
555 if (fullscreen) gtk_widget_set_sensitive(item, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
556
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
557 return menu;
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 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
561 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
562 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
563
23
17acca639a86 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
564 gdk_window_get_origin(lw->image->pr->window, x, y);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
565 popup_menu_position_clamp(menu, x, y, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
566 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
567
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
568 void layout_image_menu_popup(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
569 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
570 GtkWidget *menu;
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 menu = layout_image_pop_menu(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
573 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
574 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
575
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
576 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
577 *----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
578 * dnd
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 */
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 static void layout_image_dnd_receive(GtkWidget *widget, GdkDragContext *context,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
583 gint x, gint y,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
584 GtkSelectionData *selection_data, guint info,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
585 guint time, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
586 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
587 LayoutWindow *lw = data;
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
588 gint i;
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
589
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
590
520
b5e79bcb46df Add missing spaces around equal sign.
zas_
parents: 512
diff changeset
591 for (i = 0; i < MAX_SPLIT_IMAGES; i++)
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
592 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
593 if (lw->split_images[i] && lw->split_images[i]->pr == widget)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
594 break;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
595 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
596 if (i < MAX_SPLIT_IMAGES)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
597 {
506
fc9c8a3e1a8b Handle the newline in DEBUG_N() macro instead of adding one
zas_
parents: 497
diff changeset
598 DEBUG_1("dnd image activate %d", i);
1653
7ed0b45c80ae fixed jumping of filelist on focus_in event
nadvornik
parents: 1633
diff changeset
599 layout_image_activate(lw, i, FALSE);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
600 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
601
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
602
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
603 if (info == TARGET_URI_LIST || info == TARGET_APP_COLLECTION_MEMBER)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
604 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
605 CollectionData *source;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
606 GList *list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
607 GList *info_list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
608
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
609 if (info == TARGET_URI_LIST)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
610 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
611 list = uri_filelist_from_text((gchar *)selection_data->data, TRUE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
612 source = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
613 info_list = NULL;
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 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
616 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
617 source = collection_from_dnd_data((gchar *)selection_data->data, &list, &info_list);
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 if (list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
621 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
622 FileData *fd = list->data;
9
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 if (isfile(fd->path))
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 gchar *base;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
627 gint row;
783
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 753
diff changeset
628 FileData *dir_fd;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
629
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
630 base = remove_level_from_path(fd->path);
783
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 753
diff changeset
631 dir_fd = file_data_new_simple(base);
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 753
diff changeset
632 if (dir_fd != lw->dir_fd)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
633 {
783
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 753
diff changeset
634 layout_set_fd(lw, dir_fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
635 }
783
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 753
diff changeset
636 file_data_unref(dir_fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
637 g_free(base);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
638
783
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 753
diff changeset
639 row = layout_list_get_index(lw, fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
640 if (source && info_list)
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 layout_image_set_collection(lw, source, info_list->data);
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 else if (row == -1)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
645 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
646 layout_image_set_fd(lw, fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
647 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
648 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
649 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
650 layout_image_set_index(lw, row);
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 }
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
653 else if (isdir(fd->path))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
654 {
783
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 753
diff changeset
655 layout_set_fd(lw, fd);
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
656 layout_image_set_fd(lw, NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
657 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
658 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
659
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
660 filelist_free(list);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
661 g_list_free(info_list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
662 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
663 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
664
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
665 static void layout_image_dnd_get(GtkWidget *widget, GdkDragContext *context,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
666 GtkSelectionData *selection_data, guint info,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
667 guint time, gpointer data)
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 LayoutWindow *lw = data;
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
670 FileData *fd;
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
671 gint i;
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
672
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
673
520
b5e79bcb46df Add missing spaces around equal sign.
zas_
parents: 512
diff changeset
674 for (i = 0; i < MAX_SPLIT_IMAGES; i++)
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
675 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
676 if (lw->split_images[i] && lw->split_images[i]->pr == widget)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
677 break;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
678 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
679 if (i < MAX_SPLIT_IMAGES)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
680 {
506
fc9c8a3e1a8b Handle the newline in DEBUG_N() macro instead of adding one
zas_
parents: 497
diff changeset
681 DEBUG_1("dnd get from %d", i);
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
682 fd = image_get_fd(lw->split_images[i]);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
683 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
684 else
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
685 fd = layout_image_get_fd(lw);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
686
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
687 if (fd)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
688 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
689 gchar *text = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
690 gint len;
1433
b4ad1d201279 Use gboolean where applicable, minor cleanup and indentations fixes.
zas_
parents: 1432
diff changeset
691 gboolean plain_text;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
692 GList *list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
693
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
694 switch (info)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
695 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
696 case TARGET_URI_LIST:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
697 plain_text = FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
698 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
699 case TARGET_TEXT_PLAIN:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
700 default:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
701 plain_text = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
702 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
703 }
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
704 list = g_list_append(NULL, fd);
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
705 text = uri_text_from_filelist(list, &len, plain_text);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
706 g_list_free(list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
707 if (text)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
708 {
512
f9bf33be53ff Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents: 507
diff changeset
709 gtk_selection_data_set(selection_data, selection_data->target,
f9bf33be53ff Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents: 507
diff changeset
710 8, (guchar *)text, len);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
711 g_free(text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
712 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
713 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
714 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
715 {
512
f9bf33be53ff Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents: 507
diff changeset
716 gtk_selection_data_set(selection_data, selection_data->target,
f9bf33be53ff Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents: 507
diff changeset
717 8, NULL, 0);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
718 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
719 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
720
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
721 static void layout_image_dnd_end(GtkWidget *widget, GdkDragContext *context, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
722 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
723 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
724 if (context->action == GDK_ACTION_MOVE)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
725 {
783
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 753
diff changeset
726 FileData *fd;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
727 gint row;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
728
783
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 753
diff changeset
729 fd = layout_image_get_fd(lw);
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 753
diff changeset
730 row = layout_list_get_index(lw, fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
731 if (row < 0) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
732
783
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 753
diff changeset
733 if (!isfile(fd->path))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
734 {
736
a7289f9e8d29 Fix signed vs unsigned warnings.
zas_
parents: 671
diff changeset
735 if ((guint) row < layout_list_count(lw, NULL) - 1)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
736 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
737 layout_image_next(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
738 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
739 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
740 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
741 layout_image_prev(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
742 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
743 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
744 layout_refresh(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
745 }
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
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
748 static void layout_image_dnd_init(LayoutWindow *lw, gint i)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
749 {
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
750 ImageWindow *imd = lw->split_images[i];
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
751
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
752 gtk_drag_source_set(imd->pr, GDK_BUTTON2_MASK,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
753 dnd_file_drag_types, dnd_file_drag_types_count,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
754 GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
755 g_signal_connect(G_OBJECT(imd->pr), "drag_data_get",
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
756 G_CALLBACK(layout_image_dnd_get), lw);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
757 g_signal_connect(G_OBJECT(imd->pr), "drag_end",
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
758 G_CALLBACK(layout_image_dnd_end), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
759
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
760 gtk_drag_dest_set(imd->pr,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
761 GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
762 dnd_file_drop_types, dnd_file_drop_types_count,
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
763 GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
764 g_signal_connect(G_OBJECT(imd->pr), "drag_data_received",
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
765 G_CALLBACK(layout_image_dnd_receive), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
766 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
767
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
768
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
769 /*
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 * misc
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 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
774
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
775 void layout_image_to_root(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
776 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
777 image_to_root_window(lw->image, (image_zoom_get(lw->image) == 0));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
778 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
779
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
780 /*
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 * manipulation + accessors
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 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
785
1047
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
786 void layout_image_scroll(LayoutWindow *lw, gint x, gint y, gboolean connect_scroll)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
787 {
530
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
788 gdouble dx, dy;
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
789 gint width, height, i;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
790 if (!layout_valid(&lw)) return;
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 image_scroll(lw->image, x, y);
530
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
793
1047
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
794 if (!connect_scroll) return;
879
0f85435ac335 Optimize a bit when connected zoom and scrolling are unset,
zas_
parents: 869
diff changeset
795
530
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
796 image_get_image_size(lw->image, &width, &height);
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
797 dx = (gdouble) x / width;
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
798 dy = (gdouble) y / height;
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
799
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
800 for (i = 0; i < MAX_SPLIT_IMAGES; i++)
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
801 {
879
0f85435ac335 Optimize a bit when connected zoom and scrolling are unset,
zas_
parents: 869
diff changeset
802 if (lw->split_images[i] && lw->split_images[i] != lw->image)
530
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
803 {
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
804 gdouble sx, sy;
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
805 image_get_scroll_center(lw->split_images[i], &sx, &sy);
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
806 sx += dx;
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
807 sy += dy;
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
808 image_set_scroll_center(lw->split_images[i], sx, sy);
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
809 }
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
810 }
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
811
9
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
1047
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
814 void layout_image_zoom_adjust(LayoutWindow *lw, gdouble increment, gboolean connect_zoom)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
815 {
130
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
816 gint i;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
817 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
818
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
819 image_zoom_adjust(lw->image, increment);
130
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
820
1047
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
821 if (!connect_zoom) return;
879
0f85435ac335 Optimize a bit when connected zoom and scrolling are unset,
zas_
parents: 869
diff changeset
822
520
b5e79bcb46df Add missing spaces around equal sign.
zas_
parents: 512
diff changeset
823 for (i = 0; i < MAX_SPLIT_IMAGES; i++)
130
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
824 {
879
0f85435ac335 Optimize a bit when connected zoom and scrolling are unset,
zas_
parents: 869
diff changeset
825 if (lw->split_images[i] && lw->split_images[i] != lw->image)
130
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
826 image_zoom_adjust(lw->split_images[i], increment); ;
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
827 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
828 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
829
1047
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
830 void layout_image_zoom_adjust_at_point(LayoutWindow *lw, gdouble increment, gint x, gint y, gboolean connect_zoom)
530
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
831 {
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
832 gint i;
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
833 if (!layout_valid(&lw)) return;
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
834
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
835 image_zoom_adjust_at_point(lw->image, increment, x, y);
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
836
1047
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
837 if (!connect_zoom) return;
879
0f85435ac335 Optimize a bit when connected zoom and scrolling are unset,
zas_
parents: 869
diff changeset
838
530
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
839 for (i = 0; i < MAX_SPLIT_IMAGES; i++)
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
840 {
879
0f85435ac335 Optimize a bit when connected zoom and scrolling are unset,
zas_
parents: 869
diff changeset
841 if (lw->split_images[i] && lw->split_images[i] != lw->image)
530
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
842 image_zoom_adjust_at_point(lw->split_images[i], increment, x, y);
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
843 }
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
844 }
1d67ef911fa8 fixed connected zoom and scroll that didn't work in some cases
nadvornik
parents: 529
diff changeset
845
1047
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
846 void layout_image_zoom_set(LayoutWindow *lw, gdouble zoom, gboolean connect_zoom)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
847 {
130
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
848 gint i;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
849 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
850
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
851 image_zoom_set(lw->image, zoom);
130
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
852
1047
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
853 if (!connect_zoom) return;
879
0f85435ac335 Optimize a bit when connected zoom and scrolling are unset,
zas_
parents: 869
diff changeset
854
0f85435ac335 Optimize a bit when connected zoom and scrolling are unset,
zas_
parents: 869
diff changeset
855 for (i = 0; i < MAX_SPLIT_IMAGES; i++)
130
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
856 {
879
0f85435ac335 Optimize a bit when connected zoom and scrolling are unset,
zas_
parents: 869
diff changeset
857 if (lw->split_images[i] && lw->split_images[i] != lw->image)
130
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
858 image_zoom_set(lw->split_images[i], zoom);
7ea9fbcff664 connected zoom
nadvornik
parents: 129
diff changeset
859 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
860 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
861
1269
08b4598c7cba gint -> gboolean.
zas_
parents: 1252
diff changeset
862 void layout_image_zoom_set_fill_geometry(LayoutWindow *lw, gboolean vertical, gboolean connect_zoom)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
863 {
1047
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
864 gint i;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
865 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
866
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
867 image_zoom_set_fill_geometry(lw->image, vertical);
1047
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
868
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
869 if (!connect_zoom) return;
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
870
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
871 for (i = 0; i < MAX_SPLIT_IMAGES; i++)
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
872 {
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
873 if (lw->split_images[i] && lw->split_images[i] != lw->image)
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
874 image_zoom_set_fill_geometry(lw->split_images[i], vertical);
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
875 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
876 }
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 void layout_image_alter(LayoutWindow *lw, AlterType type)
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 if (!layout_valid(&lw)) return;
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 image_alter(lw->image, type);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
883 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
884
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
885 const gchar *layout_image_get_path(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
886 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
887 if (!layout_valid(&lw)) return NULL;
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 return image_get_path(lw->image);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
890 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
891
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
892 const gchar *layout_image_get_name(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
893 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
894 if (!layout_valid(&lw)) return NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
895
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
896 return image_get_name(lw->image);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
897 }
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 FileData *layout_image_get_fd(LayoutWindow *lw)
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
900 {
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
901 if (!layout_valid(&lw)) return NULL;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
902
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
903 return image_get_fd(lw->image);
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
904 }
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
905
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
906 CollectionData *layout_image_get_collection(LayoutWindow *lw, CollectInfo **info)
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 if (!layout_valid(&lw)) return NULL;
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 return image_get_collection(lw->image, info);
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
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
913 gint layout_image_get_index(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
914 {
783
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 753
diff changeset
915 return layout_list_get_index(lw, image_get_fd(lw->image));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
916 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
917
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 *----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
920 * image changers
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
921 *----------------------------------------------------------------------------
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
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
924 void layout_image_set_fd(LayoutWindow *lw, FileData *fd)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
925 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
926 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
927
885
ad420f2eb789 Use a specific enum for image.zoom_mode values (ZoomMode) and
zas_
parents: 879
diff changeset
928 image_change_fd(lw->image, fd, image_zoom_get_default(lw->image));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
929
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
930 layout_list_sync_fd(lw, fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
931 layout_image_slideshow_continue_check(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
932 layout_bars_new_image(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
933 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
934
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
935 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
936 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
937 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
938
144
2310066cc55a fixed preloading images in file list
nadvornik
parents: 138
diff changeset
939 /*
2310066cc55a fixed preloading images in file list
nadvornik
parents: 138
diff changeset
940 This should be handled at the caller: in vflist_select_image
2310066cc55a fixed preloading images in file list
nadvornik
parents: 138
diff changeset
941 if (path)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
942 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
943 const gchar *old_path;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
944
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
945 old_path = layout_image_get_path(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
946 if (old_path && strcmp(path, old_path) == 0) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
947 }
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
948 */
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
949 layout_image_set_fd(lw, fd);
334
df868b947aa0 Rename image-related options.
zas_
parents: 327
diff changeset
950 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
951 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
952
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
953 void layout_image_set_index(LayoutWindow *lw, gint index)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
954 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
955 FileData *fd;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
956 FileData *read_ahead_fd;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
957 gint old;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
958
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
959 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
960
783
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 753
diff changeset
961 old = layout_list_get_index(lw, layout_image_get_fd(lw));
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
962 fd = layout_list_get_fd(lw, index);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
963
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
964 if (old > index)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
965 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
966 read_ahead_fd = layout_list_get_fd(lw, index - 1);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
967 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
968 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
969 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
970 read_ahead_fd = layout_list_get_fd(lw, index + 1);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
971 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
972
995
6ca2c5fd7b13 Whitespaces cleanup.
zas_
parents: 993
diff changeset
973 if (layout_selection_count(lw, 0) > 1)
220
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
974 {
995
6ca2c5fd7b13 Whitespaces cleanup.
zas_
parents: 993
diff changeset
975 GList *x = layout_selection_list_by_index(lw);
6ca2c5fd7b13 Whitespaces cleanup.
zas_
parents: 993
diff changeset
976 GList *y;
6ca2c5fd7b13 Whitespaces cleanup.
zas_
parents: 993
diff changeset
977 GList *last;
220
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
978
995
6ca2c5fd7b13 Whitespaces cleanup.
zas_
parents: 993
diff changeset
979 for (last = y = x; y; y = y->next)
6ca2c5fd7b13 Whitespaces cleanup.
zas_
parents: 993
diff changeset
980 last = y;
529
8815fea478ee fix warning cast from pointer to integer of different size (when an integer is
bruclik
parents: 520
diff changeset
981 for (y = x; y && (GPOINTER_TO_INT(y->data)) != index; y = y->next)
220
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
982 ;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
983
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
984 if (y)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
985 {
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
986 gint newindex;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
987
529
8815fea478ee fix warning cast from pointer to integer of different size (when an integer is
bruclik
parents: 520
diff changeset
988 if ((index > old && (index != GPOINTER_TO_INT(last->data) || old != GPOINTER_TO_INT(x->data)))
995
6ca2c5fd7b13 Whitespaces cleanup.
zas_
parents: 993
diff changeset
989 || (old == GPOINTER_TO_INT(last->data) && index == GPOINTER_TO_INT(x->data)))
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
990 {
220
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
991 if (y->next)
529
8815fea478ee fix warning cast from pointer to integer of different size (when an integer is
bruclik
parents: 520
diff changeset
992 newindex = GPOINTER_TO_INT(y->next->data);
220
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
993 else
529
8815fea478ee fix warning cast from pointer to integer of different size (when an integer is
bruclik
parents: 520
diff changeset
994 newindex = GPOINTER_TO_INT(x->data);
220
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
995 }
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
996 else
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
997 {
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
998 if (y->prev)
529
8815fea478ee fix warning cast from pointer to integer of different size (when an integer is
bruclik
parents: 520
diff changeset
999 newindex = GPOINTER_TO_INT(y->prev->data);
220
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1000 else
529
8815fea478ee fix warning cast from pointer to integer of different size (when an integer is
bruclik
parents: 520
diff changeset
1001 newindex = GPOINTER_TO_INT(last->data);
995
6ca2c5fd7b13 Whitespaces cleanup.
zas_
parents: 993
diff changeset
1002 }
220
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1003
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1004 read_ahead_fd = layout_list_get_fd(lw, newindex);
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1005 }
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
1006
220
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1007 while (x)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1008 x = g_list_remove(x, x->data);
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1009 }
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1010
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1011 layout_image_set_with_ahead(lw, fd, read_ahead_fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1012 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1013
1433
b4ad1d201279 Use gboolean where applicable, minor cleanup and indentations fixes.
zas_
parents: 1432
diff changeset
1014 static void layout_image_set_collection_real(LayoutWindow *lw, CollectionData *cd, CollectInfo *info, gboolean forward)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1015 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1016 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1017
885
ad420f2eb789 Use a specific enum for image.zoom_mode values (ZoomMode) and
zas_
parents: 879
diff changeset
1018 image_change_from_collection(lw->image, cd, info, image_zoom_get_default(lw->image));
334
df868b947aa0 Rename image-related options.
zas_
parents: 327
diff changeset
1019 if (options->image.enable_read_ahead)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1020 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1021 CollectInfo *r_info;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1022 if (forward)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1023 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1024 r_info = collection_next_by_info(cd, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1025 if (!r_info) r_info = collection_prev_by_info(cd, info);
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 else
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 r_info = collection_prev_by_info(cd, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1030 if (!r_info) r_info = collection_next_by_info(cd, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1031 }
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1032 if (r_info) image_prebuffer_set(lw->image, r_info->fd);
9
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 layout_image_slideshow_continue_check(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1036 layout_bars_new_image(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1037 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1038
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1039 void layout_image_set_collection(LayoutWindow *lw, CollectionData *cd, CollectInfo *info)
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 layout_image_set_collection_real(lw, cd, info, TRUE);
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1042 layout_list_sync_fd(lw, layout_image_get_fd(lw));
9
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 void layout_image_refresh(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1046 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1047 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1048
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1049 image_reload(lw->image);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1050 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1051
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1052 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
1053 gint input_type, gint screen_type,
1431
7e180091e0b7 More gboolean and tidy up.
zas_
parents: 1397
diff changeset
1054 gboolean use_image)
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1055 {
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1056 if (!layout_valid(&lw)) return;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1057
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1058 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
1059 }
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1060
1431
7e180091e0b7 More gboolean and tidy up.
zas_
parents: 1397
diff changeset
1061 gboolean layout_image_color_profile_get(LayoutWindow *lw,
7e180091e0b7 More gboolean and tidy up.
zas_
parents: 1397
diff changeset
1062 gint *input_type, gint *screen_type,
7e180091e0b7 More gboolean and tidy up.
zas_
parents: 1397
diff changeset
1063 gboolean *use_image)
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1064 {
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1065 if (!layout_valid(&lw)) return FALSE;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1066
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1067 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
1068 }
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1069
1431
7e180091e0b7 More gboolean and tidy up.
zas_
parents: 1397
diff changeset
1070 void layout_image_color_profile_set_use(LayoutWindow *lw, gboolean enable)
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1071 {
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1072 if (!layout_valid(&lw)) return;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1073
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1074 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
1075
1590
69f7270b3b27 improved color management button:
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 1589
diff changeset
1076 /* xxx --yaz */
69f7270b3b27 improved color management button:
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 1589
diff changeset
1077 #if 0
1588
0434f34b1ee4 Backed out changeset 2a3efbdf73b0
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 1547
diff changeset
1078 if (lw->info_color)
0434f34b1ee4 Backed out changeset 2a3efbdf73b0
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 1547
diff changeset
1079 {
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1080 #ifndef HAVE_LCMS
1588
0434f34b1ee4 Backed out changeset 2a3efbdf73b0
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 1547
diff changeset
1081 enable = FALSE;
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1082 #endif
1588
0434f34b1ee4 Backed out changeset 2a3efbdf73b0
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 1547
diff changeset
1083 gtk_widget_set_sensitive(GTK_BIN(lw->info_color)->child, enable);
0434f34b1ee4 Backed out changeset 2a3efbdf73b0
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 1547
diff changeset
1084 }
1590
69f7270b3b27 improved color management button:
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 1589
diff changeset
1085 #endif
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1086 }
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1087
1431
7e180091e0b7 More gboolean and tidy up.
zas_
parents: 1397
diff changeset
1088 gboolean layout_image_color_profile_get_use(LayoutWindow *lw)
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1089 {
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1090 if (!layout_valid(&lw)) return FALSE;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1091
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1092 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
1093 }
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1094
426
9fe0ca1b5263 show the AdobeRGB profile in the menu, indicate input profile from image
nadvornik
parents: 369
diff changeset
1095 gint layout_image_color_profile_get_from_image(LayoutWindow *lw)
9fe0ca1b5263 show the AdobeRGB profile in the menu, indicate input profile from image
nadvornik
parents: 369
diff changeset
1096 {
1431
7e180091e0b7 More gboolean and tidy up.
zas_
parents: 1397
diff changeset
1097 if (!layout_valid(&lw)) return COLOR_PROFILE_NONE;
426
9fe0ca1b5263 show the AdobeRGB profile in the menu, indicate input profile from image
nadvornik
parents: 369
diff changeset
1098
9fe0ca1b5263 show the AdobeRGB profile in the menu, indicate input profile from image
nadvornik
parents: 369
diff changeset
1099 return image_color_profile_get_from_image(lw->image);
9fe0ca1b5263 show the AdobeRGB profile in the menu, indicate input profile from image
nadvornik
parents: 369
diff changeset
1100 }
9fe0ca1b5263 show the AdobeRGB profile in the menu, indicate input profile from image
nadvornik
parents: 369
diff changeset
1101
1590
69f7270b3b27 improved color management button:
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 1589
diff changeset
1102 gboolean layout_image_color_profile_get_status(LayoutWindow *lw, gchar **image_profile, gchar **screen_profile)
69f7270b3b27 improved color management button:
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 1589
diff changeset
1103 {
69f7270b3b27 improved color management button:
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 1589
diff changeset
1104 if (!layout_valid(&lw)) return FALSE;
69f7270b3b27 improved color management button:
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 1589
diff changeset
1105
69f7270b3b27 improved color management button:
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 1589
diff changeset
1106 return image_color_profile_get_status(lw->image, image_profile, screen_profile);
69f7270b3b27 improved color management button:
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 1589
diff changeset
1107 }
69f7270b3b27 improved color management button:
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents: 1589
diff changeset
1108
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1109 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1110 *----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1111 * list walkers
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1112 *----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1113 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1114
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1115 void layout_image_next(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1116 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1117 gint current;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1118 CollectionData *cd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1119 CollectInfo *info;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1120
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1121 if (!layout_valid(&lw)) return;
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 if (layout_image_slideshow_active(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 layout_image_slideshow_next(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1126 return;
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
220
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1129 if (layout_selection_count(lw, 0) > 1)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1130 {
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1131 GList *x = layout_selection_list_by_index(lw);
783
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 753
diff changeset
1132 gint old = layout_list_get_index(lw, layout_image_get_fd(lw));
220
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1133 GList *y;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1134
529
8815fea478ee fix warning cast from pointer to integer of different size (when an integer is
bruclik
parents: 520
diff changeset
1135 for (y = x; y && (GPOINTER_TO_INT(y->data)) != old; y = y->next)
220
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1136 ;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1137 if (y)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1138 {
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
1139 if (y->next)
529
8815fea478ee fix warning cast from pointer to integer of different size (when an integer is
bruclik
parents: 520
diff changeset
1140 layout_image_set_index(lw, GPOINTER_TO_INT(y->next->data));
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
1141 else
529
8815fea478ee fix warning cast from pointer to integer of different size (when an integer is
bruclik
parents: 520
diff changeset
1142 layout_image_set_index(lw, GPOINTER_TO_INT(x->data));
220
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1143 }
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1144 while (x)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1145 x = g_list_remove(x, x->data);
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1146 if (y) /* not dereferenced */
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1147 return;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1148 }
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1149
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1150 cd = image_get_collection(lw->image, &info);
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 (cd && info)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1153 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1154 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
1155 if (info)
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1156 {
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1157 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
1158 }
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1159 else
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1160 {
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1161 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
1162 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1163 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1164 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1165
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1166 current = layout_image_get_index(lw);
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 if (current >= 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1169 {
736
a7289f9e8d29 Fix signed vs unsigned warnings.
zas_
parents: 671
diff changeset
1170 if ((guint) current < layout_list_count(lw, NULL) - 1)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1171 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1172 layout_image_set_index(lw, current + 1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1173 }
122
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1174 else
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1175 {
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1176 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
1177 }
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 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1180 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1181 layout_image_set_index(lw, 0);
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 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1184
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1185 void layout_image_prev(LayoutWindow *lw)
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 gint current;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1188 CollectionData *cd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1189 CollectInfo *info;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1190
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1191 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1192
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1193 if (layout_image_slideshow_active(lw))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1194 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1195 layout_image_slideshow_prev(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1196 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1197 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1198
220
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1199 if (layout_selection_count(lw, 0) > 1)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1200 {
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1201 GList *x = layout_selection_list_by_index(lw);
783
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 753
diff changeset
1202 gint old = layout_list_get_index(lw, layout_image_get_fd(lw));
220
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1203 GList *y;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1204 GList *last;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1205
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1206 for (last = y = x; y; y = y->next)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1207 last = y;
529
8815fea478ee fix warning cast from pointer to integer of different size (when an integer is
bruclik
parents: 520
diff changeset
1208 for (y = x; y && (GPOINTER_TO_INT(y->data)) != old; y = y->next)
220
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1209 ;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1210 if (y)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1211 {
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
1212 if (y->prev)
529
8815fea478ee fix warning cast from pointer to integer of different size (when an integer is
bruclik
parents: 520
diff changeset
1213 layout_image_set_index(lw, GPOINTER_TO_INT(y->prev->data));
220
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1214 else
529
8815fea478ee fix warning cast from pointer to integer of different size (when an integer is
bruclik
parents: 520
diff changeset
1215 layout_image_set_index(lw, GPOINTER_TO_INT(last->data));
220
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1216 }
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1217 while (x)
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1218 x = g_list_remove(x, x->data);
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1219 if (y) /* not dereferenced */
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1220 return;
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1221 }
7670d5653e1f Honor selection while fullscreen navigation.
zas_
parents: 208
diff changeset
1222
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1223 cd = image_get_collection(lw->image, &info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1224
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1225 if (cd && info)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1226 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1227 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
1228 if (info)
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1229 {
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1230 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
1231 }
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1232 else
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1233 {
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1234 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
1235 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1236 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1237 }
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 current = layout_image_get_index(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1240
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1241 if (current >= 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1242 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1243 if (current > 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1244 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1245 layout_image_set_index(lw, current - 1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1246 }
122
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1247 else
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1248 {
e2a8b7f2165b Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents: 117
diff changeset
1249 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
1250 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1251 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1252 else
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 layout_image_set_index(lw, layout_list_count(lw, NULL) - 1);
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 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1257
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1258 void layout_image_first(LayoutWindow *lw)
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 gint current;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1261 CollectionData *cd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1262 CollectInfo *info;
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 if (!layout_valid(&lw)) return;
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 cd = image_get_collection(lw->image, &info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1267
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1268 if (cd && info)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1269 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1270 CollectInfo *new;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1271 new = collection_get_first(cd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1272 if (new != info) layout_image_set_collection_real(lw, cd, new, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1273 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1274 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1275
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1276 current = layout_image_get_index(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1277 if (current != 0 && layout_list_count(lw, NULL) > 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1278 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1279 layout_image_set_index(lw, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1280 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1281 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1282
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1283 void layout_image_last(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1284 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1285 gint current;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1286 gint count;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1287 CollectionData *cd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1288 CollectInfo *info;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1289
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1290 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1291
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1292 cd = image_get_collection(lw->image, &info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1293
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1294 if (cd && info)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1295 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1296 CollectInfo *new;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1297 new = collection_get_last(cd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1298 if (new != info) layout_image_set_collection_real(lw, cd, new, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1299 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1300 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1301
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1302 current = layout_image_get_index(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1303 count = layout_list_count(lw, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1304 if (current != count - 1 && count > 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1305 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1306 layout_image_set_index(lw, count - 1);
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
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 * mouse callbacks
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1313 *----------------------------------------------------------------------------
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
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1316 static gint image_idx(LayoutWindow *lw, ImageWindow *imd)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1317 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1318 gint i;
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
1319
520
b5e79bcb46df Add missing spaces around equal sign.
zas_
parents: 512
diff changeset
1320 for (i = 0; i < MAX_SPLIT_IMAGES; i++)
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1321 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1322 if (lw->split_images[i] == imd)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1323 break;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1324 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1325 if (i < MAX_SPLIT_IMAGES)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1326 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1327 return i;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1328 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1329 return -1;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1330 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1331
1481
96897bd5f6cd active image follows keyboard focus
nadvornik
parents: 1433
diff changeset
1332 static void layout_image_focus_in_cb(ImageWindow *imd, gpointer data)
96897bd5f6cd active image follows keyboard focus
nadvornik
parents: 1433
diff changeset
1333 {
96897bd5f6cd active image follows keyboard focus
nadvornik
parents: 1433
diff changeset
1334 LayoutWindow *lw = data;
96897bd5f6cd active image follows keyboard focus
nadvornik
parents: 1433
diff changeset
1335
96897bd5f6cd active image follows keyboard focus
nadvornik
parents: 1433
diff changeset
1336 gint i = image_idx(lw, imd);
96897bd5f6cd active image follows keyboard focus
nadvornik
parents: 1433
diff changeset
1337
96897bd5f6cd active image follows keyboard focus
nadvornik
parents: 1433
diff changeset
1338 if (i != -1)
96897bd5f6cd active image follows keyboard focus
nadvornik
parents: 1433
diff changeset
1339 {
96897bd5f6cd active image follows keyboard focus
nadvornik
parents: 1433
diff changeset
1340 DEBUG_1("image activate focus_in %d", i);
1653
7ed0b45c80ae fixed jumping of filelist on focus_in event
nadvornik
parents: 1633
diff changeset
1341 layout_image_activate(lw, i, FALSE);
1481
96897bd5f6cd active image follows keyboard focus
nadvornik
parents: 1433
diff changeset
1342 }
96897bd5f6cd active image follows keyboard focus
nadvornik
parents: 1433
diff changeset
1343 }
96897bd5f6cd active image follows keyboard focus
nadvornik
parents: 1433
diff changeset
1344
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1345
868
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1346 static void layout_image_button_cb(ImageWindow *imd, GdkEventButton *event, gpointer data)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1347 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1348 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1349 GtkWidget *menu;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1350
868
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1351 switch (event->button)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1352 {
448
a73cc0fa14d0 Use explicit names for mouse buttons instead of numbers.
zas_
parents: 446
diff changeset
1353 case MOUSE_BUTTON_LEFT:
1286
eba0b4ae413b do not switch to the next image on mouse click in split mode
nadvornik
parents: 1284
diff changeset
1354 if (lw->split_mode == SPLIT_NONE)
eba0b4ae413b do not switch to the next image on mouse click in split mode
nadvornik
parents: 1284
diff changeset
1355 layout_image_next(lw);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1356 break;
448
a73cc0fa14d0 Use explicit names for mouse buttons instead of numbers.
zas_
parents: 446
diff changeset
1357 case MOUSE_BUTTON_MIDDLE:
1286
eba0b4ae413b do not switch to the next image on mouse click in split mode
nadvornik
parents: 1284
diff changeset
1358 if (lw->split_mode == SPLIT_NONE)
eba0b4ae413b do not switch to the next image on mouse click in split mode
nadvornik
parents: 1284
diff changeset
1359 layout_image_prev(lw);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1360 break;
448
a73cc0fa14d0 Use explicit names for mouse buttons instead of numbers.
zas_
parents: 446
diff changeset
1361 case MOUSE_BUTTON_RIGHT:
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1362 menu = layout_image_pop_menu(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1363 if (imd == lw->image)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1364 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1365 g_object_set_data(G_OBJECT(menu), "click_parent", imd->widget);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1366 }
868
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1367 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 3, event->time);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1368 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1369 default:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1370 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1371 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1372 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1373
868
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1374 static void layout_image_scroll_cb(ImageWindow *imd, GdkEventScroll *event, gpointer data)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1375 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1376 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1377
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1378 gint i = image_idx(lw, imd);
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
1379
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1380 if (i != -1)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1381 {
506
fc9c8a3e1a8b Handle the newline in DEBUG_N() macro instead of adding one
zas_
parents: 497
diff changeset
1382 DEBUG_1("image activate scroll %d", i);
1653
7ed0b45c80ae fixed jumping of filelist on focus_in event
nadvornik
parents: 1633
diff changeset
1383 layout_image_activate(lw, i, FALSE);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1384 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1385
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1386
868
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1387 if (event->state & GDK_CONTROL_MASK)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1388 {
868
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1389 switch (event->direction)
9
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 case GDK_SCROLL_UP:
1047
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
1392 layout_image_zoom_adjust_at_point(lw, get_zoom_increment(), event->x, event->y, event->state & GDK_SHIFT_MASK);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1393 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1394 case GDK_SCROLL_DOWN:
1047
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
1395 layout_image_zoom_adjust_at_point(lw, -get_zoom_increment(), event->x, event->y, event->state & GDK_SHIFT_MASK);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1396 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1397 default:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1398 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1399 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1400 }
1047
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
1401 else if (options->mousewheel_scrolls)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1402 {
868
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1403 switch (event->direction)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1404 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1405 case GDK_SCROLL_UP:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1406 image_scroll(imd, 0, -MOUSEWHEEL_SCROLL_SIZE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1407 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1408 case GDK_SCROLL_DOWN:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1409 image_scroll(imd, 0, MOUSEWHEEL_SCROLL_SIZE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1410 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1411 case GDK_SCROLL_LEFT:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1412 image_scroll(imd, -MOUSEWHEEL_SCROLL_SIZE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1413 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1414 case GDK_SCROLL_RIGHT:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1415 image_scroll(imd, MOUSEWHEEL_SCROLL_SIZE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1416 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1417 default:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1418 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1419 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1420 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1421 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1422 {
868
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1423 switch (event->direction)
9
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 case GDK_SCROLL_UP:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1426 layout_image_prev(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1427 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1428 case GDK_SCROLL_DOWN:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1429 layout_image_next(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1430 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1431 default:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1432 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1433 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1434 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1435 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1436
868
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1437 static void layout_image_drag_cb(ImageWindow *imd, GdkEventButton *event, gdouble dx, gdouble dy, gpointer data)
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1438 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1439 gint i;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1440 LayoutWindow *lw = data;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1441
1047
81ec7d977d5f use SHIFT for connected scroll and zoom
nadvornik
parents: 1043
diff changeset
1442 if (!(event->state & GDK_SHIFT_MASK)) return;
869
371a1c3d4504 layout_image_drag_cb(): optimize when connected scrolling is unset.
zas_
parents: 868
diff changeset
1443
868
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1444 for (i = 0; i < MAX_SPLIT_IMAGES; i++)
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1445 {
869
371a1c3d4504 layout_image_drag_cb(): optimize when connected scrolling is unset.
zas_
parents: 868
diff changeset
1446 if (lw->split_images[i] && lw->split_images[i] != imd)
868
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1447 {
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1448 gdouble sx, sy;
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1449
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1450 if (event->state & GDK_CONTROL_MASK)
129
89fc00ffbce2 started relative scroll, keep scroll position
nadvornik
parents: 128
diff changeset
1451 {
868
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1452 image_get_scroll_center(imd, &sx, &sy);
129
89fc00ffbce2 started relative scroll, keep scroll position
nadvornik
parents: 128
diff changeset
1453 }
868
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1454 else
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1455 {
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1456 image_get_scroll_center(lw->split_images[i], &sx, &sy);
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1457 sx += dx;
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1458 sy += dy;
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1459 }
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1460 image_set_scroll_center(lw->split_images[i], sx, sy);
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1461 }
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1462 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1463 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1464
868
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1465 static void layout_image_button_inactive_cb(ImageWindow *imd, GdkEventButton *event, gpointer data)
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1466 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1467 LayoutWindow *lw = data;
128
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1468 GtkWidget *menu;
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1469 gint i = image_idx(lw, imd);
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
1470
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1471 if (i != -1)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1472 {
1653
7ed0b45c80ae fixed jumping of filelist on focus_in event
nadvornik
parents: 1633
diff changeset
1473 layout_image_activate(lw, i, FALSE);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1474 }
128
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1475
868
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1476 switch (event->button)
128
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1477 {
448
a73cc0fa14d0 Use explicit names for mouse buttons instead of numbers.
zas_
parents: 446
diff changeset
1478 case MOUSE_BUTTON_RIGHT:
128
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1479 menu = layout_image_pop_menu(lw);
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1480 if (imd == lw->image)
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1481 {
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1482 g_object_set_data(G_OBJECT(menu), "click_parent", imd->widget);
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1483 }
868
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1484 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 3, event->time);
128
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1485 break;
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1486 default:
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1487 break;
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1488 }
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1489
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1490 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1491
868
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1492 static void layout_image_drag_inactive_cb(ImageWindow *imd, GdkEventButton *event, gdouble dx, gdouble dy, gpointer data)
128
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1493 {
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1494 LayoutWindow *lw = data;
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1495 gint i = image_idx(lw, imd);
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
1496
128
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1497 if (i != -1)
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1498 {
1653
7ed0b45c80ae fixed jumping of filelist on focus_in event
nadvornik
parents: 1633
diff changeset
1499 layout_image_activate(lw, i, FALSE);
128
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1500 }
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1501
129
89fc00ffbce2 started relative scroll, keep scroll position
nadvornik
parents: 128
diff changeset
1502 /* continue as with active image */
868
db6977f8b0f1 Reduce number of parameters (mostly unused), just pass the event pointer.
zas_
parents: 837
diff changeset
1503 layout_image_drag_cb(imd, event, dx, dy, data);
128
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1504 }
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1505
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1506
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1507 static void layout_image_set_buttons(LayoutWindow *lw)
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 image_set_button_func(lw->image, layout_image_button_cb, lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1510 image_set_scroll_func(lw->image, layout_image_scroll_cb, lw);
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
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1513 static void layout_image_set_buttons_inactive(LayoutWindow *lw, gint i)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1514 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1515 image_set_button_func(lw->split_images[i], layout_image_button_inactive_cb, lw);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1516 image_set_scroll_func(lw->split_images[i], layout_image_scroll_cb, lw);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1517 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1518
1377
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1519 /* Returns the length of an integer */
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1520 static gint num_length(gint num)
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1521 {
1433
b4ad1d201279 Use gboolean where applicable, minor cleanup and indentations fixes.
zas_
parents: 1432
diff changeset
1522 gint len = 0;
b4ad1d201279 Use gboolean where applicable, minor cleanup and indentations fixes.
zas_
parents: 1432
diff changeset
1523 if (num < 0) num = -num;
b4ad1d201279 Use gboolean where applicable, minor cleanup and indentations fixes.
zas_
parents: 1432
diff changeset
1524 while (num)
b4ad1d201279 Use gboolean where applicable, minor cleanup and indentations fixes.
zas_
parents: 1432
diff changeset
1525 {
b4ad1d201279 Use gboolean where applicable, minor cleanup and indentations fixes.
zas_
parents: 1432
diff changeset
1526 num /= 10;
b4ad1d201279 Use gboolean where applicable, minor cleanup and indentations fixes.
zas_
parents: 1432
diff changeset
1527 len++;
b4ad1d201279 Use gboolean where applicable, minor cleanup and indentations fixes.
zas_
parents: 1432
diff changeset
1528 }
b4ad1d201279 Use gboolean where applicable, minor cleanup and indentations fixes.
zas_
parents: 1432
diff changeset
1529 return len;
1377
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1530 }
1375
df58e511d90e Display pixel coordinates and rgb - patch by Ruben Stein
nadvornik
parents: 1373
diff changeset
1531
df58e511d90e Display pixel coordinates and rgb - patch by Ruben Stein
nadvornik
parents: 1373
diff changeset
1532 void layout_status_update_pixel_cb(PixbufRenderer *pr, gpointer data)
df58e511d90e Display pixel coordinates and rgb - patch by Ruben Stein
nadvornik
parents: 1373
diff changeset
1533 {
df58e511d90e Display pixel coordinates and rgb - patch by Ruben Stein
nadvornik
parents: 1373
diff changeset
1534 LayoutWindow *lw = data;
1377
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1535 gint x_pixel, y_pixel;
1375
df58e511d90e Display pixel coordinates and rgb - patch by Ruben Stein
nadvornik
parents: 1373
diff changeset
1536
1377
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1537 if (!data || !layout_valid(&lw) || !lw->image
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1538 || lw->options.info_pixel_hidden || lw->image->unknown) return;
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1539
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1540 pixbuf_renderer_get_mouse_position(pr, &x_pixel, &y_pixel);
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1541
1492
c350242b1a5d Fixed bug where pixel/color information at x=0 coordinates werent shown:
zas_
parents: 1481
diff changeset
1542 if(x_pixel >= 0 && y_pixel >= 0)
1377
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1543 {
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1544 gint r_mouse, g_mouse, b_mouse;
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1545 gint width, height;
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1546 gchar *text;
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1547 PangoAttrList *attrs;
1375
df58e511d90e Display pixel coordinates and rgb - patch by Ruben Stein
nadvornik
parents: 1373
diff changeset
1548
1377
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1549 pixbuf_renderer_get_image_size(pr, &width, &height);
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1550 if (width < 1 || height < 1) return;
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1551
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1552 pixbuf_renderer_get_pixel_colors(pr, x_pixel, y_pixel,
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1553 &r_mouse, &g_mouse, &b_mouse);
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1554
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1555 attrs = pango_attr_list_new();
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1556 pango_attr_list_insert(attrs, pango_attr_family_new("Monospace"));
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1557
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1558 text = g_strdup_printf(_("pos(%*d,%*d) rgb(%3d,%3d,%3d)"),
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1559 num_length(width - 1), x_pixel,
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1560 num_length(height - 1), y_pixel,
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1561 r_mouse, g_mouse, b_mouse);
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1562
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1563 gtk_label_set_text(GTK_LABEL(lw->info_pixel), text);
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1564 gtk_label_set_attributes(GTK_LABEL(lw->info_pixel), attrs);
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1565 pango_attr_list_unref(attrs);
1375
df58e511d90e Display pixel coordinates and rgb - patch by Ruben Stein
nadvornik
parents: 1373
diff changeset
1566 g_free(text);
df58e511d90e Display pixel coordinates and rgb - patch by Ruben Stein
nadvornik
parents: 1373
diff changeset
1567 }
1377
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1568 else
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1569 {
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1570 gtk_label_set_text(GTK_LABEL(lw->info_pixel), "");
dab37628f5d8 layout_status_update_pixel_cb(): cleanup and optimization, drop pango markup in i18n string, use a small function to calculate numbers length, only allocate text when needed.
zas_
parents: 1375
diff changeset
1571 }
1375
df58e511d90e Display pixel coordinates and rgb - patch by Ruben Stein
nadvornik
parents: 1373
diff changeset
1572 }
df58e511d90e Display pixel coordinates and rgb - patch by Ruben Stein
nadvornik
parents: 1373
diff changeset
1573
df58e511d90e Display pixel coordinates and rgb - patch by Ruben Stein
nadvornik
parents: 1373
diff changeset
1574
9
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 *----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1577 * setup
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1578 *----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1579 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1580
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1581 static void layout_image_update_cb(ImageWindow *imd, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1582 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1583 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1584 layout_status_update_image(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1585 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1586
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1587 GtkWidget *layout_image_new(LayoutWindow *lw, gint i)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1588 {
837
f8c22438376c use GtkSizeGroup to control initial size of split images
nadvornik
parents: 836
diff changeset
1589 if (!lw->split_image_sizegroup) lw->split_image_sizegroup = gtk_size_group_new(GTK_SIZE_GROUP_BOTH);
f8c22438376c use GtkSizeGroup to control initial size of split images
nadvornik
parents: 836
diff changeset
1590
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
1591 if (!lw->split_images[i])
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1592 {
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1593 lw->split_images[i] = image_new(TRUE);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1594
1043
5fc64d6252e7 Replaced gtk depreceated code.
bruclik
parents: 1037
diff changeset
1595 #if GTK_CHECK_VERSION(2,12,0)
5fc64d6252e7 Replaced gtk depreceated code.
bruclik
parents: 1037
diff changeset
1596 g_object_ref(lw->split_images[i]->widget);
5fc64d6252e7 Replaced gtk depreceated code.
bruclik
parents: 1037
diff changeset
1597 #else
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1598 gtk_widget_ref(lw->split_images[i]->widget);
1043
5fc64d6252e7 Replaced gtk depreceated code.
bruclik
parents: 1037
diff changeset
1599 #endif
1375
df58e511d90e Display pixel coordinates and rgb - patch by Ruben Stein
nadvornik
parents: 1373
diff changeset
1600
df58e511d90e Display pixel coordinates and rgb - patch by Ruben Stein
nadvornik
parents: 1373
diff changeset
1601 g_signal_connect(G_OBJECT(lw->split_images[i]->pr), "update-pixel",
df58e511d90e Display pixel coordinates and rgb - patch by Ruben Stein
nadvornik
parents: 1373
diff changeset
1602 G_CALLBACK(layout_status_update_pixel_cb), lw);
df58e511d90e Display pixel coordinates and rgb - patch by Ruben Stein
nadvornik
parents: 1373
diff changeset
1603
1622
fee96b7345e8 Add an option to Image preferences to restrict custom border to fullscreen mode only. Bug 2798062.
zas_
parents: 1591
diff changeset
1604 image_background_set_color_from_options(lw->split_images[i], FALSE);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1605
888
d8e1e820cee7 reload changed images
nadvornik
parents: 885
diff changeset
1606 image_auto_refresh_enable(lw->split_images[i], TRUE);
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 86
diff changeset
1607
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1608 layout_image_dnd_init(lw, i);
207
ec068409bee7 fixed color management initialization
nadvornik
parents: 196
diff changeset
1609 image_color_profile_set(lw->split_images[i],
327
049d6b00cc14 Rename color profile options.
zas_
parents: 320
diff changeset
1610 options->color_profile.input_type,
049d6b00cc14 Rename color profile options.
zas_
parents: 320
diff changeset
1611 options->color_profile.screen_type,
049d6b00cc14 Rename color profile options.
zas_
parents: 320
diff changeset
1612 options->color_profile.use_image);
049d6b00cc14 Rename color profile options.
zas_
parents: 320
diff changeset
1613 image_color_profile_set_use(lw->split_images[i], options->color_profile.enabled);
837
f8c22438376c use GtkSizeGroup to control initial size of split images
nadvornik
parents: 836
diff changeset
1614
f8c22438376c use GtkSizeGroup to control initial size of split images
nadvornik
parents: 836
diff changeset
1615 gtk_size_group_add_widget(lw->split_image_sizegroup, lw->split_images[i]->widget);
1383
3c9abbc05792 use standard GtkHPaned for sidebar width
nadvornik
parents: 1377
diff changeset
1616 gtk_widget_set_size_request(lw->split_images[i]->widget, IMAGE_MIN_WIDTH, -1);
3c9abbc05792 use standard GtkHPaned for sidebar width
nadvornik
parents: 1377
diff changeset
1617
1481
96897bd5f6cd active image follows keyboard focus
nadvornik
parents: 1433
diff changeset
1618 image_set_focus_in_func(lw->split_images[i], layout_image_focus_in_cb, lw);
96897bd5f6cd active image follows keyboard focus
nadvornik
parents: 1433
diff changeset
1619
9
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
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1622 return lw->split_images[i]->widget;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1623 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1624
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1625 void layout_image_deactivate(LayoutWindow *lw, gint i)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1626 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1627 if (!lw->split_images[i]) return;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1628 image_set_update_func(lw->split_images[i], NULL, NULL);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1629 layout_image_set_buttons_inactive(lw, i);
129
89fc00ffbce2 started relative scroll, keep scroll position
nadvornik
parents: 128
diff changeset
1630 image_set_drag_func(lw->split_images[i], layout_image_drag_inactive_cb, lw);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1631
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1632 image_attach_window(lw->split_images[i], NULL, NULL, NULL, FALSE);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1633 image_select(lw->split_images[i], FALSE);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1634 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1635
1653
7ed0b45c80ae fixed jumping of filelist on focus_in event
nadvornik
parents: 1633
diff changeset
1636 /* force should be set after change of lw->split_mode */
7ed0b45c80ae fixed jumping of filelist on focus_in event
nadvornik
parents: 1633
diff changeset
1637 void layout_image_activate(LayoutWindow *lw, gint i, gboolean force)
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1638 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1639 FileData *fd;
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
1640
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1641 if (!lw->split_images[i]) return;
1653
7ed0b45c80ae fixed jumping of filelist on focus_in event
nadvornik
parents: 1633
diff changeset
1642 if (!force && lw->active_split_image == i) return;
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1643
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1644 /* deactivate currently active */
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1645 if (lw->active_split_image != i)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1646 layout_image_deactivate(lw, lw->active_split_image);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1647
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1648 lw->image = lw->split_images[i];
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1649 lw->active_split_image = i;
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
1650
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1651 image_set_update_func(lw->image, layout_image_update_cb, lw);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1652 layout_image_set_buttons(lw);
128
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
1653 image_set_drag_func(lw->image, layout_image_drag_cb, lw);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1654
288
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 281
diff changeset
1655 image_attach_window(lw->image, lw->window, NULL, GQ_APPNAME, FALSE);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1656
152
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1657 /* do not hilight selected image in SPLIT_NONE */
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1658 /* 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
1659 another image option */
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1660 if (lw->split_mode != SPLIT_NONE)
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1661 image_select(lw->split_images[i], TRUE);
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1662 else
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1663 image_select(lw->split_images[i], FALSE);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1664
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1665 fd = image_get_fd(lw->image);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1666
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
1667 if (fd)
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1668 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1669 // layout_list_sync_path(lw, path);
783
d6a7fb4b8e7c replaced directory path with FileData* dir_fd
nadvornik
parents: 753
diff changeset
1670 layout_set_fd(lw, fd);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1671 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1672 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1673
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1674
1168
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1675 static void layout_image_setup_split_common(LayoutWindow *lw, gint n)
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1676 {
1633
2f733f8c983f do not show wide frame in single image mode
nadvornik
parents: 1623
diff changeset
1677 gboolean frame = (n > 1) || (!lw->options.tools_float && !lw->options.tools_hidden);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1678 gint i;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1679
1169
cb699bd2742d layout_image_setup_split_*(): simplify code.
zas_
parents: 1168
diff changeset
1680 for (i = 0; i < n; i++)
1168
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1681 if (!lw->split_images[i])
153
0e54267762f6 fixed copying zoom an scroll values from the original image on splitting
nadvornik
parents: 152
diff changeset
1682 {
1172
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1683 FileData *img_fd = NULL;
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1684 double zoom = 0.0;
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1685
1168
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1686 layout_image_new(lw, i);
1170
159f225985c5 Use common code for layout_image_setup_split_none() too.
zas_
parents: 1169
diff changeset
1687 image_set_frame(lw->split_images[i], frame);
1633
2f733f8c983f do not show wide frame in single image mode
nadvornik
parents: 1623
diff changeset
1688 image_set_selectable(lw->split_images[i], (n > 1));
1173
52ce0263cb7c Use the last selected images for the splitted views. Ie. when 5 images are selected, the last one is displayed, split quad while open images 5,4,3,2. It seems better to me.
zas_
parents: 1172
diff changeset
1689
1373
168e5597ddc7 overlay now survives image split
nadvornik
parents: 1347
diff changeset
1690 if (lw->image)
168e5597ddc7 overlay now survives image split
nadvornik
parents: 1347
diff changeset
1691 {
168e5597ddc7 overlay now survives image split
nadvornik
parents: 1347
diff changeset
1692 image_osd_copy_status(lw->image, lw->split_images[i]);
168e5597ddc7 overlay now survives image split
nadvornik
parents: 1347
diff changeset
1693 }
168e5597ddc7 overlay now survives image split
nadvornik
parents: 1347
diff changeset
1694
1172
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1695 if (layout_selection_count(lw, 0) > 1)
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1696 {
1173
52ce0263cb7c Use the last selected images for the splitted views. Ie. when 5 images are selected, the last one is displayed, split quad while open images 5,4,3,2. It seems better to me.
zas_
parents: 1172
diff changeset
1697 GList *work = g_list_last(layout_selection_list(lw));
1172
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1698 gint j = 0;
1173
52ce0263cb7c Use the last selected images for the splitted views. Ie. when 5 images are selected, the last one is displayed, split quad while open images 5,4,3,2. It seems better to me.
zas_
parents: 1172
diff changeset
1699
52ce0263cb7c Use the last selected images for the splitted views. Ie. when 5 images are selected, the last one is displayed, split quad while open images 5,4,3,2. It seems better to me.
zas_
parents: 1172
diff changeset
1700 if (work) work = work->prev;
1172
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1701
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1702 while (work && j < i)
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1703 {
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1704 FileData *fd = work->data;
1173
52ce0263cb7c Use the last selected images for the splitted views. Ie. when 5 images are selected, the last one is displayed, split quad while open images 5,4,3,2. It seems better to me.
zas_
parents: 1172
diff changeset
1705 work = work->prev;
1172
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1706
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1707 j++;
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1708 if (!fd || !*fd->path) continue;
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1709 img_fd = fd;
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1710 }
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1711 }
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1712
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1713 if (!img_fd && lw->image)
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1714 {
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1715 img_fd = image_get_fd(lw->image);
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1716 zoom = image_zoom_get(lw->image);
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1717 }
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1718
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1719 if (img_fd)
1168
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1720 {
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1721 gdouble sx, sy;
1172
08ef8c605723 When more than one image is selected, Split Horizontal, Vertical and Quad will use selected images when initialized.
zas_
parents: 1171
diff changeset
1722 image_change_fd(lw->split_images[i], img_fd, zoom);
1168
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1723 image_get_scroll_center(lw->image, &sx, &sy);
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1724 image_set_scroll_center(lw->split_images[i], sx, sy);
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1725 }
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1726 layout_image_deactivate(lw, i);
153
0e54267762f6 fixed copying zoom an scroll values from the original image on splitting
nadvornik
parents: 152
diff changeset
1727 }
1168
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1728 else
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1729 {
1170
159f225985c5 Use common code for layout_image_setup_split_none() too.
zas_
parents: 1169
diff changeset
1730 image_set_frame(lw->split_images[i], frame);
1633
2f733f8c983f do not show wide frame in single image mode
nadvornik
parents: 1623
diff changeset
1731 image_set_selectable(lw->split_images[i], (n > 1));
1168
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1732 }
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1733
1168
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1734 for (i = n; i < MAX_SPLIT_IMAGES; i++)
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1735 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1736 if (lw->split_images[i])
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1737 {
1043
5fc64d6252e7 Replaced gtk depreceated code.
bruclik
parents: 1037
diff changeset
1738 #if GTK_CHECK_VERSION(2,12,0)
5fc64d6252e7 Replaced gtk depreceated code.
bruclik
parents: 1037
diff changeset
1739 g_object_unref(lw->split_images[i]->widget);
5fc64d6252e7 Replaced gtk depreceated code.
bruclik
parents: 1037
diff changeset
1740 #else
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1741 gtk_widget_unref(lw->split_images[i]->widget);
1043
5fc64d6252e7 Replaced gtk depreceated code.
bruclik
parents: 1037
diff changeset
1742 #endif
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1743 lw->split_images[i] = NULL;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1744 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1745 }
1168
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1746
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1747 if (!lw->image || lw->active_split_image < 0 || lw->active_split_image >= n)
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1748 {
1653
7ed0b45c80ae fixed jumping of filelist on focus_in event
nadvornik
parents: 1633
diff changeset
1749 layout_image_activate(lw, 0, TRUE);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1750 }
1273
1ac2baeb8dc9 fixed switch from single to split image
nadvornik
parents: 1272
diff changeset
1751 else
1ac2baeb8dc9 fixed switch from single to split image
nadvornik
parents: 1272
diff changeset
1752 {
1ac2baeb8dc9 fixed switch from single to split image
nadvornik
parents: 1272
diff changeset
1753 /* this will draw the frame around selected image (image_select)
1ac2baeb8dc9 fixed switch from single to split image
nadvornik
parents: 1272
diff changeset
1754 on switch from single to split images */
1653
7ed0b45c80ae fixed jumping of filelist on focus_in event
nadvornik
parents: 1633
diff changeset
1755 layout_image_activate(lw, lw->active_split_image, TRUE);
1273
1ac2baeb8dc9 fixed switch from single to split image
nadvornik
parents: 1272
diff changeset
1756 }
1168
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1757 }
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1758
1170
159f225985c5 Use common code for layout_image_setup_split_none() too.
zas_
parents: 1169
diff changeset
1759 GtkWidget *layout_image_setup_split_none(LayoutWindow *lw)
159f225985c5 Use common code for layout_image_setup_split_none() too.
zas_
parents: 1169
diff changeset
1760 {
159f225985c5 Use common code for layout_image_setup_split_none() too.
zas_
parents: 1169
diff changeset
1761 lw->split_mode = SPLIT_NONE;
159f225985c5 Use common code for layout_image_setup_split_none() too.
zas_
parents: 1169
diff changeset
1762
159f225985c5 Use common code for layout_image_setup_split_none() too.
zas_
parents: 1169
diff changeset
1763 layout_image_setup_split_common(lw, 1);
159f225985c5 Use common code for layout_image_setup_split_none() too.
zas_
parents: 1169
diff changeset
1764
159f225985c5 Use common code for layout_image_setup_split_none() too.
zas_
parents: 1169
diff changeset
1765 lw->split_image_widget = lw->split_images[0]->widget;
159f225985c5 Use common code for layout_image_setup_split_none() too.
zas_
parents: 1169
diff changeset
1766
159f225985c5 Use common code for layout_image_setup_split_none() too.
zas_
parents: 1169
diff changeset
1767 return lw->split_image_widget;
159f225985c5 Use common code for layout_image_setup_split_none() too.
zas_
parents: 1169
diff changeset
1768 }
159f225985c5 Use common code for layout_image_setup_split_none() too.
zas_
parents: 1169
diff changeset
1769
159f225985c5 Use common code for layout_image_setup_split_none() too.
zas_
parents: 1169
diff changeset
1770
1168
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1771 GtkWidget *layout_image_setup_split_hv(LayoutWindow *lw, gboolean horizontal)
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1772 {
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1773 GtkWidget *paned;
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1774
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1775 lw->split_mode = horizontal ? SPLIT_HOR : SPLIT_VERT;
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1776
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1777 layout_image_setup_split_common(lw, 2);
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1778
156
dd6dc0a55d3d better integration of split image functions into menu
nadvornik
parents: 153
diff changeset
1779 /* horizontal split means vpaned and vice versa */
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1780 if (horizontal)
512
f9bf33be53ff Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents: 507
diff changeset
1781 paned = gtk_vpaned_new();
156
dd6dc0a55d3d better integration of split image functions into menu
nadvornik
parents: 153
diff changeset
1782 else
512
f9bf33be53ff Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents: 507
diff changeset
1783 paned = gtk_hpaned_new();
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1784
512
f9bf33be53ff Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents: 507
diff changeset
1785 gtk_paned_pack1(GTK_PANED(paned), lw->split_images[0]->widget, TRUE, TRUE);
f9bf33be53ff Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents: 507
diff changeset
1786 gtk_paned_pack2(GTK_PANED(paned), lw->split_images[1]->widget, TRUE, TRUE);
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
1787
512
f9bf33be53ff Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents: 507
diff changeset
1788 gtk_widget_show(lw->split_images[0]->widget);
f9bf33be53ff Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents: 507
diff changeset
1789 gtk_widget_show(lw->split_images[1]->widget);
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
1790
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1791 lw->split_image_widget = paned;
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
1792
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1793 return lw->split_image_widget;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1794
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1795 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1796
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1797 GtkWidget *layout_image_setup_split_quad(LayoutWindow *lw)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1798 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1799 GtkWidget *hpaned;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1800 GtkWidget *vpaned1;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1801 GtkWidget *vpaned2;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1802 gint i;
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
1803
152
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1804 lw->split_mode = SPLIT_QUAD;
2c534c7c8c1f do not hilight selected image in SPLIT_NONE
nadvornik
parents: 144
diff changeset
1805
1168
0c7534002b0a layout_image_setup_split_*(): move common code to a new function layout_image_setup_split_common().
zas_
parents: 1055
diff changeset
1806 layout_image_setup_split_common(lw, 4);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1807
512
f9bf33be53ff Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents: 507
diff changeset
1808 hpaned = gtk_hpaned_new();
f9bf33be53ff Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents: 507
diff changeset
1809 vpaned1 = gtk_vpaned_new();
f9bf33be53ff Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents: 507
diff changeset
1810 vpaned2 = gtk_vpaned_new();
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1811
512
f9bf33be53ff Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents: 507
diff changeset
1812 gtk_paned_pack1(GTK_PANED(vpaned1), lw->split_images[0]->widget, TRUE, TRUE);
f9bf33be53ff Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents: 507
diff changeset
1813 gtk_paned_pack2(GTK_PANED(vpaned1), lw->split_images[2]->widget, TRUE, TRUE);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1814
512
f9bf33be53ff Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents: 507
diff changeset
1815 gtk_paned_pack1(GTK_PANED(vpaned2), lw->split_images[1]->widget, TRUE, TRUE);
f9bf33be53ff Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents: 507
diff changeset
1816 gtk_paned_pack2(GTK_PANED(vpaned2), lw->split_images[3]->widget, TRUE, TRUE);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1817
512
f9bf33be53ff Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents: 507
diff changeset
1818 gtk_paned_pack1(GTK_PANED(hpaned), vpaned1, TRUE, TRUE);
f9bf33be53ff Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents: 507
diff changeset
1819 gtk_paned_pack2(GTK_PANED(hpaned), vpaned2, TRUE, TRUE);
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1820
520
b5e79bcb46df Add missing spaces around equal sign.
zas_
parents: 512
diff changeset
1821 for (i = 0; i < 4; i++)
512
f9bf33be53ff Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents: 507
diff changeset
1822 gtk_widget_show(lw->split_images[i]->widget);
f9bf33be53ff Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents: 507
diff changeset
1823
f9bf33be53ff Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents: 507
diff changeset
1824 gtk_widget_show(vpaned1);
f9bf33be53ff Remove whitespace between function name and first parenthesis for the sake of consistency.
zas_
parents: 507
diff changeset
1825 gtk_widget_show(vpaned2);
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
1826
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1827 lw->split_image_widget = hpaned;
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
1828
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1829 return lw->split_image_widget;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1830
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1831 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1832
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1833 GtkWidget *layout_image_setup_split(LayoutWindow *lw, ImageSplitMode mode)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1834 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1835 switch (mode)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1836 {
442
4b2d7f9af171 Big whitespaces cleanup:
zas_
parents: 426
diff changeset
1837 case SPLIT_HOR:
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1838 return layout_image_setup_split_hv(lw, TRUE);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1839 case SPLIT_VERT:
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1840 return layout_image_setup_split_hv(lw, FALSE);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1841 case SPLIT_QUAD:
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1842 return layout_image_setup_split_quad(lw);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1843 case SPLIT_NONE:
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1844 default:
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1845 return layout_image_setup_split_none(lw);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1846 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1847 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1848
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1849
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1850 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1851 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1852 * maintenance (for rename, move, remove)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1853 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1854 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1855
796
0be132a51f51 use new notification in layout and layout_image
nadvornik
parents: 783
diff changeset
1856 static void layout_image_maint_renamed(LayoutWindow *lw, FileData *fd)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1857 {
1171
8721675f80ce Tidy up.
zas_
parents: 1170
diff changeset
1858 if (fd == layout_image_get_fd(lw))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1859 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
1860 image_set_fd(lw->image, fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1861 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1862 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1863
796
0be132a51f51 use new notification in layout and layout_image
nadvornik
parents: 783
diff changeset
1864 static void layout_image_maint_removed(LayoutWindow *lw, FileData *fd)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1865 {
1171
8721675f80ce Tidy up.
zas_
parents: 1170
diff changeset
1866 if (fd == layout_image_get_fd(lw))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1867 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1868 CollectionData *cd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1869 CollectInfo *info;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1870
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1871 cd = image_get_collection(lw->image, &info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1872 if (cd && info)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1873 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1874 CollectInfo *new;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1875
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1876 new = collection_next_by_info(cd, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1877 if (!new) new = collection_prev_by_info(cd, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1878
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1879 if (new)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1880 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1881 layout_image_set_collection(lw, cd, new);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1882 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1883 }
1678
c029adbabb70 do not try to reload deleted image
nadvornik
parents: 1675
diff changeset
1884 layout_image_set_fd(lw, NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1885 }
1678
c029adbabb70 do not try to reload deleted image
nadvornik
parents: 1675
diff changeset
1886
c029adbabb70 do not try to reload deleted image
nadvornik
parents: 1675
diff changeset
1887 /* the image will be set to the next image from the list soon,
c029adbabb70 do not try to reload deleted image
nadvornik
parents: 1675
diff changeset
1888 setting it to NULL here is not necessary*/
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1889 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1890 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1891
796
0be132a51f51 use new notification in layout and layout_image
nadvornik
parents: 783
diff changeset
1892
0be132a51f51 use new notification in layout and layout_image
nadvornik
parents: 783
diff changeset
1893 void layout_image_notify_cb(FileData *fd, NotifyType type, gpointer data)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1894 {
796
0be132a51f51 use new notification in layout and layout_image
nadvornik
parents: 783
diff changeset
1895 LayoutWindow *lw = data;
0be132a51f51 use new notification in layout and layout_image
nadvornik
parents: 783
diff changeset
1896
1432
cf4029d10d38 improved notification system
nadvornik
parents: 1431
diff changeset
1897 if (!(type & NOTIFY_CHANGE) || !fd->change) return;
1498
5f49f305a6b6 improved debug messages
nadvornik
parents: 1492
diff changeset
1898
5f49f305a6b6 improved debug messages
nadvornik
parents: 1492
diff changeset
1899 DEBUG_1("Notify layout_image: %s %04x", fd->path, type);
796
0be132a51f51 use new notification in layout and layout_image
nadvornik
parents: 783
diff changeset
1900
1347
79937bc55f3a Add missing space between switch and first parenthesis.
zas_
parents: 1336
diff changeset
1901 switch (fd->change->type)
796
0be132a51f51 use new notification in layout and layout_image
nadvornik
parents: 783
diff changeset
1902 {
0be132a51f51 use new notification in layout and layout_image
nadvornik
parents: 783
diff changeset
1903 case FILEDATA_CHANGE_MOVE:
0be132a51f51 use new notification in layout and layout_image
nadvornik
parents: 783
diff changeset
1904 case FILEDATA_CHANGE_RENAME:
0be132a51f51 use new notification in layout and layout_image
nadvornik
parents: 783
diff changeset
1905 layout_image_maint_renamed(lw, fd);
0be132a51f51 use new notification in layout and layout_image
nadvornik
parents: 783
diff changeset
1906 break;
0be132a51f51 use new notification in layout and layout_image
nadvornik
parents: 783
diff changeset
1907 case FILEDATA_CHANGE_DELETE:
0be132a51f51 use new notification in layout and layout_image
nadvornik
parents: 783
diff changeset
1908 layout_image_maint_removed(lw, fd);
0be132a51f51 use new notification in layout and layout_image
nadvornik
parents: 783
diff changeset
1909 break;
0be132a51f51 use new notification in layout and layout_image
nadvornik
parents: 783
diff changeset
1910 case FILEDATA_CHANGE_COPY:
0be132a51f51 use new notification in layout and layout_image
nadvornik
parents: 783
diff changeset
1911 case FILEDATA_CHANGE_UNSPECIFIED:
1211
e2bbe90b0dcd most of the metadata options now works
nadvornik
parents: 1173
diff changeset
1912 case FILEDATA_CHANGE_WRITE_METADATA:
796
0be132a51f51 use new notification in layout and layout_image
nadvornik
parents: 783
diff changeset
1913 break;
0be132a51f51 use new notification in layout and layout_image
nadvornik
parents: 783
diff changeset
1914 }
0be132a51f51 use new notification in layout and layout_image
nadvornik
parents: 783
diff changeset
1915
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1916 }
1055
1646720364cf Adding a vim modeline to all files - patch by Klaus Ethgen
nadvornik
parents: 1047
diff changeset
1917 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */