Mercurial > geeqie.yaz
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 |
rev | line source |
---|---|
1 | 1 /* |
196 | 2 * Geeqie |
9 | 3 * (C) 2004 John Ellis |
1 | 4 * |
5 * Author: John Ellis | |
6 * | |
9 | 7 * This software is released under the GNU General Public License (GNU GPL). |
8 * Please read the included file COPYING for more information. | |
9 * This software comes with no warranty of any kind, use at your own risk! | |
1 | 10 */ |
11 | |
12 | |
9 | 13 #ifndef IMAGE_H |
14 #define IMAGE_H | |
3 | 15 |
16 | |
247 | 17 void image_set_frame(ImageWindow *imd, gboolean frame); |
9 | 18 ImageWindow *image_new(gint frame); |
19 | |
20 /* additional setup */ | |
21 void image_attach_window(ImageWindow *imd, GtkWidget *window, | |
22 const gchar *title, const gchar *title_right, gint show_zoom); | |
23 void image_set_update_func(ImageWindow *imd, | |
24 void (*func)(ImageWindow *imd, gpointer data), | |
25 gpointer data); | |
26 void image_set_button_func(ImageWindow *imd, | |
27 void (*func)(ImageWindow *, gint button, guint32 time, gdouble x, gdouble y, guint state, gpointer), | |
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 | 32 void image_set_scroll_func(ImageWindow *imd, |
33 void (*func)(ImageWindow *, GdkScrollDirection direction, guint32 time, gdouble x, gdouble y, guint state, gpointer), | |
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 | 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 | 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 | 44 |
127 | 45 void image_select(ImageWindow *imd, gboolean select); |
174 | 46 void image_set_selectable(ImageWindow *imd, gboolean selectable); |
127 | 47 |
9 | 48 /* path, name */ |
49 const gchar *image_get_path(ImageWindow *imd); | |
50 const gchar *image_get_name(ImageWindow *imd); | |
138 | 51 FileData *image_get_fd(ImageWindow *imd); |
9 | 52 |
53 /* merely changes path string, does not change the image! */ | |
138 | 54 void image_set_fd(ImageWindow *imd, FileData *fd); |
9 | 55 |
56 /* load a new image */ | |
138 | 57 void image_change_fd(ImageWindow *imd, FileData *fd, gdouble zoom); |
9 | 58 void image_change_pixbuf(ImageWindow *imd, GdkPixbuf *pixbuf, gdouble zoom); |
59 void image_change_from_collection(ImageWindow *imd, CollectionData *cd, CollectInfo *info, gdouble zoom); | |
60 CollectionData *image_get_collection(ImageWindow *imd, CollectInfo **info); | |
61 void image_change_from_image(ImageWindow *imd, ImageWindow *source); | |
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 | 65 /* manipulation */ |
66 void image_area_changed(ImageWindow *imd, gint x, gint y, gint width, gint height); | |
67 void image_reload(ImageWindow *imd); | |
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 | 71 void image_get_scroll_center(ImageWindow *imd, gdouble *x, gdouble *y); |
72 void image_set_scroll_center(ImageWindow *imd, gdouble x, gdouble y); | |
9 | 73 void image_alter(ImageWindow *imd, AlterType type); |
74 | |
75 /* zoom */ | |
76 void image_zoom_adjust(ImageWindow *imd, gdouble increment); | |
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 | 79 void image_zoom_set(ImageWindow *imd, gdouble zoom); |
80 void image_zoom_set_fill_geometry(ImageWindow *imd, gint vertical); | |
81 gdouble image_zoom_get(ImageWindow *imd); | |
82 gdouble image_zoom_get_real(ImageWindow *imd); | |
83 gchar *image_zoom_get_as_text(ImageWindow *imd); | |
84 gdouble image_zoom_get_default(ImageWindow *imd, gint mode); | |
85 | |
86 /* read ahead, pass NULL to cancel */ | |
138 | 87 void image_prebuffer_set(ImageWindow *imd, FileData *fd); |
9 | 88 |
89 /* auto refresh, interval is 1/1000 sec, 0 uses default, -1 disables */ | |
90 void image_auto_refresh(ImageWindow *imd, gint interval); | |
91 | |
92 /* allow top window to be resized ? */ | |
93 void image_top_window_set_sync(ImageWindow *imd, gint allow_sync); | |
94 | |
95 /* background of image */ | |
96 void image_background_set_color(ImageWindow *imd, GdkColor *color); | |
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 | 108 /* set delayed page flipping */ |
109 void image_set_delay_flip(ImageWindow *imd, gint delay); | |
110 | |
111 /* wallpaper util */ | |
112 void image_to_root_window(ImageWindow *imd, gint scaled); | |
113 | |
114 /* overlays */ | |
115 gint image_overlay_add(ImageWindow *imd, GdkPixbuf *pixbuf, gint x, gint y, | |
116 gint relative, gint always); | |
117 void image_overlay_set(ImageWindow *imd, gint id, GdkPixbuf *pixbuf, gint x, gint y); | |
118 gint image_overlay_get(ImageWindow *imd, gint id, GdkPixbuf **pixbuf, gint *x, gint *y); | |
119 void image_overlay_remove(ImageWindow *imd, gint id); | |
120 | |
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 | 134 #endif |
135 | |
136 | |
137 |