annotate src/image.h @ 276:4f526d436873

Implement secure rc file saving. First data is written to a temporary file, then if nothing was wrong, this file is renamed to the final name. This way the risk of corrupted rc file is greatly reduced. The code is borrowed from ELinks (http://elinks.cz).
author zas_
date Tue, 08 Apr 2008 21:55:58 +0000
parents 5b5376acdf7c
children 9fe0ca1b5263
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1 /*
196
f6e307c7bad6 rename GQview -> Geeqie over the code
nadvornik
parents: 174
diff changeset
2 * Geeqie
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
3 * (C) 2004 John Ellis
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
4 *
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
5 * Author: John Ellis
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
6 *
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
7 * This software is released under the GNU General Public License (GNU GPL).
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
8 * Please read the included file COPYING for more information.
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
9 * This software comes with no warranty of any kind, use at your own risk!
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
10 */
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
11
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
12
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
13 #ifndef IMAGE_H
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
14 #define IMAGE_H
3
gqview
parents: 1
diff changeset
15
gqview
parents: 1
diff changeset
16
247
5b5376acdf7c Add missing prototype.
zas_
parents: 208
diff changeset
17 void image_set_frame(ImageWindow *imd, gboolean frame);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
18 ImageWindow *image_new(gint frame);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
19
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
20 /* additional setup */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
21 void image_attach_window(ImageWindow *imd, GtkWidget *window,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
22 const gchar *title, const gchar *title_right, gint show_zoom);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
23 void image_set_update_func(ImageWindow *imd,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
24 void (*func)(ImageWindow *imd, gpointer data),
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
25 gpointer data);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
26 void image_set_button_func(ImageWindow *imd,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
27 void (*func)(ImageWindow *, gint button, guint32 time, gdouble x, gdouble y, guint state, gpointer),
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
28 gpointer data);
128
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
29 void image_set_drag_func(ImageWindow *imd,
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
30 void (*func)(ImageWindow *, gint button, guint32 time, gdouble x, gdouble y, guint state, gdouble dx, gdouble dy, gpointer),
98e2632b5d3d improved connected scroll and active image switching
nadvornik
parents: 127
diff changeset
31 gpointer data);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
32 void image_set_scroll_func(ImageWindow *imd,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
33 void (*func)(ImageWindow *, GdkScrollDirection direction, guint32 time, gdouble x, gdouble y, guint state, gpointer),
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
34 gpointer data);
12
147f4c4b9025 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
35 void image_set_scroll_notify_func(ImageWindow *imd,
147f4c4b9025 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
36 void (*func)(ImageWindow *imd, gint x, gint y, gint width, gint height, gpointer data),
147f4c4b9025 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
37 gpointer data);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
38 void image_set_complete_func(ImageWindow *imd,
117
0c2e1f0a001b Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents: 113
diff changeset
39 void (*func)(ImageWindow *imd, gint preload, gpointer data),
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
40 gpointer data);
117
0c2e1f0a001b Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents: 113
diff changeset
41 void image_set_state_func(ImageWindow *imd,
0c2e1f0a001b Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents: 113
diff changeset
42 void (*func)(ImageWindow *imd, ImageState state, gpointer data),
0c2e1f0a001b Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents: 113
diff changeset
43 gpointer data);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
44
127
271afad04d07 implemented split windows
nadvornik
parents: 117
diff changeset
45 void image_select(ImageWindow *imd, gboolean select);
174
126724275319 improved drawing of image frames
nadvornik
parents: 138
diff changeset
46 void image_set_selectable(ImageWindow *imd, gboolean selectable);
127
271afad04d07 implemented split windows
nadvornik
parents: 117
diff changeset
47
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
48 /* path, name */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
49 const gchar *image_get_path(ImageWindow *imd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
50 const gchar *image_get_name(ImageWindow *imd);
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
51 FileData *image_get_fd(ImageWindow *imd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
52
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
53 /* merely changes path string, does not change the image! */
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
54 void image_set_fd(ImageWindow *imd, FileData *fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
55
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
56 /* load a new image */
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
57 void image_change_fd(ImageWindow *imd, FileData *fd, gdouble zoom);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
58 void image_change_pixbuf(ImageWindow *imd, GdkPixbuf *pixbuf, gdouble zoom);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
59 void image_change_from_collection(ImageWindow *imd, CollectionData *cd, CollectInfo *info, gdouble zoom);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
60 CollectionData *image_get_collection(ImageWindow *imd, CollectInfo **info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
61 void image_change_from_image(ImageWindow *imd, ImageWindow *source);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
62
23
17acca639a86 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 13
diff changeset
63 GdkPixbuf *image_get_pixbuf(ImageWindow *imd);
17acca639a86 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 13
diff changeset
64
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
65 /* manipulation */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
66 void image_area_changed(ImageWindow *imd, gint x, gint y, gint width, gint height);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
67 void image_reload(ImageWindow *imd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
68 void image_scroll(ImageWindow *imd, gint x, gint y);
13
ef790149ae21 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 12
diff changeset
69 void image_scroll_to_point(ImageWindow *imd, gint x, gint y,
ef790149ae21 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 12
diff changeset
70 gdouble x_align, gdouble y_align);
131
b1acdfc7271b relative scroll is working; some cleanup
nadvornik
parents: 129
diff changeset
71 void image_get_scroll_center(ImageWindow *imd, gdouble *x, gdouble *y);
b1acdfc7271b relative scroll is working; some cleanup
nadvornik
parents: 129
diff changeset
72 void image_set_scroll_center(ImageWindow *imd, gdouble x, gdouble y);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
73 void image_alter(ImageWindow *imd, AlterType type);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
74
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
75 /* zoom */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
76 void image_zoom_adjust(ImageWindow *imd, gdouble increment);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
77 void image_zoom_adjust_at_point(ImageWindow *imd, gdouble increment, gint x, gint y);
12
147f4c4b9025 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
78 void image_zoom_set_limits(ImageWindow *imd, gdouble min, gdouble max);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
79 void image_zoom_set(ImageWindow *imd, gdouble zoom);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
80 void image_zoom_set_fill_geometry(ImageWindow *imd, gint vertical);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
81 gdouble image_zoom_get(ImageWindow *imd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
82 gdouble image_zoom_get_real(ImageWindow *imd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
83 gchar *image_zoom_get_as_text(ImageWindow *imd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
84 gdouble image_zoom_get_default(ImageWindow *imd, gint mode);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
85
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
86 /* read ahead, pass NULL to cancel */
138
71e1ebee420e replaced gchar* path with FileData *fd
nadvornik
parents: 131
diff changeset
87 void image_prebuffer_set(ImageWindow *imd, FileData *fd);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
88
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
89 /* auto refresh, interval is 1/1000 sec, 0 uses default, -1 disables */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
90 void image_auto_refresh(ImageWindow *imd, gint interval);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
91
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
92 /* allow top window to be resized ? */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
93 void image_top_window_set_sync(ImageWindow *imd, gint allow_sync);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
94
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
95 /* background of image */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
96 void image_background_set_color(ImageWindow *imd, GdkColor *color);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
97
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 26
diff changeset
98 /* color profiles */
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 26
diff changeset
99 void image_color_profile_set(ImageWindow *imd,
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 26
diff changeset
100 gint input_type, gint screen_type,
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 26
diff changeset
101 gint use_embedded);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 26
diff changeset
102 gint image_color_profile_get(ImageWindow *imd,
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 26
diff changeset
103 gint *input_type, gint *screen_type,
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 26
diff changeset
104 gint *use_image);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 26
diff changeset
105 void image_color_profile_set_use(ImageWindow *imd, gint enable);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 26
diff changeset
106 gint image_color_profile_get_use(ImageWindow *imd);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 26
diff changeset
107
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
108 /* set delayed page flipping */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
109 void image_set_delay_flip(ImageWindow *imd, gint delay);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
110
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
111 /* wallpaper util */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
112 void image_to_root_window(ImageWindow *imd, gint scaled);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
113
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
114 /* overlays */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
115 gint image_overlay_add(ImageWindow *imd, GdkPixbuf *pixbuf, gint x, gint y,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
116 gint relative, gint always);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
117 void image_overlay_set(ImageWindow *imd, gint id, GdkPixbuf *pixbuf, gint x, gint y);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
118 gint image_overlay_get(ImageWindow *imd, gint id, GdkPixbuf **pixbuf, gint *x, gint *y);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
119 void image_overlay_remove(ImageWindow *imd, gint id);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
120
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
121
12
147f4c4b9025 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
122
147f4c4b9025 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
123 void image_set_image_as_tiles(ImageWindow *imd, gint width, gint height,
147f4c4b9025 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
124 gint tile_width, gint tile_height, gint cache_size,
147f4c4b9025 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
125 ImageTileRequestFunc func_tile_request,
147f4c4b9025 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
126 ImageTileDisposeFunc func_tile_dispose,
147f4c4b9025 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
127 gpointer data,
147f4c4b9025 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
128 gdouble zoom);
147f4c4b9025 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
129
26
acd9885ebd78 Mon Mar 28 20:23:34 2005 John Ellis <johne@verizon.net>
gqview
parents: 23
diff changeset
130 /* reset default options */
acd9885ebd78 Mon Mar 28 20:23:34 2005 John Ellis <johne@verizon.net>
gqview
parents: 23
diff changeset
131 void image_options_sync(void);
acd9885ebd78 Mon Mar 28 20:23:34 2005 John Ellis <johne@verizon.net>
gqview
parents: 23
diff changeset
132
12
147f4c4b9025 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
133
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
134 #endif
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
135
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
136
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
137