annotate src/img-main.c @ 8:e0d0593d519e

Sync to GQview 1.5.9 release. ######## DO NOT BASE ENHANCEMENTS OR TRANSLATION UPDATES ON CODE IN THIS CVS! This CVS is never up to date with current development and is provided solely for reference purposes, please use the latest official release package when making any changes or translation updates. ########
author gqview
date Sat, 26 Feb 2005 00:07:07 +0000
parents e149abcda4eb
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1 /*
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
2 * GQview image viewer
3
gqview
parents: 1
diff changeset
3 * (C)2000 John Ellis
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
4 *
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
5 * Author: John Ellis
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
6 *
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
7 */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
8
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
9 #include "gqview.h"
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
10 #include "image.h"
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
11 #include <gdk/gdkkeysyms.h> /* for keyboard values */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
12
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
13 #define BLACK_BACKGROUND 1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
14
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
15 /*
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
16 *-----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
17 * full screen keyboard
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
18 *-----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
19 */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
20
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
21 static gint full_screen_key_press_cb(GtkWidget *widget, GdkEventKey *event, gpointer data)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
22 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
23 ImageWindow *imd = data;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
24 gint stop_signal = FALSE;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
25 gint x = 0;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
26 gint y = 0;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
27
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
28 switch (event->keyval)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
29 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
30 case GDK_Left:
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
31 x -= 1;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
32 stop_signal = TRUE;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
33 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
34 case GDK_Right:
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
35 x += 1;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
36 stop_signal = TRUE;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
37 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
38 case GDK_Up:
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
39 y -= 1;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
40 stop_signal = TRUE;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
41 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
42 case GDK_Down:
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
43 y += 1;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
44 stop_signal = TRUE;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
45 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
46 case '+': case '=':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
47 image_area_adjust_zoom(imd, 1);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
48 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
49 case '-':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
50 image_area_adjust_zoom(imd, -1);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
51 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
52 case 'x':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
53 image_area_set_zoom(imd, 0);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
54 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
55 case 'z':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
56 image_area_set_zoom(imd, 1);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
57 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
58 case GDK_Page_Up:
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
59 case GDK_BackSpace:
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
60 file_prev_image();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
61 stop_signal = TRUE;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
62 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
63 case GDK_Page_Down:
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
64 case GDK_space:
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
65 file_next_image();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
66 stop_signal = TRUE;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
67 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
68 case GDK_Home:
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
69 file_first_image();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
70 stop_signal = TRUE;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
71 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
72 case GDK_End:
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
73 file_last_image();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
74 stop_signal = TRUE;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
75 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
76 case GDK_Delete:
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
77 full_screen_stop();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
78 file_util_delete(image_area_get_path(imd), NULL);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
79 stop_signal = TRUE;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
80 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
81 case GDK_Escape:
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
82 full_screen_stop();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
83 stop_signal = TRUE;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
84 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
85 case 'Q': case 'q':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
86 exit_gqview();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
87 return FALSE;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
88 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
89 case 'S': case 's':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
90 slideshow_toggle();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
91 break;
3
gqview
parents: 1
diff changeset
92 case 'V': case 'v':
gqview
parents: 1
diff changeset
93 full_screen_stop();
gqview
parents: 1
diff changeset
94 break;
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
95 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
96
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
97 if (event->state & GDK_CONTROL_MASK)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
98 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
99 gint n = -1;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
100 switch (event->keyval)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
101 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
102 case '1':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
103 n = 0;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
104 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
105 case '2':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
106 n = 1;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
107 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
108 case '3':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
109 n = 2;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
110 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
111 case '4':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
112 n = 3;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
113 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
114 case '5':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
115 n = 4;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
116 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
117 case '6':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
118 n = 5;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
119 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
120 case '7':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
121 n = 6;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
122 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
123 case '8':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
124 n = 7;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
125 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
126 case 'C': case 'c':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
127 full_screen_stop();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
128 file_util_copy(image_area_get_path(imd), NULL, current_path);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
129 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
130 case 'M': case 'm':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
131 full_screen_stop();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
132 file_util_move(image_area_get_path(imd), NULL, current_path);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
133 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
134 case 'R': case 'r':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
135 full_screen_stop();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
136 file_util_rename(image_area_get_path(imd), NULL);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
137 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
138 case 'D': case 'd':
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
139 full_screen_stop();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
140 file_util_delete(image_area_get_path(imd), NULL);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
141 break;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
142 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
143 if (n != -1)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
144 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
145 full_screen_stop();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
146 start_editor_from_file(n, image_area_get_path(imd));
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
147 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
148 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
149
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
150 if (event->state & GDK_SHIFT_MASK)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
151 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
152 x *= 3;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
153 y *= 3;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
154 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
155
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
156 if (x != 0 || y!= 0)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
157 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
158 keyboard_scroll_calc(&x, &y, event);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
159 image_area_scroll(imd, x, y);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
160 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
161
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
162 return stop_signal;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
163 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
164
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
165 /*
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
166 *----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
167 * mouse button callbacks
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
168 *----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
169 */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
170
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
171 static void button1_cb(ImageWindow *imd, GdkEventButton *bevent, gpointer data)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
172 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
173 file_next_image();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
174 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
175
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
176 static void button2_cb(ImageWindow *imd, GdkEventButton *bevent, gpointer data)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
177 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
178 file_prev_image();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
179 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
180
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
181 static void button3_cb(ImageWindow *imd, GdkEventButton *bevent, gpointer data)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
182 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
183 if (main_image == normal_image)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
184 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
185 gtk_menu_popup (GTK_MENU(menu_image_popup), NULL, NULL, NULL, NULL,
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
186 bevent->button, bevent->time);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
187 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
188 else
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
189 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
190 gtk_menu_popup (GTK_MENU(menu_window_full), NULL, NULL, NULL, NULL,
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
191 bevent->button, bevent->time);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
192 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
193 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
194
4
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
195 static void button4_cb(ImageWindow *imd, GdkEventButton *bevent, gpointer data)
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
196 {
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
197 if (mousewheel_scrolls)
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
198 image_area_scroll(imd, 0, -MOUSEWHEEL_SCROLL_SIZE);
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
199 else
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
200 file_prev_image();
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
201 }
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
202
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
203 static void button5_cb(ImageWindow *imd, GdkEventButton *bevent, gpointer data)
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
204 {
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
205 if (mousewheel_scrolls)
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
206 image_area_scroll(imd, 0, MOUSEWHEEL_SCROLL_SIZE);
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
207 else
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
208 file_next_image();
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
209 }
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
210
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
211 /*
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
212 *----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
213 * full screen functions
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
214 *----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
215 */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
216
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
217 static gint full_screen_delete_cb(GtkWidget *widget, GdkEventAny *event, gpointer data)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
218 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
219 full_screen_stop();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
220 return TRUE;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
221 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
222
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
223 static gint full_screen_destroy_cb(GtkWidget *widget, GdkEventAny *event, gpointer data)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
224 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
225 image_area_free(full_screen_image);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
226 full_screen_image = NULL;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
227
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
228 return FALSE;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
229 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
230
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
231 void full_screen_start()
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
232 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
233 GtkWidget *window;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
234 gint w;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
235 gint h;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
236
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
237 if (full_screen_window) return;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
238
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
239 w = gdk_screen_width();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
240 h = gdk_screen_height();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
241
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
242 window = gtk_window_new(GTK_WINDOW_POPUP);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
243 gtk_container_border_width(GTK_CONTAINER(window), 0);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
244 gtk_signal_connect(GTK_OBJECT(window), "delete_event", (GtkSignalFunc)full_screen_delete_cb, NULL);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
245 gtk_signal_connect(GTK_OBJECT(window), "destroy_event", (GtkSignalFunc)full_screen_destroy_cb, NULL);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
246
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
247 gtk_window_set_title(GTK_WINDOW(window), _("GQview full screen"));
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
248 gtk_widget_set_usize(window, w, h);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
249
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
250 full_screen_image = image_area_new(NULL);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
251
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
252 gtk_viewport_set_shadow_type (GTK_VIEWPORT(full_screen_image->viewport), GTK_SHADOW_NONE);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
253 gtk_container_add(GTK_CONTAINER(window), full_screen_image->eventbox);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
254
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
255 /* set background to black */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
256 if (BLACK_BACKGROUND)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
257 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
258 GtkStyle *style;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
259 style = gtk_style_copy(gtk_widget_get_style(full_screen_image->eventbox));
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
260 gtk_style_ref(style);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
261 style->bg[GTK_STATE_NORMAL] = style->black;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
262 gtk_widget_set_style(full_screen_image->viewport, style);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
263 gtk_style_unref(style);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
264 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
265
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
266 gtk_widget_show_all(full_screen_image->eventbox);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
267
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
268 gtk_signal_connect(GTK_OBJECT(window), "key_press_event", GTK_SIGNAL_FUNC(full_screen_key_press_cb), full_screen_image);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
269
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
270 image_area_set_image(full_screen_image, image_get_path(), image_area_get_zoom(normal_image));
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
271
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
272 gtk_widget_show(window);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
273 gdk_keyboard_grab(window->window, TRUE, GDK_CURRENT_TIME);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
274
4
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
275 /* hide normal window
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
276 * FIXME: properly restore this window on show
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
277 */
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
278 gtk_widget_hide(mainwindow);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
279 image_area_set_image(normal_image, NULL, image_area_get_zoom(normal_image));
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
280
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
281 full_screen_window = window;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
282
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
283 image_area_set_button(full_screen_image, 1, button1_cb, NULL);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
284 image_area_set_button(full_screen_image, 2, button2_cb, NULL);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
285 image_area_set_button(full_screen_image, 3, button3_cb, NULL);
4
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
286 /* for wheel mice */
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
287 image_area_set_button(full_screen_image, 4, button4_cb, NULL);
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
288 image_area_set_button(full_screen_image, 5, button5_cb, NULL);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
289
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
290 main_image = full_screen_image;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
291 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
292
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
293 void full_screen_stop()
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
294 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
295 if (!full_screen_window) return;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
296
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
297 gdk_keyboard_ungrab (GDK_CURRENT_TIME);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
298
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
299 image_area_set_image(normal_image, image_get_path(), image_area_get_zoom(full_screen_image));
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
300 main_image = normal_image;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
301
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
302 gtk_widget_destroy(full_screen_window);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
303 full_screen_window = NULL;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
304
3
gqview
parents: 1
diff changeset
305 image_area_free(full_screen_image);
gqview
parents: 1
diff changeset
306 full_screen_image = NULL;
gqview
parents: 1
diff changeset
307
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
308 gtk_widget_show(mainwindow);
4
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
309
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
310 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
311
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
312 void full_screen_toggle()
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
313 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
314 if (full_screen_window)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
315 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
316 full_screen_stop();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
317 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
318 else
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
319 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
320 full_screen_start();
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
321 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
322 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
323
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
324 /*
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
325 *----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
326 * main image manipulation
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
327 *----------------------------------------------------------------------------
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
328 */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
329
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
330 void image_scroll(gint x, gint y)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
331 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
332 image_area_scroll(main_image, x, y);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
333 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
334
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
335 void image_adjust_zoom(gint increment)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
336 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
337 image_area_adjust_zoom(main_image, increment);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
338 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
339
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
340 void image_set_zoom(gint zoom)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
341 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
342 image_area_set_zoom(main_image, zoom);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
343 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
344
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
345 void image_set_path(gchar *path)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
346 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
347 image_area_set_path(main_image, path);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
348 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
349
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
350 gchar *image_get_path()
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
351 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
352 return image_area_get_path(main_image);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
353 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
354
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
355 gchar *image_get_name()
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
356 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
357 return image_area_get_name(main_image);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
358 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
359
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
360 void image_change_to(gchar *path)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
361 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
362 image_area_set_image(main_image, path, get_default_zoom(main_image));
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
363 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
364
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
365 void image_set_labels(GtkWidget *info, GtkWidget *zoom)
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
366 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
367 image_area_set_labels(normal_image, info, zoom);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
368 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
369
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
370 GtkWidget *image_create()
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
371 {
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
372 normal_image = image_area_new(mainwindow);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
373
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
374 main_image = normal_image;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
375
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
376 image_area_set_button(main_image, 1, button1_cb, NULL);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
377 image_area_set_button(main_image, 2, button2_cb, NULL);
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
378 image_area_set_button(main_image, 3, button3_cb, NULL);
4
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
379 /* for wheel mice */
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
380 image_area_set_button(main_image, 4, button4_cb, NULL);
e149abcda4eb Syncing to 0.8.1
gqview
parents: 3
diff changeset
381 image_area_set_button(main_image, 5, button5_cb, NULL);
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
382
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
383 return main_image->eventbox;
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
384 }
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
385
3
gqview
parents: 1
diff changeset
386 void image_to_root()
gqview
parents: 1
diff changeset
387 {
gqview
parents: 1
diff changeset
388 image_area_to_root(main_image, (image_area_get_zoom(main_image) == 0));
gqview
parents: 1
diff changeset
389 }
gqview
parents: 1
diff changeset
390