Mercurial > hg > forks > geeqie
annotate src/pixbuf-renderer.c @ 1895:6e3edda945ae
added half-size (3dtv) stereo mode
author | Vladimir Nadvornik <nadvornik@suse.cz> |
---|---|
date | Sun, 20 Mar 2011 12:49:00 +0100 |
parents | f0412c60e9f6 |
children | 9604c72ac670 |
rev | line source |
---|---|
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1 /* |
196
bdad1cacadf4
rename GQview -> Geeqie over the code
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
131
diff
changeset
|
2 * Geeqie |
104
6dd9a2f78053
Wed Nov 8 16:59:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
99
diff
changeset
|
3 * (C) 2006 John Ellis |
1802
359d910c7ce0
added 2010 to copyright text
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1767
diff
changeset
|
4 * Copyright (C) 2008 - 2010 The Geeqie Team |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
5 * |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
6 * Author: John Ellis |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
7 * |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
8 * This software is released under the GNU General Public License (GNU GPL). |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
9 * Please read the included file COPYING for more information. |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
10 * This software comes with no warranty of any kind, use at your own risk! |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
11 */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
12 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
13 #include <stdio.h> |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
14 #include <stdlib.h> |
507
7408e89b601d
Move debug macros from main.h to new debug.h.
Laurent Monin <geeqie@norz.org>
parents:
506
diff
changeset
|
15 #include <string.h> |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
16 #include <math.h> |
507
7408e89b601d
Move debug macros from main.h to new debug.h.
Laurent Monin <geeqie@norz.org>
parents:
506
diff
changeset
|
17 |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
18 #include "main.h" |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
19 #include "pixbuf-renderer.h" |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
20 #include "renderer-tiles.h" |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
21 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
22 #include "intl.h" |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
23 #include "layout.h" |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
24 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
25 #include <gtk/gtk.h> |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
26 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
27 |
196
bdad1cacadf4
rename GQview -> Geeqie over the code
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
131
diff
changeset
|
28 /* comment this out if not using this from within Geeqie |
283 | 29 * defining GQ_BUILD does these things: |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
30 * - Sets the shift-click scroller pixbuf to a nice icon instead of a black box |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
31 */ |
283 | 32 #define GQ_BUILD 1 |
33 | |
34 #ifdef GQ_BUILD | |
507
7408e89b601d
Move debug macros from main.h to new debug.h.
Laurent Monin <geeqie@norz.org>
parents:
506
diff
changeset
|
35 #include "main.h" |
7408e89b601d
Move debug macros from main.h to new debug.h.
Laurent Monin <geeqie@norz.org>
parents:
506
diff
changeset
|
36 #include "pixbuf_util.h" |
856
35b2c10c7f0d
Only define ExifOrientationType if GQ_BUILD is not defined since
Laurent Monin <geeqie@norz.org>
parents:
736
diff
changeset
|
37 #include "exif.h" |
35b2c10c7f0d
Only define ExifOrientationType if GQ_BUILD is not defined since
Laurent Monin <geeqie@norz.org>
parents:
736
diff
changeset
|
38 #else |
35b2c10c7f0d
Only define ExifOrientationType if GQ_BUILD is not defined since
Laurent Monin <geeqie@norz.org>
parents:
736
diff
changeset
|
39 typedef enum { |
35b2c10c7f0d
Only define ExifOrientationType if GQ_BUILD is not defined since
Laurent Monin <geeqie@norz.org>
parents:
736
diff
changeset
|
40 EXIF_ORIENTATION_UNKNOWN = 0, |
35b2c10c7f0d
Only define ExifOrientationType if GQ_BUILD is not defined since
Laurent Monin <geeqie@norz.org>
parents:
736
diff
changeset
|
41 EXIF_ORIENTATION_TOP_LEFT = 1, |
35b2c10c7f0d
Only define ExifOrientationType if GQ_BUILD is not defined since
Laurent Monin <geeqie@norz.org>
parents:
736
diff
changeset
|
42 EXIF_ORIENTATION_TOP_RIGHT = 2, |
35b2c10c7f0d
Only define ExifOrientationType if GQ_BUILD is not defined since
Laurent Monin <geeqie@norz.org>
parents:
736
diff
changeset
|
43 EXIF_ORIENTATION_BOTTOM_RIGHT = 3, |
35b2c10c7f0d
Only define ExifOrientationType if GQ_BUILD is not defined since
Laurent Monin <geeqie@norz.org>
parents:
736
diff
changeset
|
44 EXIF_ORIENTATION_BOTTOM_LEFT = 4, |
35b2c10c7f0d
Only define ExifOrientationType if GQ_BUILD is not defined since
Laurent Monin <geeqie@norz.org>
parents:
736
diff
changeset
|
45 EXIF_ORIENTATION_LEFT_TOP = 5, |
35b2c10c7f0d
Only define ExifOrientationType if GQ_BUILD is not defined since
Laurent Monin <geeqie@norz.org>
parents:
736
diff
changeset
|
46 EXIF_ORIENTATION_RIGHT_TOP = 6, |
35b2c10c7f0d
Only define ExifOrientationType if GQ_BUILD is not defined since
Laurent Monin <geeqie@norz.org>
parents:
736
diff
changeset
|
47 EXIF_ORIENTATION_RIGHT_BOTTOM = 7, |
35b2c10c7f0d
Only define ExifOrientationType if GQ_BUILD is not defined since
Laurent Monin <geeqie@norz.org>
parents:
736
diff
changeset
|
48 EXIF_ORIENTATION_LEFT_BOTTOM = 8 |
35b2c10c7f0d
Only define ExifOrientationType if GQ_BUILD is not defined since
Laurent Monin <geeqie@norz.org>
parents:
736
diff
changeset
|
49 } ExifOrientationType; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
50 #endif |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
51 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
52 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
53 /* default min and max zoom */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
54 #define PR_ZOOM_MIN -32.0 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
55 #define PR_ZOOM_MAX 32.0 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
56 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
57 /* distance to drag mouse to disable image flip */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
58 #define PR_DRAG_SCROLL_THRESHHOLD 4 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
59 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
60 /* increase pan rate when holding down shift */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
61 #define PR_PAN_SHIFT_MULTIPLIER 6 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
62 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
63 /* scroller config */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
64 #define PR_SCROLLER_UPDATES_PER_SEC 30 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
65 #define PR_SCROLLER_DEAD_ZONE 6 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
66 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
67 /* when scaling image to below this size, use nearest pixel for scaling |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
68 * (below about 4, the other scale types become slow generating their conversion tables) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
69 */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
70 #define PR_MIN_SCALE_SIZE 8 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
71 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
72 enum { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
73 SIGNAL_ZOOM = 0, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
74 SIGNAL_CLICKED, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
75 SIGNAL_SCROLL_NOTIFY, |
25
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
76 SIGNAL_RENDER_COMPLETE, |
128
0c318260b7f6
improved connected scroll and active image switching
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
104
diff
changeset
|
77 SIGNAL_DRAG, |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
78 SIGNAL_UPDATE_PIXEL, |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
79 SIGNAL_COUNT |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
80 }; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
81 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
82 enum { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
83 PROP_0, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
84 PROP_ZOOM_MIN, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
85 PROP_ZOOM_MAX, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
86 PROP_ZOOM_QUALITY, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
87 PROP_ZOOM_2PASS, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
88 PROP_ZOOM_EXPAND, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
89 PROP_DITHER_QUALITY, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
90 PROP_SCROLL_RESET, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
91 PROP_DELAY_FLIP, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
92 PROP_LOADING, |
25
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
93 PROP_COMPLETE, |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
94 PROP_CACHE_SIZE_DISPLAY, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
95 PROP_CACHE_SIZE_TILES, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
96 PROP_WINDOW_FIT, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
97 PROP_WINDOW_LIMIT, |
209
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
98 PROP_WINDOW_LIMIT_VALUE, |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
99 PROP_AUTOFIT_LIMIT, |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
100 PROP_AUTOFIT_LIMIT_VALUE |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
101 }; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
102 |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
103 typedef enum { |
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
104 PR_ZOOM_NONE = 0, |
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
105 PR_ZOOM_FORCE = 1 << 0, |
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
106 PR_ZOOM_NEW = 1 << 1, |
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
107 PR_ZOOM_CENTER = 1 << 2, |
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
108 PR_ZOOM_INVALIDATE = 1 << 3, |
1045
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
109 PR_ZOOM_LAZY = 1 << 4 /* wait with redraw for pixbuf_renderer_area_changed */ |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
110 } PrZoomFlags; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
111 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
112 static guint signals[SIGNAL_COUNT] = { 0 }; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
113 static GtkEventBoxClass *parent_class = NULL; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
114 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
115 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
116 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
117 static void pixbuf_renderer_class_init(PixbufRendererClass *class); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
118 static void pixbuf_renderer_init(PixbufRenderer *pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
119 static void pixbuf_renderer_finalize(GObject *object); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
120 static void pixbuf_renderer_set_property(GObject *object, guint prop_id, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
121 const GValue *value, GParamSpec *pspec); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
122 static void pixbuf_renderer_get_property(GObject *object, guint prop_id, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
123 GValue *value, GParamSpec *pspec); |
1435 | 124 static gboolean pixbuf_renderer_expose(GtkWidget *widget, GdkEventExpose *event); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
125 |
1435 | 126 static void pr_scroller_timer_set(PixbufRenderer *pr, gboolean start); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
127 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
128 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
129 static void pr_source_tile_free_all(PixbufRenderer *pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
130 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
131 static void pr_zoom_sync(PixbufRenderer *pr, gdouble zoom, |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
132 PrZoomFlags flags, gint px, gint py); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
133 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
134 static void pr_signals_connect(PixbufRenderer *pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
135 static void pr_size_cb(GtkWidget *widget, GtkAllocation *allocation, gpointer data); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
136 static void pixbuf_renderer_paint(PixbufRenderer *pr, GdkRectangle *area); |
1889
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
137 static void pr_stereo_temp_disable(PixbufRenderer *pr, gboolean disable); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
138 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
139 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
140 /* |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
141 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
142 * Pixbuf Renderer object |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
143 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
144 */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
145 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
146 GType pixbuf_renderer_get_type(void) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
147 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
148 static GType pixbuf_renderer_type = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
149 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
150 if (!pixbuf_renderer_type) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
151 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
152 static const GTypeInfo pixbuf_renderer_info = |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
153 { |
691
d82fb3402662
Fix some incomplete initialization warnings.
Laurent Monin <geeqie@norz.org>
parents:
673
diff
changeset
|
154 sizeof(PixbufRendererClass), /* class_size */ |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
155 NULL, /* base_init */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
156 NULL, /* base_finalize */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
157 (GClassInitFunc)pixbuf_renderer_class_init, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
158 NULL, /* class_finalize */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
159 NULL, /* class_data */ |
691
d82fb3402662
Fix some incomplete initialization warnings.
Laurent Monin <geeqie@norz.org>
parents:
673
diff
changeset
|
160 sizeof(PixbufRenderer), /* instance_size */ |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
161 0, /* n_preallocs */ |
691
d82fb3402662
Fix some incomplete initialization warnings.
Laurent Monin <geeqie@norz.org>
parents:
673
diff
changeset
|
162 (GInstanceInitFunc)pixbuf_renderer_init, /* instance_init */ |
d82fb3402662
Fix some incomplete initialization warnings.
Laurent Monin <geeqie@norz.org>
parents:
673
diff
changeset
|
163 NULL, /* value_table */ |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
164 }; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
165 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
166 pixbuf_renderer_type = g_type_register_static(GTK_TYPE_EVENT_BOX, "PixbufRenderer", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
167 &pixbuf_renderer_info, 0); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
168 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
169 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
170 return pixbuf_renderer_type; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
171 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
172 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
173 static void pixbuf_renderer_class_init(PixbufRendererClass *class) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
174 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
175 GObjectClass *gobject_class = G_OBJECT_CLASS(class); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
176 GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(class); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
177 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
178 parent_class = g_type_class_peek_parent(class); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
179 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
180 gobject_class->set_property = pixbuf_renderer_set_property; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
181 gobject_class->get_property = pixbuf_renderer_get_property; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
182 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
183 gobject_class->finalize = pixbuf_renderer_finalize; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
184 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
185 widget_class->expose_event = pixbuf_renderer_expose; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
186 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
187 g_object_class_install_property(gobject_class, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
188 PROP_ZOOM_MIN, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
189 g_param_spec_double("zoom_min", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
190 "Zoom minimum", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
191 NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
192 -1000.0, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
193 1000.0, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
194 PR_ZOOM_MIN, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
195 G_PARAM_READABLE | G_PARAM_WRITABLE)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
196 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
197 g_object_class_install_property(gobject_class, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
198 PROP_ZOOM_MAX, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
199 g_param_spec_double("zoom_max", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
200 "Zoom maximum", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
201 NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
202 -1000.0, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
203 1000.0, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
204 PR_ZOOM_MIN, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
205 G_PARAM_READABLE | G_PARAM_WRITABLE)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
206 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
207 g_object_class_install_property(gobject_class, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
208 PROP_ZOOM_QUALITY, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
209 g_param_spec_uint("zoom_quality", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
210 "Zoom quality", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
211 NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
212 GDK_INTERP_NEAREST, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
213 GDK_INTERP_HYPER, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
214 GDK_INTERP_BILINEAR, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
215 G_PARAM_READABLE | G_PARAM_WRITABLE)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
216 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
217 g_object_class_install_property(gobject_class, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
218 PROP_ZOOM_2PASS, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
219 g_param_spec_boolean("zoom_2pass", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
220 "2 pass zoom", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
221 NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
222 TRUE, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
223 G_PARAM_READABLE | G_PARAM_WRITABLE)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
224 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
225 g_object_class_install_property(gobject_class, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
226 PROP_ZOOM_EXPAND, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
227 g_param_spec_boolean("zoom_expand", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
228 "Expand image in autozoom.", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
229 NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
230 FALSE, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
231 G_PARAM_READABLE | G_PARAM_WRITABLE)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
232 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
233 g_object_class_install_property(gobject_class, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
234 PROP_DITHER_QUALITY, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
235 g_param_spec_uint("dither_quality", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
236 "Dither quality", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
237 NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
238 GDK_RGB_DITHER_NONE, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
239 GDK_RGB_DITHER_MAX, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
240 GDK_RGB_DITHER_NORMAL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
241 G_PARAM_READABLE | G_PARAM_WRITABLE)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
242 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
243 g_object_class_install_property(gobject_class, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
244 PROP_SCROLL_RESET, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
245 g_param_spec_uint("scroll_reset", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
246 "New image scroll reset", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
247 NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
248 PR_SCROLL_RESET_TOPLEFT, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
249 PR_SCROLL_RESET_NOCHANGE, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
250 PR_SCROLL_RESET_TOPLEFT, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
251 G_PARAM_READABLE | G_PARAM_WRITABLE)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
252 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
253 g_object_class_install_property(gobject_class, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
254 PROP_DELAY_FLIP, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
255 g_param_spec_boolean("delay_flip", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
256 "Delay image update", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
257 NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
258 FALSE, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
259 G_PARAM_READABLE | G_PARAM_WRITABLE)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
260 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
261 g_object_class_install_property(gobject_class, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
262 PROP_LOADING, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
263 g_param_spec_boolean("loading", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
264 "Image actively loading", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
265 NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
266 FALSE, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
267 G_PARAM_READABLE | G_PARAM_WRITABLE)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
268 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
269 g_object_class_install_property(gobject_class, |
25
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
270 PROP_COMPLETE, |
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
271 g_param_spec_boolean("complete", |
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
272 "Image rendering complete", |
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
273 NULL, |
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
274 FALSE, |
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
275 G_PARAM_READABLE | G_PARAM_WRITABLE)); |
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
276 |
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
277 g_object_class_install_property(gobject_class, |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
278 PROP_CACHE_SIZE_DISPLAY, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
279 g_param_spec_uint("cache_display", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
280 "Display cache size MB", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
281 NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
282 0, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
283 128, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
284 PR_CACHE_SIZE_DEFAULT, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
285 G_PARAM_READABLE | G_PARAM_WRITABLE)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
286 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
287 g_object_class_install_property(gobject_class, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
288 PROP_CACHE_SIZE_TILES, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
289 g_param_spec_uint("cache_tiles", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
290 "Tile cache count", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
291 "Number of tiles to retain in memory at any one time.", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
292 0, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
293 256, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
294 PR_CACHE_SIZE_DEFAULT, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
295 G_PARAM_READABLE | G_PARAM_WRITABLE)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
296 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
297 g_object_class_install_property(gobject_class, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
298 PROP_WINDOW_FIT, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
299 g_param_spec_boolean("window_fit", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
300 "Fit window to image size", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
301 NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
302 FALSE, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
303 G_PARAM_READABLE | G_PARAM_WRITABLE)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
304 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
305 g_object_class_install_property(gobject_class, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
306 PROP_WINDOW_LIMIT, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
307 g_param_spec_boolean("window_limit", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
308 "Limit size of parent window", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
309 NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
310 FALSE, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
311 G_PARAM_READABLE | G_PARAM_WRITABLE)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
312 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
313 g_object_class_install_property(gobject_class, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
314 PROP_WINDOW_LIMIT_VALUE, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
315 g_param_spec_uint("window_limit_value", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
316 "Size limit of parent window", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
317 NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
318 10, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
319 150, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
320 100, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
321 G_PARAM_READABLE | G_PARAM_WRITABLE)); |
442 | 322 |
209
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
323 g_object_class_install_property(gobject_class, |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
324 PROP_AUTOFIT_LIMIT, |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
325 g_param_spec_boolean("autofit_limit", |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
326 "Limit size of image when autofitting", |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
327 NULL, |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
328 FALSE, |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
329 G_PARAM_READABLE | G_PARAM_WRITABLE)); |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
330 |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
331 g_object_class_install_property(gobject_class, |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
332 PROP_AUTOFIT_LIMIT_VALUE, |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
333 g_param_spec_uint("autofit_limit_value", |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
334 "Size limit of image when autofitting", |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
335 NULL, |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
336 10, |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
337 150, |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
338 100, |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
339 G_PARAM_READABLE | G_PARAM_WRITABLE)); |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
340 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
341 |
442 | 342 signals[SIGNAL_ZOOM] = |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
343 g_signal_new("zoom", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
344 G_OBJECT_CLASS_TYPE(gobject_class), |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
345 G_SIGNAL_RUN_LAST, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
346 G_STRUCT_OFFSET(PixbufRendererClass, zoom), |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
347 NULL, NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
348 g_cclosure_marshal_VOID__DOUBLE, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
349 G_TYPE_NONE, 1, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
350 G_TYPE_DOUBLE); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
351 |
442 | 352 signals[SIGNAL_CLICKED] = |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
353 g_signal_new("clicked", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
354 G_OBJECT_CLASS_TYPE(gobject_class), |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
355 G_SIGNAL_RUN_LAST, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
356 G_STRUCT_OFFSET(PixbufRendererClass, clicked), |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
357 NULL, NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
358 g_cclosure_marshal_VOID__BOXED, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
359 G_TYPE_NONE, 1, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
360 GDK_TYPE_EVENT); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
361 |
442 | 362 signals[SIGNAL_SCROLL_NOTIFY] = |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
363 g_signal_new("scroll-notify", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
364 G_OBJECT_CLASS_TYPE(gobject_class), |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
365 G_SIGNAL_RUN_LAST, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
366 G_STRUCT_OFFSET(PixbufRendererClass, scroll_notify), |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
367 NULL, NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
368 g_cclosure_marshal_VOID__VOID, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
369 G_TYPE_NONE, 0); |
25
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
370 |
442 | 371 signals[SIGNAL_RENDER_COMPLETE] = |
25
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
372 g_signal_new("render-complete", |
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
373 G_OBJECT_CLASS_TYPE(gobject_class), |
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
374 G_SIGNAL_RUN_LAST, |
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
375 G_STRUCT_OFFSET(PixbufRendererClass, render_complete), |
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
376 NULL, NULL, |
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
377 g_cclosure_marshal_VOID__VOID, |
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
378 G_TYPE_NONE, 0); |
128
0c318260b7f6
improved connected scroll and active image switching
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
104
diff
changeset
|
379 |
442 | 380 signals[SIGNAL_DRAG] = |
128
0c318260b7f6
improved connected scroll and active image switching
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
104
diff
changeset
|
381 g_signal_new("drag", |
0c318260b7f6
improved connected scroll and active image switching
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
104
diff
changeset
|
382 G_OBJECT_CLASS_TYPE(gobject_class), |
0c318260b7f6
improved connected scroll and active image switching
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
104
diff
changeset
|
383 G_SIGNAL_RUN_LAST, |
0c318260b7f6
improved connected scroll and active image switching
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
104
diff
changeset
|
384 G_STRUCT_OFFSET(PixbufRendererClass, drag), |
0c318260b7f6
improved connected scroll and active image switching
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
104
diff
changeset
|
385 NULL, NULL, |
0c318260b7f6
improved connected scroll and active image switching
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
104
diff
changeset
|
386 g_cclosure_marshal_VOID__BOXED, |
0c318260b7f6
improved connected scroll and active image switching
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
104
diff
changeset
|
387 G_TYPE_NONE, 1, |
0c318260b7f6
improved connected scroll and active image switching
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
104
diff
changeset
|
388 GDK_TYPE_EVENT); |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
389 |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
390 signals[SIGNAL_UPDATE_PIXEL] = |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
391 g_signal_new("update-pixel", |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
392 G_OBJECT_CLASS_TYPE(gobject_class), |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
393 G_SIGNAL_RUN_LAST, |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
394 G_STRUCT_OFFSET(PixbufRendererClass, update_pixel), |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
395 NULL, NULL, |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
396 g_cclosure_marshal_VOID__VOID, |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
397 G_TYPE_NONE, 0); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
398 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
399 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
400 static void pixbuf_renderer_init(PixbufRenderer *pr) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
401 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
402 GtkWidget *box; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
403 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
404 box = GTK_WIDGET(pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
405 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
406 pr->zoom_min = PR_ZOOM_MIN; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
407 pr->zoom_max = PR_ZOOM_MAX; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
408 pr->zoom_quality = GDK_INTERP_BILINEAR; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
409 pr->zoom_2pass = FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
410 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
411 pr->zoom = 1.0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
412 pr->scale = 1.0; |
1884
a722f633d90f
added mirrored stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1880
diff
changeset
|
413 pr->aspect_ratio = 1.0; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
414 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
415 pr->dither_quality = GDK_RGB_DITHER_NORMAL; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
416 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
417 pr->scroll_reset = PR_SCROLL_RESET_TOPLEFT; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
418 |
1523
e52aabe8fc7a
Fix up event source ids type: gint -> guint.
Laurent Monin <geeqie@norz.org>
parents:
1517
diff
changeset
|
419 pr->scroller_id = 0; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
420 pr->scroller_overlay = -1; |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
421 |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
422 pr->x_mouse = -1; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
423 pr->y_mouse = -1; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
424 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
425 pr->source_tiles_enabled = FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
426 pr->source_tiles = NULL; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
427 |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
428 pr->orientation = 1; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
429 |
1037
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
430 pr->norm_center_x = 0.5; |
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
431 pr->norm_center_y = 0.5; |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
432 |
1886
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
433 pr->stereo_mode = PR_STEREO_NONE; |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
434 |
1886
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
435 pr->renderer = (void *)renderer_tiles_new(pr); |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
436 |
1886
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
437 pr->renderer2 = NULL; |
1037
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
438 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
439 gtk_widget_set_double_buffered(box, FALSE); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
440 g_signal_connect_after(G_OBJECT(box), "size_allocate", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
441 G_CALLBACK(pr_size_cb), pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
442 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
443 pr_signals_connect(pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
444 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
445 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
446 static void pixbuf_renderer_finalize(GObject *object) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
447 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
448 PixbufRenderer *pr; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
449 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
450 pr = PIXBUF_RENDERER(object); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
451 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
452 pr->renderer->free(pr->renderer); |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
453 if (pr->renderer2) pr->renderer->free(pr->renderer2); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
454 |
1043
718ab8111f48
Replaced gtk depreceated code.
Petr Ostadal <postadal@suse.cz>
parents:
1037
diff
changeset
|
455 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
456 if (pr->pixbuf) g_object_unref(pr->pixbuf); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
457 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
458 pr_scroller_timer_set(pr, FALSE); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
459 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
460 pr_source_tile_free_all(pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
461 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
462 |
1001
a1f0b2010ca1
Consistency: type * instead of type*.
Laurent Monin <geeqie@norz.org>
parents:
1000
diff
changeset
|
463 PixbufRenderer *pixbuf_renderer_new(void) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
464 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
465 return g_object_new(TYPE_PIXBUF_RENDERER, NULL); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
466 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
467 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
468 static void pixbuf_renderer_set_property(GObject *object, guint prop_id, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
469 const GValue *value, GParamSpec *pspec) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
470 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
471 PixbufRenderer *pr; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
472 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
473 pr = PIXBUF_RENDERER(object); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
474 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
475 switch (prop_id) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
476 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
477 case PROP_ZOOM_MIN: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
478 pr->zoom_min = g_value_get_double(value); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
479 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
480 case PROP_ZOOM_MAX: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
481 pr->zoom_max = g_value_get_double(value); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
482 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
483 case PROP_ZOOM_QUALITY: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
484 pr->zoom_quality = g_value_get_uint(value); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
485 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
486 case PROP_ZOOM_2PASS: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
487 pr->zoom_2pass = g_value_get_boolean(value); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
488 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
489 case PROP_ZOOM_EXPAND: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
490 pr->zoom_expand = g_value_get_boolean(value); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
491 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
492 case PROP_DITHER_QUALITY: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
493 pr->dither_quality = g_value_get_uint(value); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
494 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
495 case PROP_SCROLL_RESET: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
496 pr->scroll_reset = g_value_get_uint(value); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
497 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
498 case PROP_DELAY_FLIP: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
499 pr->delay_flip = g_value_get_boolean(value); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
500 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
501 case PROP_LOADING: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
502 pr->loading = g_value_get_boolean(value); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
503 break; |
25
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
504 case PROP_COMPLETE: |
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
505 pr->complete = g_value_get_boolean(value); |
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
506 break; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
507 case PROP_CACHE_SIZE_DISPLAY: |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
508 // pr->tile_cache_max = g_value_get_uint(value); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
509 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
510 case PROP_CACHE_SIZE_TILES: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
511 pr->source_tiles_cache_size = g_value_get_uint(value); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
512 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
513 case PROP_WINDOW_FIT: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
514 pr->window_fit = g_value_get_boolean(value); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
515 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
516 case PROP_WINDOW_LIMIT: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
517 pr->window_limit = g_value_get_boolean(value); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
518 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
519 case PROP_WINDOW_LIMIT_VALUE: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
520 pr->window_limit_size = g_value_get_uint(value); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
521 break; |
209
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
522 case PROP_AUTOFIT_LIMIT: |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
523 pr->autofit_limit = g_value_get_boolean(value); |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
524 break; |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
525 case PROP_AUTOFIT_LIMIT_VALUE: |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
526 pr->autofit_limit_size = g_value_get_uint(value); |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
527 break; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
528 default: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
529 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
530 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
531 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
532 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
533 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
534 static void pixbuf_renderer_get_property(GObject *object, guint prop_id, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
535 GValue *value, GParamSpec *pspec) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
536 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
537 PixbufRenderer *pr; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
538 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
539 pr = PIXBUF_RENDERER(object); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
540 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
541 switch (prop_id) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
542 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
543 case PROP_ZOOM_MIN: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
544 g_value_set_double(value, pr->zoom_min); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
545 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
546 case PROP_ZOOM_MAX: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
547 g_value_set_double(value, pr->zoom_max); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
548 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
549 case PROP_ZOOM_QUALITY: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
550 g_value_set_uint(value, pr->zoom_quality); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
551 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
552 case PROP_ZOOM_2PASS: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
553 g_value_set_boolean(value, pr->zoom_2pass); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
554 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
555 case PROP_ZOOM_EXPAND: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
556 g_value_set_boolean(value, pr->zoom_expand); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
557 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
558 case PROP_DITHER_QUALITY: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
559 g_value_set_uint(value, pr->dither_quality); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
560 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
561 case PROP_SCROLL_RESET: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
562 g_value_set_uint(value, pr->scroll_reset); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
563 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
564 case PROP_DELAY_FLIP: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
565 g_value_set_boolean(value, pr->delay_flip); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
566 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
567 case PROP_LOADING: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
568 g_value_set_boolean(value, pr->loading); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
569 break; |
25
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
570 case PROP_COMPLETE: |
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
571 g_value_set_boolean(value, pr->complete); |
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
572 break; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
573 case PROP_CACHE_SIZE_DISPLAY: |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
574 // g_value_set_uint(value, pr->tile_cache_max); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
575 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
576 case PROP_CACHE_SIZE_TILES: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
577 g_value_set_uint(value, pr->source_tiles_cache_size); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
578 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
579 case PROP_WINDOW_FIT: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
580 g_value_set_boolean(value, pr->window_fit); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
581 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
582 case PROP_WINDOW_LIMIT: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
583 g_value_set_boolean(value, pr->window_limit); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
584 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
585 case PROP_WINDOW_LIMIT_VALUE: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
586 g_value_set_uint(value, pr->window_limit_size); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
587 break; |
209
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
588 case PROP_AUTOFIT_LIMIT: |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
589 g_value_set_boolean(value, pr->autofit_limit); |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
590 break; |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
591 case PROP_AUTOFIT_LIMIT_VALUE: |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
592 g_value_set_uint(value, pr->autofit_limit_size); |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
593 break; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
594 default: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
595 G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
596 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
597 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
598 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
599 |
1435 | 600 static gboolean pixbuf_renderer_expose(GtkWidget *widget, GdkEventExpose *event) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
601 { |
1810
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
602 #if GTK_CHECK_VERSION(2,20,0) |
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
603 if (gtk_widget_is_drawable(widget)) |
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
604 #else |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
605 if (GTK_WIDGET_DRAWABLE(widget)) |
1810
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
606 #endif |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
607 { |
1810
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
608 #if GTK_CHECK_VERSION(2,20,0) |
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
609 if (gtk_widget_get_has_window(widget)) |
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
610 #else |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
611 if (!GTK_WIDGET_NO_WINDOW(widget)) |
1810
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
612 #endif |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
613 { |
104
6dd9a2f78053
Wed Nov 8 16:59:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
99
diff
changeset
|
614 if (event->window != widget->window) |
6dd9a2f78053
Wed Nov 8 16:59:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
99
diff
changeset
|
615 { |
6dd9a2f78053
Wed Nov 8 16:59:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
99
diff
changeset
|
616 GdkRectangle area; |
6dd9a2f78053
Wed Nov 8 16:59:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
99
diff
changeset
|
617 |
6dd9a2f78053
Wed Nov 8 16:59:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
99
diff
changeset
|
618 gdk_window_get_position(event->window, &area.x, &area.y); |
6dd9a2f78053
Wed Nov 8 16:59:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
99
diff
changeset
|
619 |
6dd9a2f78053
Wed Nov 8 16:59:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
99
diff
changeset
|
620 area.x += event->area.x; |
6dd9a2f78053
Wed Nov 8 16:59:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
99
diff
changeset
|
621 area.y += event->area.y; |
6dd9a2f78053
Wed Nov 8 16:59:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
99
diff
changeset
|
622 area.width = event->area.width; |
6dd9a2f78053
Wed Nov 8 16:59:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
99
diff
changeset
|
623 area.height = event->area.height; |
6dd9a2f78053
Wed Nov 8 16:59:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
99
diff
changeset
|
624 pixbuf_renderer_paint(PIXBUF_RENDERER(widget), &area); |
6dd9a2f78053
Wed Nov 8 16:59:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
99
diff
changeset
|
625 } |
6dd9a2f78053
Wed Nov 8 16:59:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
99
diff
changeset
|
626 else |
6dd9a2f78053
Wed Nov 8 16:59:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
99
diff
changeset
|
627 { |
6dd9a2f78053
Wed Nov 8 16:59:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
99
diff
changeset
|
628 pixbuf_renderer_paint(PIXBUF_RENDERER(widget), &event->area); |
6dd9a2f78053
Wed Nov 8 16:59:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
99
diff
changeset
|
629 } |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
630 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
631 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
632 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
633 return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
634 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
635 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
636 /* |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
637 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
638 * misc utilities |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
639 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
640 */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
641 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
642 static void widget_set_cursor(GtkWidget *widget, gint icon) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
643 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
644 GdkCursor *cursor; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
645 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
646 if (!widget->window) return; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
647 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
648 if (icon == -1) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
649 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
650 cursor = NULL; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
651 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
652 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
653 { |
513
6743a5928e09
Remove whitespace between function name and first parenthesis for the sake of consistency. (pass 2)
Laurent Monin <geeqie@norz.org>
parents:
512
diff
changeset
|
654 cursor = gdk_cursor_new(icon); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
655 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
656 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
657 gdk_window_set_cursor(widget->window, cursor); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
658 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
659 if (cursor) gdk_cursor_unref(cursor); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
660 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
661 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
662 gboolean pr_clip_region(gint x, gint y, gint w, gint h, |
1435 | 663 gint clip_x, gint clip_y, gint clip_w, gint clip_h, |
664 gint *rx, gint *ry, gint *rw, gint *rh) | |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
665 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
666 if (clip_x + clip_w <= x || |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
667 clip_x >= x + w || |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
668 clip_y + clip_h <= y || |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
669 clip_y >= y + h) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
670 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
671 return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
672 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
673 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
674 *rx = MAX(x, clip_x); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
675 *rw = MIN((x + w), (clip_x + clip_w)) - *rx; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
676 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
677 *ry = MAX(y, clip_y); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
678 *rh = MIN((y + h), (clip_y + clip_h)) - *ry; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
679 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
680 return TRUE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
681 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
682 |
1435 | 683 static gboolean pr_parent_window_sizable(PixbufRenderer *pr) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
684 { |
27
ff0b02ab8da7
Sat Apr 2 17:28:16 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
26
diff
changeset
|
685 GdkWindowState state; |
ff0b02ab8da7
Sat Apr 2 17:28:16 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
26
diff
changeset
|
686 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
687 if (!pr->parent_window) return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
688 if (!pr->window_fit) return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
689 if (!GTK_WIDGET(pr)->window) return FALSE; |
27
ff0b02ab8da7
Sat Apr 2 17:28:16 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
26
diff
changeset
|
690 |
ff0b02ab8da7
Sat Apr 2 17:28:16 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
26
diff
changeset
|
691 if (!pr->parent_window->window) return FALSE; |
ff0b02ab8da7
Sat Apr 2 17:28:16 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
26
diff
changeset
|
692 state = gdk_window_get_state(pr->parent_window->window); |
ff0b02ab8da7
Sat Apr 2 17:28:16 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
26
diff
changeset
|
693 if (state & GDK_WINDOW_STATE_MAXIMIZED) return FALSE; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
694 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
695 return TRUE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
696 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
697 |
1435 | 698 static gboolean pr_parent_window_resize(PixbufRenderer *pr, gint w, gint h) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
699 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
700 GtkWidget *widget; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
701 GtkWidget *parent; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
702 gint ww, wh; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
703 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
704 if (!pr_parent_window_sizable(pr)) return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
705 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
706 if (pr->window_limit) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
707 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
708 gint sw = gdk_screen_width() * pr->window_limit_size / 100; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
709 gint sh = gdk_screen_height() * pr->window_limit_size / 100; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
710 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
711 if (w > sw) w = sw; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
712 if (h > sh) h = sh; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
713 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
714 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
715 widget = GTK_WIDGET(pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
716 parent = GTK_WIDGET(pr->parent_window); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
717 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
718 w += (parent->allocation.width - widget->allocation.width); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
719 h += (parent->allocation.height - widget->allocation.height); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
720 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
721 gdk_drawable_get_size(parent->window, &ww, &wh); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
722 if (w == ww && h == wh) return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
723 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
724 gdk_window_resize(parent->window, w, h); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
725 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
726 return TRUE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
727 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
728 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
729 void pixbuf_renderer_set_parent(PixbufRenderer *pr, GtkWindow *window) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
730 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
731 g_return_if_fail(IS_PIXBUF_RENDERER(pr)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
732 g_return_if_fail(window == NULL || GTK_IS_WINDOW(window)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
733 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
734 pr->parent_window = GTK_WIDGET(window); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
735 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
736 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
737 GtkWindow *pixbuf_renderer_get_parent(PixbufRenderer *pr) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
738 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
739 g_return_val_if_fail(IS_PIXBUF_RENDERER(pr), NULL); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
740 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
741 return GTK_WINDOW(pr->parent_window); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
742 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
743 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
744 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
745 /* |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
746 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
747 * overlays |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
748 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
749 */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
750 |
1373
a8ed5c80e5d3
overlay now survives image split
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1284
diff
changeset
|
751 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
752 gint pixbuf_renderer_overlay_add(PixbufRenderer *pr, GdkPixbuf *pixbuf, gint x, gint y, |
857
8ee324a036ed
Use flags instead of int parameters for pixbuf_renderer_overlay_add().
Laurent Monin <geeqie@norz.org>
parents:
856
diff
changeset
|
753 OverlayRendererFlags flags) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
754 { |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
755 /* let's assume both renderers returns the same value */ |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
756 if (pr->renderer2) pr->renderer2->overlay_add(pr->renderer2, pixbuf, x, y, flags); |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
757 return pr->renderer->overlay_add(pr->renderer, pixbuf, x, y, flags); |
1373
a8ed5c80e5d3
overlay now survives image split
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1284
diff
changeset
|
758 } |
a8ed5c80e5d3
overlay now survives image split
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1284
diff
changeset
|
759 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
760 void pixbuf_renderer_overlay_set(PixbufRenderer *pr, gint id, GdkPixbuf *pixbuf, gint x, gint y) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
761 { |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
762 pr->renderer->overlay_set(pr->renderer, id, pixbuf, x, y); |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
763 if (pr->renderer2) pr->renderer2->overlay_set(pr->renderer2, id, pixbuf, x, y); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
764 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
765 |
1435 | 766 gboolean pixbuf_renderer_overlay_get(PixbufRenderer *pr, gint id, GdkPixbuf **pixbuf, gint *x, gint *y) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
767 { |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
768 if (pr->renderer2) pr->renderer2->overlay_get(pr->renderer2, id, pixbuf, x, y); |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
769 return pr->renderer->overlay_get(pr->renderer, id, pixbuf, x, y); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
770 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
771 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
772 void pixbuf_renderer_overlay_remove(PixbufRenderer *pr, gint id) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
773 { |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
774 pr->renderer->overlay_set(pr->renderer, id, NULL, 0, 0); |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
775 if (pr->renderer2) pr->renderer2->overlay_set(pr->renderer2, id, NULL, 0, 0); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
776 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
777 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
778 /* |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
779 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
780 * scroller overlay |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
781 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
782 */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
783 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
784 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
785 static gboolean pr_scroller_update_cb(gpointer data) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
786 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
787 PixbufRenderer *pr = data; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
788 gint x, y; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
789 gint xinc, yinc; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
790 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
791 /* this was a simple scroll by difference between scroller and mouse position, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
792 * but all this math results in a smoother result and accounts for a dead zone. |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
793 */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
794 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
795 if (abs(pr->scroller_xpos - pr->scroller_x) < PR_SCROLLER_DEAD_ZONE) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
796 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
797 x = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
798 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
799 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
800 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
801 gint shift = PR_SCROLLER_DEAD_ZONE / 2 * PR_SCROLLER_UPDATES_PER_SEC; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
802 x = (pr->scroller_xpos - pr->scroller_x) / 2 * PR_SCROLLER_UPDATES_PER_SEC; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
803 x += (x > 0) ? -shift : shift; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
804 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
805 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
806 if (abs(pr->scroller_ypos - pr->scroller_y) < PR_SCROLLER_DEAD_ZONE) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
807 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
808 y = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
809 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
810 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
811 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
812 gint shift = PR_SCROLLER_DEAD_ZONE / 2 * PR_SCROLLER_UPDATES_PER_SEC; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
813 y = (pr->scroller_ypos - pr->scroller_y) / 2 * PR_SCROLLER_UPDATES_PER_SEC; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
814 y += (y > 0) ? -shift : shift; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
815 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
816 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
817 if (abs(x) < PR_SCROLLER_DEAD_ZONE * PR_SCROLLER_UPDATES_PER_SEC) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
818 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
819 xinc = x; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
820 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
821 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
822 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
823 xinc = pr->scroller_xinc; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
824 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
825 if (x >= 0) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
826 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
827 if (xinc < 0) xinc = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
828 if (x < xinc) xinc = x; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
829 if (x > xinc) xinc = MIN(xinc + x / PR_SCROLLER_UPDATES_PER_SEC, x); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
830 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
831 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
832 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
833 if (xinc > 0) xinc = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
834 if (x > xinc) xinc = x; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
835 if (x < xinc) xinc = MAX(xinc + x / PR_SCROLLER_UPDATES_PER_SEC, x); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
836 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
837 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
838 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
839 if (abs(y) < PR_SCROLLER_DEAD_ZONE * PR_SCROLLER_UPDATES_PER_SEC) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
840 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
841 yinc = y; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
842 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
843 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
844 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
845 yinc = pr->scroller_yinc; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
846 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
847 if (y >= 0) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
848 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
849 if (yinc < 0) yinc = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
850 if (y < yinc) yinc = y; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
851 if (y > yinc) yinc = MIN(yinc + y / PR_SCROLLER_UPDATES_PER_SEC, y); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
852 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
853 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
854 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
855 if (yinc > 0) yinc = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
856 if (y > yinc) yinc = y; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
857 if (y < yinc) yinc = MAX(yinc + y / PR_SCROLLER_UPDATES_PER_SEC, y); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
858 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
859 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
860 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
861 pr->scroller_xinc = xinc; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
862 pr->scroller_yinc = yinc; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
863 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
864 xinc = xinc / PR_SCROLLER_UPDATES_PER_SEC; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
865 yinc = yinc / PR_SCROLLER_UPDATES_PER_SEC; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
866 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
867 pixbuf_renderer_scroll(pr, xinc, yinc); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
868 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
869 return TRUE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
870 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
871 |
1435 | 872 static void pr_scroller_timer_set(PixbufRenderer *pr, gboolean start) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
873 { |
1523
e52aabe8fc7a
Fix up event source ids type: gint -> guint.
Laurent Monin <geeqie@norz.org>
parents:
1517
diff
changeset
|
874 if (pr->scroller_id) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
875 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
876 g_source_remove(pr->scroller_id); |
1523
e52aabe8fc7a
Fix up event source ids type: gint -> guint.
Laurent Monin <geeqie@norz.org>
parents:
1517
diff
changeset
|
877 pr->scroller_id = 0; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
878 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
879 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
880 if (start) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
881 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
882 pr->scroller_id = g_timeout_add(1000 / PR_SCROLLER_UPDATES_PER_SEC, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
883 pr_scroller_update_cb, pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
884 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
885 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
886 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
887 static void pr_scroller_start(PixbufRenderer *pr, gint x, gint y) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
888 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
889 if (pr->scroller_overlay == -1) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
890 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
891 GdkPixbuf *pixbuf; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
892 gint w, h; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
893 |
283 | 894 #ifdef GQ_BUILD |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
895 pixbuf = pixbuf_inline(PIXBUF_INLINE_SCROLLER); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
896 #else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
897 pixbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB, FALSE, 8, 32, 32); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
898 gdk_pixbuf_fill(pixbuf, 0x000000ff); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
899 #endif |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
900 w = gdk_pixbuf_get_width(pixbuf); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
901 h = gdk_pixbuf_get_height(pixbuf); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
902 |
857
8ee324a036ed
Use flags instead of int parameters for pixbuf_renderer_overlay_add().
Laurent Monin <geeqie@norz.org>
parents:
856
diff
changeset
|
903 pr->scroller_overlay = pixbuf_renderer_overlay_add(pr, pixbuf, x - w / 2, y - h / 2, OVL_NORMAL); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
904 g_object_unref(pixbuf); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
905 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
906 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
907 pr->scroller_x = x; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
908 pr->scroller_y = y; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
909 pr->scroller_xpos = x; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
910 pr->scroller_ypos = y; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
911 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
912 pr_scroller_timer_set(pr, TRUE); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
913 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
914 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
915 static void pr_scroller_stop(PixbufRenderer *pr) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
916 { |
1523
e52aabe8fc7a
Fix up event source ids type: gint -> guint.
Laurent Monin <geeqie@norz.org>
parents:
1517
diff
changeset
|
917 if (!pr->scroller_id) return; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
918 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
919 pixbuf_renderer_overlay_remove(pr, pr->scroller_overlay); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
920 pr->scroller_overlay = -1; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
921 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
922 pr_scroller_timer_set(pr, FALSE); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
923 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
924 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
925 /* |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
926 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
927 * borders |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
928 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
929 */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
930 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
931 static void pr_border_clear(PixbufRenderer *pr) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
932 { |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
933 pr->renderer->border_draw(pr->renderer, 0, 0, pr->viewport_width, pr->viewport_height); |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
934 if (pr->renderer2) pr->renderer2->border_draw(pr->renderer2, 0, 0, pr->viewport_width, pr->viewport_height); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
935 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
936 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
937 void pixbuf_renderer_set_color(PixbufRenderer *pr, GdkColor *color) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
938 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
939 GtkStyle *style; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
940 GtkWidget *widget; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
941 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
942 g_return_if_fail(IS_PIXBUF_RENDERER(pr)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
943 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
944 widget = GTK_WIDGET(pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
945 |
208
d74cfaa3d146
set user-defined color as image background - patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
196
diff
changeset
|
946 if (color) { |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
947 GdkColor *slot; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
948 |
208
d74cfaa3d146
set user-defined color as image background - patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
196
diff
changeset
|
949 style = gtk_style_copy(gtk_widget_get_style(widget)); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
950 slot = &style->bg[GTK_STATE_NORMAL]; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
951 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
952 slot->red = color->red; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
953 slot->green = color->green; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
954 slot->blue = color->blue; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
955 } |
208
d74cfaa3d146
set user-defined color as image background - patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
196
diff
changeset
|
956 else { |
d74cfaa3d146
set user-defined color as image background - patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
196
diff
changeset
|
957 style = gtk_style_copy(gtk_widget_get_default_style()); |
d74cfaa3d146
set user-defined color as image background - patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
196
diff
changeset
|
958 } |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
959 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
960 gtk_widget_set_style(widget, style); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
961 |
1810
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
962 #if GTK_CHECK_VERSION(2,20,0) |
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
963 if (gtk_widget_get_visible(widget)) pr_border_clear(pr); |
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
964 #else |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
965 if (GTK_WIDGET_VISIBLE(widget)) pr_border_clear(pr); |
1810
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
966 #endif |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
967 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
968 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
969 static void pr_redraw(PixbufRenderer *pr, gboolean new_data) |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
970 { |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
971 pr->renderer->queue_clear(pr->renderer); |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
972 pr->renderer->queue(pr->renderer, 0, 0, pr->width, pr->height, TRUE, TILE_RENDER_ALL, new_data, FALSE); |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
973 if (pr->renderer2) { |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
974 pr->renderer2->queue_clear(pr->renderer2); |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
975 pr->renderer2->queue(pr->renderer2, 0, 0, pr->width, pr->height, TRUE, TILE_RENDER_ALL, new_data, FALSE); |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
976 } |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
977 } |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
978 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
979 /* |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
980 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
981 * source tiles |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
982 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
983 */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
984 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
985 static void pr_source_tile_free(SourceTile *st) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
986 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
987 if (!st) return; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
988 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
989 if (st->pixbuf) g_object_unref(st->pixbuf); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
990 g_free(st); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
991 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
992 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
993 static void pr_source_tile_free_all(PixbufRenderer *pr) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
994 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
995 GList *work; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
996 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
997 work = pr->source_tiles; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
998 while (work) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
999 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1000 SourceTile *st; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1001 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1002 st = work->data; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1003 work = work->next; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1004 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1005 pr_source_tile_free(st); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1006 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1007 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1008 g_list_free(pr->source_tiles); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1009 pr->source_tiles = NULL; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1010 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1011 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1012 static void pr_source_tile_unset(PixbufRenderer *pr) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1013 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1014 pr_source_tile_free_all(pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1015 pr->source_tiles_enabled = FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1016 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1017 |
1435 | 1018 static gboolean pr_source_tile_visible(PixbufRenderer *pr, SourceTile *st) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1019 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1020 gint x1, y1, x2, y2; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1021 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1022 if (!st) return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1023 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1024 // x1 = ROUND_DOWN(pr->x_scroll, pr->tile_width); |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1025 // y1 = ROUND_DOWN(pr->y_scroll, pr->tile_height); |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1026 // x2 = ROUND_UP(pr->x_scroll + pr->vis_width, pr->tile_width); |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1027 // y2 = ROUND_UP(pr->y_scroll + pr->vis_height, pr->tile_height); |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1028 x1 = pr->x_scroll; |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1029 y1 = pr->y_scroll; |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1030 x2 = pr->x_scroll + pr->vis_width; |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1031 y2 = pr->y_scroll + pr->vis_height; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1032 |
1000
07f6093c1c1a
For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents:
872
diff
changeset
|
1033 return !((gdouble)st->x * pr->scale > (gdouble)x2 || |
07f6093c1c1a
For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents:
872
diff
changeset
|
1034 (gdouble)(st->x + pr->source_tile_width) * pr->scale < (gdouble)x1 || |
07f6093c1c1a
For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents:
872
diff
changeset
|
1035 (gdouble)st->y * pr->scale > (gdouble)y2 || |
07f6093c1c1a
For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents:
872
diff
changeset
|
1036 (gdouble)(st->y + pr->source_tile_height) * pr->scale < (gdouble)y1); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1037 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1038 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1039 static SourceTile *pr_source_tile_new(PixbufRenderer *pr, gint x, gint y) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1040 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1041 SourceTile *st = NULL; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1042 gint count; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1043 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1044 g_return_val_if_fail(pr->source_tile_width >= 1 && pr->source_tile_height >= 1, NULL); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1045 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1046 if (pr->source_tiles_cache_size < 4) pr->source_tiles_cache_size = 4; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1047 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1048 count = g_list_length(pr->source_tiles); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1049 if (count >= pr->source_tiles_cache_size) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1050 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1051 GList *work; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1052 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1053 work = g_list_last(pr->source_tiles); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1054 while (work && count >= pr->source_tiles_cache_size) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1055 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1056 SourceTile *needle; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1057 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1058 needle = work->data; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1059 work = work->prev; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1060 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1061 if (!pr_source_tile_visible(pr, needle)) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1062 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1063 pr->source_tiles = g_list_remove(pr->source_tiles, needle); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1064 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1065 if (pr->func_tile_dispose) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1066 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1067 pr->func_tile_dispose(pr, needle->x, needle->y, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1068 pr->source_tile_width, pr->source_tile_height, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1069 needle->pixbuf, pr->func_tile_data); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1070 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1071 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1072 if (!st) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1073 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1074 st = needle; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1075 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1076 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1077 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1078 pr_source_tile_free(needle); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1079 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1080 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1081 count--; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1082 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1083 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1084 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1085 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1086 if (!st) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1087 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1088 st = g_new0(SourceTile, 1); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1089 st->pixbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB, FALSE, 8, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1090 pr->source_tile_width, pr->source_tile_height); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1091 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1092 |
1649
adbe8f7cff62
fixed problems with floor/ceil
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1634
diff
changeset
|
1093 st->x = ROUND_DOWN(x, pr->source_tile_width); |
adbe8f7cff62
fixed problems with floor/ceil
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1634
diff
changeset
|
1094 st->y = ROUND_DOWN(y, pr->source_tile_height); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1095 st->blank = TRUE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1096 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1097 pr->source_tiles = g_list_prepend(pr->source_tiles, st); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1098 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1099 return st; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1100 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1101 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1102 static SourceTile *pr_source_tile_request(PixbufRenderer *pr, gint x, gint y) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1103 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1104 SourceTile *st; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1105 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1106 st = pr_source_tile_new(pr, x, y); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1107 if (!st) return NULL; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1108 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1109 if (pr->func_tile_request && |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1110 pr->func_tile_request(pr, st->x, st->y, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1111 pr->source_tile_width, pr->source_tile_height, st->pixbuf, pr->func_tile_data)) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1112 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1113 st->blank = FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1114 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1115 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1116 pr->renderer->invalidate_region(pr->renderer, st->x * pr->scale, st->y * pr->scale, |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1117 pr->source_tile_width * pr->scale, pr->source_tile_height * pr->scale); |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1118 if (pr->renderer2) pr->renderer2->invalidate_region(pr->renderer2, st->x * pr->scale, st->y * pr->scale, |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1119 pr->source_tile_width * pr->scale, pr->source_tile_height * pr->scale); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1120 return st; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1121 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1122 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1123 static SourceTile *pr_source_tile_find(PixbufRenderer *pr, gint x, gint y) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1124 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1125 GList *work; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1126 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1127 work = pr->source_tiles; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1128 while (work) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1129 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1130 SourceTile *st = work->data; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1131 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1132 if (x >= st->x && x < st->x + pr->source_tile_width && |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1133 y >= st->y && y < st->y + pr->source_tile_height) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1134 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1135 if (work != pr->source_tiles) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1136 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1137 pr->source_tiles = g_list_remove_link(pr->source_tiles, work); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1138 pr->source_tiles = g_list_concat(work, pr->source_tiles); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1139 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1140 return st; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1141 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1142 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1143 work = work->next; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1144 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1145 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1146 return NULL; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1147 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1148 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1149 GList *pr_source_tile_compute_region(PixbufRenderer *pr, gint x, gint y, gint w, gint h, gboolean request) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1150 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1151 gint x1, y1; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1152 GList *list = NULL; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1153 gint sx, sy; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1154 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1155 if (x < 0) x = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1156 if (y < 0) y = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1157 if (w > pr->image_width) w = pr->image_width; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1158 if (h > pr->image_height) h = pr->image_height; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1159 |
1649
adbe8f7cff62
fixed problems with floor/ceil
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1634
diff
changeset
|
1160 sx = ROUND_DOWN(x, pr->source_tile_width); |
adbe8f7cff62
fixed problems with floor/ceil
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1634
diff
changeset
|
1161 sy = ROUND_DOWN(y, pr->source_tile_height); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1162 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1163 for (x1 = sx; x1 < x + w; x1+= pr->source_tile_width) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1164 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1165 for (y1 = sy; y1 < y + h; y1 += pr->source_tile_height) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1166 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1167 SourceTile *st; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1168 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1169 st = pr_source_tile_find(pr, x1, y1); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1170 if (!st && request) st = pr_source_tile_request(pr, x1, y1); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1171 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1172 if (st) list = g_list_prepend(list, st); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1173 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1174 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1175 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1176 return g_list_reverse(list); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1177 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1178 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1179 static void pr_source_tile_changed(PixbufRenderer *pr, gint x, gint y, gint width, gint height) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1180 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1181 GList *work; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1182 |
95
e103e1c85665
Fri Nov 3 11:40:48 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
87
diff
changeset
|
1183 if (width < 1 || height < 1) return; |
e103e1c85665
Fri Nov 3 11:40:48 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
87
diff
changeset
|
1184 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1185 work = pr->source_tiles; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1186 while (work) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1187 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1188 SourceTile *st; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1189 gint rx, ry, rw, rh; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1190 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1191 st = work->data; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1192 work = work->next; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1193 |
33
96e4f244caa7
Wed Apr 6 06:41:25 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
32
diff
changeset
|
1194 if (pr_clip_region(st->x, st->y, pr->source_tile_width, pr->source_tile_height, |
96e4f244caa7
Wed Apr 6 06:41:25 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
32
diff
changeset
|
1195 x, y, width, height, |
96e4f244caa7
Wed Apr 6 06:41:25 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
32
diff
changeset
|
1196 &rx, &ry, &rw, &rh)) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1197 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1198 GdkPixbuf *pixbuf; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1199 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1200 pixbuf = gdk_pixbuf_new_subpixbuf(st->pixbuf, rx - st->x, ry - st->y, rw, rh); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1201 if (pr->func_tile_request && |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1202 pr->func_tile_request(pr, rx, ry, rw, rh, pixbuf, pr->func_tile_data)) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1203 { |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1204 pr->renderer->invalidate_region(pr->renderer, rx * pr->scale, ry * pr->scale, |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1205 rw * pr->scale, rh * pr->scale); |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1206 if (pr->renderer2) pr->renderer2->invalidate_region(pr->renderer2, rx * pr->scale, ry * pr->scale, |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1207 rw * pr->scale, rh * pr->scale); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1208 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1209 g_object_unref(pixbuf); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1210 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1211 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1212 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1213 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1214 void pixbuf_renderer_set_tiles(PixbufRenderer *pr, gint width, gint height, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1215 gint tile_width, gint tile_height, gint cache_size, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1216 PixbufRendererTileRequestFunc func_request, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1217 PixbufRendererTileDisposeFunc func_dispose, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1218 gpointer user_data, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1219 gdouble zoom) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1220 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1221 g_return_if_fail(IS_PIXBUF_RENDERER(pr)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1222 g_return_if_fail(tile_width >= 32 && tile_width >= 32); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1223 g_return_if_fail(width >= 32 && height > 32); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1224 g_return_if_fail(func_request != NULL); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1225 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1226 if (pr->pixbuf) g_object_unref(pr->pixbuf); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1227 pr->pixbuf = NULL; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1228 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1229 pr_source_tile_unset(pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1230 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1231 if (cache_size < 4) cache_size = 4; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1232 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1233 pr->source_tiles_enabled = TRUE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1234 pr->source_tiles_cache_size = cache_size; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1235 pr->source_tile_width = tile_width; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1236 pr->source_tile_height = tile_height; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1237 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1238 pr->image_width = width; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1239 pr->image_height = height; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1240 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1241 pr->func_tile_request = func_request; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1242 pr->func_tile_dispose = func_dispose; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1243 pr->func_tile_data = user_data; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1244 |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1245 pr_zoom_sync(pr, zoom, PR_ZOOM_FORCE | PR_ZOOM_NEW, 0, 0); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1246 pr_redraw(pr, TRUE); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1247 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1248 |
77
234aff18fd1b
Sun Oct 15 10:45:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
61
diff
changeset
|
1249 void pixbuf_renderer_set_tiles_size(PixbufRenderer *pr, gint width, gint height) |
234aff18fd1b
Sun Oct 15 10:45:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
61
diff
changeset
|
1250 { |
234aff18fd1b
Sun Oct 15 10:45:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
61
diff
changeset
|
1251 g_return_if_fail(IS_PIXBUF_RENDERER(pr)); |
234aff18fd1b
Sun Oct 15 10:45:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
61
diff
changeset
|
1252 g_return_if_fail(width >= 32 && height > 32); |
234aff18fd1b
Sun Oct 15 10:45:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
61
diff
changeset
|
1253 |
234aff18fd1b
Sun Oct 15 10:45:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
61
diff
changeset
|
1254 if (!pr->source_tiles_enabled) return; |
234aff18fd1b
Sun Oct 15 10:45:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
61
diff
changeset
|
1255 if (pr->image_width == width && pr->image_height == height) return; |
234aff18fd1b
Sun Oct 15 10:45:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
61
diff
changeset
|
1256 |
234aff18fd1b
Sun Oct 15 10:45:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
61
diff
changeset
|
1257 pr->image_width = width; |
234aff18fd1b
Sun Oct 15 10:45:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
61
diff
changeset
|
1258 pr->image_height = height; |
234aff18fd1b
Sun Oct 15 10:45:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
61
diff
changeset
|
1259 |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1260 pr_zoom_sync(pr, pr->zoom, PR_ZOOM_FORCE, 0, 0); |
77
234aff18fd1b
Sun Oct 15 10:45:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
61
diff
changeset
|
1261 } |
234aff18fd1b
Sun Oct 15 10:45:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
61
diff
changeset
|
1262 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1263 gint pixbuf_renderer_get_tiles(PixbufRenderer *pr) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1264 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1265 g_return_val_if_fail(IS_PIXBUF_RENDERER(pr), FALSE); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1266 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1267 return pr->source_tiles_enabled; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1268 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1269 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1270 static void pr_zoom_adjust_real(PixbufRenderer *pr, gdouble increment, |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1271 PrZoomFlags flags, gint x, gint y) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1272 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1273 gdouble zoom = pr->zoom; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1274 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1275 if (increment == 0.0) return; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1276 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1277 if (zoom == 0.0) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1278 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1279 if (pr->scale < 1.0) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1280 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1281 zoom = 0.0 - 1.0 / pr->scale; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1282 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1283 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1284 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1285 zoom = pr->scale; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1286 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1287 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1288 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1289 if (increment < 0.0) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1290 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1291 if (zoom >= 1.0 && zoom + increment < 1.0) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1292 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1293 zoom = zoom + increment - 2.0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1294 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1295 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1296 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1297 zoom = zoom + increment; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1298 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1299 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1300 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1301 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1302 if (zoom <= -1.0 && zoom + increment > -1.0) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1303 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1304 zoom = zoom + increment + 2.0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1305 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1306 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1307 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1308 zoom = zoom + increment; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1309 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1310 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1311 |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1312 pr_zoom_sync(pr, zoom, flags, x, y); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1313 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1314 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1315 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1316 /* |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1317 *------------------------------------------------------------------- |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1318 * signal emission |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1319 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1320 */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1321 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1322 static void pr_update_signal(PixbufRenderer *pr) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1323 { |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1324 #if 0 |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1325 log_printf("FIXME: send updated signal\n"); |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1326 #endif |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1327 DEBUG_1("%s pixbuf renderer updated - started drawing %p, img: %dx%d", get_exec_time(), pr, pr->image_width, pr->image_height); |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1328 pr->debug_updated = TRUE; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1329 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1330 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1331 static void pr_zoom_signal(PixbufRenderer *pr) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1332 { |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1333 g_signal_emit(pr, signals[SIGNAL_ZOOM], 0, pr->zoom); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1334 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1335 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1336 static void pr_clicked_signal(PixbufRenderer *pr, GdkEventButton *bevent) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1337 { |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1338 g_signal_emit(pr, signals[SIGNAL_CLICKED], 0, bevent); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1339 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1340 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1341 static void pr_scroll_notify_signal(PixbufRenderer *pr) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1342 { |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1343 g_signal_emit(pr, signals[SIGNAL_SCROLL_NOTIFY], 0); |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1344 } |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1345 |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1346 void pr_render_complete_signal(PixbufRenderer *pr) |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1347 { |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1348 if (!pr->complete) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1349 { |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1350 g_signal_emit(pr, signals[SIGNAL_RENDER_COMPLETE], 0); |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1351 g_object_set(G_OBJECT(pr), "complete", TRUE, NULL); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1352 } |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1353 if (pr->debug_updated) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1354 { |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1355 DEBUG_1("%s pixbuf renderer done %p", get_exec_time(), pr); |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1356 pr->debug_updated = FALSE; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1357 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1358 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1359 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1360 static void pr_drag_signal(PixbufRenderer *pr, GdkEventButton *bevent) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1361 { |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1362 g_signal_emit(pr, signals[SIGNAL_DRAG], 0, bevent); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1363 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1364 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1365 static void pr_update_pixel_signal(PixbufRenderer *pr) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1366 { |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1367 g_signal_emit(pr, signals[SIGNAL_UPDATE_PIXEL], 0); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1368 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1369 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1370 /* |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1371 *------------------------------------------------------------------- |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1372 * sync and clamp |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1373 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1374 */ |
442 | 1375 |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1376 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1377 void pr_tile_coords_map_orientation(gint orientation, |
1000
07f6093c1c1a
For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents:
872
diff
changeset
|
1378 gdouble tile_x, gdouble tile_y, /* coordinates of the tile */ |
1633
b8b957cb1387
swap x and y scale when scaling rotated images - it fixes tiles that were
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1617
diff
changeset
|
1379 gdouble image_w, gdouble image_h, |
1000
07f6093c1c1a
For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents:
872
diff
changeset
|
1380 gdouble tile_w, gdouble tile_h, |
07f6093c1c1a
For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents:
872
diff
changeset
|
1381 gdouble *res_x, gdouble *res_y) |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1382 { |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1383 *res_x = tile_x; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1384 *res_y = tile_y; |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1385 switch (orientation) |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1386 { |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1387 case EXIF_ORIENTATION_TOP_LEFT: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1388 /* normal -- nothing to do */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1389 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1390 case EXIF_ORIENTATION_TOP_RIGHT: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1391 /* mirrored */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1392 *res_x = image_w - tile_x - tile_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1393 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1394 case EXIF_ORIENTATION_BOTTOM_RIGHT: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1395 /* upside down */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1396 *res_x = image_w - tile_x - tile_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1397 *res_y = image_h - tile_y - tile_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1398 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1399 case EXIF_ORIENTATION_BOTTOM_LEFT: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1400 /* flipped */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1401 *res_y = image_h - tile_y - tile_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1402 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1403 case EXIF_ORIENTATION_LEFT_TOP: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1404 *res_x = tile_y; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1405 *res_y = tile_x; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1406 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1407 case EXIF_ORIENTATION_RIGHT_TOP: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1408 /* rotated -90 (270) */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1409 *res_x = tile_y; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1410 *res_y = image_w - tile_x - tile_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1411 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1412 case EXIF_ORIENTATION_RIGHT_BOTTOM: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1413 *res_x = image_h - tile_y - tile_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1414 *res_y = image_w - tile_x - tile_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1415 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1416 case EXIF_ORIENTATION_LEFT_BOTTOM: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1417 /* rotated 90 */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1418 *res_x = image_h - tile_y - tile_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1419 *res_y = tile_x; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1420 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1421 default: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1422 /* The other values are out of range */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1423 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1424 } |
673
c9c2bc042e10
Do not use printf() directly but use new wrapper function log_printf() instead.
Laurent Monin <geeqie@norz.org>
parents:
671
diff
changeset
|
1425 // log_printf("tile coord y:%f, ih:%d, th:%f ry:%f\n", tile_y, image_h, tile_h, *res_x); |
442 | 1426 } |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1427 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1428 void pr_tile_region_map_orientation(gint orientation, |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1429 gint area_x, gint area_y, /* coordinates of the area inside tile */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1430 gint tile_w, gint tile_h, |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1431 gint area_w, gint area_h, |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1432 gint *res_x, gint *res_y, |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1433 gint *res_w, gint *res_h) |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1434 { |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1435 *res_x = area_x; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1436 *res_y = area_y; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1437 *res_w = area_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1438 *res_h = area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1439 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1440 switch (orientation) |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1441 { |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1442 case EXIF_ORIENTATION_TOP_LEFT: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1443 /* normal -- nothing to do */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1444 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1445 case EXIF_ORIENTATION_TOP_RIGHT: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1446 /* mirrored */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1447 *res_x = tile_w - area_x - area_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1448 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1449 case EXIF_ORIENTATION_BOTTOM_RIGHT: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1450 /* upside down */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1451 *res_x = tile_w - area_x - area_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1452 *res_y = tile_h - area_y - area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1453 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1454 case EXIF_ORIENTATION_BOTTOM_LEFT: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1455 /* flipped */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1456 *res_y = tile_h - area_y - area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1457 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1458 case EXIF_ORIENTATION_LEFT_TOP: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1459 *res_x = area_y; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1460 *res_y = area_x; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1461 *res_w = area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1462 *res_h = area_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1463 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1464 case EXIF_ORIENTATION_RIGHT_TOP: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1465 /* rotated -90 (270) */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1466 *res_x = area_y; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1467 *res_y = tile_w - area_x - area_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1468 *res_w = area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1469 *res_h = area_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1470 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1471 case EXIF_ORIENTATION_RIGHT_BOTTOM: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1472 *res_x = tile_h - area_y - area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1473 *res_y = tile_w - area_x - area_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1474 *res_w = area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1475 *res_h = area_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1476 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1477 case EXIF_ORIENTATION_LEFT_BOTTOM: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1478 /* rotated 90 */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1479 *res_x = tile_h - area_y - area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1480 *res_y = area_x; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1481 *res_w = area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1482 *res_h = area_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1483 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1484 default: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1485 /* The other values are out of range */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1486 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1487 } |
673
c9c2bc042e10
Do not use printf() directly but use new wrapper function log_printf() instead.
Laurent Monin <geeqie@norz.org>
parents:
671
diff
changeset
|
1488 // log_printf("inside y:%d, th:%d, ah:%d ry:%d\n", area_y, tile_h, area_h, *res_x); |
442 | 1489 } |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1490 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1491 void pr_coords_map_orientation_reverse(gint orientation, |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1492 gint area_x, gint area_y, |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1493 gint tile_w, gint tile_h, |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1494 gint area_w, gint area_h, |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1495 gint *res_x, gint *res_y, |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1496 gint *res_w, gint *res_h) |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1497 { |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1498 *res_x = area_x; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1499 *res_y = area_y; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1500 *res_w = area_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1501 *res_h = area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1502 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1503 switch (orientation) |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1504 { |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1505 case EXIF_ORIENTATION_TOP_LEFT: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1506 /* normal -- nothing to do */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1507 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1508 case EXIF_ORIENTATION_TOP_RIGHT: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1509 /* mirrored */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1510 *res_x = tile_w - area_x - area_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1511 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1512 case EXIF_ORIENTATION_BOTTOM_RIGHT: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1513 /* upside down */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1514 *res_x = tile_w - area_x - area_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1515 *res_y = tile_h - area_y - area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1516 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1517 case EXIF_ORIENTATION_BOTTOM_LEFT: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1518 /* flipped */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1519 *res_y = tile_h - area_y - area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1520 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1521 case EXIF_ORIENTATION_LEFT_TOP: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1522 *res_x = area_y; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1523 *res_y = area_x; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1524 *res_w = area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1525 *res_h = area_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1526 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1527 case EXIF_ORIENTATION_RIGHT_TOP: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1528 /* rotated -90 (270) */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1529 *res_x = tile_w - area_y - area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1530 *res_y = area_x; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1531 *res_w = area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1532 *res_h = area_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1533 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1534 case EXIF_ORIENTATION_RIGHT_BOTTOM: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1535 *res_x = tile_w - area_y - area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1536 *res_y = tile_h - area_x - area_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1537 *res_w = area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1538 *res_h = area_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1539 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1540 case EXIF_ORIENTATION_LEFT_BOTTOM: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1541 /* rotated 90 */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1542 *res_x = area_y; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1543 *res_y = tile_h - area_x - area_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1544 *res_w = area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1545 *res_h = area_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1546 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1547 default: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1548 /* The other values are out of range */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1549 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1550 } |
442 | 1551 } |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1552 |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1553 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1554 |
1037
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1555 static void pixbuf_renderer_sync_scroll_center(PixbufRenderer *pr) |
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1556 { |
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1557 gint src_x, src_y; |
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1558 if (!pr->width || !pr->height) return; |
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1559 |
1617
551ec3cbcdc8
preserve image center over short periods when the "broken image" icon is
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1584
diff
changeset
|
1560 /* |
551ec3cbcdc8
preserve image center over short periods when the "broken image" icon is
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1584
diff
changeset
|
1561 * Update norm_center only if the image is bigger than the window. |
551ec3cbcdc8
preserve image center over short periods when the "broken image" icon is
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1584
diff
changeset
|
1562 * With this condition the stored center survives also a temporary display |
551ec3cbcdc8
preserve image center over short periods when the "broken image" icon is
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1584
diff
changeset
|
1563 * of the "broken image" icon. |
551ec3cbcdc8
preserve image center over short periods when the "broken image" icon is
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1584
diff
changeset
|
1564 */ |
551ec3cbcdc8
preserve image center over short periods when the "broken image" icon is
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1584
diff
changeset
|
1565 |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1566 if (pr->width > pr->viewport_width) |
1617
551ec3cbcdc8
preserve image center over short periods when the "broken image" icon is
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1584
diff
changeset
|
1567 { |
551ec3cbcdc8
preserve image center over short periods when the "broken image" icon is
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1584
diff
changeset
|
1568 src_x = pr->x_scroll + pr->vis_width / 2; |
551ec3cbcdc8
preserve image center over short periods when the "broken image" icon is
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1584
diff
changeset
|
1569 pr->norm_center_x = (gdouble)src_x / pr->width; |
551ec3cbcdc8
preserve image center over short periods when the "broken image" icon is
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1584
diff
changeset
|
1570 } |
551ec3cbcdc8
preserve image center over short periods when the "broken image" icon is
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1584
diff
changeset
|
1571 |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1572 if (pr->height > pr->viewport_height) |
1617
551ec3cbcdc8
preserve image center over short periods when the "broken image" icon is
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1584
diff
changeset
|
1573 { |
551ec3cbcdc8
preserve image center over short periods when the "broken image" icon is
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1584
diff
changeset
|
1574 src_y = pr->y_scroll + pr->vis_height / 2; |
551ec3cbcdc8
preserve image center over short periods when the "broken image" icon is
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1584
diff
changeset
|
1575 pr->norm_center_y = (gdouble)src_y / pr->height; |
551ec3cbcdc8
preserve image center over short periods when the "broken image" icon is
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1584
diff
changeset
|
1576 } |
1037
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1577 } |
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1578 |
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1579 |
1435 | 1580 static gboolean pr_scroll_clamp(PixbufRenderer *pr) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1581 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1582 gint old_xs; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1583 gint old_ys; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1584 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1585 if (pr->zoom == 0.0) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1586 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1587 pr->x_scroll = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1588 pr->y_scroll = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1589 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1590 return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1591 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1592 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1593 old_xs = pr->x_scroll; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1594 old_ys = pr->y_scroll; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1595 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1596 if (pr->x_offset > 0) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1597 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1598 pr->x_scroll = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1599 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1600 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1601 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1602 pr->x_scroll = CLAMP(pr->x_scroll, 0, pr->width - pr->vis_width); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1603 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1604 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1605 if (pr->y_offset > 0) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1606 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1607 pr->y_scroll = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1608 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1609 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1610 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1611 pr->y_scroll = CLAMP(pr->y_scroll, 0, pr->height - pr->vis_height); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1612 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1613 |
1037
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1614 pixbuf_renderer_sync_scroll_center(pr); |
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1615 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1616 return (old_xs != pr->x_scroll || old_ys != pr->y_scroll); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1617 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1618 |
1435 | 1619 static gboolean pr_size_clamp(PixbufRenderer *pr) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1620 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1621 gint old_vw, old_vh; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1622 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1623 old_vw = pr->vis_width; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1624 old_vh = pr->vis_height; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1625 |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1626 if (pr->width < pr->viewport_width) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1627 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1628 pr->vis_width = pr->width; |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1629 pr->x_offset = (pr->viewport_width - pr->width) / 2; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1630 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1631 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1632 { |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1633 pr->vis_width = pr->viewport_width; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1634 pr->x_offset = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1635 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1636 |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1637 if (pr->height < pr->viewport_height) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1638 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1639 pr->vis_height = pr->height; |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1640 pr->y_offset = (pr->viewport_height - pr->height) / 2; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1641 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1642 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1643 { |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1644 pr->vis_height = pr->viewport_height; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1645 pr->y_offset = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1646 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1647 |
1037
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1648 pixbuf_renderer_sync_scroll_center(pr); |
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1649 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1650 return (old_vw != pr->vis_width || old_vh != pr->vis_height); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1651 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1652 |
1435 | 1653 static gboolean pr_zoom_clamp(PixbufRenderer *pr, gdouble zoom, |
1654 PrZoomFlags flags, gboolean *redrawn) | |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1655 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1656 gint w, h; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1657 gdouble scale; |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1658 gboolean invalid; |
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1659 gboolean force = !!(flags & PR_ZOOM_FORCE); |
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1660 gboolean new = !!(flags & PR_ZOOM_NEW); |
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1661 gboolean invalidate = !!(flags & PR_ZOOM_INVALIDATE); |
1045
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
1662 gboolean lazy = !!(flags & PR_ZOOM_LAZY); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1663 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1664 zoom = CLAMP(zoom, pr->zoom_min, pr->zoom_max); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1665 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1666 if (pr->zoom == zoom && !force) return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1667 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1668 w = pr->image_width; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1669 h = pr->image_height; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1670 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1671 if (zoom == 0.0 && !pr->pixbuf) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1672 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1673 scale = 1.0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1674 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1675 else if (zoom == 0.0) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1676 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1677 gint max_w; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1678 gint max_h; |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1679 gboolean sizeable; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1680 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1681 sizeable = (new && pr_parent_window_sizable(pr)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1682 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1683 if (sizeable) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1684 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1685 max_w = gdk_screen_width(); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1686 max_h = gdk_screen_height(); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1687 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1688 if (pr->window_limit) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1689 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1690 max_w = max_w * pr->window_limit_size / 100; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1691 max_h = max_h * pr->window_limit_size / 100; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1692 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1693 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1694 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1695 { |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1696 max_w = pr->viewport_width; |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1697 max_h = pr->viewport_height; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1698 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1699 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1700 if ((pr->zoom_expand && !sizeable) || w > max_w || h > max_h) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1701 { |
1880
b69a33a93ace
display pixel aspect ratio support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1879
diff
changeset
|
1702 if ((gdouble)max_w / w > (gdouble)max_h / h / pr->aspect_ratio) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1703 { |
1880
b69a33a93ace
display pixel aspect ratio support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1879
diff
changeset
|
1704 scale = (gdouble)max_h / h / pr->aspect_ratio; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1705 h = max_h; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1706 w = w * scale + 0.5; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1707 if (w > max_w) w = max_w; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1708 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1709 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1710 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1711 scale = (gdouble)max_w / w; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1712 w = max_w; |
1880
b69a33a93ace
display pixel aspect ratio support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1879
diff
changeset
|
1713 h = h * scale * pr->aspect_ratio + 0.5; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1714 if (h > max_h) h = max_h; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1715 } |
209
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
1716 |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
1717 if (pr->autofit_limit) |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
1718 { |
336
d0783e36320c
Fix display bug when using "Limit image size when autofitting" option.
Laurent Monin <geeqie@norz.org>
parents:
283
diff
changeset
|
1719 gdouble factor = (gdouble)pr->autofit_limit_size / 100; |
d0783e36320c
Fix display bug when using "Limit image size when autofitting" option.
Laurent Monin <geeqie@norz.org>
parents:
283
diff
changeset
|
1720 w = w * factor + 0.5; |
d0783e36320c
Fix display bug when using "Limit image size when autofitting" option.
Laurent Monin <geeqie@norz.org>
parents:
283
diff
changeset
|
1721 h = h * factor + 0.5; |
d0783e36320c
Fix display bug when using "Limit image size when autofitting" option.
Laurent Monin <geeqie@norz.org>
parents:
283
diff
changeset
|
1722 scale = scale * factor; |
209
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
1723 } |
442 | 1724 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1725 if (w < 1) w = 1; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1726 if (h < 1) h = 1; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1727 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1728 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1729 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1730 scale = 1.0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1731 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1732 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1733 else if (zoom > 0.0) /* zoom orig, in */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1734 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1735 scale = zoom; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1736 w = w * scale; |
1880
b69a33a93ace
display pixel aspect ratio support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1879
diff
changeset
|
1737 h = h * scale * pr->aspect_ratio; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1738 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1739 else /* zoom out */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1740 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1741 scale = 1.0 / (0.0 - zoom); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1742 w = w * scale; |
1880
b69a33a93ace
display pixel aspect ratio support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1879
diff
changeset
|
1743 h = h * scale * pr->aspect_ratio; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1744 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1745 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1746 invalid = (pr->width != w || pr->height != h); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1747 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1748 pr->zoom = zoom; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1749 pr->width = w; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1750 pr->height = h; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1751 pr->scale = scale; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1752 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1753 if (invalidate || invalid) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1754 { |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1755 pr->renderer->invalidate_all(pr->renderer); |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1756 if (pr->renderer2) pr->renderer2->invalidate_all(pr->renderer2); |
1045
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
1757 if (!lazy) pr_redraw(pr, TRUE); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1758 } |
27
ff0b02ab8da7
Sat Apr 2 17:28:16 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
26
diff
changeset
|
1759 if (redrawn) *redrawn = (invalidate || invalid); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1760 |
1037
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1761 pixbuf_renderer_sync_scroll_center(pr); |
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1762 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1763 return TRUE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1764 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1765 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1766 static void pr_zoom_sync(PixbufRenderer *pr, gdouble zoom, |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1767 PrZoomFlags flags, gint px, gint py) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1768 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1769 gdouble old_scale; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1770 gint old_cx, old_cy; |
1435 | 1771 gboolean clamped; |
1772 gboolean sized; | |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1773 gboolean redrawn = FALSE; |
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1774 gboolean center_point = !!(flags & PR_ZOOM_CENTER); |
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1775 gboolean force = !!(flags & PR_ZOOM_FORCE); |
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1776 gboolean new = !!(flags & PR_ZOOM_NEW); |
1045
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
1777 gboolean lazy = !!(flags & PR_ZOOM_LAZY); |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1778 PrZoomFlags clamp_flags = flags; |
1037
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1779 gdouble old_center_x = pr->norm_center_x; |
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1780 gdouble old_center_y = pr->norm_center_y; |
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1781 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1782 old_scale = pr->scale; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1783 if (center_point) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1784 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1785 px = CLAMP(px, 0, pr->width); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1786 py = CLAMP(py, 0, pr->height); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1787 old_cx = pr->x_scroll + (px - pr->x_offset); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1788 old_cy = pr->y_scroll + (py - pr->y_offset); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1789 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1790 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1791 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1792 px = py = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1793 old_cx = pr->x_scroll + pr->vis_width / 2; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1794 old_cy = pr->y_scroll + pr->vis_height / 2; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1795 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1796 |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1797 if (force) clamp_flags |= PR_ZOOM_INVALIDATE; |
1045
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
1798 if (lazy) clamp_flags |= PR_ZOOM_LAZY; |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1799 if (!pr_zoom_clamp(pr, zoom, clamp_flags, &redrawn)) return; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1800 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1801 clamped = pr_size_clamp(pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1802 sized = pr_parent_window_resize(pr, pr->width, pr->height); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1803 |
99
7cd2368ecc9d
Sat Nov 4 17:14:47 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
95
diff
changeset
|
1804 if (force && new) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1805 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1806 switch (pr->scroll_reset) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1807 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1808 case PR_SCROLL_RESET_NOCHANGE: |
1037
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1809 /* maintain old scroll position */ |
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1810 pr->x_scroll = ((gdouble)pr->image_width * old_center_x * pr->scale) - pr->vis_width / 2; |
1880
b69a33a93ace
display pixel aspect ratio support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1879
diff
changeset
|
1811 pr->y_scroll = ((gdouble)pr->image_height * old_center_y * pr->scale * pr->aspect_ratio) - pr->vis_height / 2; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1812 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1813 case PR_SCROLL_RESET_CENTER: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1814 /* center new image */ |
1000
07f6093c1c1a
For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents:
872
diff
changeset
|
1815 pr->x_scroll = ((gdouble)pr->image_width / 2.0 * pr->scale) - pr->vis_width / 2; |
1880
b69a33a93ace
display pixel aspect ratio support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1879
diff
changeset
|
1816 pr->y_scroll = ((gdouble)pr->image_height / 2.0 * pr->scale * pr->aspect_ratio) - pr->vis_height / 2; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1817 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1818 case PR_SCROLL_RESET_TOPLEFT: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1819 default: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1820 /* reset to upper left */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1821 pr->x_scroll = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1822 pr->y_scroll = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1823 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1824 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1825 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1826 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1827 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1828 /* user zoom does not force, so keep visible center point */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1829 if (center_point) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1830 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1831 pr->x_scroll = old_cx / old_scale * pr->scale - (px - pr->x_offset); |
1880
b69a33a93ace
display pixel aspect ratio support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1879
diff
changeset
|
1832 pr->y_scroll = old_cy / old_scale * pr->scale * pr->aspect_ratio - (py - pr->y_offset); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1833 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1834 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1835 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1836 pr->x_scroll = old_cx / old_scale * pr->scale - (pr->vis_width / 2); |
1880
b69a33a93ace
display pixel aspect ratio support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1879
diff
changeset
|
1837 pr->y_scroll = old_cy / old_scale * pr->scale * pr->aspect_ratio - (pr->vis_height / 2); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1838 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1839 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1840 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1841 pr_scroll_clamp(pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1842 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1843 /* If the window was not sized, redraw the image - we know there will be no size/expose signal. |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1844 * But even if a size is claimed, there is no guarantee that the window manager will allow it, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1845 * so redraw the window anyway :/ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1846 */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1847 if (sized || clamped) pr_border_clear(pr); |
1045
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
1848 |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
1849 if (lazy) |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
1850 { |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1851 pr->renderer->queue_clear(pr->renderer); |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1852 if (pr->renderer2) pr->renderer2->queue_clear(pr->renderer2); |
1045
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
1853 } |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
1854 else |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
1855 { |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
1856 pr_redraw(pr, redrawn); |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
1857 } |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1858 |
29
410dfc57a2d0
Sun Apr 3 00:36:22 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
27
diff
changeset
|
1859 pr_scroll_notify_signal(pr); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1860 pr_zoom_signal(pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1861 pr_update_signal(pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1862 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1863 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1864 static void pr_size_sync(PixbufRenderer *pr, gint new_width, gint new_height) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1865 { |
1435 | 1866 gboolean zoom_changed = FALSE; |
61
72245fb0b946
Mon Jun 13 20:22:58 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
42
diff
changeset
|
1867 |
1891
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1868 gint new_viewport_width = new_width; |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1869 gint new_viewport_height = new_height; |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1870 |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1871 if (!pr->stereo_temp_disable) |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1872 { |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1873 if (pr->stereo_mode & PR_STEREO_HORIZ) |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1874 { |
1894 | 1875 new_viewport_width = new_width / 2; |
1891
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1876 } |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1877 else if (pr->stereo_mode & PR_STEREO_VERT) |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1878 { |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1879 new_viewport_height = new_height / 2; |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1880 } |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1881 else if (pr->stereo_mode & PR_STEREO_FIXED) |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1882 { |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1883 new_viewport_width = pr->stereo_fixed_width; |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1884 new_viewport_height = pr->stereo_fixed_height; |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1885 } |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1886 } |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1887 |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1888 if (pr->window_width == new_width && pr->window_height == new_height && |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1889 pr->viewport_width == new_viewport_width && pr->viewport_height == new_viewport_height) return; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1890 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1891 pr->window_width = new_width; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1892 pr->window_height = new_height; |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1893 pr->viewport_width = new_viewport_width; |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1894 pr->viewport_height = new_viewport_height; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1895 |
61
72245fb0b946
Mon Jun 13 20:22:58 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
42
diff
changeset
|
1896 if (pr->zoom == 0.0) |
72245fb0b946
Mon Jun 13 20:22:58 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
42
diff
changeset
|
1897 { |
72245fb0b946
Mon Jun 13 20:22:58 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
42
diff
changeset
|
1898 gdouble old_scale = pr->scale; |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1899 pr_zoom_clamp(pr, 0.0, PR_ZOOM_FORCE, NULL); |
61
72245fb0b946
Mon Jun 13 20:22:58 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
42
diff
changeset
|
1900 zoom_changed = (old_scale != pr->scale); |
72245fb0b946
Mon Jun 13 20:22:58 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
42
diff
changeset
|
1901 } |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1902 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1903 pr_size_clamp(pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1904 pr_scroll_clamp(pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1905 |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1906 pr->renderer->update_sizes(pr->renderer); |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1907 if (pr->renderer2) pr->renderer2->update_sizes(pr->renderer2); |
104
6dd9a2f78053
Wed Nov 8 16:59:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
99
diff
changeset
|
1908 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1909 /* ensure scroller remains visible */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1910 if (pr->scroller_overlay != -1) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1911 { |
1435 | 1912 gboolean update = FALSE; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1913 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1914 if (pr->scroller_x > new_width) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1915 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1916 pr->scroller_x = new_width; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1917 pr->scroller_xpos = new_width; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1918 update = TRUE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1919 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1920 if (pr->scroller_y > new_height) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1921 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1922 pr->scroller_y = new_height; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1923 pr->scroller_ypos = new_height; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1924 update = TRUE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1925 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1926 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1927 if (update) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1928 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1929 GdkPixbuf *pixbuf; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1930 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1931 if (pixbuf_renderer_overlay_get(pr, pr->scroller_overlay, &pixbuf, NULL, NULL)) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1932 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1933 gint w, h; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1934 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1935 w = gdk_pixbuf_get_width(pixbuf); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1936 h = gdk_pixbuf_get_height(pixbuf); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1937 pixbuf_renderer_overlay_set(pr, pr->scroller_overlay, pixbuf, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1938 pr->scroller_x - w / 2, pr->scroller_y - h / 2); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1939 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1940 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1941 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1942 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1943 pr_border_clear(pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1944 |
29
410dfc57a2d0
Sun Apr 3 00:36:22 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
27
diff
changeset
|
1945 pr_scroll_notify_signal(pr); |
61
72245fb0b946
Mon Jun 13 20:22:58 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
42
diff
changeset
|
1946 if (zoom_changed) pr_zoom_signal(pr); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1947 pr_update_signal(pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1948 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1949 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1950 static void pr_size_cb(GtkWidget *widget, GtkAllocation *allocation, gpointer data) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1951 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1952 PixbufRenderer *pr = data; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1953 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1954 pr_size_sync(pr, allocation->width, allocation->height); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1955 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1956 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1957 static void pixbuf_renderer_paint(PixbufRenderer *pr, GdkRectangle *area) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1958 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1959 gint x, y; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1960 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1961 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1962 x = MAX(0, (gint)area->x - pr->x_offset + pr->x_scroll); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1963 y = MAX(0, (gint)area->y - pr->y_offset + pr->y_scroll); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1964 |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1965 pr->renderer->border_draw(pr->renderer, area->x, area->y, area->width, area->height); |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1966 pr->renderer->queue(pr->renderer, |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1967 x, y, |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1968 MIN((gint)area->width, pr->width - x), |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1969 MIN((gint)area->height, pr->height - y), |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1970 FALSE, TILE_RENDER_ALL, FALSE, FALSE); |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1971 if (pr->renderer2) |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1972 { |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1973 pr->renderer2->border_draw(pr->renderer2, area->x, area->y, area->width, area->height); |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1974 pr->renderer2->queue(pr->renderer2, |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1975 x, y, |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1976 MIN((gint)area->width, pr->width - x), |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1977 MIN((gint)area->height, pr->height - y), |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1978 FALSE, TILE_RENDER_ALL, FALSE, FALSE); |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1979 } |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1980 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1981 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1982 /* |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1983 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1984 * scrolling |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1985 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1986 */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1987 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1988 void pixbuf_renderer_scroll(PixbufRenderer *pr, gint x, gint y) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1989 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1990 gint old_x, old_y; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1991 gint x_off, y_off; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1992 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1993 g_return_if_fail(IS_PIXBUF_RENDERER(pr)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1994 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1995 if (!pr->pixbuf && !pr->source_tiles_enabled) return; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1996 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1997 old_x = pr->x_scroll; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1998 old_y = pr->y_scroll; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1999 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2000 pr->x_scroll += x; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2001 pr->y_scroll += y; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2002 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2003 pr_scroll_clamp(pr); |
1037
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
2004 |
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
2005 pixbuf_renderer_sync_scroll_center(pr); |
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
2006 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2007 if (pr->x_scroll == old_x && pr->y_scroll == old_y) return; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2008 |
29
410dfc57a2d0
Sun Apr 3 00:36:22 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
27
diff
changeset
|
2009 pr_scroll_notify_signal(pr); |
410dfc57a2d0
Sun Apr 3 00:36:22 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
27
diff
changeset
|
2010 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2011 x_off = pr->x_scroll - old_x; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2012 y_off = pr->y_scroll - old_y; |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
2013 |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
2014 pr->renderer->scroll(pr->renderer, x_off, y_off); |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
2015 if (pr->renderer2) pr->renderer2->scroll(pr->renderer2, x_off, y_off); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2016 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2017 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2018 void pixbuf_renderer_scroll_to_point(PixbufRenderer *pr, gint x, gint y, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2019 gdouble x_align, gdouble y_align) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2020 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2021 gint px, py; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2022 gint ax, ay; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2023 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2024 x_align = CLAMP(x_align, 0.0, 1.0); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2025 y_align = CLAMP(y_align, 0.0, 1.0); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2026 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2027 ax = (gdouble)pr->vis_width * x_align; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2028 ay = (gdouble)pr->vis_height * y_align; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2029 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2030 px = (gdouble)x * pr->scale - (pr->x_scroll + ax); |
1880
b69a33a93ace
display pixel aspect ratio support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1879
diff
changeset
|
2031 py = (gdouble)y * pr->scale * pr->aspect_ratio - (pr->y_scroll + ay); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2032 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2033 pixbuf_renderer_scroll(pr, px, py); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2034 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2035 |
131
d50f6061b37b
relative scroll is working; some cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
128
diff
changeset
|
2036 /* get or set coordinates of viewport center in the image, in range 0.0 - 1.0 */ |
d50f6061b37b
relative scroll is working; some cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
128
diff
changeset
|
2037 |
d50f6061b37b
relative scroll is working; some cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
128
diff
changeset
|
2038 void pixbuf_renderer_get_scroll_center(PixbufRenderer *pr, gdouble *x, gdouble *y) |
d50f6061b37b
relative scroll is working; some cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
128
diff
changeset
|
2039 { |
1037
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
2040 *x = pr->norm_center_x; |
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
2041 *y = pr->norm_center_y; |
131
d50f6061b37b
relative scroll is working; some cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
128
diff
changeset
|
2042 } |
d50f6061b37b
relative scroll is working; some cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
128
diff
changeset
|
2043 |
d50f6061b37b
relative scroll is working; some cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
128
diff
changeset
|
2044 void pixbuf_renderer_set_scroll_center(PixbufRenderer *pr, gdouble x, gdouble y) |
d50f6061b37b
relative scroll is working; some cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
128
diff
changeset
|
2045 { |
d50f6061b37b
relative scroll is working; some cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
128
diff
changeset
|
2046 gdouble dst_x, dst_y; |
d50f6061b37b
relative scroll is working; some cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
128
diff
changeset
|
2047 |
d50f6061b37b
relative scroll is working; some cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
128
diff
changeset
|
2048 dst_x = x * pr->width - pr->vis_width / 2 - pr->x_scroll + CLAMP(pr->subpixel_x_scroll, -1.0, 1.0); |
d50f6061b37b
relative scroll is working; some cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
128
diff
changeset
|
2049 dst_y = y * pr->height - pr->vis_height / 2 - pr->y_scroll + CLAMP(pr->subpixel_y_scroll, -1.0, 1.0); |
d50f6061b37b
relative scroll is working; some cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
128
diff
changeset
|
2050 |
1000
07f6093c1c1a
For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents:
872
diff
changeset
|
2051 pr->subpixel_x_scroll = dst_x - (gint)dst_x; |
07f6093c1c1a
For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents:
872
diff
changeset
|
2052 pr->subpixel_y_scroll = dst_y - (gint)dst_y; |
07f6093c1c1a
For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents:
872
diff
changeset
|
2053 |
07f6093c1c1a
For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents:
872
diff
changeset
|
2054 pixbuf_renderer_scroll(pr, (gint)dst_x, (gint)dst_y); |
131
d50f6061b37b
relative scroll is working; some cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
128
diff
changeset
|
2055 } |
d50f6061b37b
relative scroll is working; some cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
128
diff
changeset
|
2056 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2057 /* |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2058 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2059 * mouse |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2060 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2061 */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2062 |
1435 | 2063 static gboolean pr_mouse_motion_cb(GtkWidget *widget, GdkEventButton *bevent, gpointer data) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2064 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2065 PixbufRenderer *pr; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2066 gint accel; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2067 |
1709
07840a56692c
improved scroll on slower machines
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1649
diff
changeset
|
2068 /* This is a hack, but work far the best, at least for single pointer systems. |
07840a56692c
improved scroll on slower machines
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1649
diff
changeset
|
2069 * See http://bugzilla.gnome.org/show_bug.cgi?id=587714 for more. */ |
07840a56692c
improved scroll on slower machines
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1649
diff
changeset
|
2070 gint x, y; |
07840a56692c
improved scroll on slower machines
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1649
diff
changeset
|
2071 gdk_window_get_pointer (bevent->window, &x, &y, NULL); |
07840a56692c
improved scroll on slower machines
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1649
diff
changeset
|
2072 bevent->x = x; |
07840a56692c
improved scroll on slower machines
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1649
diff
changeset
|
2073 bevent->y = y; |
07840a56692c
improved scroll on slower machines
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1649
diff
changeset
|
2074 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2075 pr = PIXBUF_RENDERER(widget); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2076 |
1523
e52aabe8fc7a
Fix up event source ids type: gint -> guint.
Laurent Monin <geeqie@norz.org>
parents:
1517
diff
changeset
|
2077 if (pr->scroller_id) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2078 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2079 pr->scroller_xpos = bevent->x; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2080 pr->scroller_ypos = bevent->y; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2081 } |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2082 |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2083 pr->x_mouse = bevent->x; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2084 pr->y_mouse = bevent->y; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2085 pr_update_pixel_signal(pr); |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2086 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2087 if (!pr->in_drag || !gdk_pointer_is_grabbed()) return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2088 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2089 if (pr->drag_moved < PR_DRAG_SCROLL_THRESHHOLD) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2090 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2091 pr->drag_moved++; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2092 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2093 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2094 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2095 widget_set_cursor(widget, GDK_FLEUR); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2096 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2097 |
1047
229877808392
use SHIFT for connected scroll and zoom
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1045
diff
changeset
|
2098 if (bevent->state & GDK_CONTROL_MASK) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2099 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2100 accel = PR_PAN_SHIFT_MULTIPLIER; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2101 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2102 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2103 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2104 accel = 1; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2105 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2106 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2107 /* do the scroll */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2108 pixbuf_renderer_scroll(pr, (pr->drag_last_x - bevent->x) * accel, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2109 (pr->drag_last_y - bevent->y) * accel); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2110 |
128
0c318260b7f6
improved connected scroll and active image switching
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
104
diff
changeset
|
2111 pr_drag_signal(pr, bevent); |
0c318260b7f6
improved connected scroll and active image switching
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
104
diff
changeset
|
2112 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2113 pr->drag_last_x = bevent->x; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2114 pr->drag_last_y = bevent->y; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2115 |
1709
07840a56692c
improved scroll on slower machines
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1649
diff
changeset
|
2116 /* This is recommended by the GTK+ documentation, but does not work properly. |
07840a56692c
improved scroll on slower machines
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1649
diff
changeset
|
2117 * Use deprecated way until GTK+ gets a solution for correct motion hint handling: |
07840a56692c
improved scroll on slower machines
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1649
diff
changeset
|
2118 * http://bugzilla.gnome.org/show_bug.cgi?id=587714 |
07840a56692c
improved scroll on slower machines
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1649
diff
changeset
|
2119 */ |
07840a56692c
improved scroll on slower machines
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1649
diff
changeset
|
2120 /* gdk_event_request_motions (bevent); */ |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2121 return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2122 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2123 |
1584
c97dea5d82d7
improved pixel info, changed the menu entry from "Hide" to "Show",
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1523
diff
changeset
|
2124 static gboolean pr_leave_notify_cb(GtkWidget *widget, GdkEventCrossing *cevent, gpointer data) |
c97dea5d82d7
improved pixel info, changed the menu entry from "Hide" to "Show",
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1523
diff
changeset
|
2125 { |
c97dea5d82d7
improved pixel info, changed the menu entry from "Hide" to "Show",
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1523
diff
changeset
|
2126 PixbufRenderer *pr; |
c97dea5d82d7
improved pixel info, changed the menu entry from "Hide" to "Show",
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1523
diff
changeset
|
2127 |
c97dea5d82d7
improved pixel info, changed the menu entry from "Hide" to "Show",
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1523
diff
changeset
|
2128 pr = PIXBUF_RENDERER(widget); |
c97dea5d82d7
improved pixel info, changed the menu entry from "Hide" to "Show",
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1523
diff
changeset
|
2129 pr->x_mouse = -1; |
c97dea5d82d7
improved pixel info, changed the menu entry from "Hide" to "Show",
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1523
diff
changeset
|
2130 pr->y_mouse = -1; |
c97dea5d82d7
improved pixel info, changed the menu entry from "Hide" to "Show",
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1523
diff
changeset
|
2131 |
c97dea5d82d7
improved pixel info, changed the menu entry from "Hide" to "Show",
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1523
diff
changeset
|
2132 pr_update_pixel_signal(pr); |
c97dea5d82d7
improved pixel info, changed the menu entry from "Hide" to "Show",
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1523
diff
changeset
|
2133 return FALSE; |
c97dea5d82d7
improved pixel info, changed the menu entry from "Hide" to "Show",
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1523
diff
changeset
|
2134 } |
c97dea5d82d7
improved pixel info, changed the menu entry from "Hide" to "Show",
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1523
diff
changeset
|
2135 |
1435 | 2136 static gboolean pr_mouse_press_cb(GtkWidget *widget, GdkEventButton *bevent, gpointer data) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2137 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2138 PixbufRenderer *pr; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2139 GtkWidget *parent; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2140 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2141 pr = PIXBUF_RENDERER(widget); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2142 |
1523
e52aabe8fc7a
Fix up event source ids type: gint -> guint.
Laurent Monin <geeqie@norz.org>
parents:
1517
diff
changeset
|
2143 if (pr->scroller_id) return TRUE; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2144 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2145 switch (bevent->button) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2146 { |
448
2c1500b5c933
Use explicit names for mouse buttons instead of numbers.
Laurent Monin <geeqie@norz.org>
parents:
446
diff
changeset
|
2147 case MOUSE_BUTTON_LEFT: |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2148 pr->in_drag = TRUE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2149 pr->drag_last_x = bevent->x; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2150 pr->drag_last_y = bevent->y; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2151 pr->drag_moved = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2152 gdk_pointer_grab(widget->window, FALSE, |
1709
07840a56692c
improved scroll on slower machines
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1649
diff
changeset
|
2153 GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_RELEASE_MASK, |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2154 NULL, NULL, bevent->time); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2155 gtk_grab_add(widget); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2156 break; |
448
2c1500b5c933
Use explicit names for mouse buttons instead of numbers.
Laurent Monin <geeqie@norz.org>
parents:
446
diff
changeset
|
2157 case MOUSE_BUTTON_MIDDLE: |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2158 pr->drag_moved = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2159 break; |
448
2c1500b5c933
Use explicit names for mouse buttons instead of numbers.
Laurent Monin <geeqie@norz.org>
parents:
446
diff
changeset
|
2160 case MOUSE_BUTTON_RIGHT: |
25
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
2161 pr_clicked_signal(pr, bevent); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2162 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2163 default: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2164 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2165 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2166 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2167 parent = gtk_widget_get_parent(widget); |
1810
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
2168 #if GTK_CHECK_VERSION(2,20,0) |
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
2169 if (widget && gtk_widget_get_can_focus(parent)) |
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
2170 #else |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2171 if (widget && GTK_WIDGET_CAN_FOCUS(parent)) |
1810
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
2172 #endif |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2173 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2174 gtk_widget_grab_focus(parent); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2175 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2176 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2177 return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2178 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2179 |
1435 | 2180 static gboolean pr_mouse_release_cb(GtkWidget *widget, GdkEventButton *bevent, gpointer data) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2181 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2182 PixbufRenderer *pr; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2183 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2184 pr = PIXBUF_RENDERER(widget); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2185 |
1523
e52aabe8fc7a
Fix up event source ids type: gint -> guint.
Laurent Monin <geeqie@norz.org>
parents:
1517
diff
changeset
|
2186 if (pr->scroller_id) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2187 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2188 pr_scroller_stop(pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2189 return TRUE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2190 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2191 |
1810
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
2192 #if GTK_CHECK_VERSION(2,20,0) |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
2193 if (gdk_pointer_is_grabbed() && gtk_widget_has_grab(GTK_WIDGET(pr))) |
1810
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
2194 #else |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2195 if (gdk_pointer_is_grabbed() && GTK_WIDGET_HAS_GRAB(pr)) |
1810
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
2196 #endif |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2197 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2198 gtk_grab_remove(widget); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2199 gdk_pointer_ungrab(bevent->time); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2200 widget_set_cursor(widget, -1); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2201 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2202 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2203 if (pr->drag_moved < PR_DRAG_SCROLL_THRESHHOLD) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2204 { |
1047
229877808392
use SHIFT for connected scroll and zoom
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1045
diff
changeset
|
2205 if (bevent->button == MOUSE_BUTTON_LEFT && (bevent->state & GDK_CONTROL_MASK)) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2206 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2207 pr_scroller_start(pr, bevent->x, bevent->y); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2208 } |
448
2c1500b5c933
Use explicit names for mouse buttons instead of numbers.
Laurent Monin <geeqie@norz.org>
parents:
446
diff
changeset
|
2209 else if (bevent->button == MOUSE_BUTTON_LEFT || bevent->button == MOUSE_BUTTON_MIDDLE) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2210 { |
25
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
2211 pr_clicked_signal(pr, bevent); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2212 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2213 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2214 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2215 pr->in_drag = FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2216 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2217 return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2218 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2219 |
1435 | 2220 static gboolean pr_mouse_leave_cb(GtkWidget *widget, GdkEventCrossing *event, gpointer data) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2221 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2222 PixbufRenderer *pr; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2223 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2224 pr = PIXBUF_RENDERER(widget); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2225 |
1523
e52aabe8fc7a
Fix up event source ids type: gint -> guint.
Laurent Monin <geeqie@norz.org>
parents:
1517
diff
changeset
|
2226 if (pr->scroller_id) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2227 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2228 pr->scroller_xpos = pr->scroller_x; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2229 pr->scroller_ypos = pr->scroller_y; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2230 pr->scroller_xinc = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2231 pr->scroller_yinc = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2232 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2233 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2234 return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2235 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2236 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2237 static void pr_mouse_drag_cb(GtkWidget *widget, GdkDragContext *context, gpointer data) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2238 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2239 PixbufRenderer *pr; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2240 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2241 pr = PIXBUF_RENDERER(widget); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2242 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2243 pr->drag_moved = PR_DRAG_SCROLL_THRESHHOLD; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2244 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2245 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2246 static void pr_signals_connect(PixbufRenderer *pr) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2247 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2248 g_signal_connect(G_OBJECT(pr), "motion_notify_event", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2249 G_CALLBACK(pr_mouse_motion_cb), pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2250 g_signal_connect(G_OBJECT(pr), "button_press_event", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2251 G_CALLBACK(pr_mouse_press_cb), pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2252 g_signal_connect(G_OBJECT(pr), "button_release_event", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2253 G_CALLBACK(pr_mouse_release_cb), pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2254 g_signal_connect(G_OBJECT(pr), "leave_notify_event", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2255 G_CALLBACK(pr_mouse_leave_cb), pr); |
1584
c97dea5d82d7
improved pixel info, changed the menu entry from "Hide" to "Show",
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1523
diff
changeset
|
2256 g_signal_connect(G_OBJECT(pr), "leave_notify_event", |
c97dea5d82d7
improved pixel info, changed the menu entry from "Hide" to "Show",
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1523
diff
changeset
|
2257 G_CALLBACK(pr_leave_notify_cb), pr); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2258 |
1709
07840a56692c
improved scroll on slower machines
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1649
diff
changeset
|
2259 gtk_widget_set_events(GTK_WIDGET(pr), GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2260 GDK_BUTTON_RELEASE_MASK | GDK_BUTTON_PRESS_MASK | |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2261 GDK_LEAVE_NOTIFY_MASK); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2262 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2263 g_signal_connect(G_OBJECT(pr), "drag_begin", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2264 G_CALLBACK(pr_mouse_drag_cb), pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2265 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2266 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2267 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2268 /* |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2269 *------------------------------------------------------------------- |
1879 | 2270 * stereo support |
2271 *------------------------------------------------------------------- | |
2272 */ | |
2273 | |
2274 #define COLOR_BYTES 3 /* rgb */ | |
2275 void pr_create_anaglyph(GdkPixbuf *pixbuf, GdkPixbuf *right, gint x, gint y, gint w, gint h) | |
2276 { | |
2277 gint srs, drs; | |
2278 guchar *s_pix, *d_pix; | |
2279 guchar *sp, *dp; | |
2280 guchar *spi, *dpi; | |
2281 gint i, j; | |
2282 | |
2283 srs = gdk_pixbuf_get_rowstride(right); | |
2284 s_pix = gdk_pixbuf_get_pixels(right); | |
2285 spi = s_pix + (x * COLOR_BYTES); | |
2286 | |
2287 drs = gdk_pixbuf_get_rowstride(pixbuf); | |
2288 d_pix = gdk_pixbuf_get_pixels(pixbuf); | |
2289 dpi = d_pix + x * COLOR_BYTES; | |
2290 | |
2291 for (i = y; i < y + h; i++) | |
2292 { | |
2293 sp = spi + (i * srs); | |
2294 dp = dpi + (i * drs); | |
2295 for (j = 0; j < w; j++) | |
2296 { | |
2297 *dp = *sp; /* copy red channel */ | |
2298 sp += COLOR_BYTES; | |
2299 dp += COLOR_BYTES; | |
2300 } | |
2301 } | |
2302 } | |
2303 | |
2304 | |
2305 | |
2306 /* | |
2307 *------------------------------------------------------------------- | |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2308 * public |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2309 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2310 */ |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2311 static void pr_pixbuf_size_sync(PixbufRenderer *pr) |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2312 { |
1888
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2313 pr->stereo_pixbuf_offset_left = 0; |
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2314 pr->stereo_pixbuf_offset_right = 0; |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2315 if (!pr->pixbuf) return; |
1888
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2316 gint stereo_data = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(pr->pixbuf), "stereo_data")); |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2317 switch (pr->orientation) |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2318 { |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2319 case EXIF_ORIENTATION_LEFT_TOP: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2320 case EXIF_ORIENTATION_RIGHT_TOP: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2321 case EXIF_ORIENTATION_RIGHT_BOTTOM: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2322 case EXIF_ORIENTATION_LEFT_BOTTOM: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2323 pr->image_width = gdk_pixbuf_get_height(pr->pixbuf); |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2324 pr->image_height = gdk_pixbuf_get_width(pr->pixbuf); |
1888
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2325 if (stereo_data == STEREO_PIXBUF_SBS) |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
2326 { |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
2327 pr->image_height /= 2; |
1888
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2328 pr->stereo_pixbuf_offset_right = pr->image_height; |
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2329 } |
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2330 else if (stereo_data == STEREO_PIXBUF_CROSS) |
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2331 { |
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2332 pr->image_height /= 2; |
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2333 pr->stereo_pixbuf_offset_left = pr->image_height; |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
2334 } |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
2335 |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2336 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2337 default: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2338 pr->image_width = gdk_pixbuf_get_width(pr->pixbuf); |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2339 pr->image_height = gdk_pixbuf_get_height(pr->pixbuf); |
1888
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2340 if (stereo_data == STEREO_PIXBUF_SBS) |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
2341 { |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
2342 pr->image_width /= 2; |
1888
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2343 pr->stereo_pixbuf_offset_right = pr->image_width; |
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2344 } |
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2345 else if (stereo_data == STEREO_PIXBUF_CROSS) |
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2346 { |
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2347 pr->image_width /= 2; |
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2348 pr->stereo_pixbuf_offset_left = pr->image_width; |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
2349 } |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2350 } |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2351 } |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2352 |
1045
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2353 static void pr_set_pixbuf(PixbufRenderer *pr, GdkPixbuf *pixbuf, gdouble zoom, PrZoomFlags flags) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2354 { |
1045
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2355 if (pixbuf) g_object_ref(pixbuf); |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2356 if (pr->pixbuf) g_object_unref(pr->pixbuf); |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2357 pr->pixbuf = pixbuf; |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2358 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2359 if (!pr->pixbuf) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2360 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2361 GtkWidget *box; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2362 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2363 /* no pixbuf so just clear the window */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2364 pr->image_width = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2365 pr->image_height = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2366 pr->scale = 1.0; |
1634
7e8bc9e5cdd7
preserve zoom value on fullscreen startup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1633
diff
changeset
|
2367 pr->zoom = zoom; /* don't throw away the zoom value, it is set by pixbuf_renderer_move, among others, |
7e8bc9e5cdd7
preserve zoom value on fullscreen startup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1633
diff
changeset
|
2368 and used for pixbuf_renderer_zoom_get */ |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2369 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2370 box = GTK_WIDGET(pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2371 |
1810
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
2372 #if GTK_CHECK_VERSION(2,20,0) |
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
2373 if (gtk_widget_get_realized(box)) |
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
2374 #else |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2375 if (GTK_WIDGET_REALIZED(box)) |
1810
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
2376 #endif |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2377 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2378 gdk_window_clear(box->window); |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
2379 pr->renderer->overlay_draw(pr->renderer, 0, 0, pr->viewport_width, pr->viewport_height); |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
2380 if (pr->renderer2) pr->renderer2->overlay_draw(pr->renderer2, 0, 0, pr->viewport_width, pr->viewport_height); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2381 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2382 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2383 pr_update_signal(pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2384 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2385 return; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2386 } |
442 | 2387 |
1889
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2388 if (pr->stereo_mode & PR_STEREO_TEMP_DISABLE) |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2389 { |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2390 gint disable = !pr->pixbuf || ! GPOINTER_TO_INT(g_object_get_data(G_OBJECT(pr->pixbuf), "stereo_data")); |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2391 pr_stereo_temp_disable(pr, disable); |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2392 } |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2393 |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2394 pr_pixbuf_size_sync(pr); |
1045
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2395 pr_zoom_sync(pr, zoom, flags | PR_ZOOM_FORCE | PR_ZOOM_NEW, 0, 0); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2396 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2397 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2398 void pixbuf_renderer_set_pixbuf(PixbufRenderer *pr, GdkPixbuf *pixbuf, gdouble zoom) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2399 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2400 g_return_if_fail(IS_PIXBUF_RENDERER(pr)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2401 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2402 pr_source_tile_unset(pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2403 |
1045
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2404 pr_set_pixbuf(pr, pixbuf, zoom, 0); |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2405 |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2406 pr_update_signal(pr); |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2407 } |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2408 |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2409 void pixbuf_renderer_set_pixbuf_lazy(PixbufRenderer *pr, GdkPixbuf *pixbuf, gdouble zoom, gint orientation) |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2410 { |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2411 g_return_if_fail(IS_PIXBUF_RENDERER(pr)); |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2412 |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2413 pr_source_tile_unset(pr); |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2414 |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2415 pr->orientation = orientation; |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2416 pr_set_pixbuf(pr, pixbuf, zoom, PR_ZOOM_LAZY); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2417 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2418 pr_update_signal(pr); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2419 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2420 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2421 GdkPixbuf *pixbuf_renderer_get_pixbuf(PixbufRenderer *pr) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2422 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2423 g_return_val_if_fail(IS_PIXBUF_RENDERER(pr), NULL); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2424 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2425 return pr->pixbuf; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2426 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2427 |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2428 void pixbuf_renderer_set_orientation(PixbufRenderer *pr, gint orientation) |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2429 { |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2430 g_return_if_fail(IS_PIXBUF_RENDERER(pr)); |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2431 |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2432 pr->orientation = orientation; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2433 |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2434 pr_pixbuf_size_sync(pr); |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
2435 pr_zoom_sync(pr, pr->zoom, PR_ZOOM_FORCE, 0, 0); |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2436 } |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2437 |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2438 gint pixbuf_renderer_get_orientation(PixbufRenderer *pr) |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2439 { |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2440 if (!pr) return 1; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2441 return pr->orientation; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2442 } |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2443 |
1435 | 2444 void pixbuf_renderer_set_post_process_func(PixbufRenderer *pr, PixbufRendererPostProcessFunc func, gpointer user_data, gboolean slow) |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2445 { |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2446 g_return_if_fail(IS_PIXBUF_RENDERER(pr)); |
442 | 2447 |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2448 pr->func_post_process = func; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2449 pr->post_process_user_data = user_data; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2450 pr->post_process_slow = func && slow; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2451 |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2452 } |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2453 |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2454 |
24
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2455 void pixbuf_renderer_move(PixbufRenderer *pr, PixbufRenderer *source) |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2456 { |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2457 GObject *object; |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2458 PixbufRendererScrollResetType scroll_reset; |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2459 |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2460 g_return_if_fail(IS_PIXBUF_RENDERER(pr)); |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2461 g_return_if_fail(IS_PIXBUF_RENDERER(source)); |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2462 |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2463 if (pr == source) return; |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2464 |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2465 object = G_OBJECT(pr); |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2466 |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2467 g_object_set(object, "zoom_min", source->zoom_min, NULL); |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2468 g_object_set(object, "zoom_max", source->zoom_max, NULL); |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2469 g_object_set(object, "loading", source->loading, NULL); |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2470 |
42
056d96cdec23
Sat May 14 13:04:23 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
38
diff
changeset
|
2471 pr->complete = source->complete; |
056d96cdec23
Sat May 14 13:04:23 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
38
diff
changeset
|
2472 |
24
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2473 pr->x_scroll = source->x_scroll; |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2474 pr->y_scroll = source->y_scroll; |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2475 pr->x_mouse = source->x_mouse; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2476 pr->y_mouse = source->y_mouse; |
24
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2477 |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2478 scroll_reset = pr->scroll_reset; |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2479 pr->scroll_reset = PR_SCROLL_RESET_NOCHANGE; |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2480 |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2481 pr->func_post_process = source->func_post_process; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2482 pr->post_process_user_data = source->post_process_user_data; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2483 pr->post_process_slow = source->post_process_slow; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2484 pr->orientation = source->orientation; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2485 |
24
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2486 if (source->source_tiles_enabled) |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2487 { |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2488 pr_source_tile_unset(pr); |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2489 |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2490 pr->source_tiles_enabled = source->source_tiles_enabled; |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2491 pr->source_tiles_cache_size = source->source_tiles_cache_size; |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2492 pr->source_tile_width = source->source_tile_width; |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2493 pr->source_tile_height = source->source_tile_height; |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2494 pr->image_width = source->image_width; |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2495 pr->image_height = source->image_height; |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2496 |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2497 pr->func_tile_request = source->func_tile_request; |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2498 pr->func_tile_dispose = source->func_tile_dispose; |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2499 pr->func_tile_data = source->func_tile_data; |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2500 |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2501 pr->source_tiles = source->source_tiles; |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2502 source->source_tiles = NULL; |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2503 |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
2504 pr_zoom_sync(pr, source->zoom, PR_ZOOM_FORCE | PR_ZOOM_NEW, 0, 0); |
24
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2505 pr_redraw(pr, TRUE); |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2506 } |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2507 else |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2508 { |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2509 pixbuf_renderer_set_pixbuf(pr, source->pixbuf, source->zoom); |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2510 } |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2511 |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2512 pr->scroll_reset = scroll_reset; |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2513 |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2514 pixbuf_renderer_set_pixbuf(source, NULL, source->zoom); |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
2515 // pr_queue_clear(source); |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
2516 // pr_tile_free_all(source); |
24
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2517 } |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2518 |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2519 void pixbuf_renderer_area_changed(PixbufRenderer *pr, gint src_x, gint src_y, gint src_w, gint src_h) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2520 { |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2521 gint x, y, width, height, x1, y1, x2, y2; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2522 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2523 g_return_if_fail(IS_PIXBUF_RENDERER(pr)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2524 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
2525 pr_coords_map_orientation_reverse(pr->orientation, |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2526 src_x, src_y, |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2527 pr->image_width, pr->image_height, |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2528 src_w, src_h, |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2529 &x, &y, |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2530 &width, &height); |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2531 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2532 if (pr->source_tiles_enabled) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2533 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2534 pr_source_tile_changed(pr, x, y, width, height); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2535 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2536 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2537 if (pr->scale != 1.0 && pr->zoom_quality != GDK_INTERP_NEAREST) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2538 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2539 /* increase region when using a zoom quality that may access surrounding pixels */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2540 y -= 1; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2541 height += 2; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2542 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2543 |
1000
07f6093c1c1a
For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents:
872
diff
changeset
|
2544 x1 = (gint)floor((gdouble)x * pr->scale); |
1880
b69a33a93ace
display pixel aspect ratio support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1879
diff
changeset
|
2545 y1 = (gint)floor((gdouble)y * pr->scale * pr->aspect_ratio); |
1000
07f6093c1c1a
For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents:
872
diff
changeset
|
2546 x2 = (gint)ceil((gdouble)(x + width) * pr->scale); |
1880
b69a33a93ace
display pixel aspect ratio support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1879
diff
changeset
|
2547 y2 = (gint)ceil((gdouble)(y + height) * pr->scale * pr->aspect_ratio); |
26
f1fe26e637e9
Mon Mar 28 20:23:34 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
25
diff
changeset
|
2548 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
2549 pr->renderer->queue(pr->renderer, x1, y1, x2 - x1, y2 - y1, FALSE, TILE_RENDER_AREA, TRUE, TRUE); |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
2550 if (pr->renderer2) pr->renderer2->queue(pr->renderer2, x1, y1, x2 - x1, y2 - y1, FALSE, TILE_RENDER_AREA, TRUE, TRUE); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2551 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2552 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2553 void pixbuf_renderer_zoom_adjust(PixbufRenderer *pr, gdouble increment) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2554 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2555 g_return_if_fail(IS_PIXBUF_RENDERER(pr)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2556 |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
2557 pr_zoom_adjust_real(pr, increment, PR_ZOOM_NONE, 0, 0); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2558 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2559 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2560 void pixbuf_renderer_zoom_adjust_at_point(PixbufRenderer *pr, gdouble increment, gint x, gint y) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2561 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2562 g_return_if_fail(IS_PIXBUF_RENDERER(pr)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2563 |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
2564 pr_zoom_adjust_real(pr, increment, PR_ZOOM_CENTER, x, y); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2565 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2566 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2567 void pixbuf_renderer_zoom_set(PixbufRenderer *pr, gdouble zoom) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2568 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2569 g_return_if_fail(IS_PIXBUF_RENDERER(pr)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2570 |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
2571 pr_zoom_sync(pr, zoom, PR_ZOOM_NONE, 0, 0); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2572 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2573 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2574 gdouble pixbuf_renderer_zoom_get(PixbufRenderer *pr) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2575 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2576 g_return_val_if_fail(IS_PIXBUF_RENDERER(pr), 1.0); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2577 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2578 return pr->zoom; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2579 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2580 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2581 gdouble pixbuf_renderer_zoom_get_scale(PixbufRenderer *pr) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2582 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2583 g_return_val_if_fail(IS_PIXBUF_RENDERER(pr), 1.0); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2584 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2585 return pr->scale; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2586 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2587 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2588 void pixbuf_renderer_zoom_set_limits(PixbufRenderer *pr, gdouble min, gdouble max) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2589 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2590 g_return_if_fail(IS_PIXBUF_RENDERER(pr)); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2591 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2592 if (min > 1.0 || max < 1.0) return; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2593 if (min < 1.0 && min > -1.0) return; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2594 if (min < -200.0 || max > 200.0) return; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2595 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2596 if (pr->zoom_min != min) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2597 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2598 pr->zoom_min = min; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2599 g_object_notify(G_OBJECT(pr), "zoom_min"); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2600 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2601 if (pr->zoom_max != max) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2602 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2603 pr->zoom_max = max; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2604 g_object_notify(G_OBJECT(pr), "zoom_max"); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2605 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2606 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2607 |
1889
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2608 static void pr_stereo_set(PixbufRenderer *pr) |
1886
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2609 { |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2610 if (!pr->renderer) pr->renderer = (void *)renderer_tiles_new(pr); |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2611 |
1889
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2612 pr->renderer->stereo_set(pr->renderer, pr->stereo_mode & ~PR_STEREO_MIRROR_RIGHT & ~PR_STEREO_FLIP_RIGHT); |
1886
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2613 |
1891
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
2614 if (pr->stereo_mode & (PR_STEREO_HORIZ | PR_STEREO_VERT | PR_STEREO_FIXED)) |
1886
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2615 { |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2616 if (!pr->renderer2) pr->renderer2 = (void *)renderer_tiles_new(pr); |
1891
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
2617 pr->renderer2->stereo_set(pr->renderer2, (pr->stereo_mode & ~PR_STEREO_MIRROR_LEFT & ~PR_STEREO_FLIP_LEFT) | PR_STEREO_RIGHT); |
1886
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2618 } |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2619 else |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2620 { |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2621 if (pr->renderer2) pr->renderer2->free(pr->renderer2); |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2622 pr->renderer2 = NULL; |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2623 } |
1895
6e3edda945ae
added half-size (3dtv) stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1894
diff
changeset
|
2624 if (pr->stereo_mode & PR_STEREO_HALF) |
6e3edda945ae
added half-size (3dtv) stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1894
diff
changeset
|
2625 { |
6e3edda945ae
added half-size (3dtv) stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1894
diff
changeset
|
2626 if (pr->stereo_mode & PR_STEREO_HORIZ) pr->aspect_ratio = 2.0; |
6e3edda945ae
added half-size (3dtv) stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1894
diff
changeset
|
2627 else if (pr->stereo_mode & PR_STEREO_VERT) pr->aspect_ratio = 0.5; |
6e3edda945ae
added half-size (3dtv) stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1894
diff
changeset
|
2628 else pr->aspect_ratio = 1.0; |
6e3edda945ae
added half-size (3dtv) stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1894
diff
changeset
|
2629 } |
6e3edda945ae
added half-size (3dtv) stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1894
diff
changeset
|
2630 else |
6e3edda945ae
added half-size (3dtv) stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1894
diff
changeset
|
2631 { |
6e3edda945ae
added half-size (3dtv) stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1894
diff
changeset
|
2632 pr->aspect_ratio = 1.0; |
6e3edda945ae
added half-size (3dtv) stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1894
diff
changeset
|
2633 } |
1889
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2634 } |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2635 |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2636 void pixbuf_renderer_stereo_set(PixbufRenderer *pr, gint stereo_mode) |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2637 { |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2638 gboolean redraw = !(pr->stereo_mode == stereo_mode) || pr->stereo_temp_disable; |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2639 pr->stereo_mode = stereo_mode; |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2640 if ((stereo_mode & PR_STEREO_TEMP_DISABLE) && pr->stereo_temp_disable) return; |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2641 |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2642 pr->stereo_temp_disable = FALSE; |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2643 |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2644 pr_stereo_set(pr); |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2645 |
1886
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2646 if (redraw) |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2647 { |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2648 pr_size_sync(pr, pr->window_width, pr->window_height); /* recalculate new viewport */ |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2649 pr_zoom_sync(pr, pr->zoom, PR_ZOOM_FORCE | PR_ZOOM_NEW, 0, 0); |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2650 } |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2651 } |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2652 |
1891
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
2653 void pixbuf_renderer_stereo_fixed_set(PixbufRenderer *pr, gint width, gint height, gint x1, gint y1, gint x2, gint y2) |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
2654 { |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
2655 pr->stereo_fixed_width = width; |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
2656 pr->stereo_fixed_height = height; |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
2657 pr->stereo_fixed_x_left = x1; |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
2658 pr->stereo_fixed_y_left = y1; |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
2659 pr->stereo_fixed_x_right = x2; |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
2660 pr->stereo_fixed_y_right = y2; |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
2661 } |
1889
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2662 |
1886
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2663 gint pixbuf_renderer_stereo_get(PixbufRenderer *pr) |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2664 { |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2665 return pr->stereo_mode; |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2666 } |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2667 |
1889
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2668 static void pr_stereo_temp_disable(PixbufRenderer *pr, gboolean disable) |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2669 { |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2670 if (pr->stereo_temp_disable == disable) return; |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2671 pr->stereo_temp_disable = disable; |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2672 if (disable) |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2673 { |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2674 if (!pr->renderer) pr->renderer = (void *)renderer_tiles_new(pr); |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2675 pr->renderer->stereo_set(pr->renderer, PR_STEREO_NONE); |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2676 if (pr->renderer2) pr->renderer2->free(pr->renderer2); |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2677 pr->renderer2 = NULL; |
1895
6e3edda945ae
added half-size (3dtv) stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1894
diff
changeset
|
2678 pr->aspect_ratio = 1.0; |
1889
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2679 } |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2680 else |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2681 { |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2682 pr_stereo_set(pr); |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2683 } |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2684 pr_size_sync(pr, pr->window_width, pr->window_height); /* recalculate new viewport */ |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2685 } |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2686 |
1435 | 2687 gboolean pixbuf_renderer_get_pixel_colors(PixbufRenderer *pr, gint x_pixel, gint y_pixel, |
2688 gint *r_mouse, gint *g_mouse, gint *b_mouse) | |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2689 { |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2690 GdkPixbuf *pb = pr->pixbuf; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2691 gint p_alpha, prs; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2692 guchar *p_pix, *pp; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2693 gint map_x, map_y, map_w, map_h; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2694 |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2695 g_return_val_if_fail(IS_PIXBUF_RENDERER(pr), FALSE); |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2696 g_return_val_if_fail(r_mouse != NULL && g_mouse != NULL && b_mouse != NULL, FALSE); |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2697 |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2698 if (!pr->pixbuf && !pr->source_tiles_enabled) |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2699 { |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2700 *r_mouse = -1; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2701 *g_mouse = -1; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2702 *b_mouse = -1; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2703 return FALSE; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2704 } |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2705 |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2706 if (!pb) return FALSE; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2707 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
2708 pr_tile_region_map_orientation(pr->orientation, |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2709 x_pixel, y_pixel, |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2710 pr->image_width, pr->image_height, |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2711 1, 1, /*single pixel */ |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2712 &map_x, &map_y, |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2713 &map_w, &map_h); |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2714 |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2715 if (map_x < 0 || map_x > gdk_pixbuf_get_width(pr->pixbuf) - 1) return FALSE; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2716 if (map_y < 0 || map_y > gdk_pixbuf_get_height(pr->pixbuf) - 1) return FALSE; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2717 |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2718 p_alpha = gdk_pixbuf_get_has_alpha(pb); |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2719 prs = gdk_pixbuf_get_rowstride(pb); |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2720 p_pix = gdk_pixbuf_get_pixels(pb); |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2721 |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2722 pp = p_pix + map_y * prs + (map_x * (p_alpha ? 4 : 3)); |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2723 *r_mouse = *pp; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2724 pp++; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2725 *g_mouse = *pp; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2726 pp++; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2727 *b_mouse = *pp; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2728 |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2729 return TRUE; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2730 } |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2731 |
1435 | 2732 gboolean pixbuf_renderer_get_mouse_position(PixbufRenderer *pr, gint *x_pixel_return, gint *y_pixel_return) |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2733 { |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2734 gint x_pixel, y_pixel, x_pixel_clamped, y_pixel_clamped; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2735 |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2736 g_return_val_if_fail(IS_PIXBUF_RENDERER(pr), FALSE); |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2737 g_return_val_if_fail(x_pixel_return != NULL && y_pixel_return != NULL, FALSE); |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2738 |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2739 if (!pr->pixbuf && !pr->source_tiles_enabled) |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2740 { |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2741 *x_pixel_return = -1; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2742 *y_pixel_return = -1; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2743 return FALSE; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2744 } |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2745 |
1492
3044b1b97143
Fixed bug where pixel/color information at x=0 coordinates werent shown:
Laurent Monin <geeqie@norz.org>
parents:
1435
diff
changeset
|
2746 x_pixel = floor((gdouble)(pr->x_mouse - pr->x_offset + pr->x_scroll) / pr->scale); |
1880
b69a33a93ace
display pixel aspect ratio support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1879
diff
changeset
|
2747 y_pixel = floor((gdouble)(pr->y_mouse - pr->y_offset + pr->y_scroll) / pr->scale / pr->aspect_ratio); |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2748 x_pixel_clamped = CLAMP(x_pixel, 0, pr->image_width - 1); |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2749 y_pixel_clamped = CLAMP(y_pixel, 0, pr->image_height - 1); |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2750 |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2751 if(x_pixel != x_pixel_clamped || y_pixel != y_pixel_clamped) |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2752 { |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2753 /* mouse is not on pr */ |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2754 x_pixel = y_pixel = -1; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2755 } |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2756 |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2757 *x_pixel_return = x_pixel; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2758 *y_pixel_return = y_pixel; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2759 |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2760 return TRUE; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2761 } |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2762 |
1431
13c985b6e35e
More gboolean and tidy up.
Laurent Monin <geeqie@norz.org>
parents:
1375
diff
changeset
|
2763 gboolean pixbuf_renderer_get_image_size(PixbufRenderer *pr, gint *width, gint *height) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2764 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2765 g_return_val_if_fail(IS_PIXBUF_RENDERER(pr), FALSE); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2766 g_return_val_if_fail(width != NULL && height != NULL, FALSE); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2767 |
1865 | 2768 if (!pr->pixbuf && !pr->source_tiles_enabled && (!pr->image_width || !pr->image_height)) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2769 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2770 *width = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2771 *height = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2772 return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2773 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2774 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2775 *width = pr->image_width; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2776 *height = pr->image_height; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2777 return TRUE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2778 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2779 |
1435 | 2780 gboolean pixbuf_renderer_get_scaled_size(PixbufRenderer *pr, gint *width, gint *height) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2781 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2782 g_return_val_if_fail(IS_PIXBUF_RENDERER(pr), FALSE); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2783 g_return_val_if_fail(width != NULL && height != NULL, FALSE); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2784 |
1865 | 2785 if (!pr->pixbuf && !pr->source_tiles_enabled && (!pr->image_width || !pr->image_height)) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2786 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2787 *width = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2788 *height = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2789 return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2790 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2791 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2792 *width = pr->width; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2793 *height = pr->height; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2794 return TRUE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2795 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2796 |
1435 | 2797 gboolean pixbuf_renderer_get_visible_rect(PixbufRenderer *pr, GdkRectangle *rect) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2798 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2799 g_return_val_if_fail(IS_PIXBUF_RENDERER(pr), FALSE); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2800 g_return_val_if_fail(rect != NULL, FALSE); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2801 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2802 if ((!pr->pixbuf && !pr->source_tiles_enabled) || |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2803 !pr->scale) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2804 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2805 rect->x = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2806 rect->y = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2807 rect->width = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2808 rect->height = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2809 return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2810 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2811 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2812 rect->x = (gint)((gdouble)pr->x_scroll / pr->scale); |
1880
b69a33a93ace
display pixel aspect ratio support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1879
diff
changeset
|
2813 rect->y = (gint)((gdouble)pr->y_scroll / pr->scale / pr->aspect_ratio); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2814 rect->width = (gint)((gdouble)pr->vis_width / pr->scale); |
1880
b69a33a93ace
display pixel aspect ratio support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1879
diff
changeset
|
2815 rect->height = (gint)((gdouble)pr->vis_height / pr->scale / pr->aspect_ratio); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2816 return TRUE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2817 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2818 |
1435 | 2819 gboolean pixbuf_renderer_get_virtual_rect(PixbufRenderer *pr, GdkRectangle *rect) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2820 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2821 g_return_val_if_fail(IS_PIXBUF_RENDERER(pr), FALSE); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2822 g_return_val_if_fail(rect != NULL, FALSE); |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2823 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2824 if ((!pr->pixbuf && !pr->source_tiles_enabled)) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2825 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2826 rect->x = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2827 rect->y = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2828 rect->width = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2829 rect->height = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2830 return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2831 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2832 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2833 rect->x = pr->x_scroll; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2834 rect->y = pr->y_scroll; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2835 rect->width = pr->vis_width; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2836 rect->height = pr->vis_height; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2837 return TRUE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2838 } |
1865 | 2839 |
2840 void pixbuf_renderer_set_size_early(PixbufRenderer *pr, guint width, guint height) | |
2841 { | |
2842 gdouble zoom; | |
2843 gint w, h; | |
2844 | |
2845 zoom = pixbuf_renderer_zoom_get(pr); | |
2846 pr->image_width = width; | |
2847 pr->image_height = height; | |
2848 | |
2849 pr_zoom_clamp(pr, zoom, PR_ZOOM_FORCE, NULL); | |
2850 | |
2851 //w = width; | |
2852 //h = height; | |
2853 | |
2854 //pr->width = width; | |
2855 //pr->height = height; | |
2856 } | |
2857 | |
1055
4bbdfab3c89a
Adding a vim modeline to all files - patch by Klaus Ethgen
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1047
diff
changeset
|
2858 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */ |