annotate src/image.h @ 127:271afad04d07

implemented split windows TODO: menus and hotkeys, connected zoom, activating on drag
author nadvornik
date Fri, 29 Jun 2007 15:16:46 +0000
parents 0c2e1f0a001b
children 98e2632b5d3d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
b3e0e515fabf Initial revision
gqview
parents:
diff changeset
1 /*
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
2 * GQview
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
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
17 ImageWindow *image_new(gint frame);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
18
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
19 /* additional setup */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
20 void image_attach_window(ImageWindow *imd, GtkWidget *window,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
21 const gchar *title, const gchar *title_right, gint show_zoom);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
22 void image_set_update_func(ImageWindow *imd,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
23 void (*func)(ImageWindow *imd, gpointer data),
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
24 gpointer data);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
25 void image_set_button_func(ImageWindow *imd,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
26 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
27 gpointer data);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
28 void image_set_scroll_func(ImageWindow *imd,
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
29 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
30 gpointer data);
12
147f4c4b9025 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
31 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
32 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
33 gpointer data);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
34 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
35 void (*func)(ImageWindow *imd, gint preload, gpointer data),
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
36 gpointer data);
117
0c2e1f0a001b Wed Nov 29 14:28:30 2006 John Ellis <johne@verizon.net>
gqview
parents: 113
diff changeset
37 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
38 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
39 gpointer data);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
40
127
271afad04d07 implemented split windows
nadvornik
parents: 117
diff changeset
41 void image_select(ImageWindow *imd, gboolean select);
271afad04d07 implemented split windows
nadvornik
parents: 117
diff changeset
42
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
43 /* path, name */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
44 const gchar *image_get_path(ImageWindow *imd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
45 const gchar *image_get_name(ImageWindow *imd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
46
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
47 /* merely changes path string, does not change the image! */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
48 void image_set_path(ImageWindow *imd, const gchar *newpath);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
49
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
50 /* load a new image */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
51 void image_change_path(ImageWindow *imd, const gchar *path, gdouble zoom);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
52 void image_change_pixbuf(ImageWindow *imd, GdkPixbuf *pixbuf, gdouble zoom);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
53 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
54 CollectionData *image_get_collection(ImageWindow *imd, CollectInfo **info);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
55 void image_change_from_image(ImageWindow *imd, ImageWindow *source);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
56
23
17acca639a86 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 13
diff changeset
57 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
58
127
271afad04d07 implemented split windows
nadvornik
parents: 117
diff changeset
59
271afad04d07 implemented split windows
nadvornik
parents: 117
diff changeset
60 void image_sync_scroll_from_image_absolute(ImageWindow *imd, ImageWindow *source);
271afad04d07 implemented split windows
nadvornik
parents: 117
diff changeset
61 void image_sync_zoom_from_image(ImageWindow *imd, ImageWindow *source);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
62 /* manipulation */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
63 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
64 void image_reload(ImageWindow *imd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
65 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
66 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
67 gdouble x_align, gdouble y_align);
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
68 void image_alter(ImageWindow *imd, AlterType type);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
69
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
70 /* zoom */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
71 void image_zoom_adjust(ImageWindow *imd, gdouble increment);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
72 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
73 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
74 void image_zoom_set(ImageWindow *imd, gdouble zoom);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
75 void image_zoom_set_fill_geometry(ImageWindow *imd, gint vertical);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
76 gdouble image_zoom_get(ImageWindow *imd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
77 gdouble image_zoom_get_real(ImageWindow *imd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
78 gchar *image_zoom_get_as_text(ImageWindow *imd);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
79 gdouble image_zoom_get_default(ImageWindow *imd, gint mode);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
80
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
81 /* read ahead, pass NULL to cancel */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
82 void image_prebuffer_set(ImageWindow *imd, const gchar *path);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
83
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
84 /* 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
85 void image_auto_refresh(ImageWindow *imd, gint interval);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
86
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
87 /* allow top window to be resized ? */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
88 void image_top_window_set_sync(ImageWindow *imd, gint allow_sync);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
89
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
90 /* background of image */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
91 void image_background_set_black(ImageWindow *imd, gint black);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
92 void image_background_set_color(ImageWindow *imd, GdkColor *color);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
93
113
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 26
diff changeset
94 /* color profiles */
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 26
diff changeset
95 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
96 gint input_type, gint screen_type,
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 26
diff changeset
97 gint use_embedded);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 26
diff changeset
98 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
99 gint *input_type, gint *screen_type,
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 26
diff changeset
100 gint *use_image);
55166d93498d Fri Nov 24 21:37:01 2006 John Ellis <johne@verizon.net>
gqview
parents: 26
diff changeset
101 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
102 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
103
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
104 /* set delayed page flipping */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
105 void image_set_delay_flip(ImageWindow *imd, gint delay);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
106
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
107 /* wallpaper util */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
108 void image_to_root_window(ImageWindow *imd, gint scaled);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
109
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
110 /* overlays */
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
111 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
112 gint relative, gint always);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
113 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
114 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
115 void image_overlay_remove(ImageWindow *imd, gint id);
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
116
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
117
12
147f4c4b9025 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
118
147f4c4b9025 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
119 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
120 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
121 ImageTileRequestFunc func_tile_request,
147f4c4b9025 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
122 ImageTileDisposeFunc func_tile_dispose,
147f4c4b9025 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
123 gpointer data,
147f4c4b9025 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
124 gdouble zoom);
147f4c4b9025 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
125
26
acd9885ebd78 Mon Mar 28 20:23:34 2005 John Ellis <johne@verizon.net>
gqview
parents: 23
diff changeset
126 /* reset default options */
acd9885ebd78 Mon Mar 28 20:23:34 2005 John Ellis <johne@verizon.net>
gqview
parents: 23
diff changeset
127 void image_options_sync(void);
acd9885ebd78 Mon Mar 28 20:23:34 2005 John Ellis <johne@verizon.net>
gqview
parents: 23
diff changeset
128
12
147f4c4b9025 ##### Note: GQview CVS on sourceforge is not always up to date, please use #####
gqview
parents: 9
diff changeset
129
9
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
130 #endif
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
131
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
132
d907d608745f Sync to GQview 1.5.9 release.
gqview
parents: 3
diff changeset
133