summaryrefslogtreecommitdiffstats
path: root/libgimpwidgets/gimppreviewarea.h
blob: cfcf1b266e5e99f4966aff4bfe13d5c51ca0f6e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/* LIBGIMP - The GIMP Library
 * Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
 *
 * This library is free software: you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 3 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library.  If not, see
 * <https://www.gnu.org/licenses/>.
 */

#if !defined (__GIMP_WIDGETS_H_INSIDE__) && !defined (GIMP_WIDGETS_COMPILATION)
#error "Only <libgimpwidgets/gimpwidgets.h> can be included directly."
#endif

#ifndef __GIMP_PREVIEW_AREA_H__
#define __GIMP_PREVIEW_AREA_H__

G_BEGIN_DECLS


#define GIMP_TYPE_PREVIEW_AREA            (gimp_preview_area_get_type ())
#define GIMP_PREVIEW_AREA(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_PREVIEW_AREA, GimpPreviewArea))
#define GIMP_PREVIEW_AREA_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_PREVIEW_AREA, GimpPreviewAreaClass))
#define GIMP_IS_PREVIEW_AREA(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIMP_TYPE_PREVIEW_AREA))
#define GIMP_IS_PREVIEW_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_PREVIEW_AREA))
#define GIMP_PREVIEW_AREA_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GIMP_TYPE_PREVIEW_AREA, GimpPreviewArea))


typedef struct _GimpPreviewAreaClass  GimpPreviewAreaClass;

struct _GimpPreviewArea
{
  GtkDrawingArea   parent_instance;

  GimpCheckSize    check_size;
  GimpCheckType    check_type;
  gint             width;
  gint             height;
  gint             rowstride;
  gint             offset_x;
  gint             offset_y;
  gint             max_width;
  gint             max_height;
  guchar          *buf;
  guchar          *colormap;
};

struct _GimpPreviewAreaClass
{
  GtkDrawingAreaClass  parent_class;

  /* Padding for future expansion */
  void (* _gimp_reserved1) (void);
  void (* _gimp_reserved2) (void);
  void (* _gimp_reserved3) (void);
  void (* _gimp_reserved4) (void);
};


GType       gimp_preview_area_get_type         (void) G_GNUC_CONST;

GtkWidget * gimp_preview_area_new              (void);

void        gimp_preview_area_draw             (GimpPreviewArea *area,
                                                gint             x,
                                                gint             y,
                                                gint             width,
                                                gint             height,
                                                GimpImageType    type,
                                                const guchar    *buf,
                                                gint             rowstride);
void        gimp_preview_area_blend            (GimpPreviewArea *area,
                                                gint             x,
                                                gint             y,
                                                gint             width,
                                                gint             height,
                                                GimpImageType    type,
                                                const guchar    *buf1,
                                                gint             rowstride1,
                                                const guchar    *buf2,
                                                gint             rowstride2,
                                                guchar           opacity);
void        gimp_preview_area_mask             (GimpPreviewArea *area,
                                                gint             x,
                                                gint             y,
                                                gint             width,
                                                gint             height,
                                                GimpImageType    type,
                                                const guchar    *buf1,
                                                gint             rowstride1,
                                                const guchar    *buf2,
                                                gint             rowstride2,
                                                const guchar    *mask,
                                                gint             rowstride_mask);
void        gimp_preview_area_fill             (GimpPreviewArea *area,
                                                gint             x,
                                                gint             y,
                                                gint             width,
                                                gint             height,
                                                guchar           red,
                                                guchar           green,
                                                guchar           blue);

void        gimp_preview_area_set_offsets      (GimpPreviewArea *area,
                                                gint             x,
                                                gint             y);

void        gimp_preview_area_set_colormap     (GimpPreviewArea *area,
                                                const guchar    *colormap,
                                                gint             num_colors);

void        gimp_preview_area_set_color_config (GimpPreviewArea *area,
                                                GimpColorConfig *config);

void        gimp_preview_area_set_max_size     (GimpPreviewArea *area,
                                                gint             width,
                                                gint             height);

void        gimp_preview_area_menu_popup       (GimpPreviewArea *area,
                                                GdkEventButton  *event);


G_END_DECLS

#endif /* __GIMP_PREVIEW_AREA_H__ */