2 * Copyright (C) 2004 John Ellis
3 * Copyright (C) 2008 - 2016 The Geeqie Team
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License along
18 * with this program; if not, write to the Free Software Foundation, Inc.,
19 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
25 #include <gdk-pixbuf/gdk-pixbuf.h>
28 #include <pango/pango.h>
32 gboolean pixbuf_to_file_as_png (GdkPixbuf *pixbuf, const gchar *filename);
34 void pixbuf_inline_register_stock_icons();
35 gboolean register_theme_icon_as_stock(const gchar *key, const gchar *icon);
37 GdkPixbuf *pixbuf_inline(const gchar *key);
38 GdkPixbuf *pixbuf_fallback(FileData *fd, gint requested_width, gint requested_height);
40 gboolean pixbuf_scale_aspect(gint req_w, gint req_h, gint old_w, gint old_h, gint *new_w, gint *new_h);
42 #define PIXBUF_INLINE_ARCHIVE "gq-icon-archive-file"
43 #define PIXBUF_INLINE_BROKEN "gq-icon-broken"
44 #define PIXBUF_INLINE_COLLECTION "gq-icon-collection"
45 #define PIXBUF_INLINE_ICON_180 "gq-icon-rotate-180"
46 #define PIXBUF_INLINE_ICON_BOOK "gq-icon-book"
47 #define PIXBUF_INLINE_ICON_CONFIG "gq-icon-config"
48 #define PIXBUF_INLINE_ICON_DRAW_RECTANGLE "gq-icon-draw-rectangle"
49 #define PIXBUF_INLINE_ICON_EXIF "gq-icon-exif"
50 #define PIXBUF_INLINE_ICON_EXPOSURE "gq-icon-exposure"
51 #define PIXBUF_INLINE_ICON_FLOAT "gq-icon-float"
52 #define PIXBUF_INLINE_ICON "gqview-icon"
53 #define PIXBUF_INLINE_ICON_GRAYSCALE "gq-icon-grayscale"
54 #define PIXBUF_INLINE_ICON_HEIF "gq-icon-heic"
55 #define PIXBUF_INLINE_ICON_HIDETOOLS "gq-icon-hidetools"
56 #define PIXBUF_INLINE_ICON_MAINTENANCE "gq-icon-maintenance"
57 #define PIXBUF_INLINE_ICON_MARKS "gq-icon-marks"
58 #define PIXBUF_INLINE_ICON_MOVE "gq-icon-move"
59 #define PIXBUF_INLINE_ICON_ORIGINAL "gq-icon-original"
60 #define PIXBUF_INLINE_ICON_PANORAMA "gq-icon-panorama"
61 #define PIXBUF_INLINE_ICON_PDF "gq-icon-pdf"
62 #define PIXBUF_INLINE_ICON_PROPERTIES "gq-icon-properties"
63 #define PIXBUF_INLINE_ICON_RENAME "gq-icon-rename"
64 #define PIXBUF_INLINE_ICON_SELECT_ALL "gq-icon-select-all"
65 #define PIXBUF_INLINE_ICON_SELECT_INVERT "gq-icon-select-invert"
66 #define PIXBUF_INLINE_ICON_SELECT_NONE "gq-icon-select-none"
67 #define PIXBUF_INLINE_ICON_SELECT_RECTANGLE "gq-icon-select-rectangle"
68 #define PIXBUF_INLINE_ICON_SORT "gq-icon-sort"
69 #define PIXBUF_INLINE_ICON_THUMB "gq-icon-thumb"
70 #define PIXBUF_INLINE_ICON_TOOLS "gq-icon-tools"
71 #define PIXBUF_INLINE_ICON_VIEW "gq-icon-view"
72 #define PIXBUF_INLINE_ICON_ZOOMFILLHOR "gq-icon-zoomfillhor"
73 #define PIXBUF_INLINE_ICON_ZOOMFILLVERT "gq-icon-zoomfillvert"
74 #define PIXBUF_INLINE_LOGO "geeqie-logo"
75 #define PIXBUF_INLINE_METADATA "gq-icon-metadata"
76 #define PIXBUF_INLINE_SCROLLER "gq-scroller"
77 #define PIXBUF_INLINE_SPLIT_PANE_SYNC "gq-icon-split-pane-sync"
78 #define PIXBUF_INLINE_UNKNOWN "gq-icon-unknown"
79 #define PIXBUF_INLINE_VIDEO "gq-icon-video"
81 GdkPixbuf *pixbuf_copy_rotate_90(GdkPixbuf *src, gboolean counter_clockwise);
82 GdkPixbuf *pixbuf_copy_mirror(GdkPixbuf *src, gboolean mirror, gboolean flip);
83 GdkPixbuf* pixbuf_apply_orientation(GdkPixbuf *pixbuf, gint orientation);
85 void pixbuf_draw_rect_fill(GdkPixbuf *pb,
86 gint x, gint y, gint w, gint h,
87 gint r, gint g, gint b, gint a);
89 void pixbuf_set_rect_fill(GdkPixbuf *pb,
90 gint x, gint y, gint w, gint h,
91 gint r, gint g, gint b, gint a);
93 void pixbuf_set_rect(GdkPixbuf *pb,
94 gint x, gint y, gint w, gint h,
95 gint r, gint g, gint b, gint a,
96 gint left, gint right, gint top, gint bottom);
98 void pixbuf_pixel_set(GdkPixbuf *pb, gint x, gint y, gint r, gint g, gint b, gint a);
101 void pixbuf_draw_layout(GdkPixbuf *pixbuf, PangoLayout *layout, GtkWidget *widget,
103 guint8 r, guint8 g, guint8 b, guint8 a);
106 void pixbuf_draw_triangle(GdkPixbuf *pb,
107 gint clip_x, gint clip_y, gint clip_w, gint clip_h,
108 gint x1, gint y1, gint x2, gint y2, gint x3, gint y3,
109 guint8 r, guint8 g, guint8 b, guint8 a);
111 void pixbuf_draw_line(GdkPixbuf *pb,
112 gint clip_x, gint clip_y, gint clip_w, gint clip_h,
113 gint x1, gint y1, gint x2, gint y2,
114 guint8 r, guint8 g, guint8 b, guint8 a);
116 void pixbuf_draw_shadow(GdkPixbuf *pb,
117 gint clip_x, gint clip_y, gint clip_w, gint clip_h,
118 gint x, gint y, gint w, gint h, gint border,
119 guint8 r, guint8 g, guint8 b, guint8 a);
121 void pixbuf_desaturate_rect(GdkPixbuf *pb,
122 gint x, gint y, gint w, gint h);
123 void pixbuf_highlight_overunderexposed(GdkPixbuf *pb,
124 gint x, gint y, gint w, gint h);
125 void pixbuf_ignore_alpha_rect(GdkPixbuf *pb,
126 gint x, gint y, gint w, gint h);
130 gboolean util_clip_region(gint x, gint y, gint w, gint h,
131 gint clip_x, gint clip_y, gint clip_w, gint clip_h,
132 gint *rx, gint *ry, gint *rw, gint *rh);
133 void util_clip_triangle(gint x1, gint y1, gint x2, gint y2, gint x3, gint y3,
134 gint *rx, gint *ry, gint *rw, gint *rh);
138 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */