annotate src/layout.c @ 368:95fe470440ad

New Go to directory view feature that permits to find and display the directory corresponding to an image view. For example, when you open an image in new window from collection, right clicking on the newly displayed image will let you choose Go to directory view, which would open a new window, with image and directory list. If current directory is the one of the image, menu item is disabled.
author zas_
date Tue, 15 Apr 2008 06:56:25 +0000
parents 77103f3f2cb1
children 5afe77bb563a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1 /*
196
f6e307c7bad6 rename GQview -> Geeqie over the code
nadvornik
parents: 166
diff changeset
2 * Geeqie
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
3 * (C) 2006 John Ellis
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
4 *
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
5 * Author: John Ellis
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
6 *
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
7 * This software is released under the GNU General Public License (GNU GPL).
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
8 * Please read the included file COPYING for more information.
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
9 * This software comes with no warranty of any kind, use at your own risk!
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
10 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
11
281
9995c5fb202a gqview.h -> main.h
zas_
parents: 278
diff changeset
12 #include "main.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
13 #include "layout.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
14
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
15 #include "image.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
16 #include "layout_config.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
17 #include "layout_image.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
18 #include "layout_util.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
19 #include "menu.h"
23
17acca639a86 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
20 #include "pixbuf-renderer.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
21 #include "pixbuf_util.h"
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
22 #include "utilops.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
23 #include "view_dir_list.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
24 #include "view_dir_tree.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
25 #include "view_file_list.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
26 #include "view_file_icon.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
27 #include "ui_bookmark.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
28 #include "ui_fileops.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
29 #include "ui_menu.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
30 #include "ui_misc.h"
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
31 #include "ui_tabcomp.h"
273
e0e2c2b72c5a reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents: 270
diff changeset
32 #include "histogram.h"
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
33
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
34
41
6281cc38e5ca Wed Apr 27 15:17:57 2005 John Ellis <johne@verizon.net>
gqview
parents: 23
diff changeset
35 #define MAINWINDOW_DEF_WIDTH 700
6281cc38e5ca Wed Apr 27 15:17:57 2005 John Ellis <johne@verizon.net>
gqview
parents: 23
diff changeset
36 #define MAINWINDOW_DEF_HEIGHT 500
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
37
41
6281cc38e5ca Wed Apr 27 15:17:57 2005 John Ellis <johne@verizon.net>
gqview
parents: 23
diff changeset
38 #define MAIN_WINDOW_DIV_HPOS 270
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
39 #define MAIN_WINDOW_DIV_VPOS 200
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
40
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
41 #define TOOLWINDOW_DEF_WIDTH 260
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
42 #define TOOLWINDOW_DEF_HEIGHT 450
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
43 #define PROGRESS_WIDTH 150
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
44 #define ZOOM_LABEL_WIDTH 64
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
45
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
46 #define PANE_DIVIDER_SIZE 10
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
47
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
48
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
49 GList *layout_window_list = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
50
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
51
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
52 static void layout_list_scroll_to_subpart(LayoutWindow *lw, const gchar *needle);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
53
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
54
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
55 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
56 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
57 * misc
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
58 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
59 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
60
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
61 gint layout_valid(LayoutWindow **lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
62 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
63 if (*lw == NULL)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
64 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
65 if (layout_window_list) *lw = layout_window_list->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
66 return (*lw != NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
67 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
68
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
69 return (g_list_find(layout_window_list, *lw) != NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
70 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
71
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
72 LayoutWindow *layout_find_by_image(ImageWindow *imd)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
73 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
74 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
75
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
76 work = layout_window_list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
77 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
78 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
79 LayoutWindow *lw = work->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
80 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
81
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
82 if (lw->image == imd) return lw;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
83 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
84
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
85 return NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
86 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
87
368
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 340
diff changeset
88 LayoutWindow *layout_find_by_image_fd(ImageWindow *imd)
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 340
diff changeset
89 {
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 340
diff changeset
90 GList *work;
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 340
diff changeset
91
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 340
diff changeset
92 work = layout_window_list;
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 340
diff changeset
93 while (work)
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 340
diff changeset
94 {
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 340
diff changeset
95 LayoutWindow *lw = work->data;
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 340
diff changeset
96 work = work->next;
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 340
diff changeset
97 if (lw->image->image_fd == imd->image_fd)
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 340
diff changeset
98 return lw;
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 340
diff changeset
99
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 340
diff changeset
100 }
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 340
diff changeset
101
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 340
diff changeset
102 return NULL;
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 340
diff changeset
103 }
95fe470440ad New Go to directory view feature that permits to find and display the directory
zas_
parents: 340
diff changeset
104
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
105 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
106 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
107 * menu, toolbar, and dir view
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
108 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
109 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
110
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
111 static void layout_path_entry_changed_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
112 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
113 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
114 gchar *buf;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
115
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
116 if (gtk_combo_box_get_active(GTK_COMBO_BOX(widget)) < 0) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
117
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
118 buf = g_strdup(gtk_entry_get_text(GTK_ENTRY(lw->path_entry)));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
119 if (!buf || (lw->path && strcmp(buf, lw->path) == 0))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
120 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
121 g_free(buf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
122 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
123 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
124
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
125 layout_set_path(lw, buf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
126
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
127 g_free(buf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
128 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
129
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
130 static void layout_path_entry_tab_cb(const gchar *path, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
131 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
132 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
133 gchar *buf;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
134 gchar *base;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
135
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
136 buf = g_strdup(path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
137 parse_out_relatives(buf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
138 base = remove_level_from_path(buf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
139
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
140 if (isdir(buf))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
141 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
142 if ((!lw->path || strcmp(lw->path, buf) != 0) && layout_set_path(lw, buf))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
143 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
144 gint pos = -1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
145 /* put the '/' back, if we are in tab completion for a dir and result was path change */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
146 gtk_editable_insert_text(GTK_EDITABLE(lw->path_entry), "/", -1, &pos);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
147 gtk_editable_set_position(GTK_EDITABLE(lw->path_entry),
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
148 strlen(gtk_entry_get_text(GTK_ENTRY(lw->path_entry))));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
149 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
150 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
151 else if (lw->path && strcmp(lw->path, base) == 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
152 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
153 layout_list_scroll_to_subpart(lw, filename_from_path(buf));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
154 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
155
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
156 g_free(base);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
157 g_free(buf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
158 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
159
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
160 static void layout_path_entry_cb(const gchar *path, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
161 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
162 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
163 gchar *buf;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
164
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
165 buf = g_strdup(path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
166 parse_out_relatives(buf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
167
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
168 layout_set_path(lw, buf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
169
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
170 g_free(buf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
171 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
172
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
173 static void layout_vdlist_select_cb(ViewDirList *vdl, const gchar *path, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
174 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
175 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
176
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
177 layout_set_path(lw, path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
178 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
179
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
180 static void layout_vdtree_select_cb(ViewDirTree *vdt, const gchar *path, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
181 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
182 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
183
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
184 layout_set_path(lw, path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
185 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
186
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
187 static GtkWidget *layout_tool_setup(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
188 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
189 GtkWidget *box;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
190 GtkWidget *menu_bar;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
191 GtkWidget *tabcomp;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
192
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
193 box = gtk_vbox_new(FALSE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
194
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
195 menu_bar = layout_actions_menu_bar(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
196 gtk_box_pack_start(GTK_BOX(box), menu_bar, FALSE, FALSE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
197 gtk_widget_show(menu_bar);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
198
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
199 lw->toolbar = layout_button_bar(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
200 gtk_box_pack_start(GTK_BOX(box), lw->toolbar, FALSE, FALSE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
201 if (!lw->toolbar_hidden) gtk_widget_show(lw->toolbar);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
202
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
203 tabcomp = tab_completion_new_with_history(&lw->path_entry, NULL, "path_list", -1,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
204 layout_path_entry_cb, lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
205 tab_completion_add_tab_func(lw->path_entry, layout_path_entry_tab_cb, lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
206 gtk_box_pack_start(GTK_BOX(box), tabcomp, FALSE, FALSE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
207 gtk_widget_show(tabcomp);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
208
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
209 g_signal_connect(G_OBJECT(lw->path_entry->parent), "changed",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
210 G_CALLBACK(layout_path_entry_changed_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
211
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
212 if (lw->tree_view)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
213 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
214 lw->vdt = vdtree_new(lw->path, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
215 vdtree_set_layout(lw->vdt, lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
216 vdtree_set_select_func(lw->vdt, layout_vdtree_select_cb, lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
217
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
218 lw->dir_view = lw->vdt->widget;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
219 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
220 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
221 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
222 lw->vdl = vdlist_new(lw->path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
223 vdlist_set_layout(lw->vdl, lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
224 vdlist_set_select_func(lw->vdl, layout_vdlist_select_cb, lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
225
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
226 lw->dir_view = lw->vdl->widget;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
227 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
228
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
229 gtk_box_pack_start(GTK_BOX(box), lw->dir_view, TRUE, TRUE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
230 gtk_widget_show(lw->dir_view);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
231
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
232 gtk_widget_show(box);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
233
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
234 return box;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
235 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
236
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
237 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
238 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
239 * sort button (and menu)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
240 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
241 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
242
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
243 static void layout_sort_menu_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
244 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
245 LayoutWindow *lw;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
246 SortType type;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
247
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
248 if (!gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) return;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
249
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
250 lw = submenu_item_get_data(widget);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
251 if (!lw) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
252
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
253 type = (SortType)GPOINTER_TO_INT(data);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
254
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
255 layout_sort_set(lw, type, lw->sort_ascend);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
256 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
257
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
258 static void layout_sort_menu_ascend_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
259 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
260 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
261
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
262 layout_sort_set(lw, lw->sort_method, !lw->sort_ascend);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
263 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
264
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
265 static void layout_sort_menu_hide_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
266 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
267 /* destroy the menu */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
268 gtk_widget_unref(GTK_WIDGET(widget));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
269 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
270
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
271 static void layout_sort_button_press_cb(GtkWidget *widget, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
272 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
273 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
274 GtkWidget *menu;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
275 GdkEvent *event;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
276 guint32 etime;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
277
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
278 menu = submenu_add_sort(NULL, G_CALLBACK(layout_sort_menu_cb), lw, FALSE, FALSE, TRUE, lw->sort_method);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
279
88
2099ee3f9a8d Fri Oct 27 19:45:32 2006 John Ellis <johne@verizon.net>
gqview
parents: 81
diff changeset
280 /* take ownership of menu */
2099ee3f9a8d Fri Oct 27 19:45:32 2006 John Ellis <johne@verizon.net>
gqview
parents: 81
diff changeset
281 #ifdef GTK_OBJECT_FLOATING
2099ee3f9a8d Fri Oct 27 19:45:32 2006 John Ellis <johne@verizon.net>
gqview
parents: 81
diff changeset
282 /* GTK+ < 2.10 */
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
283 g_object_ref(G_OBJECT(menu));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
284 gtk_object_sink(GTK_OBJECT(menu));
88
2099ee3f9a8d Fri Oct 27 19:45:32 2006 John Ellis <johne@verizon.net>
gqview
parents: 81
diff changeset
285 #else
2099ee3f9a8d Fri Oct 27 19:45:32 2006 John Ellis <johne@verizon.net>
gqview
parents: 81
diff changeset
286 /* GTK+ >= 2.10 */
2099ee3f9a8d Fri Oct 27 19:45:32 2006 John Ellis <johne@verizon.net>
gqview
parents: 81
diff changeset
287 g_object_ref_sink(G_OBJECT(menu));
2099ee3f9a8d Fri Oct 27 19:45:32 2006 John Ellis <johne@verizon.net>
gqview
parents: 81
diff changeset
288 #endif
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
289
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
290 /* ascending option */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
291 menu_item_add_divider(menu);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
292 menu_item_add_check(menu, _("Ascending"), lw->sort_ascend, G_CALLBACK(layout_sort_menu_ascend_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
293
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
294 g_signal_connect(G_OBJECT(menu), "selection_done",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
295 G_CALLBACK(layout_sort_menu_hide_cb), NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
296
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
297 event = gtk_get_current_event();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
298 if (event)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
299 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
300 etime = gdk_event_get_time(event);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
301 gdk_event_free(event);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
302 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
303 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
304 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
305 etime = 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
306 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
307
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
308 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 0, etime);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
309 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
310
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
311 static GtkWidget *layout_sort_button(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
312 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
313 GtkWidget *button;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
314
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
315 button = gtk_button_new_with_label(sort_type_get_text(lw->sort_method));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
316 g_signal_connect(G_OBJECT(button), "clicked",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
317 G_CALLBACK(layout_sort_button_press_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
318 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
319
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
320 return button;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
321 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
322
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
323 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
324 *-----------------------------------------------------------------------------
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
325 * color profile button (and menu)
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
326 *-----------------------------------------------------------------------------
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
327 */
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
328
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
329 static void layout_color_menu_enable_cb(GtkWidget *widget, gpointer data)
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
330 {
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
331 LayoutWindow *lw = data;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
332
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
333 layout_image_color_profile_set_use(lw, (!layout_image_color_profile_get_use(lw)));
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
334 layout_image_refresh(lw);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
335 }
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
336
114
50fc73e08550 Mon Nov 27 01:23:23 2006 John Ellis <johne@verizon.net>
gqview
parents: 113
diff changeset
337 static void layout_color_menu_use_image_cb(GtkWidget *widget, gpointer data)
50fc73e08550 Mon Nov 27 01:23:23 2006 John Ellis <johne@verizon.net>
gqview
parents: 113
diff changeset
338 {
50fc73e08550 Mon Nov 27 01:23:23 2006 John Ellis <johne@verizon.net>
gqview
parents: 113
diff changeset
339 LayoutWindow *lw = data;
50fc73e08550 Mon Nov 27 01:23:23 2006 John Ellis <johne@verizon.net>
gqview
parents: 113
diff changeset
340 gint input, screen, use_image;
50fc73e08550 Mon Nov 27 01:23:23 2006 John Ellis <johne@verizon.net>
gqview
parents: 113
diff changeset
341
50fc73e08550 Mon Nov 27 01:23:23 2006 John Ellis <johne@verizon.net>
gqview
parents: 113
diff changeset
342 if (!layout_image_color_profile_get(lw, &input, &screen, &use_image)) return;
50fc73e08550 Mon Nov 27 01:23:23 2006 John Ellis <johne@verizon.net>
gqview
parents: 113
diff changeset
343 layout_image_color_profile_set(lw, input, screen, !use_image);
50fc73e08550 Mon Nov 27 01:23:23 2006 John Ellis <johne@verizon.net>
gqview
parents: 113
diff changeset
344 layout_image_refresh(lw);
50fc73e08550 Mon Nov 27 01:23:23 2006 John Ellis <johne@verizon.net>
gqview
parents: 113
diff changeset
345 }
50fc73e08550 Mon Nov 27 01:23:23 2006 John Ellis <johne@verizon.net>
gqview
parents: 113
diff changeset
346
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
347 #define COLOR_MENU_KEY "color_menu_key"
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
348
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
349 static void layout_color_menu_input_cb(GtkWidget *widget, gpointer data)
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
350 {
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
351 LayoutWindow *lw = data;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
352 gint type;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
353 gint input, screen, use_image;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
354
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
355 if (!gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) return;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
356
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
357 type = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), COLOR_MENU_KEY));
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
358 if (type < 0 || type > COLOR_PROFILE_INPUTS) return;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
359
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
360 if (!layout_image_color_profile_get(lw, &input, &screen, &use_image)) return;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
361 if (type == input) return;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
362
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
363 layout_image_color_profile_set(lw, type, screen, use_image);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
364 layout_image_refresh(lw);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
365 }
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
366
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
367 static void layout_color_menu_screen_cb(GtkWidget *widget, gpointer data)
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
368 {
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
369 LayoutWindow *lw = data;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
370 gint type;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
371 gint input, screen, use_image;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
372
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
373 if (!gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) return;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
374
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
375 type = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), COLOR_MENU_KEY));
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
376 if (type < 0 || type > 1) return;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
377
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
378 if (!layout_image_color_profile_get(lw, &input, &screen, &use_image)) return;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
379 if (type == screen) return;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
380
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
381 layout_image_color_profile_set(lw, input, type, use_image);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
382 layout_image_refresh(lw);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
383 }
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
384
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
385 static gchar *layout_color_name_parse(const gchar *name)
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
386 {
269
dca6c0b9f862 Simplify layout_color_name_parse() using g_strdelimit().
zas_
parents: 268
diff changeset
387 if (!name) return g_strdup(_("Empty"));
dca6c0b9f862 Simplify layout_color_name_parse() using g_strdelimit().
zas_
parents: 268
diff changeset
388 return g_strdelimit(g_strdup(name), "_", '-');
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
389 }
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
390
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
391 static void layout_color_button_press_cb(GtkWidget *widget, gpointer data)
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
392 {
288
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 281
diff changeset
393 #ifndef HAVE_LCMS
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 281
diff changeset
394 gchar *msg = g_strdup_printf(_("This installation of %s was not built with support for color profiles."), GQ_APPNAME);
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 281
diff changeset
395 file_util_warning_dialog(_("Color profiles not supported"),
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 281
diff changeset
396 msg,
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 281
diff changeset
397 GTK_STOCK_DIALOG_INFO, widget);
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 281
diff changeset
398 g_free(msg);
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 281
diff changeset
399 return;
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 281
diff changeset
400 #else
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
401 LayoutWindow *lw = data;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
402 GtkWidget *menu;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
403 GtkWidget *item;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
404 gchar *buf;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
405 gchar *front;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
406 gchar *end;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
407 gint active;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
408 gint input = 0;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
409 gint screen = 0;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
410 gint use_image = 0;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
411 gint i;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
412
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
413 if (!layout_image_color_profile_get(lw, &input, &screen, &use_image)) return;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
414
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
415 menu = popup_menu_short_lived();
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
416
270
67db7e4505c6 Move active variable affectation after the test.
zas_
parents: 269
diff changeset
417 active = layout_image_color_profile_get_use(lw);
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
418 menu_item_add_check(menu, _("Use _color profiles"), active,
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
419 G_CALLBACK(layout_color_menu_enable_cb), lw);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
420
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
421 menu_item_add_divider(menu);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
422
114
50fc73e08550 Mon Nov 27 01:23:23 2006 John Ellis <johne@verizon.net>
gqview
parents: 113
diff changeset
423 item = menu_item_add_check(menu, _("Use profile from _image"), use_image,
50fc73e08550 Mon Nov 27 01:23:23 2006 John Ellis <johne@verizon.net>
gqview
parents: 113
diff changeset
424 G_CALLBACK(layout_color_menu_use_image_cb), lw);
50fc73e08550 Mon Nov 27 01:23:23 2006 John Ellis <johne@verizon.net>
gqview
parents: 113
diff changeset
425 gtk_widget_set_sensitive(item, active);
50fc73e08550 Mon Nov 27 01:23:23 2006 John Ellis <johne@verizon.net>
gqview
parents: 113
diff changeset
426
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
427 front = g_strdup_printf(_("Input _%d:"), 0);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
428 buf = g_strdup_printf("%s %s", front, "sRGB");
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
429 g_free(front);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
430 item = menu_item_add_radio(menu, NULL,
327
049d6b00cc14 Rename color profile options.
zas_
parents: 320
diff changeset
431 buf, (options->color_profile.input_type == 0),
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
432 G_CALLBACK(layout_color_menu_input_cb), lw);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
433 g_free(buf);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
434 g_object_set_data(G_OBJECT(item), COLOR_MENU_KEY, GINT_TO_POINTER(0));
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
435 gtk_widget_set_sensitive(item, active);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
436
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
437 for (i = 0; i < COLOR_PROFILE_INPUTS; i++)
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
438 {
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
439 const gchar *name;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
440
327
049d6b00cc14 Rename color profile options.
zas_
parents: 320
diff changeset
441 name = options->color_profile.input_name[i];
049d6b00cc14 Rename color profile options.
zas_
parents: 320
diff changeset
442 if (!name) name = filename_from_path(options->color_profile.input_file[i]);
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
443
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
444 front = g_strdup_printf(_("Input _%d:"), i + 1);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
445 end = layout_color_name_parse(name);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
446 buf = g_strdup_printf("%s %s", front, end);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
447 g_free(front);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
448 g_free(end);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
449
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
450 item = menu_item_add_radio(menu, item,
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
451 buf, (i + 1 == input),
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
452 G_CALLBACK(layout_color_menu_input_cb), lw);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
453 g_free(buf);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
454 g_object_set_data(G_OBJECT(item), COLOR_MENU_KEY, GINT_TO_POINTER(i + 1));
327
049d6b00cc14 Rename color profile options.
zas_
parents: 320
diff changeset
455 gtk_widget_set_sensitive(item, active && options->color_profile.input_file[i]);
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
456 }
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
457
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
458 menu_item_add_divider(menu);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
459
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
460 buf = g_strdup_printf("%s sRGB", _("Screen"));
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
461 item = menu_item_add_radio(menu, NULL,
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
462 buf, (screen == 0),
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
463 G_CALLBACK(layout_color_menu_screen_cb), lw);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
464 g_free(buf);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
465 g_object_set_data(G_OBJECT(item), COLOR_MENU_KEY, GINT_TO_POINTER(0));
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
466 gtk_widget_set_sensitive(item, active);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
467
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
468 item = menu_item_add_radio(menu, item,
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
469 _("_Screen profile"), (screen == 1),
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
470 G_CALLBACK(layout_color_menu_screen_cb), lw);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
471 g_object_set_data(G_OBJECT(item), COLOR_MENU_KEY, GINT_TO_POINTER(1));
327
049d6b00cc14 Rename color profile options.
zas_
parents: 320
diff changeset
472 gtk_widget_set_sensitive(item, active && options->color_profile.screen_file);
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
473
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
474 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 0, GDK_CURRENT_TIME);
288
d1f74154463e Replace occurences of Geeqie / geeqie by constants defined in main.h.
zas_
parents: 281
diff changeset
475 #endif /* HAVE_LCMS */
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
476 }
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
477
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
478 static GtkWidget *layout_color_button(LayoutWindow *lw)
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
479 {
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
480 GtkWidget *button;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
481 GtkWidget *image;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
482 gint enable;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
483
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
484 button = gtk_button_new();
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
485 image = gtk_image_new_from_stock(GTK_STOCK_SELECT_COLOR, GTK_ICON_SIZE_MENU);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
486 gtk_container_add(GTK_CONTAINER(button), image);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
487 gtk_widget_show(image);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
488 g_signal_connect(G_OBJECT(button), "clicked",
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
489 G_CALLBACK(layout_color_button_press_cb), lw);
268
98268a6b8182 Tidy up, whitespaces and indentation fix.
zas_
parents: 254
diff changeset
490 gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
491
268
98268a6b8182 Tidy up, whitespaces and indentation fix.
zas_
parents: 254
diff changeset
492 #ifdef HAVE_LCMS
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
493 enable = (lw->image) ? lw->image->color_profile_enable : FALSE;
268
98268a6b8182 Tidy up, whitespaces and indentation fix.
zas_
parents: 254
diff changeset
494 #else
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
495 enable = FALSE;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
496 #endif
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
497 gtk_widget_set_sensitive(image, enable);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
498
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
499 return button;
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
500 }
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
501
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
502
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
503 /*
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
504 *-----------------------------------------------------------------------------
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
505 * status bar
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
506 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
507 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
508
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
509 void layout_status_update_progress(LayoutWindow *lw, gdouble val, const gchar *text)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
510 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
511 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
512 if (!lw->info_progress_bar) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
513
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
514 gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(lw->info_progress_bar), val);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
515 gtk_progress_bar_set_text(GTK_PROGRESS_BAR(lw->info_progress_bar), (text) ? text : " ");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
516 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
517
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
518 void layout_status_update_info(LayoutWindow *lw, const gchar *text)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
519 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
520 gchar *buf = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
521
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
522 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
523
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
524 if (!text)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
525 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
526 gint n;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
527 gint64 n_bytes = 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
528 gint s;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
529 gint64 s_bytes = 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
530 const gchar *ss;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
531
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
532 if (layout_image_slideshow_active(lw))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
533 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
534 if (!layout_image_slideshow_paused(lw))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
535 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
536 ss = _(" Slideshow");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
537 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
538 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
539 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
540 ss = _(" Paused");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
541 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
542 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
543 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
544 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
545 ss = "";
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
546 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
547
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
548 n = layout_list_count(lw, &n_bytes);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
549 s = layout_selection_count(lw, &s_bytes);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
550
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
551 layout_bars_new_selection(lw, s);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
552
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
553 if (s > 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
554 {
268
98268a6b8182 Tidy up, whitespaces and indentation fix.
zas_
parents: 254
diff changeset
555 gchar *b = text_from_size_abrev(n_bytes);
98268a6b8182 Tidy up, whitespaces and indentation fix.
zas_
parents: 254
diff changeset
556 gchar *sb = text_from_size_abrev(s_bytes);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
557 buf = g_strdup_printf(_("%s, %d files (%s, %d)%s"), b, n, sb, s, ss);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
558 g_free(b);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
559 g_free(sb);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
560 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
561 else if (n > 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
562 {
268
98268a6b8182 Tidy up, whitespaces and indentation fix.
zas_
parents: 254
diff changeset
563 gchar *b = text_from_size_abrev(n_bytes);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
564 buf = g_strdup_printf(_("%s, %d files%s"), b, n, ss);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
565 g_free(b);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
566 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
567 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
568 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
569 buf = g_strdup_printf(_("%d files%s"), n, ss);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
570 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
571
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
572 text = buf;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
573
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
574 layout_image_overlay_update(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
575 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
576
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
577 gtk_label_set_text(GTK_LABEL(lw->info_status), text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
578 g_free(buf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
579 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
580
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
581 void layout_status_update_image(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
582 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
583 gchar *text;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
584 gchar *b;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
585
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
586 if (!layout_valid(&lw) || !lw->image) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
587
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
588 text = image_zoom_get_as_text(lw->image);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
589 gtk_label_set_text(GTK_LABEL(lw->info_zoom), text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
590 g_free(text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
591
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
592 b = text_from_size(lw->image->size);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
593
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
594 if (lw->image->unknown)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
595 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
596 if (image_get_path(lw->image) && !access_file(image_get_path(lw->image), R_OK))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
597 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
598 text = g_strdup_printf(_("(no read permission) %s bytes"), b);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
599 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
600 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
601 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
602 text = g_strdup_printf(_("( ? x ? ) %s bytes"), b);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
603 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
604 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
605 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
606 {
23
17acca639a86 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
607 gint width, height;
17acca639a86 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
608
17acca639a86 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
609 pixbuf_renderer_get_image_size(PIXBUF_RENDERER(lw->image->pr), &width, &height);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
610 text = g_strdup_printf(_("( %d x %d ) %s bytes"),
23
17acca639a86 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
611 width, height, b);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
612 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
613
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
614 gtk_label_set_text(GTK_LABEL(lw->info_details), text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
615
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
616 g_free(b);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
617 g_free(text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
618 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
619
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
620 void layout_status_update_all(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
621 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
622 layout_status_update_progress(lw, 0.0, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
623 layout_status_update_info(lw, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
624 layout_status_update_image(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
625 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
626
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
627 static GtkWidget *layout_status_label(gchar *text, GtkWidget *box, gint start, gint size, gint expand)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
628 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
629 GtkWidget *label;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
630 GtkWidget *frame;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
631
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
632 frame = gtk_frame_new(NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
633 if (size) gtk_widget_set_size_request(frame, size, -1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
634 gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
635 if (start)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
636 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
637 gtk_box_pack_start(GTK_BOX(box), frame, expand, expand, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
638 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
639 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
640 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
641 gtk_box_pack_end(GTK_BOX(box), frame, expand, expand, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
642 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
643 gtk_widget_show(frame);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
644
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
645 label = gtk_label_new(text ? text : "");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
646 gtk_container_add(GTK_CONTAINER(frame), label);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
647 gtk_widget_show(label);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
648
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
649 return label;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
650 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
651
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
652 static void layout_status_setup(LayoutWindow *lw, GtkWidget *box, gint small_format)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
653 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
654 GtkWidget *hbox;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
655
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
656 if (lw->info_box) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
657
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
658 if (small_format)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
659 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
660 lw->info_box = gtk_vbox_new(FALSE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
661 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
662 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
663 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
664 lw->info_box = gtk_hbox_new(FALSE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
665 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
666 gtk_box_pack_end(GTK_BOX(box), lw->info_box, FALSE, FALSE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
667 gtk_widget_show(lw->info_box);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
668
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
669 if (small_format)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
670 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
671 hbox = gtk_hbox_new(FALSE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
672 gtk_box_pack_start(GTK_BOX(lw->info_box), hbox, FALSE, FALSE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
673 gtk_widget_show(hbox);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
674 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
675 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
676 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
677 hbox = lw->info_box;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
678 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
679 lw->info_progress_bar = gtk_progress_bar_new();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
680 gtk_widget_set_size_request(lw->info_progress_bar, PROGRESS_WIDTH, -1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
681 gtk_box_pack_start(GTK_BOX(hbox), lw->info_progress_bar, FALSE, FALSE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
682 gtk_widget_show(lw->info_progress_bar);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
683
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
684 lw->info_sort = layout_sort_button(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
685 gtk_box_pack_start(GTK_BOX(hbox), lw->info_sort, FALSE, FALSE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
686 gtk_widget_show(lw->info_sort);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
687
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
688 lw->info_color = layout_color_button(lw);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
689 gtk_widget_show(lw->info_color);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
690
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
691 if (small_format) gtk_box_pack_end(GTK_BOX(hbox), lw->info_color, FALSE, FALSE, 0);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
692
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
693 lw->info_status = layout_status_label(NULL, lw->info_box, TRUE, 0, (!small_format));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
694
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
695 if (small_format)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
696 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
697 hbox = gtk_hbox_new(FALSE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
698 gtk_box_pack_start(GTK_BOX(lw->info_box), hbox, FALSE, FALSE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
699 gtk_widget_show(hbox);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
700 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
701 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
702 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
703 hbox = lw->info_box;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
704 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
705 lw->info_details = layout_status_label(NULL, hbox, TRUE, 0, TRUE);
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
706 if (!small_format) gtk_box_pack_start(GTK_BOX(hbox), lw->info_color, FALSE, FALSE, 0);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
707 lw->info_zoom = layout_status_label(NULL, hbox, FALSE, ZOOM_LABEL_WIDTH, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
708 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
709
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
710 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
711 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
712 * views
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
713 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
714 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
715
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
716 static GtkWidget *layout_tools_new(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
717 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
718 lw->dir_view = layout_tool_setup(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
719 return lw->dir_view;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
720 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
721
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
722 static void layout_list_status_cb(ViewFileList *vfl, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
723 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
724 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
725
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
726 layout_status_update_info(lw, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
727 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
728
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
729 static void layout_list_thumb_cb(ViewFileList *vfl, gdouble val, const gchar *text, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
730 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
731 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
732
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
733 layout_status_update_progress(lw, val, text);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
734 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
735
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
736 static void layout_icon_status_cb(ViewFileIcon *vfi, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
737 {
268
98268a6b8182 Tidy up, whitespaces and indentation fix.
zas_
parents: 254
diff changeset
738 LayoutWindow *lw = data;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
739
268
98268a6b8182 Tidy up, whitespaces and indentation fix.
zas_
parents: 254
diff changeset
740 layout_status_update_info(lw, NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
741 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
742
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
743 static void layout_icon_thumb_cb(ViewFileIcon *vfi, gdouble val, const gchar *text, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
744 {
268
98268a6b8182 Tidy up, whitespaces and indentation fix.
zas_
parents: 254
diff changeset
745 LayoutWindow *lw = data;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
746
268
98268a6b8182 Tidy up, whitespaces and indentation fix.
zas_
parents: 254
diff changeset
747 layout_status_update_progress(lw, val, text);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
748 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
749
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
750 static GtkWidget *layout_list_new(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
751 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
752 if (lw->icon_view)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
753 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
754 lw->vfi = vficon_new(NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
755 vficon_set_layout(lw->vfi, lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
756
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
757 vficon_set_status_func(lw->vfi, layout_icon_status_cb, lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
758 vficon_set_thumb_status_func(lw->vfi, layout_icon_thumb_cb, lw);
166
4d14387b7bb7 preserve marks setting on layout change
nadvornik
parents: 165
diff changeset
759 /* FIXME vficon_marks_set(lw->vfi, lw->marks_enabled); */
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
760
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
761 return lw->vfi->widget;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
762 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
763
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
764 lw->vfl = vflist_new(NULL, lw->thumbs_enabled);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
765 vflist_set_layout(lw->vfl, lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
766
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
767 vflist_set_status_func(lw->vfl, layout_list_status_cb, lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
768 vflist_set_thumb_status_func(lw->vfl, layout_list_thumb_cb, lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
769
166
4d14387b7bb7 preserve marks setting on layout change
nadvornik
parents: 165
diff changeset
770 vflist_marks_set(lw->vfl, lw->marks_enabled);
4d14387b7bb7 preserve marks setting on layout change
nadvornik
parents: 165
diff changeset
771
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
772 return lw->vfl->widget;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
773 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
774
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
775 static void layout_list_sync_thumb(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
776 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
777 if (lw->vfl) vflist_thumb_set(lw->vfl, lw->thumbs_enabled);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
778 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
779
132
661cd91e5a7e First implementation of marks for all photos.
bruclik
parents: 127
diff changeset
780 static void layout_list_sync_marks(LayoutWindow *lw)
661cd91e5a7e First implementation of marks for all photos.
bruclik
parents: 127
diff changeset
781 {
661cd91e5a7e First implementation of marks for all photos.
bruclik
parents: 127
diff changeset
782 if (lw->vfl) vflist_marks_set(lw->vfl, lw->marks_enabled);
661cd91e5a7e First implementation of marks for all photos.
bruclik
parents: 127
diff changeset
783 }
661cd91e5a7e First implementation of marks for all photos.
bruclik
parents: 127
diff changeset
784
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
785 static void layout_list_scroll_to_subpart(LayoutWindow *lw, const gchar *needle)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
786 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
787 if (!lw) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
788 #if 0
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
789 if (lw->vfl) vflist_scroll_to_subpart(lw->vfl, needle);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
790 if (lw->vfi) vficon_scroll_to_subpart(lw->vfi, needle);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
791 #endif
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
792 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
793
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
794 GList *layout_list(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
795 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
796 if (!layout_valid(&lw)) return NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
797
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
798 if (lw->vfl) return vflist_get_list(lw->vfl);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
799 if (lw->vfi) return vficon_get_list(lw->vfi);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
800
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
801 return NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
802 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
803
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
804 gint layout_list_count(LayoutWindow *lw, gint64 *bytes)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
805 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
806 if (!layout_valid(&lw)) return 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
807
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
808 if (lw->vfl) return vflist_count(lw->vfl, bytes);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
809 if (lw->vfi) return vficon_count(lw->vfi, bytes);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
810
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
811 return 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
812 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
813
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
814 const gchar *layout_list_get_path(LayoutWindow *lw, gint index)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
815 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
816 if (!layout_valid(&lw)) return NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
817
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
818 if (lw->vfl) return vflist_index_get_path(lw->vfl, index);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
819 if (lw->vfi) return vficon_index_get_path(lw->vfi, index);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
820
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
821 return NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
822 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
823
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
824 FileData *layout_list_get_fd(LayoutWindow *lw, gint index)
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
825 {
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
826 if (!layout_valid(&lw)) return NULL;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
827
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
828 if (lw->vfl) return vflist_index_get_data(lw->vfl, index);
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
829 if (lw->vfi) return vficon_index_get_data(lw->vfi, index);
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
830
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
831 return NULL;
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
832 }
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
833
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
834 gint layout_list_get_index(LayoutWindow *lw, const gchar *path)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
835 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
836 if (!layout_valid(&lw)) return -1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
837
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
838 if (lw->vfl) return vflist_index_by_path(lw->vfl, path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
839 if (lw->vfi) return vficon_index_by_path(lw->vfi, path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
840
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
841 return -1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
842 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
843
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
844 void layout_list_sync_fd(LayoutWindow *lw, FileData *fd)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
845 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
846 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
847
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
848 if (lw->vfl) vflist_select_by_fd(lw->vfl, fd);
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
849 if (lw->vfi) vficon_select_by_fd(lw->vfi, fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
850 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
851
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
852 static void layout_list_sync_sort(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
853 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
854 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
855
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
856 if (lw->vfl) vflist_sort_set(lw->vfl, lw->sort_method, lw->sort_ascend);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
857 if (lw->vfi) vficon_sort_set(lw->vfi, lw->sort_method, lw->sort_ascend);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
858 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
859
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
860 GList *layout_selection_list(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
861 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
862 if (!layout_valid(&lw)) return NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
863
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
864 if (layout_image_get_collection(lw, NULL))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
865 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
866 FileData *fd;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
867
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
868 fd = layout_image_get_fd(lw);
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
869 if (fd) return g_list_append(NULL, file_data_ref(fd));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
870 return NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
871 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
872
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
873 if (lw->vfl) return vflist_selection_get_list(lw->vfl);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
874 if (lw->vfi) return vficon_selection_get_list(lw->vfi);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
875
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
876 return NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
877 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
878
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
879 GList *layout_selection_list_by_index(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
880 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
881 if (!layout_valid(&lw)) return NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
882
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
883 if (lw->vfl) return vflist_selection_get_list_by_index(lw->vfl);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
884 if (lw->vfi) return vficon_selection_get_list_by_index(lw->vfi);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
885
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
886 return NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
887 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
888
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
889 gint layout_selection_count(LayoutWindow *lw, gint64 *bytes)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
890 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
891 if (!layout_valid(&lw)) return 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
892
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
893 if (lw->vfl) return vflist_selection_count(lw->vfl, bytes);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
894 if (lw->vfi) return vficon_selection_count(lw->vfi, bytes);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
895
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
896 return 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
897 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
898
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
899 void layout_select_all(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
900 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
901 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
902
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
903 if (lw->vfl) vflist_select_all(lw->vfl);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
904 if (lw->vfi) vficon_select_all(lw->vfi);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
905 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
906
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
907 void layout_select_none(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
908 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
909 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
910
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
911 if (lw->vfl) vflist_select_none(lw->vfl);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
912 if (lw->vfi) vficon_select_none(lw->vfi);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
913 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
914
162
1a42a2451575 created menu "Select" with selection and marks operations
nadvornik
parents: 138
diff changeset
915 void layout_mark_to_selection(LayoutWindow *lw, gint mark, MarkToSelectionMode mode)
1a42a2451575 created menu "Select" with selection and marks operations
nadvornik
parents: 138
diff changeset
916 {
1a42a2451575 created menu "Select" with selection and marks operations
nadvornik
parents: 138
diff changeset
917 if (!layout_valid(&lw)) return;
1a42a2451575 created menu "Select" with selection and marks operations
nadvornik
parents: 138
diff changeset
918
1a42a2451575 created menu "Select" with selection and marks operations
nadvornik
parents: 138
diff changeset
919 if (lw->vfl) vflist_mark_to_selection(lw->vfl, mark, mode);
165
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 162
diff changeset
920 if (lw->vfi) vficon_mark_to_selection(lw->vfi, mark, mode);
162
1a42a2451575 created menu "Select" with selection and marks operations
nadvornik
parents: 138
diff changeset
921 }
1a42a2451575 created menu "Select" with selection and marks operations
nadvornik
parents: 138
diff changeset
922
1a42a2451575 created menu "Select" with selection and marks operations
nadvornik
parents: 138
diff changeset
923 void layout_selection_to_mark(LayoutWindow *lw, gint mark, SelectionToMarkMode mode)
1a42a2451575 created menu "Select" with selection and marks operations
nadvornik
parents: 138
diff changeset
924 {
1a42a2451575 created menu "Select" with selection and marks operations
nadvornik
parents: 138
diff changeset
925 if (!layout_valid(&lw)) return;
1a42a2451575 created menu "Select" with selection and marks operations
nadvornik
parents: 138
diff changeset
926
1a42a2451575 created menu "Select" with selection and marks operations
nadvornik
parents: 138
diff changeset
927 if (lw->vfl) vflist_selection_to_mark(lw->vfl, mark, mode);
165
d7067ec71042 basic support for marks in view_file_icon.c
nadvornik
parents: 162
diff changeset
928 if (lw->vfi) vficon_selection_to_mark(lw->vfi, mark, mode);
162
1a42a2451575 created menu "Select" with selection and marks operations
nadvornik
parents: 138
diff changeset
929
1a42a2451575 created menu "Select" with selection and marks operations
nadvornik
parents: 138
diff changeset
930 layout_status_update_info(lw, NULL); /* osd in fullscreen mode */
1a42a2451575 created menu "Select" with selection and marks operations
nadvornik
parents: 138
diff changeset
931 }
1a42a2451575 created menu "Select" with selection and marks operations
nadvornik
parents: 138
diff changeset
932
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
933 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
934 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
935 * access
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
936 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
937 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
938
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
939 const gchar *layout_get_path(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
940 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
941 if (!layout_valid(&lw)) return NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
942 return lw->path;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
943 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
944
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
945 static void layout_sync_path(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
946 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
947 if (!lw->path) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
948
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
949 lw->last_time = filetime(lw->path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
950
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
951 gtk_entry_set_text(GTK_ENTRY(lw->path_entry), lw->path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
952 if (lw->vdl) vdlist_set_path(lw->vdl, lw->path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
953 if (lw->vdt) vdtree_set_path(lw->vdt, lw->path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
954
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
955 if (lw->vfl) vflist_set_path(lw->vfl, lw->path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
956 if (lw->vfi) vficon_set_path(lw->vfi, lw->path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
957 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
958
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
959 gint layout_set_path(LayoutWindow *lw, const gchar *path)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
960 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
961 gint have_file = FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
962
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
963 if (!layout_valid(&lw)) return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
964
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
965 if (!path || !isname(path)) return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
966 if (lw->path && path && strcmp(path, lw->path) == 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
967 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
968 return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
969 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
970
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
971 if (isdir(path))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
972 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
973 g_free(lw->path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
974 lw->path = g_strdup(path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
975 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
976 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
977 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
978 gchar *base;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
979
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
980 base = remove_level_from_path(path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
981 if (lw->path && strcmp(lw->path, base) == 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
982 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
983 g_free(base);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
984 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
985 else if (isdir(base))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
986 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
987 g_free(lw->path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
988 lw->path = base;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
989 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
990 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
991 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
992 g_free(base);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
993 return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
994 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
995 if (isfile(path)) have_file = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
996 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
997
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
998 if (lw->path_entry) tab_completion_append_to_history(lw->path_entry, lw->path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
999 layout_sync_path(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1000
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1001 if (have_file)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1002 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1003 gint row;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1004
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1005 row = layout_list_get_index(lw, path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1006 if (row >= 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1007 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1008 layout_image_set_index(lw, row);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1009 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1010 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1011 {
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
1012 layout_image_set_fd(lw, file_data_new_simple(path));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1013 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1014 }
320
c74af1cbd61a Move more options to ConfOptions.
zas_
parents: 318
diff changeset
1015 else if (!options->lazy_image_sync)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1016 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1017 layout_image_set_index(lw, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1018 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1019
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1020 return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1021 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1022
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1023 static void layout_refresh_lists(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1024 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1025 if (lw->path) lw->last_time = filetime(lw->path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1026
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1027 if (lw->vdl) vdlist_refresh(lw->vdl);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1028 if (lw->vdt) vdtree_refresh(lw->vdt);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1029
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1030 if (lw->vfl) vflist_refresh(lw->vfl);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1031 if (lw->vfi) vficon_refresh(lw->vfi);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1032 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1033
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1034 static void layout_refresh_by_time(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1035 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1036 layout_refresh_lists(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1037
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1038 if (lw->image && filetime(layout_image_get_path(lw)) >= lw->last_time)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1039 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1040 layout_image_refresh(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1041 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1042 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1043
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1044 void layout_refresh(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1045 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1046 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1047
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1048 if (debug) printf("layout refresh\n");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1049
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1050 layout_refresh_lists(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1051
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1052 if (lw->image) layout_image_refresh(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1053 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1054
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1055 static gint layout_check_for_update_cb(gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1056 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1057 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1058
320
c74af1cbd61a Move more options to ConfOptions.
zas_
parents: 318
diff changeset
1059 if (!options->update_on_time_change) return TRUE;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1060
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1061 if (lw->path)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1062 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1063 time_t new_time;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1064
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1065 new_time = filetime(lw->path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1066
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1067 if (new_time > 0 && new_time > lw->last_time)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1068 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1069 if (debug) printf("layout path time changed, refreshing...\n");
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1070 layout_refresh_by_time(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1071 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1072 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1073
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1074 return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1075 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1076
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1077 void layout_thumb_set(LayoutWindow *lw, gint enable)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1078 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1079 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1080
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1081 if (lw->thumbs_enabled == enable) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1082
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1083 lw->thumbs_enabled = enable;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1084
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1085 layout_util_sync_thumb(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1086 layout_list_sync_thumb(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1087 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1088
132
661cd91e5a7e First implementation of marks for all photos.
bruclik
parents: 127
diff changeset
1089 void layout_marks_set(LayoutWindow *lw, gint enable)
661cd91e5a7e First implementation of marks for all photos.
bruclik
parents: 127
diff changeset
1090 {
661cd91e5a7e First implementation of marks for all photos.
bruclik
parents: 127
diff changeset
1091 if (!layout_valid(&lw)) return;
661cd91e5a7e First implementation of marks for all photos.
bruclik
parents: 127
diff changeset
1092
661cd91e5a7e First implementation of marks for all photos.
bruclik
parents: 127
diff changeset
1093 if (lw->marks_enabled == enable) return;
661cd91e5a7e First implementation of marks for all photos.
bruclik
parents: 127
diff changeset
1094
661cd91e5a7e First implementation of marks for all photos.
bruclik
parents: 127
diff changeset
1095 lw->marks_enabled = enable;
661cd91e5a7e First implementation of marks for all photos.
bruclik
parents: 127
diff changeset
1096
268
98268a6b8182 Tidy up, whitespaces and indentation fix.
zas_
parents: 254
diff changeset
1097 // layout_util_sync_marks(lw);
98268a6b8182 Tidy up, whitespaces and indentation fix.
zas_
parents: 254
diff changeset
1098 layout_list_sync_marks(lw);
132
661cd91e5a7e First implementation of marks for all photos.
bruclik
parents: 127
diff changeset
1099 }
661cd91e5a7e First implementation of marks for all photos.
bruclik
parents: 127
diff changeset
1100
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1101 gint layout_thumb_get(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1102 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1103 if (!layout_valid(&lw)) return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1104
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1105 return lw->thumbs_enabled;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1106 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1107
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1108 void layout_sort_set(LayoutWindow *lw, SortType type, gint ascend)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1109 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1110 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1111 if (lw->sort_method == type && lw->sort_ascend == ascend) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1112
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1113 lw->sort_method = type;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1114 lw->sort_ascend = ascend;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1115
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1116 if (lw->info_sort) gtk_label_set_text(GTK_LABEL(GTK_BIN(lw->info_sort)->child),
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1117 sort_type_get_text(type));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1118 layout_list_sync_sort(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1119 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1120
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1121 gint layout_sort_get(LayoutWindow *lw, SortType *type, gint *ascend)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1122 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1123 if (!layout_valid(&lw)) return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1124
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1125 if (type) *type = lw->sort_method;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1126 if (ascend) *ascend = lw->sort_ascend;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1127
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1128 return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1129 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1130
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1131 gint layout_geometry_get(LayoutWindow *lw, gint *x, gint *y, gint *w, gint *h)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1132 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1133 if (!layout_valid(&lw)) return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1134
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1135 gdk_window_get_root_origin(lw->window->window, x, y);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1136 gdk_drawable_get_size(lw->window->window, w, h);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1137
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1138 return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1139 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1140
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1141 gint layout_geometry_get_dividers(LayoutWindow *lw, gint *h, gint *v)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1142 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1143 if (!layout_valid(&lw)) return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1144
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1145 if (lw->h_pane && GTK_PANED(lw->h_pane)->child1->allocation.x >= 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1146 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1147 *h = GTK_PANED(lw->h_pane)->child1->allocation.width;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1148 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1149 else if (h != &lw->div_h)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1150 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1151 *h = lw->div_h;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1152 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1153
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1154 if (lw->v_pane && GTK_PANED(lw->v_pane)->child1->allocation.x >= 0)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1155 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1156 *v = GTK_PANED(lw->v_pane)->child1->allocation.height;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1157 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1158 else if (v != &lw->div_v)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1159 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1160 *v = lw->div_v;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1161 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1162
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1163 return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1164 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1165
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1166 void layout_views_set(LayoutWindow *lw, gint tree, gint icons)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1167 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1168 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1169
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1170 if (lw->tree_view == tree && lw->icon_view == icons) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1171
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1172 lw->tree_view = tree;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1173 lw->icon_view = icons;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1174
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1175 layout_style_set(lw, -1, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1176 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1177
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1178 gint layout_views_get(LayoutWindow *lw, gint *tree, gint *icons)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1179 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1180 if (!layout_valid(&lw)) return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1181
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1182 *tree = lw->tree_view;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1183 *icons = lw->icon_view;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1184
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1185 return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1186 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1187
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1188 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1189 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1190 * location utils
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1191 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1192 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1193
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1194 static gint layout_location_single(LayoutLocation l)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1195 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1196 return (l == LAYOUT_LEFT ||
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1197 l == LAYOUT_RIGHT ||
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1198 l == LAYOUT_TOP ||
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1199 l == LAYOUT_BOTTOM);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1200 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1201
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1202 static gint layout_location_vertical(LayoutLocation l)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1203 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1204 return (l & LAYOUT_TOP ||
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1205 l & LAYOUT_BOTTOM);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1206 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1207
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1208 static gint layout_location_first(LayoutLocation l)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1209 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1210 return (l & LAYOUT_TOP ||
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1211 l & LAYOUT_LEFT);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1212 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1213
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1214 static LayoutLocation layout_grid_compass(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1215 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1216 if (layout_location_single(lw->dir_location)) return lw->dir_location;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1217 if (layout_location_single(lw->file_location)) return lw->file_location;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1218 return lw->image_location;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1219 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1220
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1221 static void layout_location_compute(LayoutLocation l1, LayoutLocation l2,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1222 GtkWidget *s1, GtkWidget *s2,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1223 GtkWidget **d1, GtkWidget **d2)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1224 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1225 LayoutLocation l;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1226
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1227 l = l1 & l2; /* get common compass direction */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1228 l = l1 - l; /* remove it */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1229
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1230 if (layout_location_first(l))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1231 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1232 *d1 = s1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1233 *d2 = s2;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1234 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1235 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1236 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1237 *d1 = s2;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1238 *d2 = s1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1239 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1240 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1241
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1242 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1243 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1244 * tools window (for floating/hidden)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1245 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1246 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1247
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1248 gint layout_geometry_get_tools(LayoutWindow *lw, gint *x, gint *y, gint *w, gint *h, gint *divider_pos)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1249 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1250 if (!layout_valid(&lw)) return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1251
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1252 if (!lw->tools || !GTK_WIDGET_VISIBLE(lw->tools))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1253 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1254 /* use the stored values (sort of breaks success return value) */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1255
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1256 *divider_pos = lw->div_float;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1257
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1258 return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1259 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1260
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1261 gdk_window_get_root_origin(lw->tools->window, x, y);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1262 gdk_drawable_get_size(lw->tools->window, w, h);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1263
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1264 if (GTK_IS_VPANED(lw->tools_pane))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1265 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1266 *divider_pos = GTK_PANED(lw->tools_pane)->child1->allocation.height;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1267 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1268 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1269 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1270 *divider_pos = GTK_PANED(lw->tools_pane)->child1->allocation.width;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1271 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1272
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1273 return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1274 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1275
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1276 static void layout_tools_geometry_sync(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1277 {
338
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 333
diff changeset
1278 layout_geometry_get_tools(lw, &options->layout.float_window.x, &options->layout.float_window.x,
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 333
diff changeset
1279 &options->layout.float_window.w, &options->layout.float_window.h, &lw->div_float);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1280 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1281
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1282 static void layout_tools_hide(LayoutWindow *lw, gint hide)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1283 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1284 if (!lw->tools) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1285
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1286 if (hide)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1287 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1288 if (GTK_WIDGET_VISIBLE(lw->tools))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1289 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1290 layout_tools_geometry_sync(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1291 gtk_widget_hide(lw->tools);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1292 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1293 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1294 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1295 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1296 if (!GTK_WIDGET_VISIBLE(lw->tools))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1297 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1298 gtk_widget_show(lw->tools);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1299 if (lw->vfi) vficon_refresh(lw->vfi);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1300 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1301 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1302
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1303 lw->tools_hidden = hide;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1304 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1305
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1306 static gint layout_tools_delete_cb(GtkWidget *widget, GdkEventAny *event, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1307 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1308 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1309
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1310 layout_tools_float_toggle(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1311
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1312 return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1313 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1314
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1315 static void layout_tools_setup(LayoutWindow *lw, GtkWidget *tools, GtkWidget *files)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1316 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1317 GtkWidget *vbox;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1318 GtkWidget *w1, *w2;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1319 gint vertical;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1320 gint new_window = FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1321
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1322 vertical = (layout_location_single(lw->image_location) && !layout_location_vertical(lw->image_location)) ||
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1323 (!layout_location_single(lw->image_location) && layout_location_vertical(layout_grid_compass(lw)));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1324 #if 0
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1325 layout_location_compute(lw->dir_location, lw->file_location,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1326 tools, files, &w1, &w2);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1327 #endif
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1328 /* for now, tools/dir are always first in order */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1329 w1 = tools;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1330 w2 = files;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1331
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1332 if (!lw->tools)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1333 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1334 GdkGeometry geometry;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1335 GdkWindowHints hints;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1336
289
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
1337 lw->tools = window_new(GTK_WINDOW_TOPLEVEL, "tools", PIXBUF_INLINE_ICON_TOOLS, NULL, _("Tools"));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1338 g_signal_connect(G_OBJECT(lw->tools), "delete_event",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1339 G_CALLBACK(layout_tools_delete_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1340 layout_keyboard_init(lw, lw->tools);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1341
338
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 333
diff changeset
1342 if (options->layout.save_window_positions)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1343 {
41
6281cc38e5ca Wed Apr 27 15:17:57 2005 John Ellis <johne@verizon.net>
gqview
parents: 23
diff changeset
1344 hints = GDK_HINT_USER_POS;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1345 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1346 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1347 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1348 hints = 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1349 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1350
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1351 geometry.min_width = 32;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1352 geometry.min_height = 32;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1353 geometry.base_width = TOOLWINDOW_DEF_WIDTH;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1354 geometry.base_height = TOOLWINDOW_DEF_HEIGHT;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1355 gtk_window_set_geometry_hints(GTK_WINDOW(lw->tools), NULL, &geometry,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1356 GDK_HINT_MIN_SIZE | GDK_HINT_BASE_SIZE | hints);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1357
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1358
268
98268a6b8182 Tidy up, whitespaces and indentation fix.
zas_
parents: 254
diff changeset
1359 gtk_window_set_resizable(GTK_WINDOW(lw->tools), TRUE);
98268a6b8182 Tidy up, whitespaces and indentation fix.
zas_
parents: 254
diff changeset
1360 gtk_container_set_border_width(GTK_CONTAINER(lw->tools), 0);
289
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
1361
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1362 new_window = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1363 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1364 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1365 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1366 layout_tools_geometry_sync(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1367 /* dump the contents */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1368 gtk_widget_destroy(GTK_BIN(lw->tools)->child);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1369 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1370
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1371 layout_actions_add_window(lw, lw->tools);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1372
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1373 vbox = gtk_vbox_new(FALSE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1374 gtk_container_add(GTK_CONTAINER(lw->tools), vbox);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1375 gtk_widget_show(vbox);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1376
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1377 layout_status_setup(lw, vbox, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1378
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1379 if (vertical)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1380 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1381 lw->tools_pane = gtk_vpaned_new();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1382 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1383 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1384 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1385 lw->tools_pane = gtk_hpaned_new();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1386 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1387 gtk_box_pack_start(GTK_BOX(vbox), lw->tools_pane, TRUE, TRUE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1388 gtk_widget_show(lw->tools_pane);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1389
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1390 gtk_paned_pack1(GTK_PANED(lw->tools_pane), w1, FALSE, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1391 gtk_paned_pack2(GTK_PANED(lw->tools_pane), w2, TRUE, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1392
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1393 gtk_widget_show(tools);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1394 gtk_widget_show(files);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1395
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1396 if (new_window)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1397 {
338
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 333
diff changeset
1398 if (options->layout.save_window_positions)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1399 {
338
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 333
diff changeset
1400 gtk_window_set_default_size(GTK_WINDOW(lw->tools), options->layout.float_window.w, options->layout.float_window.h);
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 333
diff changeset
1401 gtk_window_move(GTK_WINDOW(lw->tools), options->layout.float_window.x, options->layout.float_window.y);
268
98268a6b8182 Tidy up, whitespaces and indentation fix.
zas_
parents: 254
diff changeset
1402 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1403 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1404 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1405 if (vertical)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1406 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1407 gtk_window_set_default_size(GTK_WINDOW(lw->tools),
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1408 TOOLWINDOW_DEF_WIDTH, TOOLWINDOW_DEF_HEIGHT);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1409 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1410 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1411 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1412 gtk_window_set_default_size(GTK_WINDOW(lw->tools),
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1413 TOOLWINDOW_DEF_HEIGHT, TOOLWINDOW_DEF_WIDTH);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1414 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1415 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1416 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1417
338
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 333
diff changeset
1418 if (!options->layout.save_window_positions)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1419 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1420 if (vertical)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1421 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1422 lw->div_float = MAIN_WINDOW_DIV_VPOS;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1423 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1424 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1425 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1426 lw->div_float = MAIN_WINDOW_DIV_HPOS;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1427 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1428 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1429
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1430 gtk_paned_set_position(GTK_PANED(lw->tools_pane), lw->div_float);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1431 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1432
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1433 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1434 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1435 * glue (layout arrangement)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1436 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1437 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1438
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1439 static void layout_grid_compute(LayoutWindow *lw,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1440 GtkWidget *image, GtkWidget *tools, GtkWidget *files,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1441 GtkWidget **w1, GtkWidget **w2, GtkWidget **w3)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1442 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1443 /* heh, this was fun */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1444
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1445 if (layout_location_single(lw->dir_location))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1446 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1447 if (layout_location_first(lw->dir_location))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1448 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1449 *w1 = tools;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1450 layout_location_compute(lw->file_location, lw->image_location, files, image, w2, w3);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1451 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1452 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1453 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1454 *w3 = tools;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1455 layout_location_compute(lw->file_location, lw->image_location, files, image, w1, w2);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1456 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1457 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1458 else if (layout_location_single(lw->file_location))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1459 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1460 if (layout_location_first(lw->file_location))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1461 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1462 *w1 = files;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1463 layout_location_compute(lw->dir_location, lw->image_location, tools, image, w2, w3);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1464 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1465 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1466 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1467 *w3 = files;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1468 layout_location_compute(lw->dir_location, lw->image_location, tools, image, w1, w2);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1469 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1470 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1471 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1472 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1473 /* image */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1474 if (layout_location_first(lw->image_location))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1475 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1476 *w1 = image;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1477 layout_location_compute(lw->file_location, lw->dir_location, files, tools, w2, w3);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1478 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1479 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1480 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1481 *w3 = image;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1482 layout_location_compute(lw->file_location, lw->dir_location, files, tools, w1, w2);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1483 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1484 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1485 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1486
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1487 void layout_split_change(LayoutWindow *lw, ImageSplitMode mode)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1488 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1489 GtkWidget *image;
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1490 gint i;
268
98268a6b8182 Tidy up, whitespaces and indentation fix.
zas_
parents: 254
diff changeset
1491
98268a6b8182 Tidy up, whitespaces and indentation fix.
zas_
parents: 254
diff changeset
1492 for (i = 0; i < MAX_SPLIT_IMAGES; i++)
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1493 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1494 if (lw->split_images[i])
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1495 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1496 gtk_widget_hide(lw->split_images[i]->widget);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1497 if (lw->split_images[i]->widget->parent != lw->utility_box)
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1498 gtk_container_remove(GTK_CONTAINER(lw->split_images[i]->widget->parent), lw->split_images[i]->widget);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1499 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1500 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1501 gtk_container_remove(GTK_CONTAINER(lw->utility_box), lw->split_image_widget);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1502
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1503 image = layout_image_setup_split(lw, mode);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1504
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1505 gtk_box_pack_start(GTK_BOX(lw->utility_box), image, TRUE, TRUE, 0);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1506 gtk_box_reorder_child(GTK_BOX(lw->utility_box), image, 0);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1507 gtk_widget_show(image);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1508 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1509
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1510 static void layout_grid_setup(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1511 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1512 gint priority_location;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1513 GtkWidget *h;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1514 GtkWidget *v;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1515 GtkWidget *w1, *w2, *w3;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1516
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1517 GtkWidget *image;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1518 GtkWidget *tools;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1519 GtkWidget *files;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1520
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1521 layout_actions_setup(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1522 layout_actions_add_window(lw, lw->window);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1523
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1524 lw->group_box = gtk_vbox_new(FALSE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1525 gtk_box_pack_start(GTK_BOX(lw->main_box), lw->group_box, TRUE, TRUE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1526 gtk_widget_show(lw->group_box);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1527
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1528 priority_location = layout_grid_compass(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1529
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1530 image = layout_image_setup_split(lw, lw->split_mode);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1531
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1532 tools = layout_tools_new(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1533 files = layout_list_new(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1534
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1535 image = layout_bars_prepare(lw, image);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1536
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1537 if (lw->tools_float || lw->tools_hidden)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1538 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1539 gtk_box_pack_start(GTK_BOX(lw->group_box), image, TRUE, TRUE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1540 gtk_widget_show(image);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1541
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1542 layout_tools_setup(lw, tools, files);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1543
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1544 gtk_widget_grab_focus(lw->image->widget);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1545
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1546 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1547 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1548 else if (lw->tools)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1549 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1550 layout_tools_geometry_sync(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1551 gtk_widget_destroy(lw->tools);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1552 lw->tools = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1553 lw->tools_pane = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1554 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1555
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1556 layout_status_setup(lw, lw->group_box, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1557
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1558 layout_grid_compute(lw, image, tools, files, &w1, &w2, &w3);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1559
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1560 v = lw->v_pane = gtk_vpaned_new();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1561
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1562 h = lw->h_pane = gtk_hpaned_new();
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1563
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1564 if (!layout_location_vertical(priority_location))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1565 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1566 GtkWidget *tmp;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1567
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1568 tmp = v;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1569 v = h;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1570 h = tmp;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1571 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1572
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1573 gtk_box_pack_start(GTK_BOX(lw->group_box), v, TRUE, TRUE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1574
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1575 if (!layout_location_first(priority_location))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1576 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1577 gtk_paned_pack1(GTK_PANED(v), h, FALSE, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1578 gtk_paned_pack2(GTK_PANED(v), w3, TRUE, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1579
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1580 gtk_paned_pack1(GTK_PANED(h), w1, FALSE, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1581 gtk_paned_pack2(GTK_PANED(h), w2, TRUE, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1582 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1583 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1584 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1585 gtk_paned_pack1(GTK_PANED(v), w1, FALSE, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1586 gtk_paned_pack2(GTK_PANED(v), h, TRUE, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1587
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1588 gtk_paned_pack1(GTK_PANED(h), w2, FALSE, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1589 gtk_paned_pack2(GTK_PANED(h), w3, TRUE, TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1590 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1591
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1592 gtk_widget_show(image);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1593 gtk_widget_show(tools);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1594 gtk_widget_show(files);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1595
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1596 gtk_widget_show(v);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1597 gtk_widget_show(h);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1598
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1599 /* fix to have image pane visible when it is left and priority widget */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1600 if (lw->div_h == -1 &&
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1601 w1 == image &&
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1602 !layout_location_vertical(priority_location) &&
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1603 layout_location_first(priority_location))
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1604 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1605 gtk_widget_set_size_request(image, 200, -1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1606 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1607
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1608 gtk_paned_set_position(GTK_PANED(lw->h_pane), lw->div_h);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1609 gtk_paned_set_position(GTK_PANED(lw->v_pane), lw->div_v);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1610
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1611 gtk_widget_grab_focus(lw->image->widget);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1612 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1613
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1614 void layout_style_set(LayoutWindow *lw, gint style, const gchar *order)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1615 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1616 gchar *path;
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1617 gint i;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1618
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1619 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1620
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1621 if (style != -1)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1622 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1623 LayoutLocation d, f, i;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1624
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1625 layout_config_parse(style, order, &d, &f, &i);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1626
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1627 if (lw->dir_location == d &&
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1628 lw->file_location == f &&
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1629 lw->image_location == i) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1630
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1631 lw->dir_location = d;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1632 lw->file_location = f;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1633 lw->image_location = i;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1634 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1635
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1636 /* remember state */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1637
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1638 layout_image_slideshow_stop(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1639 layout_image_full_screen_stop(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1640
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1641 path = lw->path;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1642 lw->path = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1643 lw->image = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1644 lw->utility_box = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1645
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1646 layout_geometry_get_dividers(lw, &lw->div_h, &lw->div_v);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1647
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1648 /* clear it all */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1649
268
98268a6b8182 Tidy up, whitespaces and indentation fix.
zas_
parents: 254
diff changeset
1650 for (i = 0; i < MAX_SPLIT_IMAGES; i++)
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1651 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1652 if (lw->split_images[i])
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1653 {
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1654 gtk_widget_hide(lw->split_images[i]->widget);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1655 gtk_container_remove(GTK_CONTAINER(lw->split_images[i]->widget->parent), lw->split_images[i]->widget);
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1656 }
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1657 }
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1658
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1659 lw->h_pane = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1660 lw->v_pane = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1661
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1662 lw->toolbar = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1663 lw->thumb_button = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1664 lw->path_entry = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1665 lw->dir_view = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1666 lw->vdl = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1667 lw->vdt = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1668
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1669 lw->file_view = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1670 lw->vfl = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1671 lw->vfi = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1672
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1673 lw->info_box = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1674 lw->info_progress_bar = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1675 lw->info_sort = NULL;
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 91
diff changeset
1676 lw->info_color = NULL;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1677 lw->info_status = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1678 lw->info_details = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1679 lw->info_zoom = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1680
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1681 if (lw->ui_manager) g_object_unref(lw->ui_manager);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1682 lw->ui_manager = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1683 lw->action_group = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1684
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1685 gtk_container_remove(GTK_CONTAINER(lw->main_box), lw->group_box);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1686 lw->group_box = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1687
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1688 /* re-fill */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1689
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1690 layout_grid_setup(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1691 layout_tools_hide(lw, lw->tools_hidden);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1692
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1693 layout_list_sync_sort(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1694 layout_util_sync(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1695 layout_status_update_all(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1696
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1697 /* sync */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1698
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1699 if (image_get_path(lw->image))
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1700 {
127
271afad04d07 implemented split windows
nadvornik
parents: 122
diff changeset
1701 layout_set_path(lw, image_get_path(lw->image));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1702 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1703 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1704 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1705 layout_set_path(lw, path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1706 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1707 image_top_window_set_sync(lw->image, (lw->tools_float || lw->tools_hidden));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1708
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1709 /* clean up */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1710
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1711 g_free(path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1712 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1713
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1714 void layout_styles_update(void)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1715 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1716 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1717
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1718 work = layout_window_list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1719 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1720 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1721 LayoutWindow *lw = work->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1722 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1723
327
049d6b00cc14 Rename color profile options.
zas_
parents: 320
diff changeset
1724 layout_style_set(lw, options->layout.style, options->layout.order);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1725 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1726 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1727
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1728 void layout_colors_update(void)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1729 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1730 GList *work;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1731
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1732 work = layout_window_list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1733 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1734 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1735 LayoutWindow *lw = work->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1736 work = work->next;
208
fa0e05f985c3 set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents: 196
diff changeset
1737
fa0e05f985c3 set user-defined color as image background - patch by Laurent MONIN
nadvornik
parents: 196
diff changeset
1738 if (!lw->image) continue;
339
de1c2cd06fce Rename user_specified_window_background and window_background_color
zas_
parents: 338
diff changeset
1739 image_background_set_color(lw->image, options->image.use_custom_border_color ? &options->image.border_color : NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1740 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1741 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1742
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1743 void layout_tools_float_toggle(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1744 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1745 gint popped;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1746
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1747 if (!lw) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1748
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1749 if (!lw->tools_hidden)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1750 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1751 popped = !lw->tools_float;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1752 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1753 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1754 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1755 popped = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1756 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1757
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1758 if (lw->tools_float == popped)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1759 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1760 if (popped && lw->tools_hidden)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1761 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1762 layout_tools_float_set(lw, popped, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1763 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1764 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1765 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1766 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1767 if (lw->tools_float)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1768 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1769 layout_tools_float_set(lw, FALSE, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1770 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1771 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1772 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1773 layout_tools_float_set(lw, TRUE, FALSE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1774 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1775 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1776 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1777
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1778 void layout_tools_hide_toggle(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1779 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1780 if (!lw) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1781
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1782 layout_tools_float_set(lw, lw->tools_float, !lw->tools_hidden);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1783 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1784
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1785 void layout_tools_float_set(LayoutWindow *lw, gint popped, gint hidden)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1786 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1787 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1788
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1789 if (lw->tools_float == popped && lw->tools_hidden == hidden) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1790
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1791 if (lw->tools_float == popped && lw->tools_float && lw->tools)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1792 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1793 layout_tools_hide(lw, hidden);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1794 return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1795 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1796
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1797 lw->tools_float = popped;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1798 lw->tools_hidden = hidden;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1799
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1800 layout_style_set(lw, -1, NULL);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1801 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1802
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1803 gint layout_tools_float_get(LayoutWindow *lw, gint *popped, gint *hidden)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1804 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1805 if (!layout_valid(&lw)) return FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1806
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1807 *popped = lw->tools_float;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1808 *hidden = lw->tools_hidden;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1809
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1810 return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1811 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1812
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1813 void layout_toolbar_toggle(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1814 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1815 if (!layout_valid(&lw)) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1816 if (!lw->toolbar) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1817
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1818 lw->toolbar_hidden = !lw->toolbar_hidden;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1819
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1820 if (lw->toolbar_hidden)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1821 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1822 if (GTK_WIDGET_VISIBLE(lw->toolbar)) gtk_widget_hide(lw->toolbar);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1823 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1824 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1825 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1826 if (!GTK_WIDGET_VISIBLE(lw->toolbar)) gtk_widget_show(lw->toolbar);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1827 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1828 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1829
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1830 gint layout_toolbar_hidden(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1831 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1832 if (!layout_valid(&lw)) return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1833
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1834 return lw->toolbar_hidden;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1835 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1836
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1837 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1838 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1839 * base
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1840 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1841 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1842
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1843 void layout_close(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1844 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1845 if (layout_window_list && layout_window_list->next)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1846 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1847 layout_free(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1848 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1849 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1850 {
278
04abf5b160eb exit_gqview() renamed to exit_program().
zas_
parents: 273
diff changeset
1851 exit_program();
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1852 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1853 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1854
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1855 void layout_free(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1856 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1857 if (!lw) return;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1858
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1859 layout_window_list = g_list_remove(layout_window_list, lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1860
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1861 if (lw->last_time_id != -1)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1862 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1863 g_source_remove(lw->last_time_id);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1864 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1865
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1866 layout_bars_close(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1867
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1868 gtk_widget_destroy(lw->window);
273
e0e2c2b72c5a reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents: 270
diff changeset
1869
e0e2c2b72c5a reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents: 270
diff changeset
1870 histogram_free(lw->histogram);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1871
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1872 g_free(lw->path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1873
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1874 g_free(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1875 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1876
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1877 static gint layout_delete_cb(GtkWidget *widget, GdkEventAny *event, gpointer data)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1878 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1879 LayoutWindow *lw = data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1880
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1881 layout_close(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1882 return TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1883 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1884
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1885 LayoutWindow *layout_new(const gchar *path, gint popped, gint hidden)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1886 {
81
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 41
diff changeset
1887 return layout_new_with_geometry(path, popped, hidden, NULL);
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 41
diff changeset
1888 }
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 41
diff changeset
1889
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 41
diff changeset
1890 LayoutWindow *layout_new_with_geometry(const gchar *path, gint popped, gint hidden,
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 41
diff changeset
1891 const gchar *geometry)
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 41
diff changeset
1892 {
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1893 LayoutWindow *lw;
81
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 41
diff changeset
1894 GdkGeometry hint;
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 41
diff changeset
1895 GdkWindowHints hint_mask;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1896
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1897 lw = g_new0(LayoutWindow, 1);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1898
340
77103f3f2cb1 Rename option thumbnails.enabled to layout.show_thumbnails as it makes
zas_
parents: 339
diff changeset
1899 lw->thumbs_enabled = options->layout.show_thumbnails;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1900 lw->sort_method = SORT_NAME;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1901 lw->sort_ascend = TRUE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1902
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1903 lw->tools_float = popped;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1904 lw->tools_hidden = hidden;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1905
338
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 333
diff changeset
1906 lw->toolbar_hidden = options->layout.toolbar_hidden;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1907
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1908 lw->utility_box = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1909 lw->bar_sort = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1910 lw->bar_sort_enabled = FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1911 lw->bar_exif = NULL;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1912 lw->bar_exif_enabled = FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1913 lw->bar_exif_size = -1;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1914 lw->bar_exif_advanced = FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1915
273
e0e2c2b72c5a reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents: 270
diff changeset
1916 lw->histogram_enabled = FALSE;
e0e2c2b72c5a reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents: 270
diff changeset
1917
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1918 /* default layout */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1919
327
049d6b00cc14 Rename color profile options.
zas_
parents: 320
diff changeset
1920 layout_config_parse(options->layout.style, options->layout.order,
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1921 &lw->dir_location, &lw->file_location, &lw->image_location);
327
049d6b00cc14 Rename color profile options.
zas_
parents: 320
diff changeset
1922 lw->tree_view = options->layout.view_as_tree;
049d6b00cc14 Rename color profile options.
zas_
parents: 320
diff changeset
1923 lw->icon_view = options->layout.view_as_icons;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1924
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1925 /* divider positions */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1926
338
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 333
diff changeset
1927 if (options->layout.save_window_positions)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1928 {
338
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 333
diff changeset
1929 lw->div_h = options->layout.main_window.hdivider_pos;
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 333
diff changeset
1930 lw->div_v = options->layout.main_window.vdivider_pos;
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 333
diff changeset
1931 lw->div_float = options->layout.float_window.vdivider_pos;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1932 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1933 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1934 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1935 lw->div_h = MAIN_WINDOW_DIV_HPOS;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1936 lw->div_v = MAIN_WINDOW_DIV_VPOS;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1937 lw->div_float = MAIN_WINDOW_DIV_VPOS;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1938 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1939
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1940 /* window */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1941
289
6a7298988a7a Simplify and unify gtk_window creation with the help of
zas_
parents: 288
diff changeset
1942 lw->window = window_new(GTK_WINDOW_TOPLEVEL, GQ_WMCLASS, NULL, NULL, NULL);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1943 gtk_window_set_resizable(GTK_WINDOW(lw->window), TRUE);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1944 gtk_container_set_border_width(GTK_CONTAINER(lw->window), 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1945
338
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 333
diff changeset
1946 if (options->layout.save_window_positions)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1947 {
81
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 41
diff changeset
1948 hint_mask = GDK_HINT_USER_POS;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1949 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1950 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1951 {
81
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 41
diff changeset
1952 hint_mask = 0;
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1953 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1954
81
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 41
diff changeset
1955 hint.min_width = 32;
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 41
diff changeset
1956 hint.min_height = 32;
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 41
diff changeset
1957 hint.base_width = 0;
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 41
diff changeset
1958 hint.base_height = 0;
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 41
diff changeset
1959 gtk_window_set_geometry_hints(GTK_WINDOW(lw->window), NULL, &hint,
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 41
diff changeset
1960 GDK_HINT_MIN_SIZE | GDK_HINT_BASE_SIZE | hint_mask);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1961
338
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 333
diff changeset
1962 if (options->layout.save_window_positions)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1963 {
338
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 333
diff changeset
1964 gtk_window_set_default_size(GTK_WINDOW(lw->window), options->layout.main_window.w, options->layout.main_window.h);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1965 if (!layout_window_list)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1966 {
338
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 333
diff changeset
1967 gtk_window_move(GTK_WINDOW(lw->window), options->layout.main_window.x, options->layout.main_window.y);
41c3cb73120f Rename window options (moved to layout) and re-order rc file.
zas_
parents: 333
diff changeset
1968 if (options->layout.main_window.maximized) gtk_window_maximize(GTK_WINDOW(lw->window));
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1969 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1970 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1971 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1972 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1973 gtk_window_set_default_size(GTK_WINDOW(lw->window), MAINWINDOW_DEF_WIDTH, MAINWINDOW_DEF_HEIGHT);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1974 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1975
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1976 g_signal_connect(G_OBJECT(lw->window), "delete_event",
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1977 G_CALLBACK(layout_delete_cb), lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1978
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1979 layout_keyboard_init(lw, lw->window);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1980
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1981 lw->main_box = gtk_vbox_new(FALSE, 0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1982 gtk_container_add(GTK_CONTAINER(lw->window), lw->main_box);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1983 gtk_widget_show(lw->main_box);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1984
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1985 layout_grid_setup(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1986 image_top_window_set_sync(lw->image, (lw->tools_float || lw->tools_hidden));
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1987
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1988 layout_util_sync(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1989 layout_status_update_all(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1990
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1991 if (path)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1992 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1993 layout_set_path(lw, path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1994 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1995 else
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1996 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1997 GdkPixbuf *pixbuf;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1998
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
1999 pixbuf = pixbuf_inline(PIXBUF_INLINE_LOGO);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2000 image_change_pixbuf(lw->image, pixbuf, 1.0);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2001 gdk_pixbuf_unref(pixbuf);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2002 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2003
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2004 /* set up the time stat timeout */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2005 lw->last_time = 0;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2006 lw->last_time_id = g_timeout_add(5000, layout_check_for_update_cb, lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2007
81
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 41
diff changeset
2008 if (geometry)
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 41
diff changeset
2009 {
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 41
diff changeset
2010 if (!gtk_window_parse_geometry(GTK_WINDOW(lw->window), geometry))
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 41
diff changeset
2011 {
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 41
diff changeset
2012 print_term(_("Invalid geometry\n"));
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 41
diff changeset
2013 }
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 41
diff changeset
2014 }
0ef72a64930b Thu Oct 19 09:35:18 2006 John Ellis <johne@verizon.net>
gqview
parents: 41
diff changeset
2015
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2016 gtk_widget_show(lw->window);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2017 layout_tools_hide(lw, lw->tools_hidden);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2018
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2019 layout_window_list = g_list_append(layout_window_list, lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2020
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2021 return lw;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2022 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2023
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2024 /*
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2025 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2026 * maintenance (for rename, move, remove)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2027 *-----------------------------------------------------------------------------
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2028 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2029
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2030 static void layout_real_time_update(LayoutWindow *lw)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2031 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2032 /* this resets the last time stamp of path so that a refresh does not occur
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2033 * from an internal file operation.
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2034 */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2035
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2036 if (lw->path) lw->last_time = filetime(lw->path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2037 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2038
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
2039 static void layout_real_renamed(LayoutWindow *lw, FileData *fd)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2040 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2041 gint update = FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2042
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
2043 if (lw->image) layout_image_maint_renamed(lw, fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2044
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
2045 if (lw->vfl) update |= vflist_maint_renamed(lw->vfl, fd);
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
2046 if (lw->vfi) update |= vficon_maint_renamed(lw->vfi, fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2047
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2048 if (update) layout_real_time_update(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2049 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2050
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
2051 static void layout_real_removed(LayoutWindow *lw, FileData *fd, GList *ignore_list)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2052 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2053 gint update = FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2054
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
2055 if (lw->image) layout_image_maint_removed(lw, fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2056
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
2057 if (lw->vfl) update |= vflist_maint_removed(lw->vfl, fd, ignore_list);
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
2058 if (lw->vfi) update |= vficon_maint_removed(lw->vfi, fd, ignore_list);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2059
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2060 if (update) layout_real_time_update(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2061 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2062
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
2063 static void layout_real_moved(LayoutWindow *lw, FileData *fd, GList *ignore_list)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2064 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2065 gint update = FALSE;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2066
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
2067 if (lw->image) layout_image_maint_moved(lw, fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2068
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
2069 if (lw->vfl) update |= vflist_maint_moved(lw->vfl, fd, ignore_list);
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
2070 if (lw->vfi) update |= vficon_maint_moved(lw->vfi, fd, ignore_list);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2071
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2072 if (update) layout_real_time_update(lw);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2073 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2074
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
2075 void layout_maint_renamed(FileData *fd)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2076 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2077 GList *work = layout_window_list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2078 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2079 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2080 LayoutWindow *lw = work->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2081 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2082
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
2083 layout_real_renamed(lw, fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2084 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2085 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2086
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
2087 void layout_maint_removed(FileData *fd, GList *ignore_list)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2088 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2089 GList *work = layout_window_list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2090 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2091 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2092 LayoutWindow *lw = work->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2093 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2094
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
2095 layout_real_removed(lw, fd, ignore_list);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2096 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2097 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2098
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
2099 void layout_maint_moved(FileData *fd, GList *ignore_list)
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2100 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2101 GList *work = layout_window_list;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2102 while (work)
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2103 {
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2104 LayoutWindow *lw = work->data;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2105 work = work->next;
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2106
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 132
diff changeset
2107 layout_real_moved(lw, fd, ignore_list);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2108 }
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents:
diff changeset
2109 }