Mercurial > hg > forks > geeqie
annotate src/pixbuf-renderer.c @ 2862:f105ca657cb3
Bug fix #251: Crop simulation
https://github.com/BestImageViewer/geeqie/issues/251
If the drawn rectangle started or ended outside the image area,
incorrect coordinates were returned.
The coordinates of the enclosed part of the image are now returned.
author | Colin Clark <colin.clark@cclark.uk> |
---|---|
date | Wed, 14 Nov 2018 10:15:23 +0000 |
parents | 3e9ca298bb1d |
children |
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 /* |
2350
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2310
diff
changeset
|
2 * Copyright (C) 2006 John Ellis |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2310
diff
changeset
|
3 * Copyright (C) 2008 - 2016 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
|
4 * |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
5 * 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
|
6 * |
2350
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2310
diff
changeset
|
7 * This program is free software; you can redistribute it and/or modify |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2310
diff
changeset
|
8 * it under the terms of the GNU General Public License as published by |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2310
diff
changeset
|
9 * the Free Software Foundation; either version 2 of the License, or |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2310
diff
changeset
|
10 * (at your option) any later version. |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2310
diff
changeset
|
11 * |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2310
diff
changeset
|
12 * This program is distributed in the hope that it will be useful, |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2310
diff
changeset
|
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2310
diff
changeset
|
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2310
diff
changeset
|
15 * GNU General Public License for more details. |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2310
diff
changeset
|
16 * |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2310
diff
changeset
|
17 * You should have received a copy of the GNU General Public License along |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2310
diff
changeset
|
18 * with this program; if not, write to the Free Software Foundation, Inc., |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2310
diff
changeset
|
19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
20 */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
21 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
22 #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
|
23 #include <stdlib.h> |
507
7408e89b601d
Move debug macros from main.h to new debug.h.
Laurent Monin <geeqie@norz.org>
parents:
506
diff
changeset
|
24 #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
|
25 #include <math.h> |
507
7408e89b601d
Move debug macros from main.h to new debug.h.
Laurent Monin <geeqie@norz.org>
parents:
506
diff
changeset
|
26 |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
27 #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
|
28 #include "pixbuf-renderer.h" |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
29 #include "renderer-tiles.h" |
2074
b56062760fc2
implemented clutter-based renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2069
diff
changeset
|
30 #include "renderer-clutter.h" |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
31 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
32 #include "intl.h" |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
33 #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
|
34 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
35 #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
|
36 |
196
bdad1cacadf4
rename GQview -> Geeqie over the code
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
131
diff
changeset
|
37 /* comment this out if not using this from within Geeqie |
283 | 38 * 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
|
39 * - 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
|
40 */ |
283 | 41 #define GQ_BUILD 1 |
42 | |
43 #ifdef GQ_BUILD | |
507
7408e89b601d
Move debug macros from main.h to new debug.h.
Laurent Monin <geeqie@norz.org>
parents:
506
diff
changeset
|
44 #include "main.h" |
7408e89b601d
Move debug macros from main.h to new debug.h.
Laurent Monin <geeqie@norz.org>
parents:
506
diff
changeset
|
45 #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
|
46 #include "exif.h" |
35b2c10c7f0d
Only define ExifOrientationType if GQ_BUILD is not defined since
Laurent Monin <geeqie@norz.org>
parents:
736
diff
changeset
|
47 #else |
35b2c10c7f0d
Only define ExifOrientationType if GQ_BUILD is not defined since
Laurent Monin <geeqie@norz.org>
parents:
736
diff
changeset
|
48 typedef enum { |
35b2c10c7f0d
Only define ExifOrientationType if GQ_BUILD is not defined since
Laurent Monin <geeqie@norz.org>
parents:
736
diff
changeset
|
49 EXIF_ORIENTATION_UNKNOWN = 0, |
35b2c10c7f0d
Only define ExifOrientationType if GQ_BUILD is not defined since
Laurent Monin <geeqie@norz.org>
parents:
736
diff
changeset
|
50 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
|
51 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
|
52 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
|
53 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
|
54 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
|
55 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
|
56 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
|
57 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
|
58 } ExifOrientationType; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
59 #endif |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
60 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
61 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
62 /* 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
|
63 #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
|
64 #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
|
65 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
66 /* 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
|
67 #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
|
68 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
69 /* 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
|
70 #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
|
71 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
72 /* scroller config */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
73 #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
|
74 #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
|
75 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
76 /* 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
|
77 * (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
|
78 */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
79 #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
|
80 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
81 enum { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
82 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
|
83 SIGNAL_CLICKED, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
84 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
|
85 SIGNAL_RENDER_COMPLETE, |
128
0c318260b7f6
improved connected scroll and active image switching
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
104
diff
changeset
|
86 SIGNAL_DRAG, |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
87 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
|
88 SIGNAL_COUNT |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
89 }; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
90 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
91 enum { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
92 PROP_0, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
93 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
|
94 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
|
95 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
|
96 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
|
97 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
|
98 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
|
99 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
|
100 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
|
101 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
|
102 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
|
103 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
|
104 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
|
105 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
|
106 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
|
107 PROP_AUTOFIT_LIMIT, |
2474
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
108 PROP_AUTOFIT_LIMIT_VALUE, |
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
109 PROP_ENLARGEMENT_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
|
110 }; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
111 |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
112 typedef enum { |
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
113 PR_ZOOM_NONE = 0, |
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
114 PR_ZOOM_FORCE = 1 << 0, |
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
115 PR_ZOOM_NEW = 1 << 1, |
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
116 PR_ZOOM_CENTER = 1 << 2, |
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
117 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
|
118 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
|
119 } PrZoomFlags; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
120 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
121 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
|
122 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
|
123 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
124 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
125 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
126 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
|
127 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
|
128 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
|
129 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
|
130 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
|
131 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
|
132 GValue *value, GParamSpec *pspec); |
1435 | 133 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
|
134 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
135 |
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 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
|
137 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
138 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
|
139 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
|
140 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
141 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
|
142 static void pr_size_cb(GtkWidget *widget, GtkAllocation *allocation, gpointer data); |
1889
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
143 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
|
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 /* |
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 * 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
|
149 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
150 */ |
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 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
|
153 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
154 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
|
155 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
156 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
|
157 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
158 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
|
159 { |
691
d82fb3402662
Fix some incomplete initialization warnings.
Laurent Monin <geeqie@norz.org>
parents:
673
diff
changeset
|
160 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
|
161 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
|
162 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
|
163 (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
|
164 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
|
165 NULL, /* class_data */ |
691
d82fb3402662
Fix some incomplete initialization warnings.
Laurent Monin <geeqie@norz.org>
parents:
673
diff
changeset
|
166 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
|
167 0, /* n_preallocs */ |
691
d82fb3402662
Fix some incomplete initialization warnings.
Laurent Monin <geeqie@norz.org>
parents:
673
diff
changeset
|
168 (GInstanceInitFunc)pixbuf_renderer_init, /* instance_init */ |
d82fb3402662
Fix some incomplete initialization warnings.
Laurent Monin <geeqie@norz.org>
parents:
673
diff
changeset
|
169 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
|
170 }; |
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 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
|
173 &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
|
174 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
175 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
176 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
|
177 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
178 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
179 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
|
180 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
181 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
|
182 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
183 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
|
184 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
185 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
|
186 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
|
187 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
188 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
|
189 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
190 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
|
191 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
|
192 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
|
193 "Zoom minimum", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
194 NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
195 -1000.0, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
196 1000.0, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
197 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
|
198 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
|
199 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
200 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
|
201 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
|
202 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
|
203 "Zoom maximum", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
204 NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
205 -1000.0, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
206 1000.0, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
207 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
|
208 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
|
209 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
210 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
|
211 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
|
212 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
|
213 "Zoom quality", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
214 NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
215 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
|
216 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
|
217 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
|
218 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
|
219 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
220 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
|
221 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
|
222 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
|
223 "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
|
224 NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
225 TRUE, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
226 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
|
227 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
228 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
|
229 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
|
230 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
|
231 "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
|
232 NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
233 FALSE, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
234 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
|
235 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
|
236 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
|
237 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
|
238 "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
|
239 NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
240 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
|
241 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
|
242 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
|
243 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
|
244 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
245 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
|
246 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
|
247 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
|
248 "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
|
249 NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
250 FALSE, |
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_LOADING, |
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("loading", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
256 "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
|
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, |
25
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
262 PROP_COMPLETE, |
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
263 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
|
264 "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
|
265 NULL, |
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
266 FALSE, |
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
267 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
|
268 |
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
269 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
|
270 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
|
271 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
|
272 "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
|
273 NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
274 0, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
275 128, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
276 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
|
277 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
|
278 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
279 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
|
280 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
|
281 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
|
282 "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
|
283 "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
|
284 0, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
285 256, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
286 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
|
287 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
|
288 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
289 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
|
290 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
|
291 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
|
292 "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
|
293 NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
294 FALSE, |
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_LIMIT, |
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_limit", |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
300 "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
|
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_VALUE, |
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_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
|
308 "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
|
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 10, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
311 150, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
312 100, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
313 G_PARAM_READABLE | G_PARAM_WRITABLE)); |
442 | 314 |
209
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
315 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
|
316 PROP_AUTOFIT_LIMIT, |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
317 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
|
318 "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
|
319 NULL, |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
320 FALSE, |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
321 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
|
322 |
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_VALUE, |
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_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
|
326 "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
|
327 NULL, |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
328 10, |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
329 150, |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
330 100, |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
331 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
|
332 |
2474
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
333 g_object_class_install_property(gobject_class, |
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
334 PROP_ENLARGEMENT_LIMIT_VALUE, |
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
335 g_param_spec_uint("enlargement_limit_value", |
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
336 "Size increase limit of image when autofitting", |
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
337 NULL, |
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
338 100, |
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
339 999, |
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
340 500, |
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
341 G_PARAM_READABLE | G_PARAM_WRITABLE)); |
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
342 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
343 |
442 | 344 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
|
345 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
|
346 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
|
347 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
|
348 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
|
349 NULL, NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
350 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
|
351 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
|
352 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
|
353 |
442 | 354 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
|
355 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
|
356 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
|
357 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
|
358 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
|
359 NULL, NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
360 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
|
361 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
|
362 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
|
363 |
442 | 364 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
|
365 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
|
366 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
|
367 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
|
368 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
|
369 NULL, NULL, |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
370 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
|
371 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
|
372 |
442 | 373 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
|
374 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
|
375 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
|
376 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
|
377 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
|
378 NULL, NULL, |
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
379 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
|
380 G_TYPE_NONE, 0); |
128
0c318260b7f6
improved connected scroll and active image switching
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
104
diff
changeset
|
381 |
442 | 382 signals[SIGNAL_DRAG] = |
128
0c318260b7f6
improved connected scroll and active image switching
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
104
diff
changeset
|
383 g_signal_new("drag", |
0c318260b7f6
improved connected scroll and active image switching
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
104
diff
changeset
|
384 G_OBJECT_CLASS_TYPE(gobject_class), |
0c318260b7f6
improved connected scroll and active image switching
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
104
diff
changeset
|
385 G_SIGNAL_RUN_LAST, |
0c318260b7f6
improved connected scroll and active image switching
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
104
diff
changeset
|
386 G_STRUCT_OFFSET(PixbufRendererClass, drag), |
0c318260b7f6
improved connected scroll and active image switching
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
104
diff
changeset
|
387 NULL, NULL, |
0c318260b7f6
improved connected scroll and active image switching
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
104
diff
changeset
|
388 g_cclosure_marshal_VOID__BOXED, |
0c318260b7f6
improved connected scroll and active image switching
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
104
diff
changeset
|
389 G_TYPE_NONE, 1, |
0c318260b7f6
improved connected scroll and active image switching
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
104
diff
changeset
|
390 GDK_TYPE_EVENT); |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
391 |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
392 signals[SIGNAL_UPDATE_PIXEL] = |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
393 g_signal_new("update-pixel", |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
394 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
|
395 G_SIGNAL_RUN_LAST, |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
396 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
|
397 NULL, NULL, |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
398 g_cclosure_marshal_VOID__VOID, |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
399 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
|
400 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
401 |
2084
1c712b43f063
added option for clutter renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2077
diff
changeset
|
402 static RendererFuncs *pr_backend_renderer_new(PixbufRenderer *pr) |
1c712b43f063
added option for clutter renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2077
diff
changeset
|
403 { |
1c712b43f063
added option for clutter renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2077
diff
changeset
|
404 if (options->image.use_clutter_renderer) |
1c712b43f063
added option for clutter renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2077
diff
changeset
|
405 { |
1c712b43f063
added option for clutter renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2077
diff
changeset
|
406 #ifdef HAVE_CLUTTER |
1c712b43f063
added option for clutter renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2077
diff
changeset
|
407 return renderer_clutter_new(pr); |
1c712b43f063
added option for clutter renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2077
diff
changeset
|
408 #else |
2604
425b69f7ff5f
Revise DEBUG_0() usage
Colin Clark <colin.clark@cclark.uk>
parents:
2487
diff
changeset
|
409 log_printf("Warning: Geeqie is built without clutter renderer support"); |
2084
1c712b43f063
added option for clutter renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2077
diff
changeset
|
410 #endif |
1c712b43f063
added option for clutter renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2077
diff
changeset
|
411 } |
1c712b43f063
added option for clutter renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2077
diff
changeset
|
412 return renderer_tiles_new(pr); |
2184 | 413 } |
2084
1c712b43f063
added option for clutter renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2077
diff
changeset
|
414 |
1c712b43f063
added option for clutter renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2077
diff
changeset
|
415 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
416 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
|
417 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
418 GtkWidget *box; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
419 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
420 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
|
421 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
422 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
|
423 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
|
424 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
|
425 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
|
426 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
427 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
|
428 pr->scale = 1.0; |
1884
a722f633d90f
added mirrored stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1880
diff
changeset
|
429 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
|
430 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
431 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
|
432 |
1523
e52aabe8fc7a
Fix up event source ids type: gint -> guint.
Laurent Monin <geeqie@norz.org>
parents:
1517
diff
changeset
|
433 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
|
434 pr->scroller_overlay = -1; |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
435 |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
436 pr->x_mouse = -1; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
437 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
|
438 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
439 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
|
440 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
|
441 |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
442 pr->orientation = 1; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
443 |
1037
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
444 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
|
445 pr->norm_center_y = 0.5; |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
446 |
1886
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
447 pr->stereo_mode = PR_STEREO_NONE; |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
448 |
2379 | 449 pr->color.red =0; |
450 pr->color.green =0; | |
451 pr->color.blue =0; | |
452 | |
2084
1c712b43f063
added option for clutter renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2077
diff
changeset
|
453 pr->renderer = pr_backend_renderer_new(pr); |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
454 |
1886
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
455 pr->renderer2 = NULL; |
1037
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
456 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
457 gtk_widget_set_double_buffered(box, FALSE); |
2092
a997cdfc1008
use gtk_widget_set_app_paintable for renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2091
diff
changeset
|
458 gtk_widget_set_app_paintable(box, TRUE); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
459 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
|
460 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
|
461 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
462 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
|
463 } |
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 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
|
466 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
467 PixbufRenderer *pr; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
468 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
469 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
|
470 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
471 pr->renderer->free(pr->renderer); |
1905
25f23890dabe
fixed freed data access
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1899
diff
changeset
|
472 if (pr->renderer2) pr->renderer2->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
|
473 |
1043
718ab8111f48
Replaced gtk depreceated code.
Petr Ostadal <postadal@suse.cz>
parents:
1037
diff
changeset
|
474 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
475 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
|
476 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
477 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
|
478 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
479 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
|
480 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
481 |
1001
a1f0b2010ca1
Consistency: type * instead of type*.
Laurent Monin <geeqie@norz.org>
parents:
1000
diff
changeset
|
482 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
|
483 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
484 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
|
485 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
486 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
487 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
|
488 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
|
489 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
490 PixbufRenderer *pr; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
491 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
492 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
|
493 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
494 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
|
495 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
496 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
|
497 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
|
498 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
499 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
|
500 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
|
501 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
502 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
|
503 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
|
504 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
505 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
|
506 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
|
507 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
508 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
|
509 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
|
510 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
511 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
|
512 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
|
513 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
514 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
|
515 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
|
516 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
517 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
|
518 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
|
519 break; |
25
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
520 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
|
521 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
|
522 break; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
523 case PROP_CACHE_SIZE_DISPLAY: |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
524 // 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
|
525 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
526 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
|
527 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
|
528 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
529 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
|
530 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
|
531 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
532 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
|
533 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
|
534 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
535 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
|
536 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
|
537 break; |
209
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
538 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
|
539 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
|
540 break; |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
541 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
|
542 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
|
543 break; |
2474
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
544 case PROP_ENLARGEMENT_LIMIT_VALUE: |
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
545 pr->enlargement_limit_size = g_value_get_uint(value); |
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
546 break; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
547 default: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
548 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
|
549 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
550 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
551 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
552 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
553 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
|
554 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
|
555 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
556 PixbufRenderer *pr; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
557 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
558 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
|
559 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
560 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
|
561 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
562 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
|
563 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
|
564 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
565 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
|
566 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
|
567 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
568 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
|
569 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
|
570 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
571 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
|
572 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
|
573 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
574 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
|
575 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
|
576 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
577 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
|
578 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
|
579 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
580 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
|
581 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
|
582 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
583 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
|
584 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
|
585 break; |
25
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
586 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
|
587 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
|
588 break; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
589 case PROP_CACHE_SIZE_DISPLAY: |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
590 // 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
|
591 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
592 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
|
593 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
|
594 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
595 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
|
596 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
|
597 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
598 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
|
599 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
|
600 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
601 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
|
602 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
|
603 break; |
209
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
604 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
|
605 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
|
606 break; |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
607 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
|
608 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
|
609 break; |
2474
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
610 case PROP_ENLARGEMENT_LIMIT_VALUE: |
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
611 g_value_set_uint(value, pr->enlargement_limit_size); |
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
612 break; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
613 default: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
614 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
|
615 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
616 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
617 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
618 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
619 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
620 /* |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
621 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
622 * misc utilities |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
623 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
624 */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
625 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
626 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
|
627 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
628 GdkCursor *cursor; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
629 |
2034
9297985567b5
use accessor functions
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2021
diff
changeset
|
630 if (!gtk_widget_get_window(widget)) return; |
23
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 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
|
633 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
634 cursor = NULL; |
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 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
637 { |
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
|
638 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
|
639 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
640 |
2034
9297985567b5
use accessor functions
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2021
diff
changeset
|
641 gdk_window_set_cursor(gtk_widget_get_window(widget), cursor); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
642 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
643 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
|
644 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
645 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
646 gboolean pr_clip_region(gint x, gint y, gint w, gint h, |
1435 | 647 gint clip_x, gint clip_y, gint clip_w, gint clip_h, |
648 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
|
649 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
650 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
|
651 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
|
652 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
|
653 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
|
654 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
655 return FALSE; |
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 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
658 *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
|
659 *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
|
660 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
661 *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
|
662 *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
|
663 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
664 return TRUE; |
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 |
1435 | 667 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
|
668 { |
27
ff0b02ab8da7
Sat Apr 2 17:28:16 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
26
diff
changeset
|
669 GdkWindowState state; |
ff0b02ab8da7
Sat Apr 2 17:28:16 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
26
diff
changeset
|
670 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
671 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
|
672 if (!pr->window_fit) return FALSE; |
2034
9297985567b5
use accessor functions
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2021
diff
changeset
|
673 if (!gtk_widget_get_window(GTK_WIDGET(pr))) return FALSE; |
9297985567b5
use accessor functions
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2021
diff
changeset
|
674 |
9297985567b5
use accessor functions
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2021
diff
changeset
|
675 if (!gtk_widget_get_window(pr->parent_window)) return FALSE; |
9297985567b5
use accessor functions
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2021
diff
changeset
|
676 state = gdk_window_get_state(gtk_widget_get_window(pr->parent_window)); |
27
ff0b02ab8da7
Sat Apr 2 17:28:16 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
26
diff
changeset
|
677 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
|
678 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
679 return TRUE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
680 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
681 |
1435 | 682 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
|
683 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
684 GtkWidget *widget; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
685 GtkWidget *parent; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
686 gint ww, wh; |
2034
9297985567b5
use accessor functions
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2021
diff
changeset
|
687 GtkAllocation widget_allocation; |
9297985567b5
use accessor functions
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2021
diff
changeset
|
688 GtkAllocation parent_allocation; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
689 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
690 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
|
691 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
692 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
|
693 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
694 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
|
695 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
|
696 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
697 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
|
698 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
|
699 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
700 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
701 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
|
702 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
|
703 |
2034
9297985567b5
use accessor functions
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2021
diff
changeset
|
704 gtk_widget_get_allocation(widget, &widget_allocation); |
9297985567b5
use accessor functions
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2021
diff
changeset
|
705 gtk_widget_get_allocation(parent, &parent_allocation); |
9297985567b5
use accessor functions
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2021
diff
changeset
|
706 |
9297985567b5
use accessor functions
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2021
diff
changeset
|
707 w += (parent_allocation.width - widget_allocation.width); |
9297985567b5
use accessor functions
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2021
diff
changeset
|
708 h += (parent_allocation.height - widget_allocation.height); |
9297985567b5
use accessor functions
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2021
diff
changeset
|
709 |
9297985567b5
use accessor functions
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2021
diff
changeset
|
710 ww = gdk_window_get_width(gtk_widget_get_window(parent)); |
9297985567b5
use accessor functions
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2021
diff
changeset
|
711 wh = gdk_window_get_height(gtk_widget_get_window(parent)); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
712 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
|
713 |
2034
9297985567b5
use accessor functions
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2021
diff
changeset
|
714 gdk_window_resize(gtk_widget_get_window(parent), w, h); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
715 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
716 return TRUE; |
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 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
719 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
|
720 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
721 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
|
722 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
|
723 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
724 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
|
725 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
726 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
727 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
|
728 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
729 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
|
730 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
731 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
|
732 } |
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 |
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 * overlays |
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 */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
740 |
1373
a8ed5c80e5d3
overlay now survives image split
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1284
diff
changeset
|
741 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
742 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
|
743 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
|
744 { |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
745 /* let's assume both renderers returns the same value */ |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
746 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
|
747 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
|
748 } |
a8ed5c80e5d3
overlay now survives image split
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1284
diff
changeset
|
749 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
750 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
|
751 { |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
752 pr->renderer->overlay_set(pr->renderer, id, pixbuf, x, y); |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
753 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
|
754 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
755 |
1435 | 756 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
|
757 { |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
758 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
|
759 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
|
760 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
761 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
762 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
|
763 { |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
764 pr->renderer->overlay_set(pr->renderer, id, NULL, 0, 0); |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
765 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
|
766 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
767 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
768 /* |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
769 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
770 * scroller overlay |
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 */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
773 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
774 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
775 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
|
776 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
777 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
|
778 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
|
779 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
|
780 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
781 /* 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
|
782 * 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
|
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 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
|
786 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
787 x = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
788 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
789 else |
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 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
|
792 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
|
793 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
|
794 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
795 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
796 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
|
797 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
798 y = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
799 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
800 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
801 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
802 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
|
803 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
|
804 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
|
805 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
806 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
807 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
|
808 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
809 xinc = x; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
810 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
811 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
812 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
813 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
|
814 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
815 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
|
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 (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
|
818 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
|
819 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
|
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 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
|
824 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
|
825 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
|
826 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
827 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
828 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
829 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
|
830 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
831 yinc = y; |
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 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
834 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
835 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
|
836 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
837 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
|
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 (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
|
840 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
|
841 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
|
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 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
|
846 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
|
847 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
|
848 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
849 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
850 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
851 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
|
852 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
|
853 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
854 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
|
855 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
|
856 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
857 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
|
858 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
859 return TRUE; |
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 |
1435 | 862 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
|
863 { |
1523
e52aabe8fc7a
Fix up event source ids type: gint -> guint.
Laurent Monin <geeqie@norz.org>
parents:
1517
diff
changeset
|
864 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
|
865 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
866 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
|
867 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
|
868 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
869 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
870 if (start) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
871 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
872 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
|
873 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
|
874 } |
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 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
877 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
|
878 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
879 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
|
880 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
881 GdkPixbuf *pixbuf; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
882 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
|
883 |
283 | 884 #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
|
885 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
|
886 #else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
887 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
|
888 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
|
889 #endif |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
890 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
|
891 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
|
892 |
857
8ee324a036ed
Use flags instead of int parameters for pixbuf_renderer_overlay_add().
Laurent Monin <geeqie@norz.org>
parents:
856
diff
changeset
|
893 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
|
894 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
|
895 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
896 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
897 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
|
898 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
|
899 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
|
900 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
|
901 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
902 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
|
903 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
904 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
905 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
|
906 { |
1523
e52aabe8fc7a
Fix up event source ids type: gint -> guint.
Laurent Monin <geeqie@norz.org>
parents:
1517
diff
changeset
|
907 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
|
908 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
909 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
|
910 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
|
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, FALSE); |
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 /* |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
916 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
917 * borders |
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 */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
920 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
921 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
|
922 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
923 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
|
924 |
2379 | 925 if (color) |
926 { | |
927 pr->color.red = color->red; | |
928 pr->color.green = color->green; | |
929 pr->color.blue = color->blue; | |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
930 } |
2379 | 931 else |
932 { | |
933 pr->color.red = 0; | |
934 pr->color.green = 0; | |
935 pr->color.blue = 0; | |
936 } | |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
937 |
2090
3f0bbd79773c
renamed renderer->update_sizes to update_viewport
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2089
diff
changeset
|
938 pr->renderer->update_viewport(pr->renderer); |
3f0bbd79773c
renamed renderer->update_sizes to update_viewport
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2089
diff
changeset
|
939 if (pr->renderer2) pr->renderer2->update_viewport(pr->renderer2); |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
940 } |
23
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 /* |
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 * source tiles |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
945 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
946 */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
947 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
948 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
|
949 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
950 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
|
951 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
952 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
|
953 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
|
954 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
955 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
956 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
|
957 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
958 GList *work; |
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 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
|
961 while (work) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
962 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
963 SourceTile *st; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
964 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
965 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
|
966 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
|
967 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
968 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
|
969 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
970 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
971 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
|
972 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
|
973 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
974 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
975 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
|
976 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
977 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
|
978 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
|
979 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
980 |
1435 | 981 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
|
982 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
983 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
|
984 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
985 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
|
986 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
987 // x1 = ROUND_DOWN(pr->x_scroll, pr->tile_width); |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
988 // y1 = ROUND_DOWN(pr->y_scroll, pr->tile_height); |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
989 // 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
|
990 // 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
|
991 x1 = pr->x_scroll; |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
992 y1 = pr->y_scroll; |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
993 x2 = pr->x_scroll + pr->vis_width; |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
994 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
|
995 |
1000
07f6093c1c1a
For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents:
872
diff
changeset
|
996 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
|
997 (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
|
998 (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
|
999 (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
|
1000 } |
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 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
|
1003 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1004 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
|
1005 gint count; |
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 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
|
1008 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1009 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
|
1010 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1011 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
|
1012 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
|
1013 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1014 GList *work; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1015 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1016 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
|
1017 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
|
1018 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1019 SourceTile *needle; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1020 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1021 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
|
1022 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
|
1023 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1024 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
|
1025 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1026 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
|
1027 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1028 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
|
1029 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1030 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
|
1031 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
|
1032 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
|
1033 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1034 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1035 if (!st) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1036 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1037 st = needle; |
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 else |
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 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
|
1042 } |
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 count--; |
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 } |
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 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1049 if (!st) |
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 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
|
1052 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
|
1053 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
|
1054 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1055 |
1649
adbe8f7cff62
fixed problems with floor/ceil
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1634
diff
changeset
|
1056 st->x = ROUND_DOWN(x, pr->source_tile_width); |
adbe8f7cff62
fixed problems with floor/ceil
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1634
diff
changeset
|
1057 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
|
1058 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
|
1059 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1060 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
|
1061 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1062 return st; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1063 } |
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 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
|
1066 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1067 SourceTile *st; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1068 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1069 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
|
1070 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
|
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 (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
|
1073 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
|
1074 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
|
1075 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1076 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
|
1077 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1078 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1079 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
|
1080 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
|
1081 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
|
1082 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
|
1083 return st; |
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 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
|
1087 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1088 GList *work; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1089 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1090 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
|
1091 while (work) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1092 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1093 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
|
1094 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1095 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
|
1096 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
|
1097 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1098 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
|
1099 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1100 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
|
1101 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
|
1102 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1103 return st; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1104 } |
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 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
|
1107 } |
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 return NULL; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1110 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1111 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1112 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
|
1113 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1114 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
|
1115 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
|
1116 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
|
1117 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1118 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
|
1119 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
|
1120 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
|
1121 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
|
1122 |
1649
adbe8f7cff62
fixed problems with floor/ceil
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1634
diff
changeset
|
1123 sx = ROUND_DOWN(x, pr->source_tile_width); |
adbe8f7cff62
fixed problems with floor/ceil
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1634
diff
changeset
|
1124 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
|
1125 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1126 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
|
1127 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1128 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
|
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; |
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 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
|
1133 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
|
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 (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
|
1136 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1137 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1138 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1139 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
|
1140 } |
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 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
|
1143 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1144 GList *work; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1145 |
95
e103e1c85665
Fri Nov 3 11:40:48 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
87
diff
changeset
|
1146 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
|
1147 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1148 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
|
1149 while (work) |
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 SourceTile *st; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1152 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
|
1153 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1154 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
|
1155 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
|
1156 |
33
96e4f244caa7
Wed Apr 6 06:41:25 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
32
diff
changeset
|
1157 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
|
1158 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
|
1159 &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
|
1160 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1161 GdkPixbuf *pixbuf; |
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 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
|
1164 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
|
1165 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
|
1166 { |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1167 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
|
1168 rw * pr->scale, rh * pr->scale); |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1169 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
|
1170 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
|
1171 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1172 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
|
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 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1177 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
|
1178 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
|
1179 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
|
1180 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
|
1181 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
|
1182 gdouble zoom) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1183 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1184 g_return_if_fail(IS_PIXBUF_RENDERER(pr)); |
2310 | 1185 g_return_if_fail(tile_width >= 32 && tile_height >= 32); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1186 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
|
1187 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
|
1188 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1189 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
|
1190 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
|
1191 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1192 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
|
1193 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1194 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
|
1195 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1196 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
|
1197 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
|
1198 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
|
1199 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
|
1200 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1201 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
|
1202 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
|
1203 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1204 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
|
1205 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
|
1206 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
|
1207 |
2094
596b928d2751
disable stereo mode in Pan View
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2092
diff
changeset
|
1208 pr_stereo_temp_disable(pr, TRUE); |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1209 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
|
1210 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1211 |
77
234aff18fd1b
Sun Oct 15 10:45:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
61
diff
changeset
|
1212 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
|
1213 { |
234aff18fd1b
Sun Oct 15 10:45:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
61
diff
changeset
|
1214 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
|
1215 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
|
1216 |
234aff18fd1b
Sun Oct 15 10:45:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
61
diff
changeset
|
1217 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
|
1218 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
|
1219 |
234aff18fd1b
Sun Oct 15 10:45:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
61
diff
changeset
|
1220 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
|
1221 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
|
1222 |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1223 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
|
1224 } |
234aff18fd1b
Sun Oct 15 10:45:14 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
61
diff
changeset
|
1225 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1226 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
|
1227 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1228 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
|
1229 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1230 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
|
1231 } |
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 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
|
1234 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
|
1235 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1236 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
|
1237 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1238 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
|
1239 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1240 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
|
1241 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1242 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
|
1243 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1244 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
|
1245 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1246 else |
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 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
|
1249 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1250 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1251 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1252 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
|
1253 { |
2636
22479efb61d7
Fix #313, #521: zoom increment is not multiplicative
Colin Clark <colin.clark@cclark.uk>
parents:
2629
diff
changeset
|
1254 if (zoom >= 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
|
1255 { |
2636
22479efb61d7
Fix #313, #521: zoom increment is not multiplicative
Colin Clark <colin.clark@cclark.uk>
parents:
2629
diff
changeset
|
1256 if (zoom / -(increment - 1.0) < 1.0) |
22479efb61d7
Fix #313, #521: zoom increment is not multiplicative
Colin Clark <colin.clark@cclark.uk>
parents:
2629
diff
changeset
|
1257 { |
22479efb61d7
Fix #313, #521: zoom increment is not multiplicative
Colin Clark <colin.clark@cclark.uk>
parents:
2629
diff
changeset
|
1258 zoom = 1.0 / (zoom / (increment - 1.0)); |
22479efb61d7
Fix #313, #521: zoom increment is not multiplicative
Colin Clark <colin.clark@cclark.uk>
parents:
2629
diff
changeset
|
1259 } |
22479efb61d7
Fix #313, #521: zoom increment is not multiplicative
Colin Clark <colin.clark@cclark.uk>
parents:
2629
diff
changeset
|
1260 else |
22479efb61d7
Fix #313, #521: zoom increment is not multiplicative
Colin Clark <colin.clark@cclark.uk>
parents:
2629
diff
changeset
|
1261 { |
22479efb61d7
Fix #313, #521: zoom increment is not multiplicative
Colin Clark <colin.clark@cclark.uk>
parents:
2629
diff
changeset
|
1262 zoom = zoom / -(increment - 1.0) ; |
22479efb61d7
Fix #313, #521: zoom increment is not multiplicative
Colin Clark <colin.clark@cclark.uk>
parents:
2629
diff
changeset
|
1263 } |
23
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 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1266 { |
2636
22479efb61d7
Fix #313, #521: zoom increment is not multiplicative
Colin Clark <colin.clark@cclark.uk>
parents:
2629
diff
changeset
|
1267 zoom = zoom * -(increment - 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
|
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 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1271 { |
2636
22479efb61d7
Fix #313, #521: zoom increment is not multiplicative
Colin Clark <colin.clark@cclark.uk>
parents:
2629
diff
changeset
|
1272 if (zoom <= -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
|
1273 { |
2636
22479efb61d7
Fix #313, #521: zoom increment is not multiplicative
Colin Clark <colin.clark@cclark.uk>
parents:
2629
diff
changeset
|
1274 if (zoom / (increment + 1.0) > -1.0) |
22479efb61d7
Fix #313, #521: zoom increment is not multiplicative
Colin Clark <colin.clark@cclark.uk>
parents:
2629
diff
changeset
|
1275 { |
22479efb61d7
Fix #313, #521: zoom increment is not multiplicative
Colin Clark <colin.clark@cclark.uk>
parents:
2629
diff
changeset
|
1276 zoom = -(1.0 / (zoom / (increment + 1.0))); |
22479efb61d7
Fix #313, #521: zoom increment is not multiplicative
Colin Clark <colin.clark@cclark.uk>
parents:
2629
diff
changeset
|
1277 } |
22479efb61d7
Fix #313, #521: zoom increment is not multiplicative
Colin Clark <colin.clark@cclark.uk>
parents:
2629
diff
changeset
|
1278 else |
22479efb61d7
Fix #313, #521: zoom increment is not multiplicative
Colin Clark <colin.clark@cclark.uk>
parents:
2629
diff
changeset
|
1279 { |
22479efb61d7
Fix #313, #521: zoom increment is not multiplicative
Colin Clark <colin.clark@cclark.uk>
parents:
2629
diff
changeset
|
1280 zoom = zoom / (increment + 1.0) ; |
22479efb61d7
Fix #313, #521: zoom increment is not multiplicative
Colin Clark <colin.clark@cclark.uk>
parents:
2629
diff
changeset
|
1281 } |
23
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 { |
2636
22479efb61d7
Fix #313, #521: zoom increment is not multiplicative
Colin Clark <colin.clark@cclark.uk>
parents:
2629
diff
changeset
|
1285 zoom = zoom * (increment + 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
|
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 |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1289 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
|
1290 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1291 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1292 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1293 /* |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1294 *------------------------------------------------------------------- |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1295 * 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
|
1296 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1297 */ |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1298 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1299 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
|
1300 { |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1301 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
|
1302 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
|
1303 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1304 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1305 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
|
1306 { |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1307 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
|
1308 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1309 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1310 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
|
1311 { |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1312 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
|
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 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
|
1316 { |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1317 g_signal_emit(pr, signals[SIGNAL_SCROLL_NOTIFY], 0); |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1318 } |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1319 |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1320 void pr_render_complete_signal(PixbufRenderer *pr) |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1321 { |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1322 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
|
1323 { |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1324 g_signal_emit(pr, signals[SIGNAL_RENDER_COMPLETE], 0); |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1325 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
|
1326 } |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1327 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
|
1328 { |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1329 DEBUG_1("%s pixbuf renderer done %p", get_exec_time(), pr); |
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1330 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
|
1331 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1332 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1333 |
2452
8bcdac2603d3
Fix #473: Parameter type fix for "motion-notify-event" signal handlers
Colin Clark <cclark@mcb.net>
parents:
2379
diff
changeset
|
1334 static void pr_drag_signal(PixbufRenderer *pr, GdkEventMotion *event) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1335 { |
2452
8bcdac2603d3
Fix #473: Parameter type fix for "motion-notify-event" signal handlers
Colin Clark <cclark@mcb.net>
parents:
2379
diff
changeset
|
1336 g_signal_emit(pr, signals[SIGNAL_DRAG], 0, event); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1337 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1338 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1339 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
|
1340 { |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1341 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
|
1342 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1343 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1344 /* |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1345 *------------------------------------------------------------------- |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1346 * 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
|
1347 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1348 */ |
442 | 1349 |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1350 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1351 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
|
1352 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
|
1353 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
|
1354 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
|
1355 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
|
1356 { |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1357 *res_x = tile_x; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1358 *res_y = tile_y; |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1359 switch (orientation) |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1360 { |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1361 case EXIF_ORIENTATION_TOP_LEFT: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1362 /* normal -- nothing to do */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1363 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1364 case EXIF_ORIENTATION_TOP_RIGHT: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1365 /* mirrored */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1366 *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
|
1367 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1368 case EXIF_ORIENTATION_BOTTOM_RIGHT: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1369 /* upside down */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1370 *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
|
1371 *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
|
1372 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1373 case EXIF_ORIENTATION_BOTTOM_LEFT: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1374 /* flipped */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1375 *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
|
1376 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1377 case EXIF_ORIENTATION_LEFT_TOP: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1378 *res_x = tile_y; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1379 *res_y = tile_x; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1380 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1381 case EXIF_ORIENTATION_RIGHT_TOP: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1382 /* rotated -90 (270) */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1383 *res_x = tile_y; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1384 *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
|
1385 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1386 case EXIF_ORIENTATION_RIGHT_BOTTOM: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1387 *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
|
1388 *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
|
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_LEFT_BOTTOM: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1391 /* rotated 90 */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1392 *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
|
1393 *res_y = tile_x; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1394 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1395 default: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1396 /* 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
|
1397 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1398 } |
673
c9c2bc042e10
Do not use printf() directly but use new wrapper function log_printf() instead.
Laurent Monin <geeqie@norz.org>
parents:
671
diff
changeset
|
1399 // log_printf("tile coord y:%f, ih:%d, th:%f ry:%f\n", tile_y, image_h, tile_h, *res_x); |
442 | 1400 } |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1401 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1402 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
|
1403 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
|
1404 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
|
1405 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
|
1406 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
|
1407 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
|
1408 { |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1409 *res_x = area_x; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1410 *res_y = area_y; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1411 *res_w = area_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1412 *res_h = area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1413 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1414 switch (orientation) |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1415 { |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1416 case EXIF_ORIENTATION_TOP_LEFT: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1417 /* normal -- nothing to do */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1418 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1419 case EXIF_ORIENTATION_TOP_RIGHT: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1420 /* mirrored */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1421 *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
|
1422 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1423 case EXIF_ORIENTATION_BOTTOM_RIGHT: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1424 /* upside down */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1425 *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
|
1426 *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
|
1427 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1428 case EXIF_ORIENTATION_BOTTOM_LEFT: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1429 /* flipped */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1430 *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
|
1431 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1432 case EXIF_ORIENTATION_LEFT_TOP: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1433 *res_x = area_y; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1434 *res_y = area_x; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1435 *res_w = area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1436 *res_h = area_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1437 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1438 case EXIF_ORIENTATION_RIGHT_TOP: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1439 /* rotated -90 (270) */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1440 *res_x = area_y; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1441 *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
|
1442 *res_w = area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1443 *res_h = area_w; |
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_RIGHT_BOTTOM: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1446 *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
|
1447 *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
|
1448 *res_w = area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1449 *res_h = area_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1450 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1451 case EXIF_ORIENTATION_LEFT_BOTTOM: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1452 /* rotated 90 */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1453 *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
|
1454 *res_y = area_x; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1455 *res_w = area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1456 *res_h = area_w; |
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 default: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1459 /* 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
|
1460 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1461 } |
673
c9c2bc042e10
Do not use printf() directly but use new wrapper function log_printf() instead.
Laurent Monin <geeqie@norz.org>
parents:
671
diff
changeset
|
1462 // log_printf("inside y:%d, th:%d, ah:%d ry:%d\n", area_y, tile_h, area_h, *res_x); |
442 | 1463 } |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1464 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1465 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
|
1466 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
|
1467 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
|
1468 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
|
1469 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
|
1470 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
|
1471 { |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1472 *res_x = area_x; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1473 *res_y = area_y; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1474 *res_w = area_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1475 *res_h = area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1476 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1477 switch (orientation) |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1478 { |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1479 case EXIF_ORIENTATION_TOP_LEFT: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1480 /* normal -- nothing to do */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1481 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1482 case EXIF_ORIENTATION_TOP_RIGHT: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1483 /* mirrored */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1484 *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
|
1485 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1486 case EXIF_ORIENTATION_BOTTOM_RIGHT: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1487 /* upside down */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1488 *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
|
1489 *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
|
1490 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1491 case EXIF_ORIENTATION_BOTTOM_LEFT: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1492 /* flipped */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1493 *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
|
1494 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1495 case EXIF_ORIENTATION_LEFT_TOP: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1496 *res_x = area_y; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1497 *res_y = area_x; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1498 *res_w = area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1499 *res_h = area_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1500 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1501 case EXIF_ORIENTATION_RIGHT_TOP: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1502 /* rotated -90 (270) */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1503 *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
|
1504 *res_y = area_x; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1505 *res_w = area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1506 *res_h = area_w; |
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_RIGHT_BOTTOM: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1509 *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
|
1510 *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
|
1511 *res_w = area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1512 *res_h = area_w; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1513 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1514 case EXIF_ORIENTATION_LEFT_BOTTOM: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1515 /* rotated 90 */ |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1516 *res_x = area_y; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1517 *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
|
1518 *res_w = area_h; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1519 *res_h = area_w; |
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 default: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1522 /* 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
|
1523 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1524 } |
442 | 1525 } |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1526 |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
1527 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1528 |
1037
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1529 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
|
1530 { |
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1531 gint src_x, src_y; |
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1532 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
|
1533 |
2184 | 1534 /* |
1617
551ec3cbcdc8
preserve image center over short periods when the "broken image" icon is
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1584
diff
changeset
|
1535 * 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
|
1536 * 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
|
1537 * 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
|
1538 */ |
551ec3cbcdc8
preserve image center over short periods when the "broken image" icon is
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1584
diff
changeset
|
1539 |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1540 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
|
1541 { |
551ec3cbcdc8
preserve image center over short periods when the "broken image" icon is
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1584
diff
changeset
|
1542 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
|
1543 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
|
1544 } |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
1545 |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1546 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
|
1547 { |
551ec3cbcdc8
preserve image center over short periods when the "broken image" icon is
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1584
diff
changeset
|
1548 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
|
1549 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
|
1550 } |
1037
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1551 } |
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1552 |
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1553 |
1435 | 1554 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
|
1555 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1556 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
|
1557 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
|
1558 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1559 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
|
1560 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1561 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
|
1562 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
|
1563 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1564 return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1565 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1566 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1567 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
|
1568 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
|
1569 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1570 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
|
1571 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1572 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
|
1573 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1574 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1575 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1576 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
|
1577 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1578 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1579 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
|
1580 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1581 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
|
1582 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1583 else |
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 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
|
1586 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1587 |
1037
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1588 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
|
1589 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1590 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
|
1591 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1592 |
1435 | 1593 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
|
1594 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1595 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
|
1596 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1597 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
|
1598 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
|
1599 |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1600 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
|
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->vis_width = pr->width; |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1603 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
|
1604 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1605 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1606 { |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1607 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
|
1608 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
|
1609 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1610 |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1611 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
|
1612 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1613 pr->vis_height = pr->height; |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1614 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
|
1615 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1616 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1617 { |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1618 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
|
1619 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
|
1620 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1621 |
1037
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1622 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
|
1623 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1624 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
|
1625 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1626 |
1435 | 1627 static gboolean pr_zoom_clamp(PixbufRenderer *pr, gdouble zoom, |
2089
60c803c18a3f
simplified pr_zoom_clamp
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2088
diff
changeset
|
1628 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
|
1629 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1630 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
|
1631 gdouble scale; |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1632 gboolean force = !!(flags & PR_ZOOM_FORCE); |
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1633 gboolean new = !!(flags & PR_ZOOM_NEW); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1634 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1635 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
|
1636 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1637 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
|
1638 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1639 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
|
1640 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
|
1641 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1642 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
|
1643 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1644 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
|
1645 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1646 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
|
1647 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1648 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
|
1649 gint max_h; |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1650 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
|
1651 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1652 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
|
1653 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1654 if (sizeable) |
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 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
|
1657 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
|
1658 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1659 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
|
1660 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1661 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
|
1662 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
|
1663 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1664 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1665 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1666 { |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1667 max_w = pr->viewport_width; |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1668 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
|
1669 } |
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 ((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
|
1672 { |
1880
b69a33a93ace
display pixel aspect ratio support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1879
diff
changeset
|
1673 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
|
1674 { |
1880
b69a33a93ace
display pixel aspect ratio support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1879
diff
changeset
|
1675 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
|
1676 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
|
1677 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
|
1678 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
|
1679 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1680 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1681 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1682 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
|
1683 w = max_w; |
1880
b69a33a93ace
display pixel aspect ratio support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1879
diff
changeset
|
1684 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
|
1685 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
|
1686 } |
209
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
1687 |
ce89a8349d8b
configurable frame around image - geeqie_autofit_maxsize.patch by Laurent MONIN
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
208
diff
changeset
|
1688 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
|
1689 { |
336
d0783e36320c
Fix display bug when using "Limit image size when autofitting" option.
Laurent Monin <geeqie@norz.org>
parents:
283
diff
changeset
|
1690 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
|
1691 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
|
1692 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
|
1693 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
|
1694 } |
442 | 1695 |
2474
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
1696 if (pr->zoom_expand) |
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
1697 { |
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
1698 gdouble factor = (gdouble)pr->enlargement_limit_size / 100; |
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
1699 if (scale > factor) |
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
1700 { |
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
1701 w = w * factor / scale; |
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
1702 h = h * factor / scale; |
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
1703 scale = factor; |
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
1704 } |
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
1705 } |
f591509cb3d3
Fix #123: Limit image expansion in Fit To Window
Colin Clark <colin.clark@cclark.uk>
parents:
2452
diff
changeset
|
1706 |
23
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 < 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
|
1708 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
|
1709 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1710 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1711 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1712 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
|
1713 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1714 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1715 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
|
1716 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1717 scale = zoom; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1718 w = w * scale; |
1880
b69a33a93ace
display pixel aspect ratio support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1879
diff
changeset
|
1719 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
|
1720 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1721 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
|
1722 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1723 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
|
1724 w = w * scale; |
1880
b69a33a93ace
display pixel aspect ratio support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1879
diff
changeset
|
1725 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
|
1726 } |
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 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
|
1729 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
|
1730 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
|
1731 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
|
1732 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1733 return TRUE; |
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 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1736 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
|
1737 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
|
1738 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1739 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
|
1740 gint old_cx, old_cy; |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1741 gboolean center_point = !!(flags & PR_ZOOM_CENTER); |
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1742 gboolean force = !!(flags & PR_ZOOM_FORCE); |
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1743 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
|
1744 gboolean lazy = !!(flags & PR_ZOOM_LAZY); |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1745 PrZoomFlags clamp_flags = flags; |
1037
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1746 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
|
1747 gdouble old_center_y = pr->norm_center_y; |
2181
8addfcef82af
Clear few more warnings, unused variables mostly.
Laurent Monin <zas@norz.org>
parents:
2180
diff
changeset
|
1748 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1749 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
|
1750 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
|
1751 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1752 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
|
1753 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
|
1754 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
|
1755 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
|
1756 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1757 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1758 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1759 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
|
1760 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
|
1761 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
|
1762 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1763 |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
1764 if (force) clamp_flags |= PR_ZOOM_INVALIDATE; |
2487
d280894dbf80
Temporary Fix #133: switching between images causes window to keep shrinking
Colin Clark <colin.clark@cclark.uk>
parents:
2474
diff
changeset
|
1765 (void) pr_parent_window_resize(pr, pr->width, pr->height); |
2089
60c803c18a3f
simplified pr_zoom_clamp
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2088
diff
changeset
|
1766 if (!pr_zoom_clamp(pr, zoom, clamp_flags)) return; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1767 |
2181
8addfcef82af
Clear few more warnings, unused variables mostly.
Laurent Monin <zas@norz.org>
parents:
2180
diff
changeset
|
1768 (void) pr_size_clamp(pr); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1769 |
99
7cd2368ecc9d
Sat Nov 4 17:14:47 2006 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
95
diff
changeset
|
1770 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
|
1771 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1772 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
|
1773 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1774 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
|
1775 /* maintain old scroll position */ |
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1776 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
|
1777 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
|
1778 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1779 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
|
1780 /* center new image */ |
1000
07f6093c1c1a
For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents:
872
diff
changeset
|
1781 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
|
1782 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
|
1783 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1784 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
|
1785 default: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1786 /* 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
|
1787 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
|
1788 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
|
1789 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1790 } |
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 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1793 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1794 /* 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
|
1795 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
|
1796 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1797 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
|
1798 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
|
1799 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1800 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1801 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1802 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
|
1803 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
|
1804 } |
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 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1807 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
|
1808 |
2074
b56062760fc2
implemented clutter-based renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2069
diff
changeset
|
1809 pr->renderer->update_zoom(pr->renderer, lazy); |
b56062760fc2
implemented clutter-based renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2069
diff
changeset
|
1810 if (pr->renderer2) pr->renderer2->update_zoom(pr->renderer2, lazy); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1811 |
29
410dfc57a2d0
Sun Apr 3 00:36:22 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
27
diff
changeset
|
1812 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
|
1813 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
|
1814 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
|
1815 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1816 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1817 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
|
1818 { |
1435 | 1819 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
|
1820 |
1891
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1821 gint new_viewport_width = new_width; |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1822 gint new_viewport_height = new_height; |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1823 |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1824 if (!pr->stereo_temp_disable) |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1825 { |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1826 if (pr->stereo_mode & PR_STEREO_HORIZ) |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1827 { |
1894 | 1828 new_viewport_width = new_width / 2; |
1891
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1829 } |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1830 else if (pr->stereo_mode & PR_STEREO_VERT) |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1831 { |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1832 new_viewport_height = new_height / 2; |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1833 } |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1834 else if (pr->stereo_mode & PR_STEREO_FIXED) |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1835 { |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1836 new_viewport_width = pr->stereo_fixed_width; |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1837 new_viewport_height = pr->stereo_fixed_height; |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1838 } |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
1839 } |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
1840 |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1841 if (pr->window_width == new_width && pr->window_height == new_height && |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1842 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
|
1843 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1844 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
|
1845 pr->window_height = new_height; |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1846 pr->viewport_width = new_viewport_width; |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1847 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
|
1848 |
61
72245fb0b946
Mon Jun 13 20:22:58 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
42
diff
changeset
|
1849 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
|
1850 { |
72245fb0b946
Mon Jun 13 20:22:58 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
42
diff
changeset
|
1851 gdouble old_scale = pr->scale; |
2089
60c803c18a3f
simplified pr_zoom_clamp
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2088
diff
changeset
|
1852 pr_zoom_clamp(pr, 0.0, PR_ZOOM_FORCE); |
61
72245fb0b946
Mon Jun 13 20:22:58 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
42
diff
changeset
|
1853 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
|
1854 } |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1855 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1856 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
|
1857 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
|
1858 |
2089
60c803c18a3f
simplified pr_zoom_clamp
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2088
diff
changeset
|
1859 if (zoom_changed) |
60c803c18a3f
simplified pr_zoom_clamp
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2088
diff
changeset
|
1860 { |
60c803c18a3f
simplified pr_zoom_clamp
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2088
diff
changeset
|
1861 pr->renderer->update_zoom(pr->renderer, FALSE); |
60c803c18a3f
simplified pr_zoom_clamp
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2088
diff
changeset
|
1862 if (pr->renderer2) pr->renderer2->update_zoom(pr->renderer2, FALSE); |
60c803c18a3f
simplified pr_zoom_clamp
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2088
diff
changeset
|
1863 } |
60c803c18a3f
simplified pr_zoom_clamp
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2088
diff
changeset
|
1864 |
2090
3f0bbd79773c
renamed renderer->update_sizes to update_viewport
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2089
diff
changeset
|
1865 pr->renderer->update_viewport(pr->renderer); |
3f0bbd79773c
renamed renderer->update_sizes to update_viewport
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2089
diff
changeset
|
1866 if (pr->renderer2) pr->renderer2->update_viewport(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
|
1867 |
2089
60c803c18a3f
simplified pr_zoom_clamp
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2088
diff
changeset
|
1868 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1869 /* 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
|
1870 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
|
1871 { |
1435 | 1872 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
|
1873 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1874 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
|
1875 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1876 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
|
1877 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
|
1878 update = TRUE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1879 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1880 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
|
1881 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1882 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
|
1883 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
|
1884 update = TRUE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1885 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1886 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1887 if (update) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1888 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1889 GdkPixbuf *pixbuf; |
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 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
|
1892 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1893 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
|
1894 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1895 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
|
1896 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
|
1897 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
|
1898 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
|
1899 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1900 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1901 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1902 |
29
410dfc57a2d0
Sun Apr 3 00:36:22 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
27
diff
changeset
|
1903 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
|
1904 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
|
1905 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
|
1906 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1907 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1908 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
|
1909 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1910 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
|
1911 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1912 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
|
1913 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1914 |
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 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1917 * scrolling |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1918 *------------------------------------------------------------------- |
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 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1921 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
|
1922 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1923 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
|
1924 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
|
1925 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1926 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
|
1927 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1928 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
|
1929 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1930 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
|
1931 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
|
1932 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1933 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
|
1934 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
|
1935 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1936 pr_scroll_clamp(pr); |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
1937 |
1037
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1938 pixbuf_renderer_sync_scroll_center(pr); |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
1939 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1940 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
|
1941 |
29
410dfc57a2d0
Sun Apr 3 00:36:22 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
27
diff
changeset
|
1942 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
|
1943 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1944 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
|
1945 y_off = pr->y_scroll - old_y; |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
1946 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
1947 pr->renderer->scroll(pr->renderer, x_off, y_off); |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
1948 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
|
1949 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1950 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1951 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
|
1952 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
|
1953 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1954 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
|
1955 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
|
1956 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1957 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
|
1958 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
|
1959 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1960 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
|
1961 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
|
1962 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1963 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
|
1964 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
|
1965 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1966 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
|
1967 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1968 |
131
d50f6061b37b
relative scroll is working; some cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
128
diff
changeset
|
1969 /* 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
|
1970 |
d50f6061b37b
relative scroll is working; some cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
128
diff
changeset
|
1971 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
|
1972 { |
1037
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1973 *x = pr->norm_center_x; |
e7adeebbbe5d
fixed various problems with preserving viewport on image change,
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1035
diff
changeset
|
1974 *y = pr->norm_center_y; |
131
d50f6061b37b
relative scroll is working; some cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
128
diff
changeset
|
1975 } |
d50f6061b37b
relative scroll is working; some cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
128
diff
changeset
|
1976 |
d50f6061b37b
relative scroll is working; some cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
128
diff
changeset
|
1977 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
|
1978 { |
d50f6061b37b
relative scroll is working; some cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
128
diff
changeset
|
1979 gdouble dst_x, dst_y; |
d50f6061b37b
relative scroll is working; some cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
128
diff
changeset
|
1980 |
d50f6061b37b
relative scroll is working; some cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
128
diff
changeset
|
1981 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
|
1982 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
|
1983 |
1000
07f6093c1c1a
For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents:
872
diff
changeset
|
1984 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
|
1985 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
|
1986 |
07f6093c1c1a
For the sake of consistency, use glib basic types everywhere.
Laurent Monin <geeqie@norz.org>
parents:
872
diff
changeset
|
1987 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
|
1988 } |
d50f6061b37b
relative scroll is working; some cleanup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
128
diff
changeset
|
1989 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1990 /* |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1991 *------------------------------------------------------------------- |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1992 * mouse |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1993 *------------------------------------------------------------------- |
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 |
2452
8bcdac2603d3
Fix #473: Parameter type fix for "motion-notify-event" signal handlers
Colin Clark <cclark@mcb.net>
parents:
2379
diff
changeset
|
1996 static gboolean pr_mouse_motion_cb(GtkWidget *widget, GdkEventMotion *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
|
1997 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1998 PixbufRenderer *pr; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
1999 gint accel; |
2373
b7228e6b2a02
Fix deprecated - gdk_window_get_pointer
Colin Clark <cclark@mcb.net>
parents:
2358
diff
changeset
|
2000 #if GTK_CHECK_VERSION(3,0,0) |
b7228e6b2a02
Fix deprecated - gdk_window_get_pointer
Colin Clark <cclark@mcb.net>
parents:
2358
diff
changeset
|
2001 GdkDeviceManager *device_manager; |
b7228e6b2a02
Fix deprecated - gdk_window_get_pointer
Colin Clark <cclark@mcb.net>
parents:
2358
diff
changeset
|
2002 GdkDevice *device; |
b7228e6b2a02
Fix deprecated - gdk_window_get_pointer
Colin Clark <cclark@mcb.net>
parents:
2358
diff
changeset
|
2003 #endif |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2004 |
1709
07840a56692c
improved scroll on slower machines
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1649
diff
changeset
|
2005 /* 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
|
2006 * 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
|
2007 gint x, y; |
2373
b7228e6b2a02
Fix deprecated - gdk_window_get_pointer
Colin Clark <cclark@mcb.net>
parents:
2358
diff
changeset
|
2008 #if GTK_CHECK_VERSION(3,0,0) |
2452
8bcdac2603d3
Fix #473: Parameter type fix for "motion-notify-event" signal handlers
Colin Clark <cclark@mcb.net>
parents:
2379
diff
changeset
|
2009 device_manager = gdk_display_get_device_manager(gdk_window_get_display(event->window)); |
2373
b7228e6b2a02
Fix deprecated - gdk_window_get_pointer
Colin Clark <cclark@mcb.net>
parents:
2358
diff
changeset
|
2010 device = gdk_device_manager_get_client_pointer(device_manager); |
2452
8bcdac2603d3
Fix #473: Parameter type fix for "motion-notify-event" signal handlers
Colin Clark <cclark@mcb.net>
parents:
2379
diff
changeset
|
2011 gdk_window_get_device_position(event->window, device, &x, &y, NULL); |
2373
b7228e6b2a02
Fix deprecated - gdk_window_get_pointer
Colin Clark <cclark@mcb.net>
parents:
2358
diff
changeset
|
2012 #else |
2452
8bcdac2603d3
Fix #473: Parameter type fix for "motion-notify-event" signal handlers
Colin Clark <cclark@mcb.net>
parents:
2379
diff
changeset
|
2013 gdk_window_get_pointer (event->window, &x, &y, NULL); |
2373
b7228e6b2a02
Fix deprecated - gdk_window_get_pointer
Colin Clark <cclark@mcb.net>
parents:
2358
diff
changeset
|
2014 #endif |
2452
8bcdac2603d3
Fix #473: Parameter type fix for "motion-notify-event" signal handlers
Colin Clark <cclark@mcb.net>
parents:
2379
diff
changeset
|
2015 event->x = x; |
8bcdac2603d3
Fix #473: Parameter type fix for "motion-notify-event" signal handlers
Colin Clark <cclark@mcb.net>
parents:
2379
diff
changeset
|
2016 event->y = y; |
1709
07840a56692c
improved scroll on slower machines
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1649
diff
changeset
|
2017 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2018 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
|
2019 |
1523
e52aabe8fc7a
Fix up event source ids type: gint -> guint.
Laurent Monin <geeqie@norz.org>
parents:
1517
diff
changeset
|
2020 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
|
2021 { |
2452
8bcdac2603d3
Fix #473: Parameter type fix for "motion-notify-event" signal handlers
Colin Clark <cclark@mcb.net>
parents:
2379
diff
changeset
|
2022 pr->scroller_xpos = event->x; |
8bcdac2603d3
Fix #473: Parameter type fix for "motion-notify-event" signal handlers
Colin Clark <cclark@mcb.net>
parents:
2379
diff
changeset
|
2023 pr->scroller_ypos = event->y; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2024 } |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
2025 |
2452
8bcdac2603d3
Fix #473: Parameter type fix for "motion-notify-event" signal handlers
Colin Clark <cclark@mcb.net>
parents:
2379
diff
changeset
|
2026 pr->x_mouse = event->x; |
8bcdac2603d3
Fix #473: Parameter type fix for "motion-notify-event" signal handlers
Colin Clark <cclark@mcb.net>
parents:
2379
diff
changeset
|
2027 pr->y_mouse = event->y; |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2028 pr_update_pixel_signal(pr); |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
2029 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2030 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
|
2031 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2032 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
|
2033 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2034 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
|
2035 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2036 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2037 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2038 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
|
2039 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2040 |
2452
8bcdac2603d3
Fix #473: Parameter type fix for "motion-notify-event" signal handlers
Colin Clark <cclark@mcb.net>
parents:
2379
diff
changeset
|
2041 if (event->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
|
2042 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2043 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
|
2044 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2045 else |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2046 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2047 accel = 1; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2048 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2049 |
2801
3e9ca298bb1d
Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents:
2636
diff
changeset
|
2050 /* do the scroll - not when drawing rectangle*/ |
3e9ca298bb1d
Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents:
2636
diff
changeset
|
2051 if (!options->draw_rectangle) |
3e9ca298bb1d
Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents:
2636
diff
changeset
|
2052 { |
3e9ca298bb1d
Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents:
2636
diff
changeset
|
2053 pixbuf_renderer_scroll(pr, (pr->drag_last_x - event->x) * accel, |
3e9ca298bb1d
Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents:
2636
diff
changeset
|
2054 (pr->drag_last_y - event->y) * accel); |
3e9ca298bb1d
Fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents:
2636
diff
changeset
|
2055 } |
2452
8bcdac2603d3
Fix #473: Parameter type fix for "motion-notify-event" signal handlers
Colin Clark <cclark@mcb.net>
parents:
2379
diff
changeset
|
2056 pr_drag_signal(pr, event); |
8bcdac2603d3
Fix #473: Parameter type fix for "motion-notify-event" signal handlers
Colin Clark <cclark@mcb.net>
parents:
2379
diff
changeset
|
2057 |
8bcdac2603d3
Fix #473: Parameter type fix for "motion-notify-event" signal handlers
Colin Clark <cclark@mcb.net>
parents:
2379
diff
changeset
|
2058 pr->drag_last_x = event->x; |
8bcdac2603d3
Fix #473: Parameter type fix for "motion-notify-event" signal handlers
Colin Clark <cclark@mcb.net>
parents:
2379
diff
changeset
|
2059 pr->drag_last_y = event->y; |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2060 |
1709
07840a56692c
improved scroll on slower machines
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1649
diff
changeset
|
2061 /* 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
|
2062 * 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
|
2063 * http://bugzilla.gnome.org/show_bug.cgi?id=587714 |
07840a56692c
improved scroll on slower machines
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1649
diff
changeset
|
2064 */ |
2452
8bcdac2603d3
Fix #473: Parameter type fix for "motion-notify-event" signal handlers
Colin Clark <cclark@mcb.net>
parents:
2379
diff
changeset
|
2065 /* gdk_event_request_motions (event); */ |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2066 return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2067 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2068 |
1584
c97dea5d82d7
improved pixel info, changed the menu entry from "Hide" to "Show",
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1523
diff
changeset
|
2069 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
|
2070 { |
c97dea5d82d7
improved pixel info, changed the menu entry from "Hide" to "Show",
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1523
diff
changeset
|
2071 PixbufRenderer *pr; |
c97dea5d82d7
improved pixel info, changed the menu entry from "Hide" to "Show",
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1523
diff
changeset
|
2072 |
c97dea5d82d7
improved pixel info, changed the menu entry from "Hide" to "Show",
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1523
diff
changeset
|
2073 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
|
2074 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
|
2075 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
|
2076 |
c97dea5d82d7
improved pixel info, changed the menu entry from "Hide" to "Show",
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1523
diff
changeset
|
2077 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
|
2078 return FALSE; |
c97dea5d82d7
improved pixel info, changed the menu entry from "Hide" to "Show",
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1523
diff
changeset
|
2079 } |
c97dea5d82d7
improved pixel info, changed the menu entry from "Hide" to "Show",
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1523
diff
changeset
|
2080 |
1435 | 2081 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
|
2082 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2083 PixbufRenderer *pr; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2084 GtkWidget *parent; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2085 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2086 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
|
2087 |
1523
e52aabe8fc7a
Fix up event source ids type: gint -> guint.
Laurent Monin <geeqie@norz.org>
parents:
1517
diff
changeset
|
2088 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
|
2089 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2090 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
|
2091 { |
448
2c1500b5c933
Use explicit names for mouse buttons instead of numbers.
Laurent Monin <geeqie@norz.org>
parents:
446
diff
changeset
|
2092 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
|
2093 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
|
2094 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
|
2095 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
|
2096 pr->drag_moved = 0; |
2034
9297985567b5
use accessor functions
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2021
diff
changeset
|
2097 gdk_pointer_grab(gtk_widget_get_window(widget), FALSE, |
1709
07840a56692c
improved scroll on slower machines
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1649
diff
changeset
|
2098 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
|
2099 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
|
2100 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
|
2101 break; |
448
2c1500b5c933
Use explicit names for mouse buttons instead of numbers.
Laurent Monin <geeqie@norz.org>
parents:
446
diff
changeset
|
2102 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
|
2103 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
|
2104 break; |
448
2c1500b5c933
Use explicit names for mouse buttons instead of numbers.
Laurent Monin <geeqie@norz.org>
parents:
446
diff
changeset
|
2105 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
|
2106 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
|
2107 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2108 default: |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2109 break; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2110 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2111 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2112 parent = gtk_widget_get_parent(widget); |
1810
c3a79dda8ea7
GTK marks several functions as deprecated
Klaus Ethgen <Klaus@Ethgen.de>
parents:
1802
diff
changeset
|
2113 if (widget && gtk_widget_get_can_focus(parent)) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2114 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2115 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
|
2116 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2117 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2118 return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2119 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2120 |
1435 | 2121 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
|
2122 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2123 PixbufRenderer *pr; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2124 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2125 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
|
2126 |
1523
e52aabe8fc7a
Fix up event source ids type: gint -> guint.
Laurent Monin <geeqie@norz.org>
parents:
1517
diff
changeset
|
2127 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
|
2128 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2129 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
|
2130 return TRUE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2131 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2132 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
2133 if (gdk_pointer_is_grabbed() && gtk_widget_has_grab(GTK_WIDGET(pr))) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2134 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2135 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
|
2136 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
|
2137 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
|
2138 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2139 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2140 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
|
2141 { |
1047
229877808392
use SHIFT for connected scroll and zoom
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1045
diff
changeset
|
2142 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
|
2143 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2144 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
|
2145 } |
2629
65ddca027935
Multi-button mouse support
Tomasz Golinski <tomaszg@math.uwb.edu.pl>
parents:
2606
diff
changeset
|
2146 else if (bevent->button == MOUSE_BUTTON_LEFT || bevent->button == MOUSE_BUTTON_MIDDLE || bevent->button == MOUSE_BUTTON_BACK || bevent->button == MOUSE_BUTTON_FORWARD) |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2147 { |
25
aa1b676c31b6
Fri Mar 25 22:39:30 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
24
diff
changeset
|
2148 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
|
2149 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2150 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2151 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2152 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
|
2153 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2154 return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2155 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2156 |
1435 | 2157 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
|
2158 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2159 PixbufRenderer *pr; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2160 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2161 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
|
2162 |
1523
e52aabe8fc7a
Fix up event source ids type: gint -> guint.
Laurent Monin <geeqie@norz.org>
parents:
1517
diff
changeset
|
2163 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
|
2164 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2165 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
|
2166 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
|
2167 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
|
2168 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
|
2169 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2170 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2171 return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2172 } |
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 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
|
2175 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2176 PixbufRenderer *pr; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2177 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2178 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
|
2179 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2180 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
|
2181 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2182 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2183 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
|
2184 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2185 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
|
2186 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
|
2187 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
|
2188 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
|
2189 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
|
2190 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
|
2191 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
|
2192 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
|
2193 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
|
2194 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
|
2195 |
1709
07840a56692c
improved scroll on slower machines
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1649
diff
changeset
|
2196 gtk_widget_set_events(GTK_WIDGET(pr), GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | |
2111
821cab3e2fd8
added GDK_SCROLL_MASK to pixbuf renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2099
diff
changeset
|
2197 GDK_BUTTON_RELEASE_MASK | GDK_BUTTON_PRESS_MASK | GDK_SCROLL_MASK | |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2198 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
|
2199 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2200 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
|
2201 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
|
2202 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2203 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2204 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2205 /* |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2206 *------------------------------------------------------------------- |
1879 | 2207 * stereo support |
2208 *------------------------------------------------------------------- | |
2209 */ | |
2210 | |
2211 #define COLOR_BYTES 3 /* rgb */ | |
2255
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2212 #define RC 0 /* Red-Cyan */ |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2213 #define GM 1 /* Green-Magenta */ |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2214 #define YB 2 /* Yellow-Blue */ |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2215 |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2216 static void pr_create_anaglyph_color(GdkPixbuf *pixbuf, GdkPixbuf *right, gint x, gint y, gint w, gint h, guint mode) |
1879 | 2217 { |
2218 gint srs, drs; | |
2219 guchar *s_pix, *d_pix; | |
2220 guchar *sp, *dp; | |
2221 guchar *spi, *dpi; | |
2222 gint i, j; | |
2223 | |
2224 srs = gdk_pixbuf_get_rowstride(right); | |
2225 s_pix = gdk_pixbuf_get_pixels(right); | |
2226 spi = s_pix + (x * COLOR_BYTES); | |
2227 | |
2228 drs = gdk_pixbuf_get_rowstride(pixbuf); | |
2229 d_pix = gdk_pixbuf_get_pixels(pixbuf); | |
2230 dpi = d_pix + x * COLOR_BYTES; | |
2231 | |
2232 for (i = y; i < y + h; i++) | |
2233 { | |
2234 sp = spi + (i * srs); | |
2235 dp = dpi + (i * drs); | |
2236 for (j = 0; j < w; j++) | |
2237 { | |
2255
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2238 switch(mode) |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2239 { |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2240 case RC: |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2241 dp[0] = sp[0]; /* copy red channel */ |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2242 break; |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2243 case GM: |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2244 dp[1] = sp[1]; |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2245 break; |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2246 case YB: |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2247 dp[0] = sp[0]; |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2248 dp[1] = sp[1]; |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2249 break; |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2250 } |
1879 | 2251 sp += COLOR_BYTES; |
2252 dp += COLOR_BYTES; | |
2253 } | |
2254 } | |
2255 } | |
1896
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2256 |
2255
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2257 static void pr_create_anaglyph_gray(GdkPixbuf *pixbuf, GdkPixbuf *right, gint x, gint y, gint w, gint h, guint mode) |
1896
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2258 { |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2259 gint srs, drs; |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2260 guchar *s_pix, *d_pix; |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2261 guchar *sp, *dp; |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2262 guchar *spi, *dpi; |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2263 gint i, j; |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2264 const double gc[3] = {0.299, 0.587, 0.114}; |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2265 |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2266 srs = gdk_pixbuf_get_rowstride(right); |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2267 s_pix = gdk_pixbuf_get_pixels(right); |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2268 spi = s_pix + (x * COLOR_BYTES); |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2269 |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2270 drs = gdk_pixbuf_get_rowstride(pixbuf); |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2271 d_pix = gdk_pixbuf_get_pixels(pixbuf); |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2272 dpi = d_pix + x * COLOR_BYTES; |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2273 |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2274 for (i = y; i < y + h; i++) |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2275 { |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2276 sp = spi + (i * srs); |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2277 dp = dpi + (i * drs); |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2278 for (j = 0; j < w; j++) |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2279 { |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2280 guchar g1 = dp[0] * gc[0] + dp[1] * gc[1] + dp[2] * gc[2]; |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2281 guchar g2 = sp[0] * gc[0] + sp[1] * gc[1] + sp[2] * gc[2]; |
2255
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2282 switch(mode) |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2283 { |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2284 case RC: |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2285 dp[0] = g2; /* red channel from sp */ |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2286 dp[1] = g1; /* green and blue from dp */ |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2287 dp[2] = g1; |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2288 break; |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2289 case GM: |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2290 dp[0] = g1; |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2291 dp[1] = g2; |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2292 dp[2] = g1; |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2293 break; |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2294 case YB: |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2295 dp[0] = g2; |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2296 dp[1] = g2; |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2297 dp[2] = g1; |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2298 break; |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2299 } |
1896
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2300 sp += COLOR_BYTES; |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2301 dp += COLOR_BYTES; |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2302 } |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2303 } |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2304 } |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2305 |
2255
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2306 static void pr_create_anaglyph_dubois(GdkPixbuf *pixbuf, GdkPixbuf *right, gint x, gint y, gint w, gint h, guint mode) |
1896
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2307 { |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2308 gint srs, drs; |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2309 guchar *s_pix, *d_pix; |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2310 guchar *sp, *dp; |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2311 guchar *spi, *dpi; |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2312 gint i, j, k; |
2255
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2313 double pr_dubois_matrix[3][6]; |
2606
1e344397544c
Remove some stuff that is throwing errors in gcc-7
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2604
diff
changeset
|
2314 static const double pr_dubois_matrix_RC[3][6] = { |
2255
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2315 { 0.456, 0.500, 0.176, -0.043, -0.088, -0.002}, |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2316 {-0.040, -0.038, -0.016, 0.378, 0.734, -0.018}, |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2317 {-0.015, -0.021, -0.005, -0.072, -0.113, 1.226}}; |
2606
1e344397544c
Remove some stuff that is throwing errors in gcc-7
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2604
diff
changeset
|
2318 static const double pr_dubois_matrix_GM[3][6] = { |
2255
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2319 {-0.062, -0.158, -0.039, 0.529, 0.705, 0.024}, |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2320 { 0.284, 0.668, 0.143, -0.016, -0.015, -0.065}, |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2321 {-0.015, -0.027, 0.021, 0.009, 0.075, 0.937}}; |
2606
1e344397544c
Remove some stuff that is throwing errors in gcc-7
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2604
diff
changeset
|
2322 static const double pr_dubois_matrix_YB[3][6] = { |
2255
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2323 { 1.000, -0.193, 0.282, -0.015, -0.116, -0.016}, |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2324 {-0.024, 0.855, 0.064, 0.006, 0.058, -0.016}, |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2325 {-0.036, -0.163, 0.021, 0.089, 0.174, 0.858}}; |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2326 |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2327 switch(mode) |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2328 { |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2329 case RC: |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2330 memcpy(pr_dubois_matrix, pr_dubois_matrix_RC, sizeof pr_dubois_matrix); |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2331 break; |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2332 case GM: |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2333 memcpy(pr_dubois_matrix, pr_dubois_matrix_GM, sizeof pr_dubois_matrix); |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2334 break; |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2335 case YB: |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2336 memcpy(pr_dubois_matrix, pr_dubois_matrix_YB, sizeof pr_dubois_matrix); |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2337 break; |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2338 } |
1896
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2339 |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2340 srs = gdk_pixbuf_get_rowstride(right); |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2341 s_pix = gdk_pixbuf_get_pixels(right); |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2342 spi = s_pix + (x * COLOR_BYTES); |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2343 |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2344 drs = gdk_pixbuf_get_rowstride(pixbuf); |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2345 d_pix = gdk_pixbuf_get_pixels(pixbuf); |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2346 dpi = d_pix + x * COLOR_BYTES; |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2347 |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2348 for (i = y; i < y + h; i++) |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2349 { |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2350 sp = spi + (i * srs); |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2351 dp = dpi + (i * drs); |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2352 for (j = 0; j < w; j++) |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2353 { |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2354 double res[3]; |
2184 | 2355 for (k = 0; k < 3; k++) |
1896
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2356 { |
2069 | 2357 const double *m = pr_dubois_matrix[k]; |
1896
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2358 res[k] = sp[0] * m[0] + sp[1] * m[1] + sp[2] * m[2] + dp[0] * m[3] + dp[1] * m[4] + dp[2] * m[5]; |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2359 if (res[k] < 0.0) res[k] = 0; |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2360 if (res[k] > 255.0) res[k] = 255.0; |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2361 } |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2362 dp[0] = res[0]; |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2363 dp[1] = res[1]; |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2364 dp[2] = res[2]; |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2365 sp += COLOR_BYTES; |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2366 dp += COLOR_BYTES; |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2367 } |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2368 } |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2369 } |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
2370 |
1896
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2371 void pr_create_anaglyph(guint mode, GdkPixbuf *pixbuf, GdkPixbuf *right, gint x, gint y, gint w, gint h) |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2372 { |
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2373 if (mode & PR_STEREO_ANAGLYPH_RC) |
2255
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2374 pr_create_anaglyph_color(pixbuf, right, x, y, w, h, RC); |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2375 else if (mode & PR_STEREO_ANAGLYPH_GM) |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2376 pr_create_anaglyph_color(pixbuf, right, x, y, w, h, GM); |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2377 else if (mode & PR_STEREO_ANAGLYPH_YB) |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2378 pr_create_anaglyph_color(pixbuf, right, x, y, w, h, YB); |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2379 else if (mode & PR_STEREO_ANAGLYPH_GRAY_RC) |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2380 pr_create_anaglyph_gray(pixbuf, right, x, y, w, h, RC); |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2381 else if (mode & PR_STEREO_ANAGLYPH_GRAY_GM) |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2382 pr_create_anaglyph_gray(pixbuf, right, x, y, w, h, GM); |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2383 else if (mode & PR_STEREO_ANAGLYPH_GRAY_YB) |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2384 pr_create_anaglyph_gray(pixbuf, right, x, y, w, h, YB); |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2385 else if (mode & PR_STEREO_ANAGLYPH_DB_RC) |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2386 pr_create_anaglyph_dubois(pixbuf, right, x, y, w, h, RC); |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2387 else if (mode & PR_STEREO_ANAGLYPH_DB_GM) |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2388 pr_create_anaglyph_dubois(pixbuf, right, x, y, w, h, GM); |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2389 else if (mode & PR_STEREO_ANAGLYPH_DB_YB) |
c67b4f60c4b1
Add support for Green-Magenta and Yellow-Blue anaglyph modes
Alexey Akishin <alex@science.su>
parents:
2185
diff
changeset
|
2390 pr_create_anaglyph_dubois(pixbuf, right, x, y, w, h, YB); |
1896
9604c72ac670
added more anaglyph modes
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1895
diff
changeset
|
2391 } |
1879 | 2392 |
2393 /* | |
2394 *------------------------------------------------------------------- | |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2395 * public |
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 */ |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2398 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
|
2399 { |
1888
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2400 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
|
2401 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
|
2402 if (!pr->pixbuf) return; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2403 switch (pr->orientation) |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2404 { |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2405 case EXIF_ORIENTATION_LEFT_TOP: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2406 case EXIF_ORIENTATION_RIGHT_TOP: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2407 case EXIF_ORIENTATION_RIGHT_BOTTOM: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2408 case EXIF_ORIENTATION_LEFT_BOTTOM: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2409 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
|
2410 pr->image_height = gdk_pixbuf_get_width(pr->pixbuf); |
2184 | 2411 if (pr->stereo_data == STEREO_PIXBUF_SBS) |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
2412 { |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
2413 pr->image_height /= 2; |
1888
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2414 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
|
2415 } |
2184 | 2416 else if (pr->stereo_data == STEREO_PIXBUF_CROSS) |
1888
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2417 { |
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2418 pr->image_height /= 2; |
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2419 pr->stereo_pixbuf_offset_left = pr->image_height; |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
2420 } |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
2421 |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2422 break; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2423 default: |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2424 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
|
2425 pr->image_height = gdk_pixbuf_get_height(pr->pixbuf); |
2184 | 2426 if (pr->stereo_data == STEREO_PIXBUF_SBS) |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
2427 { |
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
2428 pr->image_width /= 2; |
1888
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2429 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
|
2430 } |
2184 | 2431 else if (pr->stereo_data == STEREO_PIXBUF_CROSS) |
1888
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2432 { |
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2433 pr->image_width /= 2; |
039d5c8864a0
type of source stereo image made adjustable from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1886
diff
changeset
|
2434 pr->stereo_pixbuf_offset_left = pr->image_width; |
1875
e9b157ab56a6
first stereo support
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1874
diff
changeset
|
2435 } |
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 } |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2438 |
1045
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2439 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
|
2440 { |
1045
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2441 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
|
2442 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
|
2443 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
|
2444 |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2445 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
|
2446 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2447 /* 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
|
2448 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
|
2449 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
|
2450 pr->scale = 1.0; |
1634
7e8bc9e5cdd7
preserve zoom value on fullscreen startup
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1633
diff
changeset
|
2451 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
|
2452 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
|
2453 |
2091
f8e5de56fc04
dropped renderer->overlay_draw
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2090
diff
changeset
|
2454 pr->renderer->update_pixbuf(pr->renderer, flags & PR_ZOOM_LAZY); |
f8e5de56fc04
dropped renderer->overlay_draw
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2090
diff
changeset
|
2455 if (pr->renderer2) pr->renderer2->update_pixbuf(pr->renderer2, 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
|
2456 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2457 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
|
2458 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2459 return; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2460 } |
442 | 2461 |
2184 | 2462 if (pr->stereo_mode & PR_STEREO_TEMP_DISABLE) |
1920
465b904a7e05
fixed stereo_temp_disable functionality
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1916
diff
changeset
|
2463 { |
465b904a7e05
fixed stereo_temp_disable functionality
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1916
diff
changeset
|
2464 gint disable = !pr->pixbuf || ! pr->stereo_data; |
465b904a7e05
fixed stereo_temp_disable functionality
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1916
diff
changeset
|
2465 pr_stereo_temp_disable(pr, disable); |
465b904a7e05
fixed stereo_temp_disable functionality
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1916
diff
changeset
|
2466 } |
1889
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2467 |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2468 pr_pixbuf_size_sync(pr); |
2074
b56062760fc2
implemented clutter-based renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2069
diff
changeset
|
2469 pr->renderer->update_pixbuf(pr->renderer, flags & PR_ZOOM_LAZY); |
b56062760fc2
implemented clutter-based renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2069
diff
changeset
|
2470 if (pr->renderer2) pr->renderer2->update_pixbuf(pr->renderer2, flags & PR_ZOOM_LAZY); |
1045
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2471 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
|
2472 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2473 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2474 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
|
2475 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2476 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
|
2477 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2478 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
|
2479 |
1045
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2480 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
|
2481 |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2482 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
|
2483 } |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2484 |
1916
69ab167a50f5
do not mix autodetected and user-defined stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1905
diff
changeset
|
2485 void pixbuf_renderer_set_pixbuf_lazy(PixbufRenderer *pr, GdkPixbuf *pixbuf, gdouble zoom, gint orientation, StereoPixbufData stereo_data) |
1045
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2486 { |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2487 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
|
2488 |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2489 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
|
2490 |
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2491 pr->orientation = orientation; |
1916
69ab167a50f5
do not mix autodetected and user-defined stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1905
diff
changeset
|
2492 pr->stereo_data = stereo_data; |
1045
19bc806e0a69
added possibility to redraw only the parts of image that are already
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1043
diff
changeset
|
2493 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
|
2494 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2495 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
|
2496 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2497 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2498 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
|
2499 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2500 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
|
2501 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2502 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
|
2503 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2504 |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2505 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
|
2506 { |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2507 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
|
2508 |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2509 pr->orientation = orientation; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2510 |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2511 pr_pixbuf_size_sync(pr); |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
2512 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
|
2513 } |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2514 |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2515 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
|
2516 { |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2517 if (!pr) return 1; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2518 return pr->orientation; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2519 } |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2520 |
1916
69ab167a50f5
do not mix autodetected and user-defined stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1905
diff
changeset
|
2521 void pixbuf_renderer_set_stereo_data(PixbufRenderer *pr, StereoPixbufData stereo_data) |
69ab167a50f5
do not mix autodetected and user-defined stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1905
diff
changeset
|
2522 { |
69ab167a50f5
do not mix autodetected and user-defined stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1905
diff
changeset
|
2523 g_return_if_fail(IS_PIXBUF_RENDERER(pr)); |
2088
2f5862670004
fixed unnecessary renderer backend calls
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2084
diff
changeset
|
2524 if (pr->stereo_data == stereo_data) return; |
2f5862670004
fixed unnecessary renderer backend calls
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2084
diff
changeset
|
2525 |
1916
69ab167a50f5
do not mix autodetected and user-defined stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1905
diff
changeset
|
2526 |
69ab167a50f5
do not mix autodetected and user-defined stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1905
diff
changeset
|
2527 pr->stereo_data = stereo_data; |
69ab167a50f5
do not mix autodetected and user-defined stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1905
diff
changeset
|
2528 |
2184 | 2529 if (pr->stereo_mode & PR_STEREO_TEMP_DISABLE) |
1920
465b904a7e05
fixed stereo_temp_disable functionality
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1916
diff
changeset
|
2530 { |
465b904a7e05
fixed stereo_temp_disable functionality
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1916
diff
changeset
|
2531 gint disable = !pr->pixbuf || ! pr->stereo_data; |
465b904a7e05
fixed stereo_temp_disable functionality
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1916
diff
changeset
|
2532 pr_stereo_temp_disable(pr, disable); |
465b904a7e05
fixed stereo_temp_disable functionality
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1916
diff
changeset
|
2533 } |
1916
69ab167a50f5
do not mix autodetected and user-defined stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1905
diff
changeset
|
2534 pr_pixbuf_size_sync(pr); |
2074
b56062760fc2
implemented clutter-based renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2069
diff
changeset
|
2535 pr->renderer->update_pixbuf(pr->renderer, FALSE); |
b56062760fc2
implemented clutter-based renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2069
diff
changeset
|
2536 if (pr->renderer2) pr->renderer2->update_pixbuf(pr->renderer2, FALSE); |
1916
69ab167a50f5
do not mix autodetected and user-defined stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1905
diff
changeset
|
2537 pr_zoom_sync(pr, pr->zoom, PR_ZOOM_FORCE, 0, 0); |
69ab167a50f5
do not mix autodetected and user-defined stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1905
diff
changeset
|
2538 } |
69ab167a50f5
do not mix autodetected and user-defined stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1905
diff
changeset
|
2539 |
1435 | 2540 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
|
2541 { |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2542 g_return_if_fail(IS_PIXBUF_RENDERER(pr)); |
442 | 2543 |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2544 pr->func_post_process = func; |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2545 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
|
2546 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
|
2547 |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2548 } |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2549 |
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2550 |
24
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2551 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
|
2552 { |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2553 GObject *object; |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2554 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
|
2555 |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2556 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
|
2557 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
|
2558 |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2559 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
|
2560 |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2561 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
|
2562 |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2563 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
|
2564 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
|
2565 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
|
2566 |
42
056d96cdec23
Sat May 14 13:04:23 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
38
diff
changeset
|
2567 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
|
2568 |
24
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2569 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
|
2570 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
|
2571 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
|
2572 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
|
2573 |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2574 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
|
2575 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
|
2576 |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2577 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
|
2578 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
|
2579 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
|
2580 pr->orientation = source->orientation; |
1916
69ab167a50f5
do not mix autodetected and user-defined stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1905
diff
changeset
|
2581 pr->stereo_data = source->stereo_data; |
398
3297e8f0d5d7
image post-processing (rotation and color management) moved to
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
386
diff
changeset
|
2582 |
24
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2583 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
|
2584 { |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2585 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
|
2586 |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2587 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
|
2588 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
|
2589 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
|
2590 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
|
2591 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
|
2592 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
|
2593 |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2594 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
|
2595 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
|
2596 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
|
2597 |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2598 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
|
2599 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
|
2600 |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
2601 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
|
2602 } |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2603 else |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2604 { |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2605 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
|
2606 } |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2607 |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2608 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
|
2609 |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2610 pixbuf_renderer_set_pixbuf(source, NULL, source->zoom); |
2099
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2611 } |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2612 |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2613 void pixbuf_renderer_copy(PixbufRenderer *pr, PixbufRenderer *source) |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2614 { |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2615 GObject *object; |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2616 PixbufRendererScrollResetType scroll_reset; |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2617 |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2618 g_return_if_fail(IS_PIXBUF_RENDERER(pr)); |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2619 g_return_if_fail(IS_PIXBUF_RENDERER(source)); |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2620 |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2621 if (pr == source) return; |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2622 |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2623 object = G_OBJECT(pr); |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2624 |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2625 g_object_set(object, "zoom_min", source->zoom_min, NULL); |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2626 g_object_set(object, "zoom_max", source->zoom_max, NULL); |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2627 g_object_set(object, "loading", source->loading, NULL); |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2628 |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2629 pr->complete = source->complete; |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2630 |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2631 pr->x_scroll = source->x_scroll; |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2632 pr->y_scroll = source->y_scroll; |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2633 pr->x_mouse = source->x_mouse; |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2634 pr->y_mouse = source->y_mouse; |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2635 |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2636 scroll_reset = pr->scroll_reset; |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2637 pr->scroll_reset = PR_SCROLL_RESET_NOCHANGE; |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2638 |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2639 pr->orientation = source->orientation; |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2640 pr->stereo_data = source->stereo_data; |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2641 |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2642 if (source->source_tiles_enabled) |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2643 { |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2644 pr->source_tiles_enabled = source->source_tiles_enabled; |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2645 pr->source_tiles_cache_size = source->source_tiles_cache_size; |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2646 pr->source_tile_width = source->source_tile_width; |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2647 pr->source_tile_height = source->source_tile_height; |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2648 pr->image_width = source->image_width; |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2649 pr->image_height = source->image_height; |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2650 |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2651 pr->func_tile_request = source->func_tile_request; |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2652 pr->func_tile_dispose = source->func_tile_dispose; |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2653 pr->func_tile_data = source->func_tile_data; |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2654 |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2655 pr->source_tiles = source->source_tiles; |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2656 source->source_tiles = NULL; |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2657 |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2658 pr_zoom_sync(pr, source->zoom, PR_ZOOM_FORCE | PR_ZOOM_NEW, 0, 0); |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2659 } |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2660 else |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2661 { |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2662 pixbuf_renderer_set_pixbuf(pr, source->pixbuf, source->zoom); |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2663 } |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2664 |
cd445a64205f
implemented presentation mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2095
diff
changeset
|
2665 pr->scroll_reset = scroll_reset; |
24
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2666 } |
ca420b4159df
Wed Mar 23 00:22:28 2005 John Ellis <johne@verizon.net>
John Ellis <johne@verizon.net>
parents:
23
diff
changeset
|
2667 |
1897
b1fe543de73a
fixed area_changed handling
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1896
diff
changeset
|
2668 void pixbuf_renderer_area_changed(PixbufRenderer *pr, gint x, gint y, 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
|
2669 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2670 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
|
2671 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2672 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
|
2673 { |
1897
b1fe543de73a
fixed area_changed handling
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1896
diff
changeset
|
2674 pr_source_tile_changed(pr, x, y, w, h); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2675 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2676 |
1897
b1fe543de73a
fixed area_changed handling
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1896
diff
changeset
|
2677 pr->renderer->area_changed(pr->renderer, x, y, w, h); |
b1fe543de73a
fixed area_changed handling
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1896
diff
changeset
|
2678 if (pr->renderer2) pr->renderer2->area_changed(pr->renderer2, x, y, w, h); |
23
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2679 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2680 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2681 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
|
2682 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2683 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
|
2684 |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
2685 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
|
2686 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2687 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2688 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
|
2689 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2690 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
|
2691 |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
2692 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
|
2693 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2694 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2695 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
|
2696 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2697 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
|
2698 |
859
45d06e0b62c7
Use flags for pr_zoom_*() functions.
Laurent Monin <geeqie@norz.org>
parents:
857
diff
changeset
|
2699 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
|
2700 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2701 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2702 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
|
2703 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2704 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
|
2705 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2706 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
|
2707 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2708 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2709 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
|
2710 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2711 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
|
2712 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2713 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
|
2714 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2715 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2716 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
|
2717 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2718 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
|
2719 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2720 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
|
2721 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
|
2722 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
|
2723 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2724 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
|
2725 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2726 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
|
2727 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
|
2728 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2729 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
|
2730 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2731 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
|
2732 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
|
2733 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2734 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2735 |
1889
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2736 static void pr_stereo_set(PixbufRenderer *pr) |
1886
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2737 { |
2084
1c712b43f063
added option for clutter renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2077
diff
changeset
|
2738 if (!pr->renderer) pr->renderer = pr_backend_renderer_new(pr); |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
2739 |
1889
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2740 pr->renderer->stereo_set(pr->renderer, pr->stereo_mode & ~PR_STEREO_MIRROR_RIGHT & ~PR_STEREO_FLIP_RIGHT); |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
2741 |
1891
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
2742 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
|
2743 { |
2084
1c712b43f063
added option for clutter renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2077
diff
changeset
|
2744 if (!pr->renderer2) pr->renderer2 = pr_backend_renderer_new(pr); |
1891
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
2745 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
|
2746 } |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2747 else |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2748 { |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2749 if (pr->renderer2) pr->renderer2->free(pr->renderer2); |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2750 pr->renderer2 = NULL; |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2751 } |
1895
6e3edda945ae
added half-size (3dtv) stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1894
diff
changeset
|
2752 if (pr->stereo_mode & PR_STEREO_HALF) |
6e3edda945ae
added half-size (3dtv) stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1894
diff
changeset
|
2753 { |
6e3edda945ae
added half-size (3dtv) stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1894
diff
changeset
|
2754 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
|
2755 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
|
2756 else pr->aspect_ratio = 1.0; |
6e3edda945ae
added half-size (3dtv) stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1894
diff
changeset
|
2757 } |
6e3edda945ae
added half-size (3dtv) stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1894
diff
changeset
|
2758 else |
6e3edda945ae
added half-size (3dtv) stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1894
diff
changeset
|
2759 { |
6e3edda945ae
added half-size (3dtv) stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1894
diff
changeset
|
2760 pr->aspect_ratio = 1.0; |
6e3edda945ae
added half-size (3dtv) stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1894
diff
changeset
|
2761 } |
1889
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2762 } |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2763 |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2764 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
|
2765 { |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2766 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
|
2767 pr->stereo_mode = stereo_mode; |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2768 if ((stereo_mode & PR_STEREO_TEMP_DISABLE) && pr->stereo_temp_disable) return; |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
2769 |
1889
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2770 pr->stereo_temp_disable = FALSE; |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
2771 |
1889
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2772 pr_stereo_set(pr); |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
2773 |
2184 | 2774 if (redraw) |
1886
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2775 { |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2776 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
|
2777 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
|
2778 } |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2779 } |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2780 |
1891
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
2781 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
|
2782 { |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
2783 pr->stereo_fixed_width = width; |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
2784 pr->stereo_fixed_height = height; |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
2785 pr->stereo_fixed_x_left = x1; |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
2786 pr->stereo_fixed_y_left = y1; |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
2787 pr->stereo_fixed_x_right = x2; |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
2788 pr->stereo_fixed_y_right = y2; |
25645af65caf
added fixed stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1889
diff
changeset
|
2789 } |
1889
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2790 |
1886
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2791 gint pixbuf_renderer_stereo_get(PixbufRenderer *pr) |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2792 { |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2793 return pr->stereo_mode; |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2794 } |
ba2f9ac17b54
change stereo mode from menu
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1885
diff
changeset
|
2795 |
1889
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2796 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
|
2797 { |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2798 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
|
2799 pr->stereo_temp_disable = disable; |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2800 if (disable) |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2801 { |
2084
1c712b43f063
added option for clutter renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2077
diff
changeset
|
2802 if (!pr->renderer) pr->renderer = pr_backend_renderer_new(pr); |
1889
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2803 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
|
2804 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
|
2805 pr->renderer2 = NULL; |
1895
6e3edda945ae
added half-size (3dtv) stereo mode
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1894
diff
changeset
|
2806 pr->aspect_ratio = 1.0; |
1889
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2807 } |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2808 else |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2809 { |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2810 pr_stereo_set(pr); |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2811 } |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2812 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
|
2813 } |
14088e0b25ec
temporarily disable stereo mode, added more stereo prefs
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1888
diff
changeset
|
2814 |
2184 | 2815 gboolean pixbuf_renderer_get_pixel_colors(PixbufRenderer *pr, gint x_pixel, gint y_pixel, |
1435 | 2816 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
|
2817 { |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2818 GdkPixbuf *pb = pr->pixbuf; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2819 gint p_alpha, prs; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2820 guchar *p_pix, *pp; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2821 gint map_x, map_y, map_w, map_h; |
2358
e77b4764e794
Properly open and work with large TIFF files.
Martin Pelikán <mpel@google.com>
parents:
2350
diff
changeset
|
2822 size_t xoff, yoff; |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
2823 |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2824 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
|
2825 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
|
2826 |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2827 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
|
2828 { |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2829 *r_mouse = -1; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2830 *g_mouse = -1; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2831 *b_mouse = -1; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2832 return FALSE; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2833 } |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
2834 |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2835 if (!pb) return FALSE; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2836 |
1874
ca810ea8fae9
separated tile renderer
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1865
diff
changeset
|
2837 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
|
2838 x_pixel, y_pixel, |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2839 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
|
2840 1, 1, /*single pixel */ |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2841 &map_x, &map_y, |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2842 &map_w, &map_h); |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2843 |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2844 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
|
2845 if (map_y < 0 || map_y > gdk_pixbuf_get_height(pr->pixbuf) - 1) return FALSE; |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
2846 |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2847 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
|
2848 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
|
2849 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
|
2850 |
2358
e77b4764e794
Properly open and work with large TIFF files.
Martin Pelikán <mpel@google.com>
parents:
2350
diff
changeset
|
2851 xoff = (size_t)map_x * (p_alpha ? 4 : 3); |
e77b4764e794
Properly open and work with large TIFF files.
Martin Pelikán <mpel@google.com>
parents:
2350
diff
changeset
|
2852 yoff = (size_t)map_y * prs; |
e77b4764e794
Properly open and work with large TIFF files.
Martin Pelikán <mpel@google.com>
parents:
2350
diff
changeset
|
2853 pp = p_pix + yoff + xoff; |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2854 *r_mouse = *pp; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2855 pp++; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2856 *g_mouse = *pp; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2857 pp++; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2858 *b_mouse = *pp; |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
2859 |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2860 return TRUE; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2861 } |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2862 |
1435 | 2863 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
|
2864 { |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2865 gint x_pixel, y_pixel, x_pixel_clamped, y_pixel_clamped; |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
2866 |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2867 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
|
2868 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
|
2869 |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2870 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
|
2871 { |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2872 *x_pixel_return = -1; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2873 *y_pixel_return = -1; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2874 return FALSE; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2875 } |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
2876 |
1492
3044b1b97143
Fixed bug where pixel/color information at x=0 coordinates werent shown:
Laurent Monin <geeqie@norz.org>
parents:
1435
diff
changeset
|
2877 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
|
2878 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
|
2879 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
|
2880 y_pixel_clamped = CLAMP(y_pixel, 0, pr->image_height - 1); |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
2881 |
2862
f105ca657cb3
Bug fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents:
2801
diff
changeset
|
2882 if (x_pixel != x_pixel_clamped) |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2883 { |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2884 /* mouse is not on pr */ |
2862
f105ca657cb3
Bug fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents:
2801
diff
changeset
|
2885 x_pixel = -1; |
f105ca657cb3
Bug fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents:
2801
diff
changeset
|
2886 } |
f105ca657cb3
Bug fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents:
2801
diff
changeset
|
2887 if (y_pixel != y_pixel_clamped) |
f105ca657cb3
Bug fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents:
2801
diff
changeset
|
2888 { |
f105ca657cb3
Bug fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents:
2801
diff
changeset
|
2889 /* mouse is not on pr */ |
f105ca657cb3
Bug fix #251: Crop simulation
Colin Clark <colin.clark@cclark.uk>
parents:
2801
diff
changeset
|
2890 y_pixel = -1; |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2891 } |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2892 |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2893 *x_pixel_return = x_pixel; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2894 *y_pixel_return = y_pixel; |
2185
c14a1d8e6aa4
Trim trailing white spaces on empty lines.
Laurent Monin <zas@norz.org>
parents:
2184
diff
changeset
|
2895 |
1375
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2896 return TRUE; |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2897 } |
08db75ca4713
Display pixel coordinates and rgb - patch by Ruben Stein
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1373
diff
changeset
|
2898 |
1431
13c985b6e35e
More gboolean and tidy up.
Laurent Monin <geeqie@norz.org>
parents:
1375
diff
changeset
|
2899 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
|
2900 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2901 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
|
2902 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
|
2903 |
1865 | 2904 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
|
2905 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2906 *width = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2907 *height = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2908 return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2909 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2910 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2911 *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
|
2912 *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
|
2913 return TRUE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2914 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2915 |
1435 | 2916 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
|
2917 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2918 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
|
2919 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
|
2920 |
1865 | 2921 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
|
2922 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2923 *width = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2924 *height = 0; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2925 return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2926 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2927 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2928 *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
|
2929 *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
|
2930 return TRUE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2931 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2932 |
1435 | 2933 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
|
2934 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2935 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
|
2936 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
|
2937 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2938 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
|
2939 !pr->scale) |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2940 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2941 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
|
2942 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
|
2943 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
|
2944 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
|
2945 return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2946 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2947 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2948 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
|
2949 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
|
2950 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
|
2951 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
|
2952 return TRUE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2953 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2954 |
1435 | 2955 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
|
2956 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2957 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
|
2958 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
|
2959 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2960 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
|
2961 { |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2962 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
|
2963 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
|
2964 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
|
2965 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
|
2966 return FALSE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2967 } |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2968 |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2969 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
|
2970 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
|
2971 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
|
2972 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
|
2973 return TRUE; |
9ff428db7772
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
John Ellis <johne@verizon.net>
parents:
diff
changeset
|
2974 } |
1865 | 2975 |
2976 void pixbuf_renderer_set_size_early(PixbufRenderer *pr, guint width, guint height) | |
2977 { | |
2088
2f5862670004
fixed unnecessary renderer backend calls
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2084
diff
changeset
|
2978 #if 0 |
2184 | 2979 /* FIXME: this function does not consider the image orientation, |
2088
2f5862670004
fixed unnecessary renderer backend calls
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2084
diff
changeset
|
2980 so it probably only breaks something */ |
1865 | 2981 gdouble zoom; |
2982 gint w, h; | |
2983 | |
2984 zoom = pixbuf_renderer_zoom_get(pr); | |
2985 pr->image_width = width; | |
2986 pr->image_height = height; | |
2987 | |
2988 pr_zoom_clamp(pr, zoom, PR_ZOOM_FORCE, NULL); | |
2989 | |
2990 //w = width; | |
2991 //h = height; | |
2992 | |
2993 //pr->width = width; | |
2994 //pr->height = height; | |
2088
2f5862670004
fixed unnecessary renderer backend calls
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
2084
diff
changeset
|
2995 #endif |
1865 | 2996 } |
2997 | |
1055
4bbdfab3c89a
Adding a vim modeline to all files - patch by Klaus Ethgen
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1047
diff
changeset
|
2998 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */ |