Wed Nov 1 11:39:48 2006 John Ellis <johne@verizon.net>
[geeqie.git] / src / pixbuf_util.h
1 /*
2  * GQview
3  * (C) 2004 John Ellis
4  *
5  * Author: John Ellis
6  *
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!
10  */
11
12
13 #ifndef PIXBUF_UTIL_H
14 #define PIXBUF_UTIL_H
15
16
17 gboolean pixbuf_to_file_as_png (GdkPixbuf *pixbuf, const char *filename);
18 gboolean pixbuf_to_file_as_jpg(GdkPixbuf *pixbuf, const gchar *filename, gint quality);
19
20
21 GdkPixbuf *pixbuf_inline(const gchar *key);
22
23 #define PIXBUF_INLINE_FOLDER_CLOSED     "folder_closed"
24 #define PIXBUF_INLINE_FOLDER_LOCKED     "folder_locked"
25 #define PIXBUF_INLINE_FOLDER_OPEN       "folder_open"
26 #define PIXBUF_INLINE_FOLDER_UP         "folder_up"
27 #define PIXBUF_INLINE_SCROLLER          "scroller"
28 #define PIXBUF_INLINE_BROKEN            "broken"
29 #define PIXBUF_INLINE_ICON              "icon"
30 #define PIXBUF_INLINE_LOGO              "logo"
31
32 #define PIXBUF_INLINE_ICON_FLOAT        "icon_float"
33 #define PIXBUF_INLINE_ICON_THUMB        "icon_thumb"
34
35 #define PIXBUF_INLINE_ICON_BOOK         "icon_book"
36 #define PIXBUF_INLINE_ICON_CONFIG       "icon_config"
37 #define PIXBUF_INLINE_ICON_TOOLS        "icon_tools"
38 #define PIXBUF_INLINE_ICON_VIEW         "icon_view"
39
40
41 GdkPixbuf *pixbuf_copy_rotate_90(GdkPixbuf *src, gint counter_clockwise);
42 GdkPixbuf *pixbuf_copy_mirror(GdkPixbuf *src, gint mirror, gint flip);
43
44
45 void pixbuf_draw_rect_fill(GdkPixbuf *pb,
46                            gint x, gint y, gint w, gint h,
47                            gint r, gint g, gint b, gint a);
48
49 void pixbuf_draw_rect(GdkPixbuf *pb,
50                       gint x, gint y, gint w, gint h,
51                       gint r, gint g, gint b, gint a,
52                       gint left, gint right, gint top, gint bottom);
53
54 void pixbuf_set_rect_fill(GdkPixbuf *pb,
55                           gint x, gint y, gint w, gint h,
56                           gint r, gint g, gint b, gint a);
57
58 void pixbuf_set_rect(GdkPixbuf *pb,
59                      gint x, gint y, gint w, gint h,
60                      gint r, gint g, gint b, gint a,
61                      gint left, gint right, gint top, gint bottom);
62
63 void pixbuf_pixel_set(GdkPixbuf *pb, gint x, gint y, gint r, gint g, gint b, gint a);
64
65
66 void pixbuf_draw_layout(GdkPixbuf *pixbuf, PangoLayout *layout, GtkWidget *widget,
67                         gint x, gint y,
68                         guint8 r, guint8 g, guint8 b, guint8 a);
69
70
71 void pixbuf_draw_triangle(GdkPixbuf *pb,
72                           gint clip_x, gint clip_y, gint clip_w, gint clip_h,
73                           gint x1, gint y1, gint x2, gint y2, gint x3, gint y3,
74                           guint8 r, guint8 g, guint8 b, guint8 a);
75
76 void pixbuf_draw_line(GdkPixbuf *pb,
77                       gint clip_x, gint clip_y, gint clip_w, gint clip_h,
78                       gint x1, gint y1, gint x2, gint y2,
79                       guint8 r, guint8 g, guint8 b, guint8 a);
80
81 void pixbuf_draw_shadow(GdkPixbuf *pb,
82                         gint clip_x, gint clip_y, gint clip_w, gint clip_h,
83                         gint x, gint y, gint w, gint h, gint border,
84                         guint8 r, guint8 g, guint8 b, guint8 a);
85
86 void pixbuf_desaturate_rect(GdkPixbuf *pb,
87                             gint x, gint y, gint w, gint h);
88
89
90 /* clipping utils */
91
92 gint util_clip_region(gint x, gint y, gint w, gint h,
93                       gint clip_x, gint clip_y, gint clip_w, gint clip_h,
94                       gint *rx, gint *ry, gint *rw, gint *rh);
95 void util_clip_triangle(gint x1, gint y1, gint x2, gint y2, gint x3, gint y3,
96                         gint *rx, gint *ry, gint *rw, gint *rh);
97
98
99 #endif
100
101