annotate src/img-view.c @ 9:d907d608745f

Sync to GQview 1.5.9 release. ######## DO NOT BASE ENHANCEMENTS OR TRANSLATION UPDATES ON CODE IN THIS CVS! This CVS is never up to date with current development and is provided solely for reference purposes, please use the latest official release package when making any changes or translation updates. ########
author gqview
date Sat, 26 Feb 2005 00:13:35 +0000
parents e149abcda4eb
children 17acca639a86
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1 /*
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
2 * GQview
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
3 * (C) 2004 John Ellis
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
4 *
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
5 * Author: John Ellis
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
6 *
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
7 * This software is released under the GNU General Public License (GNU GPL).
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
8 * Please read the included file COPYING for more information.
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
9 * This software comes with no warranty of any kind, use at your own risk!
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
10 */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
11
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
12
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
13 #include "gqview.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
14 #include "img-view.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
15
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
16 #include "collect.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
17 #include "collect-io.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
18 #include "dnd.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
19 #include "editors.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
20 #include "filelist.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
21 #include "fullscreen.h"
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
22 #include "image.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
23 #include "image-overlay.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
24 #include "info.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
25 #include "menu.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
26 #include "slideshow.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
27 #include "utilops.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
28 #include "ui_bookmark.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
29 #include "ui_fileops.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
30 #include "ui_menu.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
31
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
32 #include <gdk/gdkkeysyms.h> /* for keyboard values */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
33
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
34 #include "icons/view.xpm"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
35
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
36
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
37 typedef struct _ViewWindow ViewWindow;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
38 struct _ViewWindow
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
39 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
40 GtkWidget *window;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
41 ImageWindow *imd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
42 FullScreenData *fs;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
43 SlideShowData *ss;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
44
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
45 GList *list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
46 GList *list_pointer;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
47
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
48 gint overlay_id;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
49 };
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
50
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
51
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
52 static GList *view_window_list = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
53
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
54
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
55 static GtkWidget *view_popup_menu(ViewWindow *vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
56 static void view_fullscreen_toggle(ViewWindow *vw, gint force_off);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
57 static void view_overlay_toggle(ViewWindow *vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
58
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
59 static void view_slideshow_next(ViewWindow *vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
60 static void view_slideshow_prev(ViewWindow *vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
61 static void view_slideshow_start(ViewWindow *vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
62 static void view_slideshow_stop(ViewWindow *vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
63
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
64 static void view_window_close(ViewWindow *vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
65
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
66 static void view_window_dnd_init(ViewWindow *vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
67
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
68
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
69 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
70 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
71 * misc
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
72 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
73 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
74
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
75 static ImageWindow *view_window_active_image(ViewWindow *vw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
76 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
77 if (vw->fs) return vw->fs->imd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
78
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
79 return vw->imd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
80 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
81
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
82 static void view_window_set_list(ViewWindow *vw, GList *list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
83 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
84
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
85 path_list_free(vw->list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
86 vw->list = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
87 vw->list_pointer = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
88
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
89 vw->list = path_list_copy(list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
90 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
91
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
92 static gint view_window_contains_collection(ViewWindow *vw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
93 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
94 CollectionData *cd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
95 CollectInfo *info;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
96
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
97 cd = image_get_collection(view_window_active_image(vw), &info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
98
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
99 return (cd && info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
100 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
101
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
102 static void view_collection_step(ViewWindow *vw, gint next)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
103 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
104 ImageWindow *imd = view_window_active_image(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
105 CollectionData *cd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
106 CollectInfo *info;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
107 CollectInfo *read_ahead_info = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
108
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
109 cd = image_get_collection(imd, &info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
110
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
111 if (!cd || !info) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
112
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
113 if (next)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
114 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
115 info = collection_next_by_info(cd, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
116 if (enable_read_ahead)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
117 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
118 read_ahead_info = collection_next_by_info(cd, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
119 if (!read_ahead_info) read_ahead_info = collection_prev_by_info(cd, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
120 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
121 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
122 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
123 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
124 info = collection_prev_by_info(cd, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
125 if (enable_read_ahead)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
126 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
127 read_ahead_info = collection_prev_by_info(cd, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
128 if (!read_ahead_info) read_ahead_info = collection_next_by_info(cd, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
129 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
130 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
131
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
132 if (info)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
133 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
134 image_change_from_collection(imd, cd, info, image_zoom_get_default(imd, zoom_mode));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
135
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
136 if (read_ahead_info) image_prebuffer_set(imd, read_ahead_info->path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
137 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
138
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
139 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
140
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
141 static void view_collection_step_to_end(ViewWindow *vw, gint last)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
142 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
143 ImageWindow *imd = view_window_active_image(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
144 CollectionData *cd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
145 CollectInfo *info;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
146 CollectInfo *read_ahead_info = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
147
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
148 cd = image_get_collection(imd, &info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
149
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
150 if (!cd || !info) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
151
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
152 if (last)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
153 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
154 info = collection_get_last(cd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
155 if (enable_read_ahead) read_ahead_info = collection_prev_by_info(cd, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
156 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
157 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
158 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
159 info = collection_get_first(cd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
160 if (enable_read_ahead) read_ahead_info = collection_next_by_info(cd, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
161 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
162
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
163 if (info)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
164 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
165 image_change_from_collection(imd, cd, info, image_zoom_get_default(imd, zoom_mode));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
166 if (read_ahead_info) image_prebuffer_set(imd, read_ahead_info->path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
167 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
168 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
169
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
170 static void view_list_step(ViewWindow *vw, gint next)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
171 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
172 ImageWindow *imd = view_window_active_image(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
173 const gchar *path;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
174 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
175 GList *work_ahead;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
176
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
177 if (!vw->list) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
178
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
179 path = image_get_path(imd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
180 if (!path) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
181
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
182 if (g_list_position(vw->list, vw->list_pointer) >= 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
183 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
184 work = vw->list_pointer;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
185 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
186 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
187 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
188 gint found = FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
189
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
190 work = vw->list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
191 while (work && !found)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
192 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
193 gchar *temp;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
194
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
195 temp = work->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
196
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
197 if (strcmp(path, temp) == 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
198 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
199 found = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
200 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
201 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
202 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
203 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
204 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
205 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
206 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
207 if (!work) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
208
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
209 work_ahead = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
210 if (next)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
211 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
212 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
213 if (work) work_ahead = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
214 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
215 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
216 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
217 work = work->prev;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
218 if (work) work_ahead = work->prev;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
219 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
220 if (!work) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
221
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
222 vw->list_pointer = work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
223 path = work->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
224 image_change_path(imd, path, image_zoom_get_default(imd, zoom_mode));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
225
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
226 if (enable_read_ahead && work_ahead)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
227 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
228 const gchar *next_path = work_ahead->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
229 image_prebuffer_set(imd, next_path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
230 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
231 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
232
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
233 static void view_list_step_to_end(ViewWindow *vw, gint last)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
234 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
235 ImageWindow *imd = view_window_active_image(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
236 const gchar *path;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
237 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
238 GList *work_ahead;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
239
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
240 if (!vw->list) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
241
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
242 if (last)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
243 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
244 work = g_list_last(vw->list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
245 work_ahead = work->prev;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
246 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
247 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
248 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
249 work = vw->list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
250 work_ahead = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
251 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
252
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
253 vw->list_pointer = work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
254 path = work->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
255 image_change_path(imd, path, image_zoom_get_default(imd, zoom_mode));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
256
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
257 if (enable_read_ahead && work_ahead)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
258 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
259 const gchar *next_path = work_ahead->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
260 image_prebuffer_set(imd, next_path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
261 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
262 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
263
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
264 static void view_step_next(ViewWindow *vw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
265 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
266 if (vw->ss)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
267 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
268 view_slideshow_next(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
269 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
270 else if (vw->list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
271 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
272 view_list_step(vw, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
273 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
274 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
275 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
276 view_collection_step(vw, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
277 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
278 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
279
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
280 static void view_step_prev(ViewWindow *vw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
281 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
282 if (vw->ss)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
283 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
284 view_slideshow_prev(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
285 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
286 else if (vw->list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
287 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
288 view_list_step(vw, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
289 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
290 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
291 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
292 view_collection_step(vw, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
293 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
294 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
295
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
296 static void view_step_to_end(ViewWindow *vw, gint last)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
297 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
298 if (vw->list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
299 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
300 view_list_step_to_end(vw, last);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
301 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
302 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
303 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
304 view_collection_step_to_end(vw, last);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
305 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
306 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
307
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
308 /*
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
309 *-----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
310 * view window keyboard
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
311 *-----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
312 */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
313
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
314 static void view_window_menu_pos_cb(GtkMenu *menu, gint *x, gint *y, gboolean *push_in, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
315 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
316 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
317 ImageWindow *imd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
318
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
319 imd = view_window_active_image(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
320 gdk_window_get_origin(imd->image->window, x, y);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
321 popup_menu_position_clamp(menu, x, y, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
322 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
323
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
324 static gint view_window_key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer data)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
325 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
326 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
327 ImageWindow *imd;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
328 gint stop_signal = FALSE;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
329 GtkWidget *menu;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
330 gint x = 0;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
331 gint y = 0;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
332
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
333 imd = view_window_active_image(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
334
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
335 switch (event->keyval)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
336 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
337 case GDK_Left: case GDK_KP_Left:
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
338 x -= 1;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
339 stop_signal = TRUE;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
340 break;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
341 case GDK_Right: case GDK_KP_Right:
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
342 x += 1;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
343 stop_signal = TRUE;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
344 break;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
345 case GDK_Up: case GDK_KP_Up:
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
346 y -= 1;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
347 stop_signal = TRUE;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
348 break;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
349 case GDK_Down: case GDK_KP_Down:
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
350 y += 1;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
351 stop_signal = TRUE;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
352 break;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
353 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
354
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
355 if ( !(event->state & GDK_CONTROL_MASK) )
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
356 switch (event->keyval)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
357 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
358 case GDK_Page_Up: case GDK_KP_Page_Up:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
359 case GDK_BackSpace:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
360 case 'B': case 'b':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
361 view_step_prev(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
362 stop_signal = TRUE;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
363 break;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
364 case GDK_Page_Down: case GDK_KP_Page_Down:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
365 case GDK_space:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
366 case 'N': case 'n':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
367 view_step_next(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
368 stop_signal = TRUE;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
369 break;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
370 case GDK_Home: case GDK_KP_Home:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
371 view_step_to_end(vw, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
372 stop_signal = TRUE;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
373 break;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
374 case GDK_End: case GDK_KP_End:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
375 view_step_to_end(vw, TRUE);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
376 stop_signal = TRUE;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
377 break;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
378 case '+': case '=': case GDK_KP_Add:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
379 image_zoom_adjust(imd, get_zoom_increment());
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
380 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
381 case '-': case GDK_KP_Subtract:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
382 image_zoom_adjust(imd, -get_zoom_increment());
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
383 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
384 case 'X': case 'x': case GDK_KP_Multiply:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
385 image_zoom_set(imd, 0.0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
386 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
387 case 'Z': case 'z': case GDK_KP_Divide: case '1':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
388 image_zoom_set(imd, 1.0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
389 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
390 case '2':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
391 image_zoom_set(imd, 2.0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
392 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
393 case '3':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
394 image_zoom_set(imd, 3.0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
395 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
396 case '4':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
397 image_zoom_set(imd, 4.0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
398 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
399 case '7':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
400 image_zoom_set(imd, -4.0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
401 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
402 case '8':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
403 image_zoom_set(imd, -3.0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
404 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
405 case '9':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
406 image_zoom_set(imd, -2.0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
407 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
408 case 'W': case 'w':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
409 image_zoom_set_fill_geometry(imd, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
410 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
411 case 'H': case 'h':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
412 image_zoom_set_fill_geometry(imd, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
413 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
414 case 'R': case 'r':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
415 image_reload(imd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
416 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
417 case 'S': case 's':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
418 if (vw->ss)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
419 view_slideshow_stop(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
420 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
421 view_slideshow_start(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
422 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
423 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
424 case 'P': case 'p':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
425 slideshow_pause_toggle(vw->ss);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
426 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
427 case 'F': case 'f':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
428 case 'V': case 'v':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
429 view_fullscreen_toggle(vw, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
430 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
431 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
432 case 'I': case 'i':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
433 view_overlay_toggle(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
434 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
435 case ']':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
436 image_alter(imd, ALTER_ROTATE_90);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
437 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
438 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
439 case '[':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
440 image_alter(imd, ALTER_ROTATE_90_CC);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
441 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
442 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
443 case GDK_Delete: case GDK_KP_Delete:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
444 if (enable_delete_key)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
445 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
446 file_util_delete(image_get_path(imd), NULL, imd->widget);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
447 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
448 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
449 break;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
450 case GDK_Escape:
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
451 if (vw->fs)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
452 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
453 view_fullscreen_toggle(vw, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
454 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
455 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
456 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
457 gtk_widget_destroy(vw->window);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
458 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
459 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
460 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
461 case GDK_Menu:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
462 case GDK_F10:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
463 menu = view_popup_menu(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
464 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, view_window_menu_pos_cb, vw, 0, GDK_CURRENT_TIME);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
465 stop_signal = TRUE;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
466 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
467 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
468
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
469 if (event->state & GDK_CONTROL_MASK)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
470 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
471 gint n = -1;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
472 switch (event->keyval)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
473 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
474 case '1':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
475 n = 0;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
476 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
477 case '2':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
478 n = 1;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
479 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
480 case '3':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
481 n = 2;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
482 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
483 case '4':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
484 n = 3;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
485 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
486 case '5':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
487 n = 4;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
488 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
489 case '6':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
490 n = 5;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
491 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
492 case '7':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
493 n = 6;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
494 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
495 case '8':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
496 n = 7;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
497 break;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
498 case '9':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
499 n = 8;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
500 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
501 case '0':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
502 n = 9;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
503 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
504 case 'C': case 'c':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
505 file_util_copy(image_get_path(imd), NULL, NULL, imd->widget);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
506 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
507 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
508 case 'M': case 'm':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
509 file_util_move(image_get_path(imd), NULL, NULL, imd->widget);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
510 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
511 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
512 case 'R': case 'r':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
513 file_util_rename(image_get_path(imd), NULL, imd->widget);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
514 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
515 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
516 case 'D': case 'd':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
517 file_util_delete(image_get_path(imd), NULL, imd->widget);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
518 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
519 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
520 case 'P': case 'p':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
521 info_window_new(image_get_path(imd), NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
522 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
523 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
524 case 'W': case 'w':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
525 view_window_close(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
526 break;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
527 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
528 if (n != -1)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
529 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
530 view_fullscreen_toggle(vw, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
531 start_editor_from_file(n, image_get_path(imd));
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
532 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
533 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
534 else if (event->state & GDK_SHIFT_MASK)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
535 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
536 switch (event->keyval)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
537 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
538 case 'R': case 'r':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
539 image_alter(imd, ALTER_ROTATE_180);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
540 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
541 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
542 case 'M': case 'm':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
543 image_alter(imd, ALTER_MIRROR);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
544 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
545 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
546 case 'F': case 'f':
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
547 image_alter(imd, ALTER_FLIP);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
548 stop_signal = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
549 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
550 default:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
551 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
552 }
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
553 x *= 3;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
554 y *= 3;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
555 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
556
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
557 if (x != 0 || y!= 0)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
558 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
559 keyboard_scroll_calc(&x, &y, event);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
560 image_scroll(imd, x, y);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
561 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
562
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
563 return stop_signal;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
564 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
565
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
566 /*
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
567 *-----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
568 * view window main routines
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
569 *-----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
570 */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
571
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
572 static void button_cb(ImageWindow *imd, gint button, guint32 time,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
573 gdouble x, gdouble y, guint state, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
574 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
575 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
576 GtkWidget *menu;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
577
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
578 switch (button)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
579 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
580 case 1:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
581 view_step_next(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
582 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
583 case 2:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
584 view_step_prev(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
585 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
586 case 3:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
587 menu = view_popup_menu(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
588 gtk_menu_popup (GTK_MENU(menu), NULL, NULL, NULL, NULL, 3, time);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
589 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
590 default:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
591 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
592 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
593 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
594
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
595 static void scroll_cb(ImageWindow *imd, GdkScrollDirection direction, guint32 time,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
596 gdouble x, gdouble y, guint state, gpointer data)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
597 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
598 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
599
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
600 if (state & GDK_CONTROL_MASK)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
601 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
602 switch (direction)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
603 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
604 case GDK_SCROLL_UP:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
605 image_zoom_adjust_at_point(imd, get_zoom_increment(), x, y);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
606 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
607 case GDK_SCROLL_DOWN:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
608 image_zoom_adjust_at_point(imd, -get_zoom_increment(), x, y);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
609 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
610 default:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
611 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
612 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
613 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
614 else if ( (state & GDK_SHIFT_MASK) != (mousewheel_scrolls))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
615 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
616 switch (direction)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
617 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
618 case GDK_SCROLL_UP:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
619 image_scroll(imd, 0, -MOUSEWHEEL_SCROLL_SIZE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
620 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
621 case GDK_SCROLL_DOWN:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
622 image_scroll(imd, 0, MOUSEWHEEL_SCROLL_SIZE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
623 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
624 case GDK_SCROLL_LEFT:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
625 image_scroll(imd, -MOUSEWHEEL_SCROLL_SIZE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
626 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
627 case GDK_SCROLL_RIGHT:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
628 image_scroll(imd, MOUSEWHEEL_SCROLL_SIZE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
629 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
630 default:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
631 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
632 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
633 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
634 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
635 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
636 switch (direction)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
637 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
638 case GDK_SCROLL_UP:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
639 view_step_prev(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
640 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
641 case GDK_SCROLL_DOWN:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
642 view_step_next(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
643 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
644 default:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
645 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
646 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
647 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
648 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
649
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
650 static void view_image_set_buttons(ViewWindow *vw, ImageWindow *imd)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
651 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
652 image_set_button_func(imd, button_cb, vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
653 image_set_scroll_func(imd, scroll_cb, vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
654 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
655
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
656 static void view_fullscreen_stop_func(FullScreenData *fs, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
657 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
658 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
659
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
660 vw->fs = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
661
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
662 if (vw->ss) vw->ss->imd = vw->imd;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
663 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
664
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
665 static void view_fullscreen_toggle(ViewWindow *vw, gint force_off)
4
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
666 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
667 if (force_off && !vw->fs) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
668
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
669 if (vw->fs)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
670 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
671 fullscreen_stop(vw->fs);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
672
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
673 if (vw->overlay_id != -1) vw->overlay_id = image_overlay_info_enable(vw->imd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
674 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
675 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
676 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
677 vw->fs = fullscreen_start(vw->window, vw->imd, view_fullscreen_stop_func, vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
678
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
679 view_image_set_buttons(vw, vw->fs->imd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
680 g_signal_connect(G_OBJECT(vw->fs->window), "key_press_event",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
681 G_CALLBACK(view_window_key_press_cb), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
682
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
683 if (vw->ss) vw->ss->imd = vw->fs->imd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
684
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
685 if (vw->overlay_id != -1)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
686 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
687 image_overlay_info_disable(vw->imd, vw->overlay_id);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
688 vw->overlay_id = image_overlay_info_enable(vw->fs->imd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
689 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
690 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
691 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
692
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
693 static void view_overlay_toggle(ViewWindow *vw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
694 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
695 ImageWindow *imd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
696
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
697 imd = view_window_active_image(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
698
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
699 if (vw->overlay_id == -1)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
700 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
701 vw->overlay_id = image_overlay_info_enable(imd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
702 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
703 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
704 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
705 image_overlay_info_disable(imd, vw->overlay_id);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
706 vw->overlay_id = -1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
707 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
708 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
709
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
710 static void view_slideshow_next(ViewWindow *vw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
711 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
712 if (vw->ss) slideshow_next(vw->ss);
4
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
713 }
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
714
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
715 static void view_slideshow_prev(ViewWindow *vw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
716 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
717 if (vw->ss) slideshow_prev(vw->ss);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
718 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
719
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
720 static void view_slideshow_stop_func(SlideShowData *fs, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
721 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
722 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
723
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
724 vw->ss = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
725 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
726
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
727 static void view_slideshow_start(ViewWindow *vw)
4
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
728 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
729 if (!vw->ss)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
730 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
731 CollectionData *cd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
732 CollectInfo *info;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
733
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
734 if (vw->list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
735 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
736 vw->ss = slideshow_start_from_path_list(view_window_active_image(vw),
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
737 path_list_copy(vw->list),
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
738 view_slideshow_stop_func, vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
739 vw->list_pointer = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
740 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
741 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
742
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
743 cd = image_get_collection(view_window_active_image(vw), &info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
744 if (cd && info)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
745 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
746 vw->ss = slideshow_start_from_collection(view_window_active_image(vw), cd,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
747 view_slideshow_stop_func, vw, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
748 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
749 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
750 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
751
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
752 static void view_slideshow_stop(ViewWindow *vw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
753 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
754 if (vw->ss) slideshow_free(vw->ss);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
755 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
756
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
757 static void view_window_close(ViewWindow *vw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
758 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
759 view_window_list = g_list_remove(view_window_list, vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
760
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
761 view_slideshow_stop(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
762 view_fullscreen_toggle(vw, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
763 gtk_widget_destroy(vw->window);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
764 path_list_free(vw->list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
765 g_free(vw);
4
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
766 }
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
767
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
768 static gint view_window_delete_cb(GtkWidget *w, GdkEventAny *event, gpointer data)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
769 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
770 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
771
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
772 view_window_close(vw);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
773 return TRUE;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
774 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
775
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
776 static ViewWindow *real_view_window_new(const gchar *path, GList *list, CollectionData *cd, CollectInfo *info)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
777 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
778 ViewWindow *vw;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
779 GtkAllocation req_size;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
780 GdkGeometry geometry;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
781 gint w, h;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
782
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
783 if (!path && !list && (!cd || !info)) return NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
784
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
785 vw = g_new0(ViewWindow, 1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
786 vw->fs = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
787 vw->ss = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
788 vw->list = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
789 vw->list_pointer = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
790
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
791 vw->overlay_id = -1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
792
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
793 vw->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
794
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
795 geometry.min_width = 8;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
796 geometry.min_height = 8;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
797 gtk_window_set_geometry_hints(GTK_WINDOW(vw->window), NULL, &geometry, GDK_HINT_MIN_SIZE);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
798
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
799 gtk_window_set_resizable(GTK_WINDOW(vw->window), TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
800 gtk_window_set_title (GTK_WINDOW(vw->window), "GQview");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
801 gtk_window_set_wmclass(GTK_WINDOW(vw->window), "view", "GQview");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
802 gtk_container_set_border_width(GTK_CONTAINER(vw->window), 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
803
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
804 window_set_icon(vw->window, (const gchar **)view_xpm, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
805
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
806 vw->imd = image_new(FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
807
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
808 if (black_window_background) image_background_set_black(vw->imd, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
809
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
810 image_attach_window(vw->imd, vw->window, NULL, "GQview", TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
811
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
812 image_auto_refresh(vw->imd, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
813 image_top_window_set_sync(vw->imd, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
814
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
815 gtk_container_add(GTK_CONTAINER(vw->window), vw->imd->widget);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
816 gtk_widget_show(vw->imd->widget);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
817
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
818 view_window_dnd_init(vw);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
819
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
820 view_image_set_buttons(vw, vw->imd);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
821
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
822 g_signal_connect(G_OBJECT(vw->window), "delete_event",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
823 G_CALLBACK(view_window_delete_cb), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
824 g_signal_connect(G_OBJECT(vw->window), "key_press_event",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
825 G_CALLBACK(view_window_key_press_cb), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
826 if (cd && info)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
827 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
828 image_change_from_collection(vw->imd, cd, info, image_zoom_get_default(NULL, zoom_mode));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
829 if (enable_read_ahead)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
830 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
831 CollectInfo * r_info = collection_next_by_info(cd, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
832 if (!r_info) r_info = collection_prev_by_info(cd, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
833 if (r_info) image_prebuffer_set(vw->imd, r_info->path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
834 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
835 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
836 else if (list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
837 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
838 view_window_set_list(vw, list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
839 vw->list_pointer = vw->list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
840 image_change_path(vw->imd, (gchar *)vw->list->data, image_zoom_get_default(NULL, zoom_mode));
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
841
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
842 if (enable_read_ahead)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
843 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
844 GList *work = vw->list->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
845 if (work) image_prebuffer_set(vw->imd, (gchar *)work->data);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
846 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
847 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
848 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
849 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
850 image_change_path(vw->imd, path, image_zoom_get_default(NULL, zoom_mode));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
851 }
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
852
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
853 if (image_zoom_get(vw->imd) == 0.0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
854 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
855 w = vw->imd->image_width;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
856 h = vw->imd->image_height;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
857 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
858 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
859 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
860 w = vw->imd->width;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
861 h = vw->imd->height;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
862 }
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
863 if (limit_window_size)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
864 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
865 gint mw = gdk_screen_width() * max_window_size / 100;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
866 gint mh = gdk_screen_height() * max_window_size / 100;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
867
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
868 if (w > mw) w = mw;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
869 if (h > mh) h = mh;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
870 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
871
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
872 gtk_window_set_default_size(GTK_WINDOW(vw->window), w, h);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
873 req_size.x = req_size.y = 0;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
874 req_size.width = w;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
875 req_size.height = h;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
876 gtk_widget_size_allocate(GTK_WIDGET(vw->window), &req_size);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
877
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
878 gtk_widget_set_size_request(vw->imd->image, w, h);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
879
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
880 gtk_widget_show(vw->window);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
881
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
882 view_window_list = g_list_append(view_window_list, vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
883
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
884 return vw;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
885 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
886
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
887 static void view_window_collection_unref_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
888 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
889 CollectionData *cd = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
890
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
891 collection_unref(cd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
892 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
893
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
894 void view_window_new(const gchar *path)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
895 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
896 if (file_extension_match(path, ".gqv"))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
897 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
898 ViewWindow *vw;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
899 CollectionData *cd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
900 CollectInfo *info;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
901
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
902 cd = collection_new(path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
903 if (collection_load(cd, path, FALSE))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
904 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
905 info = collection_get_first(cd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
906 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
907 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
908 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
909 collection_unref(cd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
910 cd = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
911 info = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
912 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
913 vw = real_view_window_new(NULL, NULL, cd, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
914 if (vw && cd)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
915 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
916 g_signal_connect(G_OBJECT(vw->window), "destroy",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
917 G_CALLBACK(view_window_collection_unref_cb), cd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
918 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
919 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
920 else if (isdir(path))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
921 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
922 GList *list = NULL;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
923
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
924 if (path_list(path, &list, NULL))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
925 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
926 list = path_list_sort(list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
927 list = path_list_filter(list, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
928 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
929 real_view_window_new(NULL, list, NULL, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
930 path_list_free(list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
931 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
932 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
933 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
934 real_view_window_new(path, NULL, NULL, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
935 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
936 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
937
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
938 void view_window_new_from_list(GList *list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
939 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
940 real_view_window_new(NULL, list, NULL, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
941 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
942
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
943 void view_window_new_from_collection(CollectionData *cd, CollectInfo *info)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
944 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
945 real_view_window_new(NULL, NULL, cd, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
946 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
947
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
948 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
949 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
950 * public
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
951 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
952 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
953
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
954 void view_window_colors_update(void)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
955 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
956 GList *work;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
957
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
958 work = view_window_list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
959 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
960 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
961 ViewWindow *vw = work->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
962 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
963
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
964 image_background_set_black(vw->imd, black_window_background);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
965 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
966 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
967
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
968 gint view_window_find_image(ImageWindow *imd, gint *index, gint *total)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
969 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
970 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
971
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
972 work = view_window_list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
973 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
974 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
975 ViewWindow *vw = work->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
976 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
977
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
978 if (vw->imd == imd ||
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
979 (vw->fs && vw->fs->imd == imd))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
980 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
981 if (vw->ss)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
982 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
983 gint n;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
984 n = g_list_length(vw->ss->list_done);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
985 if (index) *index = n - 1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
986 if (total) *total = n + g_list_length(vw->ss->list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
987 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
988 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
989 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
990 if (index) *index = g_list_position(vw->list, vw->list_pointer);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
991 if (total) *total = g_list_length(vw->list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
992 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
993 return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
994 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
995 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
996
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
997 return FALSE;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
998 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
999
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1000 /*
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1001 *-----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1002 * view window menu routines and callbacks
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1003 *-----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1004 */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1005
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1006 static void view_new_window_cb(GtkWidget *widget, gpointer data)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1007 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1008 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1009 CollectionData *cd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1010 CollectInfo *info;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1011
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1012 cd = image_get_collection(vw->imd, &info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1013
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1014 if (cd && info)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1015 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1016 view_window_new_from_collection(cd, info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1017 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1018 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1019 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1020 view_window_new(image_get_path(vw->imd));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1021 }
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1022 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1023
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1024 static void view_edit_cb(GtkWidget *widget, gpointer data)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1025 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1026 ViewWindow *vw;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1027 gint n;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1028
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1029 vw = submenu_item_get_data(widget);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1030 n = GPOINTER_TO_INT(data);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1031 if (!vw) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1032
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1033 view_fullscreen_toggle(vw, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1034 start_editor_from_file(n, image_get_path(vw->imd));
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1035 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1036
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1037 static void view_alter_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1038 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1039 ViewWindow *vw;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1040 AlterType type;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1041
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1042 vw = submenu_item_get_data(widget);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1043 type = GPOINTER_TO_INT(data);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1044
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1045 if (!vw) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1046 image_alter(vw->imd, type);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1047 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1048
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1049 static void view_info_cb(GtkWidget *widget, gpointer data)
3
gqview
parents: 1
diff changeset
1050 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1051 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1052 ImageWindow *imd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1053
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1054 imd = view_window_active_image(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1055 info_window_new(image_get_path(imd), NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1056 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1057
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1058 static void view_wallpaper_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1059 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1060 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1061 ImageWindow *imd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1062
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1063 imd = view_window_active_image(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1064 image_to_root_window(imd, (image_zoom_get(imd) == 0.0));
3
gqview
parents: 1
diff changeset
1065 }
gqview
parents: 1
diff changeset
1066
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1067 static void view_zoom_in_cb(GtkWidget *widget, gpointer data)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1068 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1069 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1070
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1071 image_zoom_adjust(view_window_active_image(vw), get_zoom_increment());
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1072 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1073
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1074 static void view_zoom_out_cb(GtkWidget *widget, gpointer data)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1075 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1076 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1077
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1078 image_zoom_adjust(view_window_active_image(vw), -get_zoom_increment());
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1079 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1080
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1081 static void view_zoom_1_1_cb(GtkWidget *widget, gpointer data)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1082 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1083 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1084
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1085 image_zoom_set(view_window_active_image(vw), 1.0);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1086 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1087
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1088 static void view_zoom_fit_cb(GtkWidget *widget, gpointer data)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1089 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1090 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1091
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1092 image_zoom_set(view_window_active_image(vw), 0.0);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1093 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1094
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1095 static void view_copy_cb(GtkWidget *widget, gpointer data)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1096 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1097 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1098 ImageWindow *imd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1099
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1100 imd = view_window_active_image(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1101 file_util_copy(image_get_path(imd), NULL, NULL, imd->widget);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1102 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1103
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1104 static void view_move_cb(GtkWidget *widget, gpointer data)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1105 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1106 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1107 ImageWindow *imd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1108
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1109 imd = view_window_active_image(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1110 file_util_move(image_get_path(imd), NULL, NULL, imd->widget);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1111 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1112
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1113 static void view_rename_cb(GtkWidget *widget, gpointer data)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1114 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1115 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1116 ImageWindow *imd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1117
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1118 imd = view_window_active_image(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1119 file_util_rename(image_get_path(imd), NULL, imd->widget);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1120 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1121
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1122 static void view_delete_cb(GtkWidget *widget, gpointer data)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1123 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1124 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1125 ImageWindow *imd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1126
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1127 imd = view_window_active_image(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1128 file_util_delete(image_get_path(imd), NULL, imd->widget);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1129 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1130
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1131 static void view_fullscreen_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1132 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1133 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1134
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1135 view_fullscreen_toggle(vw, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1136 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1137
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1138 static void view_slideshow_start_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1139 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1140 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1141
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1142 view_slideshow_start(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1143 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1144
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1145 static void view_slideshow_stop_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1146 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1147 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1148
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1149 view_slideshow_stop(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1150 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1151
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1152 static void view_slideshow_pause_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1153 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1154 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1155
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1156 slideshow_pause_toggle(vw->ss);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1157 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1158
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1159 static void view_close_cb(GtkWidget *widget, gpointer data)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1160 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1161 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1162
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1163 view_window_close(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1164 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1165
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1166 static GtkWidget *view_popup_menu(ViewWindow *vw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1167 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1168 GtkWidget *menu;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1169 GtkWidget *item;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1170
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1171 menu = popup_menu_short_lived();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1172
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1173 menu_item_add_stock(menu, _("Zoom _in"), GTK_STOCK_ZOOM_IN, G_CALLBACK(view_zoom_in_cb), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1174 menu_item_add_stock(menu, _("Zoom _out"), GTK_STOCK_ZOOM_OUT, G_CALLBACK(view_zoom_out_cb), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1175 menu_item_add_stock(menu, _("Zoom _1:1"), GTK_STOCK_ZOOM_100, G_CALLBACK(view_zoom_1_1_cb), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1176 menu_item_add_stock(menu, _("Fit image to _window"), GTK_STOCK_ZOOM_FIT, G_CALLBACK(view_zoom_fit_cb), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1177 menu_item_add_divider(menu);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1178
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1179 item = submenu_add_edit(menu, NULL, G_CALLBACK(view_edit_cb), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1180 menu_item_add_divider(item);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1181 menu_item_add(item, _("Set as _wallpaper"), G_CALLBACK(view_wallpaper_cb), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1182
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1183 submenu_add_alter(menu, G_CALLBACK(view_alter_cb), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1184
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1185 menu_item_add_stock(menu, _("_Properties"), GTK_STOCK_PROPERTIES, G_CALLBACK(view_info_cb), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1186
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1187 menu_item_add_stock(menu, _("View in _new window"), GTK_STOCK_NEW, G_CALLBACK(view_new_window_cb), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1188
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1189 menu_item_add_divider(menu);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1190 menu_item_add_stock(menu, _("_Copy..."), GTK_STOCK_COPY, G_CALLBACK(view_copy_cb), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1191 menu_item_add(menu, _("_Move..."), G_CALLBACK(view_move_cb), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1192 menu_item_add(menu, _("_Rename..."), G_CALLBACK(view_rename_cb), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1193 menu_item_add_stock(menu, _("_Delete..."), GTK_STOCK_DELETE, G_CALLBACK(view_delete_cb), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1194
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1195 menu_item_add_divider(menu);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1196
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1197 if (vw->ss)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1198 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1199 menu_item_add(menu, _("_Stop slideshow"), G_CALLBACK(view_slideshow_stop_cb), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1200 if (slideshow_paused(vw->ss))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1201 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1202 item = menu_item_add(menu, _("Continue slides_how"),
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1203 G_CALLBACK(view_slideshow_pause_cb), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1204 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1205 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1206 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1207 item = menu_item_add(menu, _("Pause slides_how"),
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1208 G_CALLBACK(view_slideshow_pause_cb), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1209 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1210 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1211 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1212 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1213 item = menu_item_add(menu, _("_Start slideshow"), G_CALLBACK(view_slideshow_start_cb), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1214 gtk_widget_set_sensitive(item, (vw->list != NULL) || view_window_contains_collection(vw));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1215 item = menu_item_add(menu, _("Pause slides_how"), G_CALLBACK(view_slideshow_pause_cb), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1216 gtk_widget_set_sensitive(item, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1217 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1218
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1219 if (vw->fs)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1220 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1221 menu_item_add(menu, _("Exit _full screen"), G_CALLBACK(view_fullscreen_cb), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1222 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1223 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1224 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1225 menu_item_add(menu, _("_Full screen"), G_CALLBACK(view_fullscreen_cb), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1226 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1227
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1228 menu_item_add_divider(menu);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1229 menu_item_add_stock(menu, _("C_lose window"), GTK_STOCK_CLOSE, G_CALLBACK(view_close_cb), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1230
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1231 return menu;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1232 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1233
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1234 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1235 *-------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1236 * dnd confirm dir
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1237 *-------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1238 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1239
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1240 typedef struct {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1241 ViewWindow *vw;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1242 GList *list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1243 } CViewConfirmD;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1244
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1245 static void view_dir_list_cancel(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1246 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1247 /* do nothing */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1248 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1249
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1250 static void view_dir_list_do(ViewWindow *vw, GList *list, gint skip, gint recurse)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1251 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1252 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1253
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1254 view_window_set_list(vw, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1255
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1256 work = list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1257 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1258 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1259 gchar *path = work->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1260 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1261
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1262 if (isdir(path))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1263 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1264 if (!skip)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1265 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1266 GList *list = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1267
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1268 if (recurse)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1269 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1270 list = path_list_recursive(path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1271 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1272 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1273 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1274 path_list(path, &list, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1275 list = path_list_sort(list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1276 list = path_list_filter(list, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1277 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1278 if (list) vw->list = g_list_concat(vw->list, list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1279 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1280 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1281 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1282 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1283 /* FIXME: no filtering here */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1284 vw->list = g_list_append(vw->list, g_strdup(path));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1285 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1286 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1287
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1288 if (vw->list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1289 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1290 gchar *path;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1291
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1292 vw->list_pointer = vw->list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1293 path = vw->list->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1294 image_change_path(vw->imd, path, image_zoom_get_default(vw->imd, zoom_mode));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1295
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1296 work = vw->list->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1297 if (enable_read_ahead && work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1298 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1299 path = work->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1300 image_prebuffer_set(vw->imd, path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1301 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1302 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1303 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1304 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1305 image_change_path(vw->imd, NULL, image_zoom_get_default(vw->imd, zoom_mode));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1306 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1307 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1308
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1309 static void view_dir_list_add(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1310 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1311 CViewConfirmD *d = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1312 view_dir_list_do(d->vw, d->list, FALSE, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1313 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1314
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1315 static void view_dir_list_recurse(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1316 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1317 CViewConfirmD *d = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1318 view_dir_list_do(d->vw, d->list, FALSE, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1319 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1320
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1321 static void view_dir_list_skip(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1322 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1323 CViewConfirmD *d = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1324 view_dir_list_do(d->vw, d->list, TRUE, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1325 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1326
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1327 static void view_dir_list_destroy(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1328 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1329 CViewConfirmD *d = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1330 path_list_free(d->list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1331 g_free(d);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1332 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1333
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1334 static GtkWidget *view_confirm_dir_list(ViewWindow *vw, GList *list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1335 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1336 GtkWidget *menu;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1337 CViewConfirmD *d;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1338
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1339 d = g_new(CViewConfirmD, 1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1340 d->vw = vw;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1341 d->list = list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1342
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1343 menu = popup_menu_short_lived();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1344 g_signal_connect(G_OBJECT(menu), "destroy",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1345 G_CALLBACK(view_dir_list_destroy), d);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1346
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1347 menu_item_add_stock(menu, _("Dropped list includes folders."), GTK_STOCK_DND_MULTIPLE, NULL, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1348 menu_item_add_divider(menu);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1349 menu_item_add_stock(menu, _("_Add contents"), GTK_STOCK_OK, G_CALLBACK(view_dir_list_add), d);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1350 menu_item_add_stock(menu, _("Add contents _recursive"), GTK_STOCK_ADD, G_CALLBACK(view_dir_list_recurse), d);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1351 menu_item_add_stock(menu, _("_Skip folders"), GTK_STOCK_REMOVE, G_CALLBACK(view_dir_list_skip), d);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1352 menu_item_add_divider(menu);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1353 menu_item_add_stock(menu, _("Cancel"), GTK_STOCK_CANCEL, G_CALLBACK(view_dir_list_cancel), d);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1354
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1355 return menu;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1356 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1357
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1358 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1359 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1360 * image drag and drop routines
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1361 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1362 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1363
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1364 static void view_window_get_dnd_data(GtkWidget *widget, GdkDragContext *context,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1365 gint x, gint y,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1366 GtkSelectionData *selection_data, guint info,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1367 guint time, gpointer data)
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1368 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1369 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1370 ImageWindow *imd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1371
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1372 if (gtk_drag_get_source_widget(context) == vw->imd->image) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1373
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1374 imd = vw->imd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1375
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1376 if (info == TARGET_URI_LIST || info == TARGET_APP_COLLECTION_MEMBER)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1377 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1378 CollectionData *source;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1379 GList *list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1380 GList *info_list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1381
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1382 if (info == TARGET_URI_LIST)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1383 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1384 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1385
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1386 list = uri_list_from_text(selection_data->data, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1387
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1388 work = list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1389 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1390 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1391 if (isdir((gchar *)work->data))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1392 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1393 GtkWidget *menu;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1394 menu = view_confirm_dir_list(vw, list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1395 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 0, time);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1396 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1397 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1398 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1399 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1400
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1401 list = path_list_filter(list, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1402
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1403 source = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1404 info_list = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1405 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1406 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1407 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1408 source = collection_from_dnd_data((gchar *)selection_data->data, &list, &info_list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1409 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1410
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1411 if (list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1412 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1413 gchar *path;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1414
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1415 path = list->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1416 if (isfile(path))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1417 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1418 view_slideshow_stop(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1419 view_window_set_list(vw, NULL);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1420
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1421 if (source && info_list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1422 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1423 image_change_from_collection(imd, source, info_list->data, image_zoom_get_default(imd, zoom_mode));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1424 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1425 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1426 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1427 if (list->next)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1428 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1429 vw->list = list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1430 list = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1431
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1432 vw->list_pointer = vw->list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1433 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1434 image_change_path(imd, path, image_zoom_get_default(imd, zoom_mode));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1435 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1436 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1437 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1438 path_list_free(list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1439 g_list_free(info_list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1440 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1441 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1442
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1443 static void view_window_set_dnd_data(GtkWidget *widget, GdkDragContext *context,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1444 GtkSelectionData *selection_data, guint info,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1445 guint time, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1446 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1447 ViewWindow *vw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1448 const gchar *path;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1449
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1450 path = image_get_path(vw->imd);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1451
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1452 if (path)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1453 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1454 gchar *text = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1455 gint len;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1456 gint plain_text;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1457 GList *list;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1458
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1459 switch (info)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1460 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1461 case TARGET_URI_LIST:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1462 plain_text = FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1463 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1464 case TARGET_TEXT_PLAIN:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1465 default:
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1466 plain_text = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1467 break;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1468 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1469 list = g_list_append(NULL, (gchar *)path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1470 text = uri_text_from_list(list, &len, plain_text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1471 g_list_free(list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1472 if (text)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1473 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1474 gtk_selection_data_set (selection_data, selection_data->target,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1475 8, text, len);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1476 g_free(text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1477 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1478 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1479 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1480 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1481 gtk_selection_data_set (selection_data, selection_data->target,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1482 8, NULL, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1483 }
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1484 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1485
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1486 static void view_window_dnd_init(ViewWindow *vw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1487 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1488 ImageWindow *imd;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1489
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1490 imd = vw->imd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1491
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1492 gtk_drag_source_set(imd->image, GDK_BUTTON2_MASK,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1493 dnd_file_drag_types, dnd_file_drag_types_count,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1494 GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1495 g_signal_connect(G_OBJECT(imd->image), "drag_data_get",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1496 G_CALLBACK(view_window_set_dnd_data), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1497
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1498 gtk_drag_dest_set(imd->image,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1499 GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_DROP,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1500 dnd_file_drop_types, dnd_file_drop_types_count,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1501 GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1502 g_signal_connect(G_OBJECT(imd->image), "drag_data_received",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1503 G_CALLBACK(view_window_get_dnd_data), vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1504 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1505
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1506 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1507 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1508 * maintenance (for rename, move, remove)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1509 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1510 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1511
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1512 static void view_real_removed(ViewWindow *vw, const gchar *path, GList *ignore_list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1513 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1514 ImageWindow *imd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1515 const gchar *image_path;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1516
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1517 imd = view_window_active_image(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1518 image_path = image_get_path(imd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1519
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1520 if (image_path && strcmp(image_path, path) == 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1521 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1522 if (vw->list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1523 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1524 view_list_step(vw, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1525 if (image_get_path(imd) == image_path)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1526 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1527 view_list_step(vw, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1528 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1529 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1530 else if (view_window_contains_collection(vw))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1531 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1532 view_collection_step(vw, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1533 if (image_get_path(imd) == image_path)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1534 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1535 view_collection_step(vw, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1536 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1537 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1538 if (image_get_path(imd) == image_path)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1539 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1540 image_change_path(imd, NULL, image_zoom_get_default(imd, zoom_mode));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1541 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1542 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1543
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1544 if (vw->list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1545 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1546 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1547 GList *old;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1548
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1549 old = vw->list_pointer;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1550
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1551 work = vw->list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1552 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1553 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1554 gchar *chk_path;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1555 GList *chk_link;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1556
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1557 chk_path = work->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1558 chk_link = work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1559 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1560
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1561 if (strcmp(chk_path, path) == 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1562 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1563 if (vw->list_pointer == chk_link)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1564 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1565 vw->list_pointer = (chk_link->next) ? chk_link->next : chk_link->prev;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1566 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1567 vw->list = g_list_remove(vw->list, chk_path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1568 g_free(chk_path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1569 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1570 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1571
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1572 /* handles stepping correctly when same image is in the list more than once */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1573 if (old && old != vw->list_pointer)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1574 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1575 gchar *path;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1576
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1577 if (vw->list_pointer)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1578 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1579 path = vw->list_pointer->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1580 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1581 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1582 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1583 path = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1584 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1585
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1586 image_change_path(imd, path, image_zoom_get_default(imd, zoom_mode));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1587 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1588 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1589
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1590 if (vw->overlay_id != -1) image_overlay_update(imd, vw->overlay_id);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1591 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1592
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1593 static void view_real_moved(ViewWindow *vw, const gchar *source, const gchar *dest)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1594 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1595 ImageWindow *imd;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1596 const gchar *image_path;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1597
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1598 imd = view_window_active_image(vw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1599 image_path = image_get_path(imd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1600
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1601 if (image_path && strcmp(image_path, source) == 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1602 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1603 image_set_path(imd, dest);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1604 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1605
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1606 if (vw->list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1607 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1608 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1609 work = vw->list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1610 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1611 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1612 gchar *chk_path;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1613
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1614 chk_path = work->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1615
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1616 if (strcmp(chk_path, source) == 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1617 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1618 work->data = g_strdup(dest);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1619 g_free(chk_path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1620 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1621
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1622 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1623 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1624 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1625 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1626
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1627 void view_window_maint_removed(const gchar *path, GList *ignore_list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1628 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1629 GList *work = view_window_list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1630 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1631 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1632 ViewWindow *vw = work->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1633 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1634
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1635 view_real_removed(vw, path, ignore_list);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1636 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1637 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1638
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1639 void view_window_maint_moved(const gchar *source, const gchar *dest)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1640 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1641 GList *work = view_window_list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1642 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1643 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1644 ViewWindow *vw = work->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1645 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1646
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1647 view_real_moved(vw, source, dest);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1648 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1649 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 4
diff changeset
1650