Mercurial > geeqie.yaz
annotate src/image-overlay.c @ 860:1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
author | zas_ |
---|---|
date | Thu, 26 Jun 2008 23:29:08 +0000 |
parents | 7d387a25b1ec |
children | 3df5220fbc23 |
rev | line source |
---|---|
9 | 1 /* |
196 | 2 * Geeqie |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
3 * (C) 2006 John Ellis |
475 | 4 * Copyright (C) 2008 The Geeqie Team |
9 | 5 * |
6 * Author: John Ellis | |
7 * | |
8 * This software is released under the GNU General Public License (GNU GPL). | |
9 * Please read the included file COPYING for more information. | |
10 * This software comes with no warranty of any kind, use at your own risk! | |
11 */ | |
12 | |
281 | 13 #include "main.h" |
9 | 14 #include "image-overlay.h" |
15 | |
650
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
16 #include "bar_info.h" |
9 | 17 #include "collect.h" |
218
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
18 #include "exif.h" |
586 | 19 #include "filedata.h" |
622 | 20 #include "histogram.h" |
9 | 21 #include "image.h" |
22 #include "img-view.h" | |
23 #include "layout.h" | |
23
17acca639a86
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
24 #include "pixbuf-renderer.h" |
9 | 25 #include "pixbuf_util.h" |
622 | 26 #include "ui_fileops.h" |
9 | 27 |
28 /* | |
29 *---------------------------------------------------------------------------- | |
30 * image overlay | |
31 *---------------------------------------------------------------------------- | |
32 */ | |
33 | |
614 | 34 |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
35 typedef struct _OverlayStateData OverlayStateData; |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
36 struct _OverlayStateData { |
9 | 37 ImageWindow *imd; |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
38 ImageState changed_states; |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
39 |
616
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
40 Histogram *histogram; |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
41 |
614 | 42 OsdShowFlags show; |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
43 |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
44 gint ovl_info; |
822
df541dc41707
Allow to set image overlay info position through options:
zas_
parents:
821
diff
changeset
|
45 |
df541dc41707
Allow to set image overlay info position through options:
zas_
parents:
821
diff
changeset
|
46 gint x; |
df541dc41707
Allow to set image overlay info position through options:
zas_
parents:
821
diff
changeset
|
47 gint y; |
118
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
48 |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
49 gint icon_time[IMAGE_OSD_COUNT]; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
50 gint icon_id[IMAGE_OSD_COUNT]; |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
51 |
9 | 52 gint idle_id; |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
53 gint timer_id; |
9 | 54 gulong destroy_id; |
55 }; | |
56 | |
118
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
57 |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
58 typedef struct _OSDIcon OSDIcon; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
59 struct _OSDIcon { |
122
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
60 gint reset; /* reset on new image */ |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
61 gint x; /* x, y offset */ |
118
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
62 gint y; |
122
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
63 gchar *key; /* inline pixbuf */ |
118
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
64 }; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
65 |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
66 static OSDIcon osd_icons[] = { |
122
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
67 { TRUE, 0, 0, NULL }, /* none */ |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
68 { TRUE, -10, -10, NULL }, /* auto rotated */ |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
69 { TRUE, -10, -10, NULL }, /* user rotated */ |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
70 { TRUE, -40, -10, NULL }, /* color embedded */ |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
71 { TRUE, -70, -10, NULL }, /* first image */ |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
72 { TRUE, -70, -10, NULL }, /* last image */ |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
73 { FALSE, -70, -10, NULL }, /* osd enabled */ |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
74 { FALSE, 0, 0, NULL } |
118
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
75 }; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
76 |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
77 #define OSD_DATA "overlay-data" |
9 | 78 |
118
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
79 #define IMAGE_OSD_DEFAULT_DURATION 30 |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
80 |
290 | 81 #define HISTOGRAM_HEIGHT 140 |
620 | 82 #define HISTOGRAM_WIDTH 256 |
469
a05c72927e23
Rename few functions and replace fullscreen info with image overlay template string.
zas_
parents:
468
diff
changeset
|
83 |
481
67a612985686
Merge view_overlay_toggle() and layout_image_overlay_toggle() into new image_osd_toggle().
zas_
parents:
480
diff
changeset
|
84 static void image_osd_timer_schedule(OverlayStateData *osd); |
67a612985686
Merge view_overlay_toggle() and layout_image_overlay_toggle() into new image_osd_toggle().
zas_
parents:
480
diff
changeset
|
85 |
733
57f759d012c7
Modify set_default_image_overlay_template_string() to accept the pointer to
zas_
parents:
671
diff
changeset
|
86 void set_image_overlay_template_string(gchar **template_string, const gchar *value) |
469
a05c72927e23
Rename few functions and replace fullscreen info with image overlay template string.
zas_
parents:
468
diff
changeset
|
87 { |
733
57f759d012c7
Modify set_default_image_overlay_template_string() to accept the pointer to
zas_
parents:
671
diff
changeset
|
88 g_assert(template_string); |
57f759d012c7
Modify set_default_image_overlay_template_string() to accept the pointer to
zas_
parents:
671
diff
changeset
|
89 |
57f759d012c7
Modify set_default_image_overlay_template_string() to accept the pointer to
zas_
parents:
671
diff
changeset
|
90 g_free(*template_string); |
57f759d012c7
Modify set_default_image_overlay_template_string() to accept the pointer to
zas_
parents:
671
diff
changeset
|
91 *template_string = g_strdup(value); |
57f759d012c7
Modify set_default_image_overlay_template_string() to accept the pointer to
zas_
parents:
671
diff
changeset
|
92 } |
57f759d012c7
Modify set_default_image_overlay_template_string() to accept the pointer to
zas_
parents:
671
diff
changeset
|
93 |
57f759d012c7
Modify set_default_image_overlay_template_string() to accept the pointer to
zas_
parents:
671
diff
changeset
|
94 |
57f759d012c7
Modify set_default_image_overlay_template_string() to accept the pointer to
zas_
parents:
671
diff
changeset
|
95 void set_default_image_overlay_template_string(gchar **template_string) |
57f759d012c7
Modify set_default_image_overlay_template_string() to accept the pointer to
zas_
parents:
671
diff
changeset
|
96 { |
57f759d012c7
Modify set_default_image_overlay_template_string() to accept the pointer to
zas_
parents:
671
diff
changeset
|
97 set_image_overlay_template_string(template_string, DEFAULT_OVERLAY_INFO); |
469
a05c72927e23
Rename few functions and replace fullscreen info with image overlay template string.
zas_
parents:
468
diff
changeset
|
98 } |
a05c72927e23
Rename few functions and replace fullscreen info with image overlay template string.
zas_
parents:
468
diff
changeset
|
99 |
615
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
100 static OverlayStateData *image_get_osd_data(ImageWindow *imd) |
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
101 { |
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
102 OverlayStateData *osd; |
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
103 |
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
104 if (!imd) return NULL; |
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
105 |
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
106 g_assert(imd->pr); |
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
107 |
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
108 osd = g_object_get_data(G_OBJECT(imd->pr), "IMAGE_OVERLAY_DATA"); |
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
109 return osd; |
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
110 } |
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
111 |
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
112 static void image_set_osd_data(ImageWindow *imd, OverlayStateData *osd) |
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
113 { |
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
114 g_assert(imd); |
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
115 g_assert(imd->pr); |
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
116 g_object_set_data(G_OBJECT(imd->pr), "IMAGE_OVERLAY_DATA", osd); |
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
117 } |
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
118 |
273
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
265
diff
changeset
|
119 /* |
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
265
diff
changeset
|
120 *---------------------------------------------------------------------------- |
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
265
diff
changeset
|
121 * image histogram |
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
265
diff
changeset
|
122 *---------------------------------------------------------------------------- |
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
265
diff
changeset
|
123 */ |
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
265
diff
changeset
|
124 |
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
265
diff
changeset
|
125 |
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
265
diff
changeset
|
126 void image_osd_histogram_chan_toggle(ImageWindow *imd) |
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
265
diff
changeset
|
127 { |
616
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
128 OverlayStateData *osd = image_get_osd_data(imd); |
613
d06f422a6673
image_osd_histogram_chan_toggle(), image_osd_histogram_log_toggle():
zas_
parents:
586
diff
changeset
|
129 |
616
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
130 if (!osd || !osd->histogram) return; |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
131 |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
132 histogram_set_channel(osd->histogram, (histogram_get_channel(osd->histogram) +1)%HCHAN_COUNT); |
613
d06f422a6673
image_osd_histogram_chan_toggle(), image_osd_histogram_log_toggle():
zas_
parents:
586
diff
changeset
|
133 image_osd_update(imd); |
273
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
265
diff
changeset
|
134 } |
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
265
diff
changeset
|
135 |
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
265
diff
changeset
|
136 void image_osd_histogram_log_toggle(ImageWindow *imd) |
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
265
diff
changeset
|
137 { |
616
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
138 OverlayStateData *osd = image_get_osd_data(imd); |
613
d06f422a6673
image_osd_histogram_chan_toggle(), image_osd_histogram_log_toggle():
zas_
parents:
586
diff
changeset
|
139 |
616
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
140 if (!osd || !osd->histogram) return; |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
141 |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
142 histogram_set_mode(osd->histogram, !histogram_get_mode(osd->histogram)); |
613
d06f422a6673
image_osd_histogram_chan_toggle(), image_osd_histogram_log_toggle():
zas_
parents:
586
diff
changeset
|
143 image_osd_update(imd); |
273
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
265
diff
changeset
|
144 } |
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
265
diff
changeset
|
145 |
481
67a612985686
Merge view_overlay_toggle() and layout_image_overlay_toggle() into new image_osd_toggle().
zas_
parents:
480
diff
changeset
|
146 void image_osd_toggle(ImageWindow *imd) |
67a612985686
Merge view_overlay_toggle() and layout_image_overlay_toggle() into new image_osd_toggle().
zas_
parents:
480
diff
changeset
|
147 { |
616
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
148 OverlayStateData *osd; |
503
e5023cced4e5
Fix image overlay displayed only on second "I" press in layout view.
zas_
parents:
483
diff
changeset
|
149 |
616
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
150 if (!imd) return; |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
151 |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
152 osd = image_get_osd_data(imd); |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
153 if (!osd) |
481
67a612985686
Merge view_overlay_toggle() and layout_image_overlay_toggle() into new image_osd_toggle().
zas_
parents:
480
diff
changeset
|
154 { |
616
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
155 image_osd_set(imd, OSD_SHOW_INFO | OSD_SHOW_STATUS); |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
156 return; |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
157 } |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
158 |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
159 if (osd->show != OSD_SHOW_NOTHING) |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
160 { |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
161 if (osd->show & OSD_SHOW_HISTOGRAM) |
481
67a612985686
Merge view_overlay_toggle() and layout_image_overlay_toggle() into new image_osd_toggle().
zas_
parents:
480
diff
changeset
|
162 { |
616
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
163 image_osd_set(imd, OSD_SHOW_NOTHING); |
481
67a612985686
Merge view_overlay_toggle() and layout_image_overlay_toggle() into new image_osd_toggle().
zas_
parents:
480
diff
changeset
|
164 } |
67a612985686
Merge view_overlay_toggle() and layout_image_overlay_toggle() into new image_osd_toggle().
zas_
parents:
480
diff
changeset
|
165 else |
67a612985686
Merge view_overlay_toggle() and layout_image_overlay_toggle() into new image_osd_toggle().
zas_
parents:
480
diff
changeset
|
166 { |
616
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
167 image_osd_set(imd, osd->show | OSD_SHOW_HISTOGRAM); |
481
67a612985686
Merge view_overlay_toggle() and layout_image_overlay_toggle() into new image_osd_toggle().
zas_
parents:
480
diff
changeset
|
168 } |
67a612985686
Merge view_overlay_toggle() and layout_image_overlay_toggle() into new image_osd_toggle().
zas_
parents:
480
diff
changeset
|
169 } |
67a612985686
Merge view_overlay_toggle() and layout_image_overlay_toggle() into new image_osd_toggle().
zas_
parents:
480
diff
changeset
|
170 } |
118
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
171 |
650
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
172 static gchar *keywords_to_string(FileData *fd) |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
173 { |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
174 GList *keywords; |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
175 GString *kwstr = NULL; |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
176 gchar *ret = NULL; |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
177 |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
178 g_assert(fd); |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
179 |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
180 if (comment_read(fd, &keywords, NULL)) |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
181 { |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
182 GList *work = keywords; |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
183 |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
184 while (work) |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
185 { |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
186 gchar *kw = work->data; |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
187 work = work->next; |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
188 |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
189 if (!kw) continue; |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
190 if (!kwstr) |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
191 kwstr = g_string_new(""); |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
192 else |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
193 g_string_append(kwstr, ", "); |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
194 |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
195 g_string_append(kwstr, kw); |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
196 } |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
197 } |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
198 |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
199 if (kwstr) |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
200 { |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
201 ret = kwstr->str; |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
202 g_string_free(kwstr, FALSE); |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
203 } |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
204 |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
205 return ret; |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
206 } |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
207 |
218
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
208 static gchar *image_osd_mkinfo(const gchar *str, ImageWindow *imd, GHashTable *vars) |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
209 { |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
210 gchar delim = '%', imp = '|', sep[] = " - "; |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
211 gchar *start, *end; |
736 | 212 guint pos, prev; |
213 guint last; | |
218
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
214 gchar *name, *data; |
410 | 215 GString *new; |
218
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
216 gchar *ret; |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
217 ExifData *exif; |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
218 |
410 | 219 if (!str || !*str) return g_strdup(""); |
442 | 220 |
410 | 221 new = g_string_new(str); |
222 | |
449 | 223 exif = exif_read_fd(imd->image_fd); |
218
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
224 prev = 0; |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
225 last = FALSE; |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
226 |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
227 while (TRUE) |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
228 { |
736 | 229 guint limit = 0; |
298
cb93a982fcdd
Add the possibility to truncate overlay infos displayed:
zas_
parents:
290
diff
changeset
|
230 gchar *trunc = NULL; |
622 | 231 gchar *limpos = NULL; |
232 gchar *extra = NULL; | |
233 gchar *extrapos = NULL; | |
298
cb93a982fcdd
Add the possibility to truncate overlay infos displayed:
zas_
parents:
290
diff
changeset
|
234 gchar *p; |
cb93a982fcdd
Add the possibility to truncate overlay infos displayed:
zas_
parents:
290
diff
changeset
|
235 |
218
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
236 start = strchr(new->str, delim); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
237 if (!start) |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
238 break; |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
239 end = strchr(start+1, delim); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
240 if (!end) |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
241 break; |
442 | 242 |
622 | 243 /* Search for optionnal modifiers |
244 * %name:99:extra% -> name = "name", limit=99, extra = "extra" | |
245 */ | |
246 for (p = start + 1; p < end; p++) | |
298
cb93a982fcdd
Add the possibility to truncate overlay infos displayed:
zas_
parents:
290
diff
changeset
|
247 { |
622 | 248 if (p[0] == ':') |
298
cb93a982fcdd
Add the possibility to truncate overlay infos displayed:
zas_
parents:
290
diff
changeset
|
249 { |
622 | 250 if (g_ascii_isdigit(p[1]) && !limpos) |
251 { | |
252 limpos = p + 1; | |
253 if (!trunc) trunc = p; | |
254 } | |
255 else | |
256 { | |
257 extrapos = p + 1; | |
258 if (!trunc) trunc = p; | |
259 break; | |
260 } | |
298
cb93a982fcdd
Add the possibility to truncate overlay infos displayed:
zas_
parents:
290
diff
changeset
|
261 } |
cb93a982fcdd
Add the possibility to truncate overlay infos displayed:
zas_
parents:
290
diff
changeset
|
262 } |
218
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
263 |
622 | 264 if (limpos) |
736 | 265 limit = (guint) atoi(limpos); |
298
cb93a982fcdd
Add the possibility to truncate overlay infos displayed:
zas_
parents:
290
diff
changeset
|
266 |
622 | 267 if (extrapos) |
268 extra = g_strndup(extrapos, end - extrapos); | |
269 | |
270 name = g_strndup(start+1, (trunc ? trunc : end)-start-1); | |
650
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
271 pos = start - new->str; |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
272 data = NULL; |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
273 |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
274 if (strcmp(name, "keywords") == 0) |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
275 { |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
276 data = keywords_to_string(imd->image_fd); |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
277 } |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
278 else if (strcmp(name, "comment") == 0) |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
279 { |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
280 comment_read(imd->image_fd, NULL, &data); |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
281 } |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
282 else |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
283 { |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
284 data = g_strdup(g_hash_table_lookup(vars, name)); |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
285 if (data && strcmp(name, "zoom") == 0) imd->overlay_show_zoom = TRUE; |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
286 if (!data && exif) |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
287 data = exif_get_data_as_text(exif, name); |
02e2c135ee0c
Keywords and comment can now be displayed in OSD info using %keywords% and %comment%.
zas_
parents:
622
diff
changeset
|
288 } |
299 | 289 if (data && *data && limit > 0 && strlen(data) > limit + 3) |
298
cb93a982fcdd
Add the possibility to truncate overlay infos displayed:
zas_
parents:
290
diff
changeset
|
290 { |
cb93a982fcdd
Add the possibility to truncate overlay infos displayed:
zas_
parents:
290
diff
changeset
|
291 gchar *new_data = g_strdup_printf("%-*.*s...", limit, limit, data); |
cb93a982fcdd
Add the possibility to truncate overlay infos displayed:
zas_
parents:
290
diff
changeset
|
292 g_free(data); |
cb93a982fcdd
Add the possibility to truncate overlay infos displayed:
zas_
parents:
290
diff
changeset
|
293 data = new_data; |
cb93a982fcdd
Add the possibility to truncate overlay infos displayed:
zas_
parents:
290
diff
changeset
|
294 } |
622 | 295 |
483
c9e3baeda1b1
Correctly escape data before using pango_layout_set_markup().
zas_
parents:
482
diff
changeset
|
296 if (data) |
c9e3baeda1b1
Correctly escape data before using pango_layout_set_markup().
zas_
parents:
482
diff
changeset
|
297 { |
c9e3baeda1b1
Correctly escape data before using pango_layout_set_markup().
zas_
parents:
482
diff
changeset
|
298 /* Since we use pango markup to display, we need to escape here */ |
c9e3baeda1b1
Correctly escape data before using pango_layout_set_markup().
zas_
parents:
482
diff
changeset
|
299 gchar *escaped = g_markup_escape_text(data, -1); |
c9e3baeda1b1
Correctly escape data before using pango_layout_set_markup().
zas_
parents:
482
diff
changeset
|
300 g_free(data); |
c9e3baeda1b1
Correctly escape data before using pango_layout_set_markup().
zas_
parents:
482
diff
changeset
|
301 data = escaped; |
c9e3baeda1b1
Correctly escape data before using pango_layout_set_markup().
zas_
parents:
482
diff
changeset
|
302 } |
622 | 303 |
304 if (extra) | |
305 { | |
306 if (data && *data) | |
307 { | |
308 /* Display data between left and right parts of extra string | |
752
85c9412d77d2
Allow to escape star characters in the template string with a \.
zas_
parents:
736
diff
changeset
|
309 * the data is expressed by a '*' character. A '*' may be escaped |
85c9412d77d2
Allow to escape star characters in the template string with a \.
zas_
parents:
736
diff
changeset
|
310 * by a \. You should escape all '*' characters, do not rely on the |
85c9412d77d2
Allow to escape star characters in the template string with a \.
zas_
parents:
736
diff
changeset
|
311 * current implementation which only replaces the first unescaped '*'. |
622 | 312 * If no "*" is present, the extra string is just appended to data string. |
313 * Pango mark up is accepted in left and right parts. | |
314 * Any \n is replaced by a newline | |
315 * Examples: | |
316 * "<i>*</i>\n" -> data is displayed in italics ended with a newline | |
317 * "\n" -> ended with newline | |
318 * "ISO *" -> prefix data with "ISO " (ie. "ISO 100") | |
752
85c9412d77d2
Allow to escape star characters in the template string with a \.
zas_
parents:
736
diff
changeset
|
319 * "\**\*" -> prefix data with a star, and append a star (ie. "*100*") |
85c9412d77d2
Allow to escape star characters in the template string with a \.
zas_
parents:
736
diff
changeset
|
320 * "\\*" -> prefix data with an anti slash (ie "\100") |
622 | 321 * "Collection <b>*</b>\n" -> display data in bold prefixed by "Collection " and a newline is appended |
322 * | |
323 * FIXME: using background / foreground colors lead to weird results. | |
324 */ | |
325 gchar *new_data; | |
326 gchar *left = NULL; | |
327 gchar *right = extra; | |
328 gchar *p; | |
736 | 329 guint len = strlen(extra); |
622 | 330 |
752
85c9412d77d2
Allow to escape star characters in the template string with a \.
zas_
parents:
736
diff
changeset
|
331 /* Search for left and right parts and unescape characters */ |
622 | 332 for (p = extra; *p; p++, len--) |
752
85c9412d77d2
Allow to escape star characters in the template string with a \.
zas_
parents:
736
diff
changeset
|
333 if (p[0] == '\\') |
622 | 334 { |
752
85c9412d77d2
Allow to escape star characters in the template string with a \.
zas_
parents:
736
diff
changeset
|
335 if (p[1] == 'n') |
85c9412d77d2
Allow to escape star characters in the template string with a \.
zas_
parents:
736
diff
changeset
|
336 { |
85c9412d77d2
Allow to escape star characters in the template string with a \.
zas_
parents:
736
diff
changeset
|
337 memmove(p+1, p+2, --len); |
85c9412d77d2
Allow to escape star characters in the template string with a \.
zas_
parents:
736
diff
changeset
|
338 p[0] = '\n'; |
85c9412d77d2
Allow to escape star characters in the template string with a \.
zas_
parents:
736
diff
changeset
|
339 } |
85c9412d77d2
Allow to escape star characters in the template string with a \.
zas_
parents:
736
diff
changeset
|
340 else if (p[1] != '\0') |
85c9412d77d2
Allow to escape star characters in the template string with a \.
zas_
parents:
736
diff
changeset
|
341 memmove(p, p+1, len--); // includes \0 |
85c9412d77d2
Allow to escape star characters in the template string with a \.
zas_
parents:
736
diff
changeset
|
342 } |
85c9412d77d2
Allow to escape star characters in the template string with a \.
zas_
parents:
736
diff
changeset
|
343 else if (p[0] == '*' && !left) |
85c9412d77d2
Allow to escape star characters in the template string with a \.
zas_
parents:
736
diff
changeset
|
344 { |
85c9412d77d2
Allow to escape star characters in the template string with a \.
zas_
parents:
736
diff
changeset
|
345 right = p + 1; |
85c9412d77d2
Allow to escape star characters in the template string with a \.
zas_
parents:
736
diff
changeset
|
346 left = extra; |
622 | 347 } |
348 | |
752
85c9412d77d2
Allow to escape star characters in the template string with a \.
zas_
parents:
736
diff
changeset
|
349 if (left) right[-1] = '\0'; |
85c9412d77d2
Allow to escape star characters in the template string with a \.
zas_
parents:
736
diff
changeset
|
350 |
622 | 351 new_data = g_strdup_printf("%s%s%s", left ? left : "", data, right); |
352 g_free(data); | |
353 data = new_data; | |
354 } | |
355 g_free(extra); | |
356 } | |
357 | |
218
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
358 g_string_erase(new, pos, end-start+1); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
359 if (data) |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
360 g_string_insert(new, pos, data); |
622 | 361 |
752
85c9412d77d2
Allow to escape star characters in the template string with a \.
zas_
parents:
736
diff
changeset
|
362 if (pos-prev >= 2 && new->str[pos-1] == imp) |
218
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
363 { |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
364 g_string_erase(new, --pos, 1); |
752
85c9412d77d2
Allow to escape star characters in the template string with a \.
zas_
parents:
736
diff
changeset
|
365 if (last && data && *data) |
218
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
366 { |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
367 g_string_insert(new, pos, sep); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
368 pos += strlen(sep); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
369 } |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
370 } |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
371 |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
372 prev = data ? pos+strlen(data)-1 : pos-1; |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
373 last = data ? TRUE : last; |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
374 g_free(name); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
375 g_free(data); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
376 } |
442 | 377 |
844 | 378 exif_free_fd(imd->image_fd, exif); |
218
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
379 /* search and destroy empty lines */ |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
380 end = new->str; |
245
62f2f8f7cb2d
Add parenthesis around affection to clear a gcc warning.
zas_
parents:
218
diff
changeset
|
381 while ((start = strchr(end, '\n'))) |
218
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
382 { |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
383 end = start; |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
384 while (*++(end) == '\n') |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
385 ; |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
386 g_string_erase(new, start-new->str, end-start-1); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
387 } |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
388 |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
389 g_strchomp(new->str); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
390 |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
391 ret = new->str; |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
392 g_string_free(new, FALSE); |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
393 |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
394 return ret; |
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
395 } |
9 | 396 |
616
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
397 static GdkPixbuf *image_osd_info_render(OverlayStateData *osd) |
9 | 398 { |
410 | 399 GdkPixbuf *pixbuf = NULL; |
9 | 400 gint width, height; |
401 PangoLayout *layout; | |
402 const gchar *name; | |
275 | 403 gchar *text; |
273
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
265
diff
changeset
|
404 GdkPixbuf *imgpixbuf = NULL; |
860
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
405 gboolean with_hist; |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
406 ImageWindow *imd = osd->imd; |
617
aa883b6d2ef6
image_osd_info_render(): if there's no fd, just return.
zas_
parents:
616
diff
changeset
|
407 FileData *fd = image_get_fd(imd); |
aa883b6d2ef6
image_osd_info_render(): if there's no fd, just return.
zas_
parents:
616
diff
changeset
|
408 |
aa883b6d2ef6
image_osd_info_render(): if there's no fd, just return.
zas_
parents:
616
diff
changeset
|
409 if (!fd) return NULL; |
218
f4a0555794a9
Customizable info overlay in fullscreen, based on the patch posted to gqview-devel list by Timo on 2007-09-10.
zas_
parents:
216
diff
changeset
|
410 |
9 | 411 name = image_get_name(imd); |
412 if (name) | |
413 { | |
860
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
414 gint n, t; |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
415 CollectionData *cd; |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
416 CollectInfo *info; |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
417 GHashTable *vars; |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
418 |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
419 vars = g_hash_table_new_full(g_str_hash, g_str_equal, NULL, g_free); |
9 | 420 |
860
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
421 cd = image_get_collection(imd, &info); |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
422 if (cd) |
622 | 423 { |
860
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
424 gchar *collection_name; |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
425 |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
426 t = g_list_length(cd->list); |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
427 n = g_list_index(cd->list, info) + 1; |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
428 if (cd->name) |
9 | 429 { |
860
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
430 if (file_extension_match(cd->name, GQ_COLLECTION_EXT)) |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
431 collection_name = remove_extension_from_path(cd->name); |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
432 else |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
433 collection_name = g_strdup(cd->name); |
9 | 434 } |
435 else | |
436 { | |
860
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
437 collection_name = g_strdup(_("Untitled")); |
9 | 438 } |
860
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
439 |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
440 g_hash_table_insert(vars, "collection", g_markup_escape_text(collection_name, -1)); |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
441 g_free(collection_name); |
9 | 442 } |
443 else | |
444 { | |
860
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
445 LayoutWindow *lw = layout_find_by_image(imd); |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
446 if (lw) |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
447 { |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
448 if (lw->slideshow) |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
449 { |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
450 n = g_list_length(lw->slideshow->list_done); |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
451 t = n + g_list_length(lw->slideshow->list); |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
452 if (n == 0) n = t; |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
453 } |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
454 else |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
455 { |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
456 t = layout_list_count(lw, NULL); |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
457 n = layout_list_get_index(lw, image_get_fd(lw->image)) + 1; |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
458 } |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
459 } |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
460 else if (view_window_find_image(imd, &n, &t)) |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
461 { |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
462 n++; |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
463 } |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
464 else |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
465 { |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
466 t = 1; |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
467 n = 1; |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
468 } |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
469 |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
470 if (n < 1) n = 1; |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
471 if (t < 1) t = 1; |
480
805c3258d228
Make histogram depends on image window not layout window.
zas_
parents:
475
diff
changeset
|
472 |
860
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
473 g_hash_table_insert(vars, "collection", g_strdup("")); |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
474 } |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
475 |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
476 g_hash_table_insert(vars, "number", g_strdup_printf("%d", n)); |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
477 g_hash_table_insert(vars, "total", g_strdup_printf("%d", t)); |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
478 g_hash_table_insert(vars, "name", g_markup_escape_text(name, -1)); |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
479 g_hash_table_insert(vars, "date", g_strdup(text_from_time(imd->mtime))); |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
480 g_hash_table_insert(vars, "size", text_from_size_abrev(imd->size)); |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
481 g_hash_table_insert(vars, "zoom", image_zoom_get_as_text(imd)); |
9 | 482 |
860
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
483 if (!imd->unknown) |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
484 { |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
485 gint w, h; |
442 | 486 |
860
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
487 if (imd->delay_flip && |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
488 imd->il && imd->il->pixbuf && |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
489 image_get_pixbuf(imd) != imd->il->pixbuf) |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
490 { |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
491 w = gdk_pixbuf_get_width(imd->il->pixbuf); |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
492 h = gdk_pixbuf_get_height(imd->il->pixbuf); |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
493 imgpixbuf = imd->il->pixbuf; |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
494 } |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
495 else |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
496 { |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
497 image_get_image_size(imd, &w, &h); |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
498 imgpixbuf = (PIXBUF_RENDERER(imd->pr))->pixbuf; |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
499 } |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
500 |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
501 g_hash_table_insert(vars, "width", g_strdup_printf("%d", w)); |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
502 g_hash_table_insert(vars, "height", g_strdup_printf("%d", h)); |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
503 g_hash_table_insert(vars, "res", g_strdup_printf("%d × %d", w, h)); |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
504 } |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
505 |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
506 text = image_osd_mkinfo(options->image_overlay.common.template_string, imd, vars); |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
507 g_hash_table_destroy(vars); |
415 | 508 |
860
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
509 } else { |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
510 /* When does this occur ?? */ |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
511 text = g_strdup(_("Untitled")); |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
512 } |
132 | 513 |
860
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
514 with_hist = (imgpixbuf && (osd->show & OSD_SHOW_HISTOGRAM) && osd->histogram && (!imd->il || imd->il->done)); |
1e85eabf4952
image_osd_info_render(): code cleanup and simplification, drop some useless memory allocations.
zas_
parents:
857
diff
changeset
|
515 |
133 | 516 { |
265
3f14da3c3b9a
Fix a segfault on fullscreen file deletion reported by Fr«±d«±ric Mantegazza.
zas_
parents:
263
diff
changeset
|
517 gint active_marks = 0; |
3f14da3c3b9a
Fix a segfault on fullscreen file deletion reported by Fr«±d«±ric Mantegazza.
zas_
parents:
263
diff
changeset
|
518 gint mark; |
275 | 519 gchar *text2; |
263
c7fefb0a4b78
Display marks in overlay info only if at least one is set.
zas_
parents:
245
diff
changeset
|
520 |
442 | 521 for (mark = 0; mark < FILEDATA_MARKS_SIZE; mark++) |
263
c7fefb0a4b78
Display marks in overlay info only if at least one is set.
zas_
parents:
245
diff
changeset
|
522 { |
800 | 523 active_marks += file_data_get_mark(fd, mark); |
265
3f14da3c3b9a
Fix a segfault on fullscreen file deletion reported by Fr«±d«±ric Mantegazza.
zas_
parents:
263
diff
changeset
|
524 } |
263
c7fefb0a4b78
Display marks in overlay info only if at least one is set.
zas_
parents:
245
diff
changeset
|
525 |
265
3f14da3c3b9a
Fix a segfault on fullscreen file deletion reported by Fr«±d«±ric Mantegazza.
zas_
parents:
263
diff
changeset
|
526 if (active_marks > 0) |
3f14da3c3b9a
Fix a segfault on fullscreen file deletion reported by Fr«±d«±ric Mantegazza.
zas_
parents:
263
diff
changeset
|
527 { |
3f14da3c3b9a
Fix a segfault on fullscreen file deletion reported by Fr«±d«±ric Mantegazza.
zas_
parents:
263
diff
changeset
|
528 GString *buf = g_string_sized_new(FILEDATA_MARKS_SIZE * 2); |
442 | 529 |
530 for (mark = 0; mark < FILEDATA_MARKS_SIZE; mark++) | |
265
3f14da3c3b9a
Fix a segfault on fullscreen file deletion reported by Fr«±d«±ric Mantegazza.
zas_
parents:
263
diff
changeset
|
531 { |
800 | 532 g_string_append_printf(buf, file_data_get_mark(fd, mark) ? " <span background='#FF00FF'>%c</span>" : " %c", '1' + mark); |
265
3f14da3c3b9a
Fix a segfault on fullscreen file deletion reported by Fr«±d«±ric Mantegazza.
zas_
parents:
263
diff
changeset
|
533 } |
3f14da3c3b9a
Fix a segfault on fullscreen file deletion reported by Fr«±d«±ric Mantegazza.
zas_
parents:
263
diff
changeset
|
534 |
410 | 535 if (*text) |
536 text2 = g_strdup_printf("%s\n%s", text, buf->str); | |
537 else | |
538 text2 = g_strdup(buf->str); | |
265
3f14da3c3b9a
Fix a segfault on fullscreen file deletion reported by Fr«±d«±ric Mantegazza.
zas_
parents:
263
diff
changeset
|
539 g_string_free(buf, TRUE); |
3f14da3c3b9a
Fix a segfault on fullscreen file deletion reported by Fr«±d«±ric Mantegazza.
zas_
parents:
263
diff
changeset
|
540 g_free(text); |
275 | 541 text = text2; |
265
3f14da3c3b9a
Fix a segfault on fullscreen file deletion reported by Fr«±d«±ric Mantegazza.
zas_
parents:
263
diff
changeset
|
542 } |
275 | 543 |
290 | 544 if (with_hist) |
545 { | |
616
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
546 gchar *escaped_histogram_label = g_markup_escape_text(histogram_label(osd->histogram), -1); |
410 | 547 if (*text) |
483
c9e3baeda1b1
Correctly escape data before using pango_layout_set_markup().
zas_
parents:
482
diff
changeset
|
548 text2 = g_strdup_printf("%s\n%s", text, escaped_histogram_label); |
410 | 549 else |
483
c9e3baeda1b1
Correctly escape data before using pango_layout_set_markup().
zas_
parents:
482
diff
changeset
|
550 text2 = g_strdup(escaped_histogram_label); |
c9e3baeda1b1
Correctly escape data before using pango_layout_set_markup().
zas_
parents:
482
diff
changeset
|
551 g_free(escaped_histogram_label); |
290 | 552 g_free(text); |
553 text = text2; | |
554 } | |
155 | 555 } |
410 | 556 |
23
17acca639a86
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents:
9
diff
changeset
|
557 layout = gtk_widget_create_pango_layout(imd->pr, NULL); |
275 | 558 pango_layout_set_markup(layout, text, -1); |
559 g_free(text); | |
442 | 560 |
9 | 561 pango_layout_get_pixel_size(layout, &width, &height); |
410 | 562 /* with empty text width is set to 0, but not height) */ |
563 if (width == 0) | |
564 height = 0; | |
565 else if (height == 0) | |
566 width = 0; | |
567 if (width > 0) width += 10; | |
568 if (height > 0) height += 10; | |
9 | 569 |
273
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
265
diff
changeset
|
570 if (with_hist) |
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
265
diff
changeset
|
571 { |
616
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
572 histogram_read(osd->histogram, imgpixbuf); |
620 | 573 if (width < HISTOGRAM_WIDTH + 10) width = HISTOGRAM_WIDTH + 10; |
290 | 574 height += HISTOGRAM_HEIGHT + 5; |
273
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
265
diff
changeset
|
575 } |
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
265
diff
changeset
|
576 |
410 | 577 if (width > 0 && height > 0) |
578 { | |
579 /* TODO: make osd color configurable --Zas */ | |
580 pixbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, width, height); | |
581 pixbuf_set_rect_fill(pixbuf, 3, 3, width-6, height-6, 240, 240, 240, 210); | |
582 pixbuf_set_rect(pixbuf, 0, 0, width, height, 240, 240, 240, 80, 1, 1, 1, 1); | |
583 pixbuf_set_rect(pixbuf, 1, 1, width-2, height-2, 240, 240, 240, 130, 1, 1, 1, 1); | |
584 pixbuf_set_rect(pixbuf, 2, 2, width-4, height-4, 240, 240, 240, 180, 1, 1, 1, 1); | |
585 pixbuf_pixel_set(pixbuf, 0, 0, 0, 0, 0, 0); | |
586 pixbuf_pixel_set(pixbuf, width - 1, 0, 0, 0, 0, 0); | |
587 pixbuf_pixel_set(pixbuf, 0, height - 1, 0, 0, 0, 0); | |
588 pixbuf_pixel_set(pixbuf, width - 1, height - 1, 0, 0, 0, 0); | |
442 | 589 |
410 | 590 if (with_hist) |
620 | 591 { |
592 gint x = 5; | |
593 gint y = height - HISTOGRAM_HEIGHT - 5; | |
594 gint w = width - 10; | |
760 | 595 float xoffset = 0; |
620 | 596 gint subdiv = 5; |
597 gint c = 160; | |
598 gint alpha = 250; | |
599 gint i; | |
760 | 600 float add = w / (float)subdiv; |
442 | 601 |
620 | 602 for (i = 0; i < subdiv; i++) |
603 { | |
604 gint d = (i > 0 ? 0 : 1); | |
605 | |
760 | 606 pixbuf_set_rect(pixbuf, x + xoffset + 0.5, y, add + d + 0.5, HISTOGRAM_HEIGHT, c, c, c, alpha, d, 1, 1, 1); |
607 xoffset += add+d; | |
620 | 608 } |
609 | |
610 histogram_draw(osd->histogram, pixbuf, x, y, w, HISTOGRAM_HEIGHT); | |
611 } | |
410 | 612 pixbuf_draw_layout(pixbuf, layout, imd->pr, 5, 5, 0, 0, 0, 255); |
613 } | |
9 | 614 |
615 g_object_unref(G_OBJECT(layout)); | |
616 | |
617 return pixbuf; | |
618 } | |
619 | |
118
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
620 static GdkPixbuf *image_osd_icon_pixbuf(ImageOSDFlag flag) |
9 | 621 { |
118
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
622 static GdkPixbuf **icons = NULL; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
623 GdkPixbuf *icon = NULL; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
624 |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
625 if (!icons) icons = g_new0(GdkPixbuf *, IMAGE_OSD_COUNT); |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
626 if (icons[flag]) return icons[flag]; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
627 |
122
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
628 if (osd_icons[flag].key) |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
629 { |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
630 icon = pixbuf_inline(osd_icons[flag].key); |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
631 } |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
632 |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
633 if (!icon) |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
634 { |
122
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
635 icon = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, 24, 24); |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
636 pixbuf_set_rect_fill(icon, 1, 1, 22, 22, 255, 255, 255, 200); |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
637 pixbuf_set_rect(icon, 0, 0, 24, 24, 0, 0, 0, 128, 1, 1, 1, 1); |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
638 switch (flag) |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
639 { |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
640 case IMAGE_OSD_ROTATE_AUTO: |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
641 pixbuf_set_rect(icon, 3, 8, 11, 12, |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
642 0, 0, 0, 255, |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
643 3, 0, 3, 0); |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
644 pixbuf_draw_triangle(icon, 14, 3, 6, 12, |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
645 20, 9, 14, 15, 14, 3, |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
646 0, 0, 0, 255); |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
647 break; |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
648 case IMAGE_OSD_ROTATE_USER: |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
649 break; |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
650 case IMAGE_OSD_COLOR: |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
651 pixbuf_set_rect_fill(icon, 3, 3, 18, 6, 200, 0, 0, 255); |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
652 pixbuf_set_rect_fill(icon, 3, 9, 18, 6, 0, 200, 0, 255); |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
653 pixbuf_set_rect_fill(icon, 3, 15, 18, 6, 0, 0, 200, 255); |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
654 break; |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
655 case IMAGE_OSD_FIRST: |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
656 pixbuf_set_rect(icon, 3, 3, 18, 18, 0, 0, 0, 200, 3, 3, 3, 0); |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
657 pixbuf_draw_triangle(icon, 6, 5, 12, 6, |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
658 12, 5, 18, 11, 6, 11, |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
659 0, 0, 0, 255); |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
660 break; |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
661 case IMAGE_OSD_LAST: |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
662 pixbuf_set_rect(icon, 3, 3, 18, 18, 0, 0, 0, 200, 3, 3, 0, 3); |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
663 pixbuf_draw_triangle(icon, 6, 12, 12, 6, |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
664 12, 18, 6, 12, 18, 12, |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
665 0, 0, 0, 255); |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
666 break; |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
667 case IMAGE_OSD_ICON: |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
668 pixbuf_set_rect_fill(icon, 11, 3, 3, 12, 0, 0, 0, 255); |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
669 pixbuf_set_rect_fill(icon, 11, 17, 3, 3, 0, 0, 0, 255); |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
670 break; |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
671 default: |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
672 break; |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
673 } |
118
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
674 } |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
675 |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
676 icons[flag] = icon; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
677 |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
678 return icon; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
679 } |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
680 |
821
fb249b8e63e4
Move some functions from image.[ch] to image-overlay.c and make them static:
zas_
parents:
800
diff
changeset
|
681 static gint image_overlay_add(ImageWindow *imd, GdkPixbuf *pixbuf, gint x, gint y, |
857
7d387a25b1ec
Use flags instead of int parameters for pixbuf_renderer_overlay_add().
zas_
parents:
844
diff
changeset
|
682 OverlayRendererFlags flags) |
821
fb249b8e63e4
Move some functions from image.[ch] to image-overlay.c and make them static:
zas_
parents:
800
diff
changeset
|
683 { |
857
7d387a25b1ec
Use flags instead of int parameters for pixbuf_renderer_overlay_add().
zas_
parents:
844
diff
changeset
|
684 return pixbuf_renderer_overlay_add((PixbufRenderer *)imd->pr, pixbuf, x, y, flags); |
821
fb249b8e63e4
Move some functions from image.[ch] to image-overlay.c and make them static:
zas_
parents:
800
diff
changeset
|
685 } |
fb249b8e63e4
Move some functions from image.[ch] to image-overlay.c and make them static:
zas_
parents:
800
diff
changeset
|
686 |
fb249b8e63e4
Move some functions from image.[ch] to image-overlay.c and make them static:
zas_
parents:
800
diff
changeset
|
687 static void image_overlay_set(ImageWindow *imd, gint id, GdkPixbuf *pixbuf, gint x, gint y) |
fb249b8e63e4
Move some functions from image.[ch] to image-overlay.c and make them static:
zas_
parents:
800
diff
changeset
|
688 { |
fb249b8e63e4
Move some functions from image.[ch] to image-overlay.c and make them static:
zas_
parents:
800
diff
changeset
|
689 pixbuf_renderer_overlay_set((PixbufRenderer *)imd->pr, id, pixbuf, x, y); |
fb249b8e63e4
Move some functions from image.[ch] to image-overlay.c and make them static:
zas_
parents:
800
diff
changeset
|
690 } |
fb249b8e63e4
Move some functions from image.[ch] to image-overlay.c and make them static:
zas_
parents:
800
diff
changeset
|
691 |
fb249b8e63e4
Move some functions from image.[ch] to image-overlay.c and make them static:
zas_
parents:
800
diff
changeset
|
692 #if 0 /* unused for now */ |
fb249b8e63e4
Move some functions from image.[ch] to image-overlay.c and make them static:
zas_
parents:
800
diff
changeset
|
693 static gint image_overlay_get(ImageWindow *imd, gint id, GdkPixbuf **pixbuf, gint *x, gint *y) |
fb249b8e63e4
Move some functions from image.[ch] to image-overlay.c and make them static:
zas_
parents:
800
diff
changeset
|
694 { |
fb249b8e63e4
Move some functions from image.[ch] to image-overlay.c and make them static:
zas_
parents:
800
diff
changeset
|
695 return pixbuf_renderer_overlay_get((PixbufRenderer *)imd->pr, id, pixbuf, x, y); |
fb249b8e63e4
Move some functions from image.[ch] to image-overlay.c and make them static:
zas_
parents:
800
diff
changeset
|
696 } |
fb249b8e63e4
Move some functions from image.[ch] to image-overlay.c and make them static:
zas_
parents:
800
diff
changeset
|
697 #endif |
fb249b8e63e4
Move some functions from image.[ch] to image-overlay.c and make them static:
zas_
parents:
800
diff
changeset
|
698 |
fb249b8e63e4
Move some functions from image.[ch] to image-overlay.c and make them static:
zas_
parents:
800
diff
changeset
|
699 static void image_overlay_remove(ImageWindow *imd, gint id) |
fb249b8e63e4
Move some functions from image.[ch] to image-overlay.c and make them static:
zas_
parents:
800
diff
changeset
|
700 { |
fb249b8e63e4
Move some functions from image.[ch] to image-overlay.c and make them static:
zas_
parents:
800
diff
changeset
|
701 pixbuf_renderer_overlay_remove((PixbufRenderer *)imd->pr, id); |
fb249b8e63e4
Move some functions from image.[ch] to image-overlay.c and make them static:
zas_
parents:
800
diff
changeset
|
702 } |
fb249b8e63e4
Move some functions from image.[ch] to image-overlay.c and make them static:
zas_
parents:
800
diff
changeset
|
703 |
118
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
704 static void image_osd_icon_show(OverlayStateData *osd, ImageOSDFlag flag) |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
705 { |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
706 GdkPixbuf *pixbuf; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
707 |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
708 if (osd->icon_id[flag]) return; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
709 |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
710 pixbuf = image_osd_icon_pixbuf(flag); |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
711 if (!pixbuf) return; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
712 |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
713 osd->icon_id[flag] = image_overlay_add(osd->imd, pixbuf, |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
714 osd_icons[flag].x, osd_icons[flag].y, |
857
7d387a25b1ec
Use flags instead of int parameters for pixbuf_renderer_overlay_add().
zas_
parents:
844
diff
changeset
|
715 OVL_RELATIVE); |
118
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
716 } |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
717 |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
718 static void image_osd_icon_hide(OverlayStateData *osd, ImageOSDFlag flag) |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
719 { |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
720 if (osd->icon_id[flag]) |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
721 { |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
722 image_overlay_remove(osd->imd, osd->icon_id[flag]); |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
723 osd->icon_id[flag] = 0; |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
724 } |
9 | 725 } |
726 | |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
727 static gint image_osd_update_cb(gpointer data) |
9 | 728 { |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
729 OverlayStateData *osd = data; |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
730 |
415 | 731 osd->imd->overlay_show_zoom = FALSE; |
732 | |
614 | 733 if (osd->show & OSD_SHOW_INFO) |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
734 { |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
735 if (osd->changed_states & IMAGE_STATE_IMAGE) |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
736 { |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
737 GdkPixbuf *pixbuf; |
9 | 738 |
616
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
739 pixbuf = image_osd_info_render(osd); |
410 | 740 if (pixbuf) |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
741 { |
410 | 742 if (osd->ovl_info == 0) |
743 { | |
744 osd->ovl_info = image_overlay_add(osd->imd, pixbuf, | |
857
7d387a25b1ec
Use flags instead of int parameters for pixbuf_renderer_overlay_add().
zas_
parents:
844
diff
changeset
|
745 osd->x, osd->y, OVL_RELATIVE); |
410 | 746 } |
747 else | |
748 { | |
822
df541dc41707
Allow to set image overlay info position through options:
zas_
parents:
821
diff
changeset
|
749 image_overlay_set(osd->imd, osd->ovl_info, pixbuf, osd->x, osd->y); |
410 | 750 } |
751 g_object_unref(pixbuf); | |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
752 } |
410 | 753 else if (osd->ovl_info) |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
754 { |
410 | 755 image_overlay_remove(osd->imd, osd->ovl_info); |
756 osd->ovl_info = 0; | |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
757 } |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
758 } |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
759 } |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
760 else |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
761 { |
118
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
762 if (osd->ovl_info) |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
763 { |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
764 image_overlay_remove(osd->imd, osd->ovl_info); |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
765 osd->ovl_info = 0; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
766 } |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
767 } |
9 | 768 |
614 | 769 if (osd->show & OSD_SHOW_STATUS) |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
770 { |
118
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
771 gint i; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
772 |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
773 if (osd->changed_states & IMAGE_STATE_IMAGE) |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
774 { |
122
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
775 for (i = 0; i < IMAGE_OSD_COUNT; i++) |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
776 { |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
777 if (osd_icons[i].reset) osd->icon_time[i] = 0; |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
778 } |
118
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
779 } |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
780 |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
781 if (osd->changed_states & IMAGE_STATE_COLOR_ADJ) |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
782 { |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
783 osd->icon_time[IMAGE_OSD_COLOR] = IMAGE_OSD_DEFAULT_DURATION + 1; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
784 image_osd_timer_schedule(osd); |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
785 } |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
786 |
122
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
787 if (osd->changed_states & IMAGE_STATE_ROTATE_AUTO) |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
788 { |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
789 gint n = 0; |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
790 |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
791 if (osd->imd->state & IMAGE_STATE_ROTATE_AUTO) |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
792 { |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
793 n = 1; |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
794 if (!osd->imd->cm) n += IMAGE_OSD_DEFAULT_DURATION; |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
795 } |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
796 |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
797 osd->icon_time[IMAGE_OSD_ROTATE_AUTO] = n; |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
798 image_osd_timer_schedule(osd); |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
799 } |
e2a8b7f2165b
Sat Dec 2 16:44:48 2006 John Ellis <johne@verizon.net>
gqview
parents:
118
diff
changeset
|
800 |
118
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
801 for (i = 0; i < IMAGE_OSD_COUNT; i++) |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
802 { |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
803 if (osd->icon_time[i] > 0) |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
804 { |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
805 image_osd_icon_show(osd, i); |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
806 } |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
807 else |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
808 { |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
809 image_osd_icon_hide(osd, i); |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
810 } |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
811 } |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
812 } |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
813 else |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
814 { |
118
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
815 gint i; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
816 |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
817 for (i = 0; i < IMAGE_OSD_COUNT; i++) |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
818 { |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
819 image_osd_icon_hide(osd, i); |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
820 } |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
821 } |
9 | 822 |
273
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
265
diff
changeset
|
823 if (osd->imd->il && osd->imd->il->done) |
e0e2c2b72c5a
reworked the histogram patch by Uwe Ohse, most of the code is in
nadvornik
parents:
265
diff
changeset
|
824 osd->changed_states = IMAGE_STATE_NONE; |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
825 osd->idle_id = -1; |
9 | 826 return FALSE; |
827 } | |
828 | |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
829 static void image_osd_update_schedule(OverlayStateData *osd, gint force) |
9 | 830 { |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
831 if (force) osd->changed_states |= IMAGE_STATE_IMAGE; |
9 | 832 |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
833 if (osd->idle_id == -1) |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
834 { |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
835 osd->idle_id = g_idle_add_full(G_PRIORITY_HIGH, image_osd_update_cb, osd, NULL); |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
836 } |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
837 } |
9 | 838 |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
839 void image_osd_update(ImageWindow *imd) |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
840 { |
615
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
841 OverlayStateData *osd = image_get_osd_data(imd); |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
842 |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
843 if (!osd) return; |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
844 |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
845 image_osd_update_schedule(osd, TRUE); |
9 | 846 } |
847 | |
118
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
848 static gint image_osd_timer_cb(gpointer data) |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
849 { |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
850 OverlayStateData *osd = data; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
851 gint done = TRUE; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
852 gint changed = FALSE; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
853 gint i; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
854 |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
855 for (i = 0; i < IMAGE_OSD_COUNT; i++) |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
856 { |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
857 if (osd->icon_time[i] > 1) |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
858 { |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
859 osd->icon_time[i]--; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
860 if (osd->icon_time[i] < 2) |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
861 { |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
862 osd->icon_time[i] = 0; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
863 changed = TRUE; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
864 } |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
865 else |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
866 { |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
867 done = FALSE; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
868 } |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
869 } |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
870 } |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
871 |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
872 if (changed) image_osd_update_schedule(osd, FALSE); |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
873 |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
874 if (done) |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
875 { |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
876 osd->timer_id = -1; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
877 return FALSE; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
878 } |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
879 |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
880 return TRUE; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
881 } |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
882 |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
883 static void image_osd_timer_schedule(OverlayStateData *osd) |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
884 { |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
885 if (osd->timer_id == -1) |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
886 { |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
887 osd->timer_id = g_timeout_add(100, image_osd_timer_cb, osd); |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
888 } |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
889 } |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
890 |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
891 static void image_osd_state_cb(ImageWindow *imd, ImageState state, gpointer data) |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
892 { |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
893 OverlayStateData *osd = data; |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
894 |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
895 osd->changed_states |= state; |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
896 image_osd_update_schedule(osd, FALSE); |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
897 } |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
898 |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
899 static void image_osd_free(OverlayStateData *osd) |
9 | 900 { |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
901 if (!osd) return; |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
902 |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
903 if (osd->idle_id != -1) g_source_remove(osd->idle_id); |
118
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
904 if (osd->timer_id != -1) g_source_remove(osd->timer_id); |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
905 |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
906 if (osd->imd) |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
907 { |
118
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
908 gint i; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
909 |
615
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
910 image_set_osd_data(osd->imd, NULL); |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
911 g_signal_handler_disconnect(osd->imd->pr, osd->destroy_id); |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
912 |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
913 image_set_state_func(osd->imd, NULL, NULL); |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
914 image_overlay_remove(osd->imd, osd->ovl_info); |
118
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
915 |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
916 for (i = 0; i < IMAGE_OSD_COUNT; i++) |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
917 { |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
918 image_osd_icon_hide(osd, i); |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
919 } |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
920 } |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
921 |
616
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
922 if (osd->histogram) histogram_free(osd->histogram); |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
923 |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
924 g_free(osd); |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
925 } |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
926 |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
927 static void image_osd_remove(ImageWindow *imd) |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
928 { |
615
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
929 OverlayStateData *osd = image_get_osd_data(imd); |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
930 |
616
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
931 if (osd) image_osd_free(osd); |
9 | 932 } |
933 | |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
934 static void image_osd_destroy_cb(GtkWidget *widget, gpointer data) |
9 | 935 { |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
936 OverlayStateData *osd = data; |
9 | 937 |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
938 osd->imd = NULL; |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
939 image_osd_free(osd); |
9 | 940 } |
941 | |
614 | 942 static void image_osd_enable(ImageWindow *imd, OsdShowFlags show) |
9 | 943 { |
615
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
944 OverlayStateData *osd = image_get_osd_data(imd); |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
945 |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
946 if (!osd) |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
947 { |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
948 osd = g_new0(OverlayStateData, 1); |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
949 osd->imd = imd; |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
950 osd->idle_id = -1; |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
951 osd->timer_id = -1; |
616
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
952 osd->show = OSD_SHOW_NOTHING; |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
953 osd->histogram = NULL; |
822
df541dc41707
Allow to set image overlay info position through options:
zas_
parents:
821
diff
changeset
|
954 osd->x = options->image_overlay.common.x; |
df541dc41707
Allow to set image overlay info position through options:
zas_
parents:
821
diff
changeset
|
955 osd->y = options->image_overlay.common.y; |
df541dc41707
Allow to set image overlay info position through options:
zas_
parents:
821
diff
changeset
|
956 |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
957 osd->destroy_id = g_signal_connect(G_OBJECT(imd->pr), "destroy", |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
958 G_CALLBACK(image_osd_destroy_cb), osd); |
615
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
959 image_set_osd_data(imd, osd); |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
960 |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
961 image_set_state_func(osd->imd, image_osd_state_cb, osd); |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
962 } |
9 | 963 |
616
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
964 if (show & OSD_SHOW_HISTOGRAM) |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
965 osd->histogram = histogram_new(); |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
966 else if (osd->histogram) |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
967 { |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
968 histogram_free(osd->histogram); |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
969 osd->histogram = NULL; |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
970 } |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
971 |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
972 if (show & OSD_SHOW_STATUS) |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
973 image_osd_icon(imd, IMAGE_OSD_ICON, -1); |
d9c9d05c9d4d
Move overlay histogram stuff from ImageWindow to OverlayStateData.
zas_
parents:
615
diff
changeset
|
974 |
614 | 975 if (show != osd->show) |
976 image_osd_update_schedule(osd, TRUE); | |
9 | 977 |
614 | 978 osd->show = show; |
9 | 979 } |
980 | |
614 | 981 void image_osd_set(ImageWindow *imd, OsdShowFlags show) |
9 | 982 { |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
983 if (!imd) return; |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
984 |
614 | 985 if (show == OSD_SHOW_NOTHING) |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
986 { |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
987 image_osd_remove(imd); |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
988 return; |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
989 } |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
990 |
614 | 991 image_osd_enable(imd, show); |
9 | 992 } |
993 | |
621 | 994 OsdShowFlags image_osd_get(ImageWindow *imd) |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
995 { |
615
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
996 OverlayStateData *osd = image_get_osd_data(imd); |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
997 |
621 | 998 return osd ? osd->show : OSD_SHOW_NOTHING; |
117
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
999 } |
0c2e1f0a001b
Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents:
23
diff
changeset
|
1000 |
118
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
1001 /* duration: |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
1002 0 = hide |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
1003 1 = show |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
1004 2+ = show for duration tenths of a second |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
1005 -1 = use default duration |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
1006 */ |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
1007 void image_osd_icon(ImageWindow *imd, ImageOSDFlag flag, gint duration) |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
1008 { |
615
cddccc89d93b
Introduce image_get_osd_data() and image_set_osd_data().
zas_
parents:
614
diff
changeset
|
1009 OverlayStateData *osd = image_get_osd_data(imd); |
118
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
1010 |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
1011 if (!osd) return; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
1012 |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
1013 if (flag < IMAGE_OSD_NONE || flag >= IMAGE_OSD_COUNT) return; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
1014 if (duration < 0) duration = IMAGE_OSD_DEFAULT_DURATION; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
1015 if (duration > 1) duration += 1; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
1016 |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
1017 osd->icon_time[flag] = duration; |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
1018 |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
1019 image_osd_update_schedule(osd, FALSE); |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
1020 image_osd_timer_schedule(osd); |
ac0f7f942c4d
Wed Nov 29 22:53:03 2006 John Ellis <johne@verizon.net>
gqview
parents:
117
diff
changeset
|
1021 } |