summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2010-08-07 20:05:42 +0200
committerBenjamin Otte <otte@redhat.com>2010-08-07 20:19:27 +0200
commit661f4859cdbc0394ed0a9db34ced0f4e2bbe78ff (patch)
tree1b5d218bc7ca1802540e1abcd606d6ccb4e802fd
parentfc4e8f036326da1839ec5320eba60823e7efc2db (diff)
Add cairo-gobject library
This library is supposed to contain GType declarations for Cairo types. It is also meant to support gobject-introspection binding creation.
-rw-r--r--boilerplate/Makefile.win32.features12
-rw-r--r--build/Makefile.win32.features1
-rw-r--r--build/Makefile.win32.features-h3
-rw-r--r--configure.ac10
-rw-r--r--src/Makefile.win32.features16
-rw-r--r--util/Makefile.am4
-rw-r--r--util/cairo-gobject/Makefile.am15
-rw-r--r--util/cairo-gobject/cairo-gobject-enums.c519
-rw-r--r--util/cairo-gobject/cairo-gobject-structs.c87
-rw-r--r--util/cairo-gobject/cairo-gobject.h186
10 files changed, 853 insertions, 0 deletions
diff --git a/boilerplate/Makefile.win32.features b/boilerplate/Makefile.win32.features
index ee5907117..a72d233e4 100644
--- a/boilerplate/Makefile.win32.features
+++ b/boilerplate/Makefile.win32.features
@@ -463,6 +463,18 @@ enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_pthread_cxx_sources
463enabled_cairo_boilerplate_sources += $(cairo_boilerplate_pthread_sources) 463enabled_cairo_boilerplate_sources += $(cairo_boilerplate_pthread_sources)
464endif 464endif
465 465
466supported_cairo_boilerplate_headers += $(cairo_boilerplate_gobject_headers)
467all_cairo_boilerplate_headers += $(cairo_boilerplate_gobject_headers)
468all_cairo_boilerplate_private += $(cairo_boilerplate_gobject_private)
469all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_gobject_cxx_sources)
470all_cairo_boilerplate_sources += $(cairo_boilerplate_gobject_sources)
471ifeq ($(CAIRO_HAS_GOBJECT_FUNCTIONS),1)
472enabled_cairo_boilerplate_headers += $(cairo_boilerplate_gobject_headers)
473enabled_cairo_boilerplate_private += $(cairo_boilerplate_gobject_private)
474enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_gobject_cxx_sources)
475enabled_cairo_boilerplate_sources += $(cairo_boilerplate_gobject_sources)
476endif
477
466all_cairo_boilerplate_private += $(cairo_boilerplate_trace_private) $(cairo_boilerplate_trace_headers) 478all_cairo_boilerplate_private += $(cairo_boilerplate_trace_private) $(cairo_boilerplate_trace_headers)
467all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_trace_cxx_sources) 479all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_trace_cxx_sources)
468all_cairo_boilerplate_sources += $(cairo_boilerplate_trace_sources) 480all_cairo_boilerplate_sources += $(cairo_boilerplate_trace_sources)
diff --git a/build/Makefile.win32.features b/build/Makefile.win32.features
index 7e6061774..c8f4a7c5f 100644
--- a/build/Makefile.win32.features
+++ b/build/Makefile.win32.features
@@ -35,6 +35,7 @@ CAIRO_HAS_TEST_SURFACES=0
35CAIRO_HAS_TEE_SURFACE=0 35CAIRO_HAS_TEE_SURFACE=0
36CAIRO_HAS_XML_SURFACE=0 36CAIRO_HAS_XML_SURFACE=0
37CAIRO_HAS_PTHREAD=0 37CAIRO_HAS_PTHREAD=0
38CAIRO_HAS_GOBJECT_FUNCTIONS=1
38CAIRO_HAS_TRACE=0 39CAIRO_HAS_TRACE=0
39CAIRO_HAS_INTERPRETER=1 40CAIRO_HAS_INTERPRETER=1
40CAIRO_HAS_SYMBOL_LOOKUP=0 41CAIRO_HAS_SYMBOL_LOOKUP=0
diff --git a/build/Makefile.win32.features-h b/build/Makefile.win32.features-h
index 2106f020b..f5cbcf1a0 100644
--- a/build/Makefile.win32.features-h
+++ b/build/Makefile.win32.features-h
@@ -113,6 +113,9 @@ endif
113ifeq ($(CAIRO_HAS_PTHREAD),1) 113ifeq ($(CAIRO_HAS_PTHREAD),1)
114 @echo "#define CAIRO_HAS_PTHREAD 1" >> src/cairo-features.h 114 @echo "#define CAIRO_HAS_PTHREAD 1" >> src/cairo-features.h
115endif 115endif
116ifeq ($(CAIRO_HAS_GOBJECT_FUNCTIONS),1)
117 @echo "#define CAIRO_HAS_GOBJECT_FUNCTIONS 1" >> src/cairo-features.h
118endif
116ifeq ($(CAIRO_HAS_TRACE),1) 119ifeq ($(CAIRO_HAS_TRACE),1)
117 @echo "#define CAIRO_HAS_TRACE 1" >> src/cairo-features.h 120 @echo "#define CAIRO_HAS_TRACE 1" >> src/cairo-features.h
118endif 121endif
diff --git a/configure.ac b/configure.ac
index e75f0db19..3c3084144 100644
--- a/configure.ac
+++ b/configure.ac
@@ -652,6 +652,15 @@ AC_SUBST(real_pthread_LIBS)
652 652
653 653
654dnl =========================================================================== 654dnl ===========================================================================
655dnl Build gobject integration library
656
657CAIRO_ENABLE_FUNCTIONS(gobject, gobject, yes, [
658 gobject_REQUIRES="gobject-2.0"
659 PKG_CHECK_MODULES(gobject, $gobject_REQUIRES, , [AC_MSG_RESULT(no)
660 use_gobject="no (requires $gobject_REQUIRES http://download.gnome.org/pub/GNOME/sources/glib/)"])
661])
662
663dnl ===========================================================================
655dnl Default to quick testing during development, but force a full test before 664dnl Default to quick testing during development, but force a full test before
656dnl release 665dnl release
657 666
@@ -791,6 +800,7 @@ test/pdiff/Makefile
791perf/Makefile 800perf/Makefile
792util/Makefile 801util/Makefile
793util/cairo-fdr/Makefile 802util/cairo-fdr/Makefile
803util/cairo-gobject/Makefile
794util/cairo-script/Makefile 804util/cairo-script/Makefile
795util/cairo-script/examples/Makefile 805util/cairo-script/examples/Makefile
796util/cairo-sphinx/Makefile 806util/cairo-sphinx/Makefile
diff --git a/src/Makefile.win32.features b/src/Makefile.win32.features
index 4e3b74a93..fb47816f3 100644
--- a/src/Makefile.win32.features
+++ b/src/Makefile.win32.features
@@ -597,6 +597,22 @@ enabled_cairo_cxx_sources += $(cairo_pthread_cxx_sources)
597enabled_cairo_sources += $(cairo_pthread_sources) 597enabled_cairo_sources += $(cairo_pthread_sources)
598endif 598endif
599 599
600supported_cairo_headers += $(cairo_gobject_headers)
601all_cairo_headers += $(cairo_gobject_headers)
602all_cairo_private += $(cairo_gobject_private)
603all_cairo_cxx_sources += $(cairo_gobject_cxx_sources)
604all_cairo_sources += $(cairo_gobject_sources)
605ifeq ($(CAIRO_HAS_GOBJECT_FUNCTIONS),1)
606enabled_cairo_headers += $(cairo_gobject_headers)
607enabled_cairo_private += $(cairo_gobject_private)
608enabled_cairo_cxx_sources += $(cairo_gobject_cxx_sources)
609enabled_cairo_sources += $(cairo_gobject_sources)
610endif
611all_cairo_pkgconf += cairo-gobject.pc
612ifeq ($(CAIRO_HAS_GOBJECT_FUNCTIONS),1)
613enabled_cairo_pkgconf += cairo-gobject.pc
614endif
615
600all_cairo_private += $(cairo_trace_private) $(cairo_trace_headers) 616all_cairo_private += $(cairo_trace_private) $(cairo_trace_headers)
601all_cairo_cxx_sources += $(cairo_trace_cxx_sources) 617all_cairo_cxx_sources += $(cairo_trace_cxx_sources)
602all_cairo_sources += $(cairo_trace_sources) 618all_cairo_sources += $(cairo_trace_sources)
diff --git a/util/Makefile.am b/util/Makefile.am
index 4394fe3f1..08267637a 100644
--- a/util/Makefile.am
+++ b/util/Makefile.am
@@ -2,6 +2,10 @@ include $(top_srcdir)/build/Makefile.am.common
2 2
3SUBDIRS = . 3SUBDIRS = .
4 4
5if CAIRO_HAS_GOBJECT_FUNCTIONS
6SUBDIRS += cairo-gobject
7endif
8
5if CAIRO_HAS_INTERPRETER 9if CAIRO_HAS_INTERPRETER
6SUBDIRS += cairo-script 10SUBDIRS += cairo-script
7endif 11endif
diff --git a/util/cairo-gobject/Makefile.am b/util/cairo-gobject/Makefile.am
new file mode 100644
index 000000000..22c1a278a
--- /dev/null
+++ b/util/cairo-gobject/Makefile.am
@@ -0,0 +1,15 @@
1lib_LTLIBRARIES = libcairo-gobject.la
2
3AM_CPPFLAGS = -I$(top_srcdir)/src -I$(top_builddir)/src
4
5cairoincludedir=$(includedir)/cairo
6cairoinclude_HEADERS = cairo-gobject.h
7libcairo_gobject_la_SOURCES = \
8 cairo-gobject-enums.c \
9 cairo-gobject-structs.c \
10 $(NULL)
11
12libcairo_gobject_la_CFLAGS = $(CAIRO_CFLAGS) $(GOBJECT_CFLAGS)
13libcairo_gobject_la_LDFLAGS = -version-info $(CAIRO_LIBTOOL_VERSION_INFO) -no-undefined $(export_symbols)
14libcairo_gobject_la_LIBADD = $(top_builddir)/src/libcairo.la $(CAIRO_LIBS) $(GOBJECT_LIBS)
15
diff --git a/util/cairo-gobject/cairo-gobject-enums.c b/util/cairo-gobject/cairo-gobject-enums.c
new file mode 100644
index 000000000..c91cfea54
--- /dev/null
+++ b/util/cairo-gobject/cairo-gobject-enums.c
@@ -0,0 +1,519 @@
1
2/* Generated data (by glib-mkenums) */
3
4#ifdef HAVE_CONFIG_H
5#include "config.h"
6#endif
7
8#include "cairo-gobject.h"
9
10GType
11cairo_gobject_status_get_type (void)
12{
13 static volatile gsize type_volatile = 0;
14 if (g_once_init_enter (&type_volatile)) {
15 static const GEnumValue values[] = {
16 { CAIRO_STATUS_SUCCESS, "CAIRO_STATUS_SUCCESS", "success" },
17 { CAIRO_STATUS_NO_MEMORY, "CAIRO_STATUS_NO_MEMORY", "no-memory" },
18 { CAIRO_STATUS_INVALID_RESTORE, "CAIRO_STATUS_INVALID_RESTORE", "invalid-restore" },
19 { CAIRO_STATUS_INVALID_POP_GROUP, "CAIRO_STATUS_INVALID_POP_GROUP", "invalid-pop-group" },
20 { CAIRO_STATUS_NO_CURRENT_POINT, "CAIRO_STATUS_NO_CURRENT_POINT", "no-current-point" },
21 { CAIRO_STATUS_INVALID_MATRIX, "CAIRO_STATUS_INVALID_MATRIX", "invalid-matrix" },
22 { CAIRO_STATUS_INVALID_STATUS, "CAIRO_STATUS_INVALID_STATUS", "invalid-status" },
23 { CAIRO_STATUS_NULL_POINTER, "CAIRO_STATUS_NULL_POINTER", "null-pointer" },
24 { CAIRO_STATUS_INVALID_STRING, "CAIRO_STATUS_INVALID_STRING", "invalid-string" },
25 { CAIRO_STATUS_INVALID_PATH_DATA, "CAIRO_STATUS_INVALID_PATH_DATA", "invalid-path-data" },
26 { CAIRO_STATUS_READ_ERROR, "CAIRO_STATUS_READ_ERROR", "read-error" },
27 { CAIRO_STATUS_WRITE_ERROR, "CAIRO_STATUS_WRITE_ERROR", "write-error" },
28 { CAIRO_STATUS_SURFACE_FINISHED, "CAIRO_STATUS_SURFACE_FINISHED", "surface-finished" },
29 { CAIRO_STATUS_SURFACE_TYPE_MISMATCH, "CAIRO_STATUS_SURFACE_TYPE_MISMATCH", "surface-type-mismatch" },
30 { CAIRO_STATUS_PATTERN_TYPE_MISMATCH, "CAIRO_STATUS_PATTERN_TYPE_MISMATCH", "pattern-type-mismatch" },
31 { CAIRO_STATUS_INVALID_CONTENT, "CAIRO_STATUS_INVALID_CONTENT", "invalid-content" },
32 { CAIRO_STATUS_INVALID_FORMAT, "CAIRO_STATUS_INVALID_FORMAT", "invalid-format" },
33 { CAIRO_STATUS_INVALID_VISUAL, "CAIRO_STATUS_INVALID_VISUAL", "invalid-visual" },
34 { CAIRO_STATUS_FILE_NOT_FOUND, "CAIRO_STATUS_FILE_NOT_FOUND", "file-not-found" },
35 { CAIRO_STATUS_INVALID_DASH, "CAIRO_STATUS_INVALID_DASH", "invalid-dash" },
36 { CAIRO_STATUS_INVALID_DSC_COMMENT, "CAIRO_STATUS_INVALID_DSC_COMMENT", "invalid-dsc-comment" },
37 { CAIRO_STATUS_INVALID_INDEX, "CAIRO_STATUS_INVALID_INDEX", "invalid-index" },
38 { CAIRO_STATUS_CLIP_NOT_REPRESENTABLE, "CAIRO_STATUS_CLIP_NOT_REPRESENTABLE", "clip-not-representable" },
39 { CAIRO_STATUS_TEMP_FILE_ERROR, "CAIRO_STATUS_TEMP_FILE_ERROR", "temp-file-error" },
40 { CAIRO_STATUS_INVALID_STRIDE, "CAIRO_STATUS_INVALID_STRIDE", "invalid-stride" },
41 { CAIRO_STATUS_FONT_TYPE_MISMATCH, "CAIRO_STATUS_FONT_TYPE_MISMATCH", "font-type-mismatch" },
42 { CAIRO_STATUS_USER_FONT_IMMUTABLE, "CAIRO_STATUS_USER_FONT_IMMUTABLE", "user-font-immutable" },
43 { CAIRO_STATUS_USER_FONT_ERROR, "CAIRO_STATUS_USER_FONT_ERROR", "user-font-error" },
44 { CAIRO_STATUS_NEGATIVE_COUNT, "CAIRO_STATUS_NEGATIVE_COUNT", "negative-count" },
45 { CAIRO_STATUS_INVALID_CLUSTERS, "CAIRO_STATUS_INVALID_CLUSTERS", "invalid-clusters" },
46 { CAIRO_STATUS_INVALID_SLANT, "CAIRO_STATUS_INVALID_SLANT", "invalid-slant" },
47 { CAIRO_STATUS_INVALID_WEIGHT, "CAIRO_STATUS_INVALID_WEIGHT", "invalid-weight" },
48 { CAIRO_STATUS_INVALID_SIZE, "CAIRO_STATUS_INVALID_SIZE", "invalid-size" },
49 { CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED, "CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED", "user-font-not-implemented" },
50 { CAIRO_STATUS_DEVICE_TYPE_MISMATCH, "CAIRO_STATUS_DEVICE_TYPE_MISMATCH", "device-type-mismatch" },
51 { CAIRO_STATUS_DEVICE_ERROR, "CAIRO_STATUS_DEVICE_ERROR", "device-error" },
52 { CAIRO_STATUS_LAST_STATUS, "CAIRO_STATUS_LAST_STATUS", "last-status" },
53 { 0, NULL, NULL }
54 };
55 GType type = g_enum_register_static (g_intern_static_string ("cairo_status_t"), values);
56
57 g_once_init_leave (&type_volatile, type);
58 }
59 return type_volatile;
60}
61
62GType
63cairo_gobject_content_get_type (void)
64{
65 static volatile gsize type_volatile = 0;
66 if (g_once_init_enter (&type_volatile)) {
67 static const GEnumValue values[] = {
68 { CAIRO_CONTENT_COLOR, "CAIRO_CONTENT_COLOR", "color" },
69 { CAIRO_CONTENT_ALPHA, "CAIRO_CONTENT_ALPHA", "alpha" },
70 { CAIRO_CONTENT_COLOR_ALPHA, "CAIRO_CONTENT_COLOR_ALPHA", "color-alpha" },
71 { 0, NULL, NULL }
72 };
73 GType type = g_enum_register_static (g_intern_static_string ("cairo_content_t"), values);
74
75 g_once_init_leave (&type_volatile, type);
76 }
77 return type_volatile;
78}
79
80GType
81cairo_gobject_operator_get_type (void)
82{
83 static volatile gsize type_volatile = 0;
84 if (g_once_init_enter (&type_volatile)) {
85 static const GEnumValue values[] = {
86 { CAIRO_OPERATOR_CLEAR, "CAIRO_OPERATOR_CLEAR", "clear" },
87 { CAIRO_OPERATOR_SOURCE, "CAIRO_OPERATOR_SOURCE", "source" },
88 { CAIRO_OPERATOR_OVER, "CAIRO_OPERATOR_OVER", "over" },
89 { CAIRO_OPERATOR_IN, "CAIRO_OPERATOR_IN", "in" },
90 { CAIRO_OPERATOR_OUT, "CAIRO_OPERATOR_OUT", "out" },
91 { CAIRO_OPERATOR_ATOP, "CAIRO_OPERATOR_ATOP", "atop" },
92 { CAIRO_OPERATOR_DEST, "CAIRO_OPERATOR_DEST", "dest" },
93 { CAIRO_OPERATOR_DEST_OVER, "CAIRO_OPERATOR_DEST_OVER", "dest-over" },
94 { CAIRO_OPERATOR_DEST_IN, "CAIRO_OPERATOR_DEST_IN", "dest-in" },
95 { CAIRO_OPERATOR_DEST_OUT, "CAIRO_OPERATOR_DEST_OUT", "dest-out" },
96 { CAIRO_OPERATOR_DEST_ATOP, "CAIRO_OPERATOR_DEST_ATOP", "dest-atop" },
97 { CAIRO_OPERATOR_XOR, "CAIRO_OPERATOR_XOR", "xor" },
98 { CAIRO_OPERATOR_ADD, "CAIRO_OPERATOR_ADD", "add" },
99 { CAIRO_OPERATOR_SATURATE, "CAIRO_OPERATOR_SATURATE", "saturate" },
100 { CAIRO_OPERATOR_MULTIPLY, "CAIRO_OPERATOR_MULTIPLY", "multiply" },
101 { CAIRO_OPERATOR_SCREEN, "CAIRO_OPERATOR_SCREEN", "screen" },
102 { CAIRO_OPERATOR_OVERLAY, "CAIRO_OPERATOR_OVERLAY", "overlay" },
103 { CAIRO_OPERATOR_DARKEN, "CAIRO_OPERATOR_DARKEN", "darken" },
104 { CAIRO_OPERATOR_LIGHTEN, "CAIRO_OPERATOR_LIGHTEN", "lighten" },
105 { CAIRO_OPERATOR_COLOR_DODGE, "CAIRO_OPERATOR_COLOR_DODGE", "color-dodge" },
106 { CAIRO_OPERATOR_COLOR_BURN, "CAIRO_OPERATOR_COLOR_BURN", "color-burn" },
107 { CAIRO_OPERATOR_HARD_LIGHT, "CAIRO_OPERATOR_HARD_LIGHT", "hard-light" },
108 { CAIRO_OPERATOR_SOFT_LIGHT, "CAIRO_OPERATOR_SOFT_LIGHT", "soft-light" },
109 { CAIRO_OPERATOR_DIFFERENCE, "CAIRO_OPERATOR_DIFFERENCE", "difference" },
110 { CAIRO_OPERATOR_EXCLUSION, "CAIRO_OPERATOR_EXCLUSION", "exclusion" },
111 { CAIRO_OPERATOR_HSL_HUE, "CAIRO_OPERATOR_HSL_HUE", "hsl-hue" },
112 { CAIRO_OPERATOR_HSL_SATURATION, "CAIRO_OPERATOR_HSL_SATURATION", "hsl-saturation" },
113 { CAIRO_OPERATOR_HSL_COLOR, "CAIRO_OPERATOR_HSL_COLOR", "hsl-color" },
114 { CAIRO_OPERATOR_HSL_LUMINOSITY, "CAIRO_OPERATOR_HSL_LUMINOSITY", "hsl-luminosity" },
115 { 0, NULL, NULL }
116 };
117 GType type = g_enum_register_static (g_intern_static_string ("cairo_operator_t"), values);
118
119 g_once_init_leave (&type_volatile, type);
120 }
121 return type_volatile;
122}
123
124GType
125cairo_gobject_antialias_get_type (void)
126{
127 static volatile gsize type_volatile = 0;
128 if (g_once_init_enter (&type_volatile)) {
129 static const GEnumValue values[] = {
130 { CAIRO_ANTIALIAS_DEFAULT, "CAIRO_ANTIALIAS_DEFAULT", "default" },
131 { CAIRO_ANTIALIAS_NONE, "CAIRO_ANTIALIAS_NONE", "none" },
132 { CAIRO_ANTIALIAS_GRAY, "CAIRO_ANTIALIAS_GRAY", "gray" },
133 { CAIRO_ANTIALIAS_SUBPIXEL, "CAIRO_ANTIALIAS_SUBPIXEL", "subpixel" },
134 { 0, NULL, NULL }
135 };
136 GType type = g_enum_register_static (g_intern_static_string ("cairo_antialias_t"), values);
137
138 g_once_init_leave (&type_volatile, type);
139 }
140 return type_volatile;
141}
142
143GType
144cairo_gobject_fill_rule_get_type (void)
145{
146 static volatile gsize type_volatile = 0;
147 if (g_once_init_enter (&type_volatile)) {
148 static const GEnumValue values[] = {
149 { CAIRO_FILL_RULE_WINDING, "CAIRO_FILL_RULE_WINDING", "winding" },
150 { CAIRO_FILL_RULE_EVEN_ODD, "CAIRO_FILL_RULE_EVEN_ODD", "even-odd" },
151 { 0, NULL, NULL }
152 };
153 GType type = g_enum_register_static (g_intern_static_string ("cairo_fill_rule_t"), values);
154
155 g_once_init_leave (&type_volatile, type);
156 }
157 return type_volatile;
158}
159
160GType
161cairo_gobject_line_cap_get_type (void)
162{
163 static volatile gsize type_volatile = 0;
164 if (g_once_init_enter (&type_volatile)) {
165 static const GEnumValue values[] = {
166 { CAIRO_LINE_CAP_BUTT, "CAIRO_LINE_CAP_BUTT", "butt" },
167 { CAIRO_LINE_CAP_ROUND, "CAIRO_LINE_CAP_ROUND", "round" },
168 { CAIRO_LINE_CAP_SQUARE, "CAIRO_LINE_CAP_SQUARE", "square" },
169 { 0, NULL, NULL }
170 };
171 GType type = g_enum_register_static (g_intern_static_string ("cairo_line_cap_t"), values);
172
173 g_once_init_leave (&type_volatile, type);
174 }
175 return type_volatile;
176}
177
178GType
179cairo_gobject_line_join_get_type (void)
180{
181 static volatile gsize type_volatile = 0;
182 if (g_once_init_enter (&type_volatile)) {
183 static const GEnumValue values[] = {
184 { CAIRO_LINE_JOIN_MITER, "CAIRO_LINE_JOIN_MITER", "miter" },
185 { CAIRO_LINE_JOIN_ROUND, "CAIRO_LINE_JOIN_ROUND", "round" },
186 { CAIRO_LINE_JOIN_BEVEL, "CAIRO_LINE_JOIN_BEVEL", "bevel" },
187 { 0, NULL, NULL }
188 };
189 GType type = g_enum_register_static (g_intern_static_string ("cairo_line_join_t"), values);
190
191 g_once_init_leave (&type_volatile, type);
192 }
193 return type_volatile;
194}
195
196GType
197cairo_gobject_text_cluster_flags_get_type (void)
198{
199 static volatile gsize type_volatile = 0;
200 if (g_once_init_enter (&type_volatile)) {
201 static const GEnumValue values[] = {
202 { CAIRO_TEXT_CLUSTER_FLAG_BACKWARD, "CAIRO_TEXT_CLUSTER_FLAG_BACKWARD", "backward" },
203 { 0, NULL, NULL }
204 };
205 GType type = g_enum_register_static (g_intern_static_string ("cairo_text_cluster_flags_t"), values);
206
207 g_once_init_leave (&type_volatile, type);
208 }
209 return type_volatile;
210}
211
212GType
213cairo_gobject_font_slant_get_type (void)
214{
215 static volatile gsize type_volatile = 0;
216 if (g_once_init_enter (&type_volatile)) {
217 static const GEnumValue values[] = {
218 { CAIRO_FONT_SLANT_NORMAL, "CAIRO_FONT_SLANT_NORMAL", "normal" },
219 { CAIRO_FONT_SLANT_ITALIC, "CAIRO_FONT_SLANT_ITALIC", "italic" },
220 { CAIRO_FONT_SLANT_OBLIQUE, "CAIRO_FONT_SLANT_OBLIQUE", "oblique" },
221 { 0, NULL, NULL }
222 };
223 GType type = g_enum_register_static (g_intern_static_string ("cairo_font_slant_t"), values);
224
225 g_once_init_leave (&type_volatile, type);
226 }
227 return type_volatile;
228}
229
230GType
231cairo_gobject_font_weight_get_type (void)
232{
233 static volatile gsize type_volatile = 0;
234 if (g_once_init_enter (&type_volatile)) {
235 static const GEnumValue values[] = {
236 { CAIRO_FONT_WEIGHT_NORMAL, "CAIRO_FONT_WEIGHT_NORMAL", "normal" },
237 { CAIRO_FONT_WEIGHT_BOLD, "CAIRO_FONT_WEIGHT_BOLD", "bold" },
238 { 0, NULL, NULL }
239 };
240 GType type = g_enum_register_static (g_intern_static_string ("cairo_font_weight_t"), values);
241
242 g_once_init_leave (&type_volatile, type);
243 }
244 return type_volatile;
245}
246
247GType
248cairo_gobject_subpixel_order_get_type (void)
249{
250 static volatile gsize type_volatile = 0;
251 if (g_once_init_enter (&type_volatile)) {
252 static const GEnumValue values[] = {
253 { CAIRO_SUBPIXEL_ORDER_DEFAULT, "CAIRO_SUBPIXEL_ORDER_DEFAULT", "default" },
254 { CAIRO_SUBPIXEL_ORDER_RGB, "CAIRO_SUBPIXEL_ORDER_RGB", "rgb" },
255 { CAIRO_SUBPIXEL_ORDER_BGR, "CAIRO_SUBPIXEL_ORDER_BGR", "bgr" },
256 { CAIRO_SUBPIXEL_ORDER_VRGB, "CAIRO_SUBPIXEL_ORDER_VRGB", "vrgb" },
257 { CAIRO_SUBPIXEL_ORDER_VBGR, "CAIRO_SUBPIXEL_ORDER_VBGR", "vbgr" },
258 { 0, NULL, NULL }
259 };
260 GType type = g_enum_register_static (g_intern_static_string ("cairo_subpixel_order_t"), values);
261
262 g_once_init_leave (&type_volatile, type);
263 }
264 return type_volatile;
265}
266
267GType
268cairo_gobject_hint_style_get_type (void)
269{
270 static volatile gsize type_volatile = 0;
271 if (g_once_init_enter (&type_volatile)) {
272 static const GEnumValue values[] = {
273 { CAIRO_HINT_STYLE_DEFAULT, "CAIRO_HINT_STYLE_DEFAULT", "default" },
274 { CAIRO_HINT_STYLE_NONE, "CAIRO_HINT_STYLE_NONE", "none" },
275 { CAIRO_HINT_STYLE_SLIGHT, "CAIRO_HINT_STYLE_SLIGHT", "slight" },
276 { CAIRO_HINT_STYLE_MEDIUM, "CAIRO_HINT_STYLE_MEDIUM", "medium" },
277 { CAIRO_HINT_STYLE_FULL, "CAIRO_HINT_STYLE_FULL", "full" },
278 { 0, NULL, NULL }
279 };
280 GType type = g_enum_register_static (g_intern_static_string ("cairo_hint_style_t"), values);
281
282 g_once_init_leave (&type_volatile, type);
283 }
284 return type_volatile;
285}
286
287GType
288cairo_gobject_hint_metrics_get_type (void)
289{
290 static volatile gsize type_volatile = 0;
291 if (g_once_init_enter (&type_volatile)) {
292 static const GEnumValue values[] = {
293 { CAIRO_HINT_METRICS_DEFAULT, "CAIRO_HINT_METRICS_DEFAULT", "default" },
294 { CAIRO_HINT_METRICS_OFF, "CAIRO_HINT_METRICS_OFF", "off" },
295 { CAIRO_HINT_METRICS_ON, "CAIRO_HINT_METRICS_ON", "on" },
296 { 0, NULL, NULL }
297 };
298 GType type = g_enum_register_static (g_intern_static_string ("cairo_hint_metrics_t"), values);
299
300 g_once_init_leave (&type_volatile, type);
301 }
302 return type_volatile;
303}
304
305GType
306cairo_gobject_font_type_get_type (void)
307{
308 static volatile gsize type_volatile = 0;
309 if (g_once_init_enter (&type_volatile)) {
310 static const GEnumValue values[] = {
311 { CAIRO_FONT_TYPE_TOY, "CAIRO_FONT_TYPE_TOY", "toy" },
312 { CAIRO_FONT_TYPE_FT, "CAIRO_FONT_TYPE_FT", "ft" },
313 { CAIRO_FONT_TYPE_WIN32, "CAIRO_FONT_TYPE_WIN32", "win32" },
314 { CAIRO_FONT_TYPE_QUARTZ, "CAIRO_FONT_TYPE_QUARTZ", "quartz" },
315 { CAIRO_FONT_TYPE_USER, "CAIRO_FONT_TYPE_USER", "user" },
316 { 0, NULL, NULL }
317 };
318 GType type = g_enum_register_static (g_intern_static_string ("cairo_font_type_t"), values);
319
320 g_once_init_leave (&type_volatile, type);
321 }
322 return type_volatile;
323}
324
325GType
326cairo_gobject_path_data_type_get_type (void)
327{
328 static volatile gsize type_volatile = 0;
329 if (g_once_init_enter (&type_volatile)) {
330 static const GEnumValue values[] = {
331 { CAIRO_PATH_MOVE_TO, "CAIRO_PATH_MOVE_TO", "move-to" },
332 { CAIRO_PATH_LINE_TO, "CAIRO_PATH_LINE_TO", "line-to" },
333 { CAIRO_PATH_CURVE_TO, "CAIRO_PATH_CURVE_TO", "curve-to" },
334 { CAIRO_PATH_CLOSE_PATH, "CAIRO_PATH_CLOSE_PATH", "close-path" },
335 { 0, NULL, NULL }
336 };
337 GType type = g_enum_register_static (g_intern_static_string ("cairo_path_data_type_t"), values);
338
339 g_once_init_leave (&type_volatile, type);
340 }
341 return type_volatile;
342}
343
344GType
345cairo_gobject_device_type_get_type (void)
346{
347 static volatile gsize type_volatile = 0;
348 if (g_once_init_enter (&type_volatile)) {
349 static const GEnumValue values[] = {
350 { CAIRO_DEVICE_TYPE_IMAGE, "CAIRO_DEVICE_TYPE_IMAGE", "image" },
351 { CAIRO_DEVICE_TYPE_PDF, "CAIRO_DEVICE_TYPE_PDF", "pdf" },
352 { CAIRO_DEVICE_TYPE_PS, "CAIRO_DEVICE_TYPE_PS", "ps" },
353 { CAIRO_DEVICE_TYPE_XLIB, "CAIRO_DEVICE_TYPE_XLIB", "xlib" },
354 { CAIRO_DEVICE_TYPE_XCB, "CAIRO_DEVICE_TYPE_XCB", "xcb" },
355 { CAIRO_DEVICE_TYPE_GLITZ, "CAIRO_DEVICE_TYPE_GLITZ", "glitz" },
356 { CAIRO_DEVICE_TYPE_QUARTZ, "CAIRO_DEVICE_TYPE_QUARTZ", "quartz" },
357 { CAIRO_DEVICE_TYPE_WIN32, "CAIRO_DEVICE_TYPE_WIN32", "win32" },
358 { CAIRO_DEVICE_TYPE_BEOS, "CAIRO_DEVICE_TYPE_BEOS", "beos" },
359 { CAIRO_DEVICE_TYPE_DIRECTFB, "CAIRO_DEVICE_TYPE_DIRECTFB", "directfb" },
360 { CAIRO_DEVICE_TYPE_SVG, "CAIRO_DEVICE_TYPE_SVG", "svg" },
361 { CAIRO_DEVICE_TYPE_OS2, "CAIRO_DEVICE_TYPE_OS2", "os2" },
362 { CAIRO_DEVICE_TYPE_WIN32_PRINTING, "CAIRO_DEVICE_TYPE_WIN32_PRINTING", "win32-printing" },
363 { CAIRO_DEVICE_TYPE_QUARTZ_IMAGE, "CAIRO_DEVICE_TYPE_QUARTZ_IMAGE", "quartz-image" },
364 { CAIRO_DEVICE_TYPE_SCRIPT, "CAIRO_DEVICE_TYPE_SCRIPT", "script" },
365 { CAIRO_DEVICE_TYPE_QT, "CAIRO_DEVICE_TYPE_QT", "qt" },
366 { CAIRO_DEVICE_TYPE_RECORDING, "CAIRO_DEVICE_TYPE_RECORDING", "recording" },
367 { CAIRO_DEVICE_TYPE_VG, "CAIRO_DEVICE_TYPE_VG", "vg" },
368 { CAIRO_DEVICE_TYPE_GL, "CAIRO_DEVICE_TYPE_GL", "gl" },
369 { CAIRO_DEVICE_TYPE_DRM, "CAIRO_DEVICE_TYPE_DRM", "drm" },
370 { CAIRO_DEVICE_TYPE_XML, "CAIRO_DEVICE_TYPE_XML", "xml" },
371 { CAIRO_DEVICE_TYPE_SKIA, "CAIRO_DEVICE_TYPE_SKIA", "skia" },
372 { 0, NULL, NULL }
373 };
374 GType type = g_enum_register_static (g_intern_static_string ("cairo_device_type_t"), values);
375
376 g_once_init_leave (&type_volatile, type);
377 }
378 return type_volatile;
379}
380
381GType
382cairo_gobject_surface_type_get_type (void)
383{
384 static volatile gsize type_volatile = 0;
385 if (g_once_init_enter (&type_volatile)) {
386 static const GEnumValue values[] = {
387 { CAIRO_SURFACE_TYPE_IMAGE, "CAIRO_SURFACE_TYPE_IMAGE", "image" },
388 { CAIRO_SURFACE_TYPE_PDF, "CAIRO_SURFACE_TYPE_PDF", "pdf" },
389 { CAIRO_SURFACE_TYPE_PS, "CAIRO_SURFACE_TYPE_PS", "ps" },
390 { CAIRO_SURFACE_TYPE_XLIB, "CAIRO_SURFACE_TYPE_XLIB", "xlib" },
391 { CAIRO_SURFACE_TYPE_XCB, "CAIRO_SURFACE_TYPE_XCB", "xcb" },
392 { CAIRO_SURFACE_TYPE_GLITZ, "CAIRO_SURFACE_TYPE_GLITZ", "glitz" },
393 { CAIRO_SURFACE_TYPE_QUARTZ, "CAIRO_SURFACE_TYPE_QUARTZ", "quartz" },
394 { CAIRO_SURFACE_TYPE_WIN32, "CAIRO_SURFACE_TYPE_WIN32", "win32" },
395 { CAIRO_SURFACE_TYPE_BEOS, "CAIRO_SURFACE_TYPE_BEOS", "beos" },
396 { CAIRO_SURFACE_TYPE_DIRECTFB, "CAIRO_SURFACE_TYPE_DIRECTFB", "directfb" },
397 { CAIRO_SURFACE_TYPE_SVG, "CAIRO_SURFACE_TYPE_SVG", "svg" },
398 { CAIRO_SURFACE_TYPE_OS2, "CAIRO_SURFACE_TYPE_OS2", "os2" },
399 { CAIRO_SURFACE_TYPE_WIN32_PRINTING, "CAIRO_SURFACE_TYPE_WIN32_PRINTING", "win32-printing" },
400 { CAIRO_SURFACE_TYPE_QUARTZ_IMAGE, "CAIRO_SURFACE_TYPE_QUARTZ_IMAGE", "quartz-image" },
401 { CAIRO_SURFACE_TYPE_SCRIPT, "CAIRO_SURFACE_TYPE_SCRIPT", "script" },
402 { CAIRO_SURFACE_TYPE_QT, "CAIRO_SURFACE_TYPE_QT", "qt" },
403 { CAIRO_SURFACE_TYPE_RECORDING, "CAIRO_SURFACE_TYPE_RECORDING", "recording" },
404 { CAIRO_SURFACE_TYPE_VG, "CAIRO_SURFACE_TYPE_VG", "vg" },
405 { CAIRO_SURFACE_TYPE_GL, "CAIRO_SURFACE_TYPE_GL", "gl" },
406 { CAIRO_SURFACE_TYPE_DRM, "CAIRO_SURFACE_TYPE_DRM", "drm" },
407 { CAIRO_SURFACE_TYPE_TEE, "CAIRO_SURFACE_TYPE_TEE", "tee" },
408 { CAIRO_SURFACE_TYPE_XML, "CAIRO_SURFACE_TYPE_XML", "xml" },
409 { CAIRO_SURFACE_TYPE_SKIA, "CAIRO_SURFACE_TYPE_SKIA", "skia" },
410 { 0, NULL, NULL }
411 };
412 GType type = g_enum_register_static (g_intern_static_string ("cairo_surface_type_t"), values);
413
414 g_once_init_leave (&type_volatile, type);
415 }
416 return type_volatile;
417}
418
419GType
420cairo_gobject_format_get_type (void)
421{
422 static volatile gsize type_volatile = 0;
423 if (g_once_init_enter (&type_volatile)) {
424 static const GEnumValue values[] = {
425 { CAIRO_FORMAT_INVALID, "CAIRO_FORMAT_INVALID", "invalid" },
426 { CAIRO_FORMAT_ARGB32, "CAIRO_FORMAT_ARGB32", "argb32" },
427 { CAIRO_FORMAT_RGB24, "CAIRO_FORMAT_RGB24", "rgb24" },
428 { CAIRO_FORMAT_A8, "CAIRO_FORMAT_A8", "a8" },
429 { CAIRO_FORMAT_A1, "CAIRO_FORMAT_A1", "a1" },
430 { CAIRO_FORMAT_RGB16_565, "CAIRO_FORMAT_RGB16_565", "rgb16-565" },
431 { 0, NULL, NULL }
432 };
433 GType type = g_enum_register_static (g_intern_static_string ("cairo_format_t"), values);
434
435 g_once_init_leave (&type_volatile, type);
436 }
437 return type_volatile;
438}
439
440GType
441cairo_gobject_pattern_type_get_type (void)
442{
443 static volatile gsize type_volatile = 0;
444 if (g_once_init_enter (&type_volatile)) {
445 static const GEnumValue values[] = {
446 { CAIRO_PATTERN_TYPE_SOLID, "CAIRO_PATTERN_TYPE_SOLID", "solid" },
447 { CAIRO_PATTERN_TYPE_SURFACE, "CAIRO_PATTERN_TYPE_SURFACE", "surface" },
448 { CAIRO_PATTERN_TYPE_LINEAR, "CAIRO_PATTERN_TYPE_LINEAR", "linear" },
449 { CAIRO_PATTERN_TYPE_RADIAL, "CAIRO_PATTERN_TYPE_RADIAL", "radial" },
450 { 0, NULL, NULL }
451 };
452 GType type = g_enum_register_static (g_intern_static_string ("cairo_pattern_type_t"), values);
453
454 g_once_init_leave (&type_volatile, type);
455 }
456 return type_volatile;
457}
458
459GType
460cairo_gobject_extend_get_type (void)
461{
462 static volatile gsize type_volatile = 0;
463 if (g_once_init_enter (&type_volatile)) {
464 static const GEnumValue values[] = {
465 { CAIRO_EXTEND_NONE, "CAIRO_EXTEND_NONE", "none" },
466 { CAIRO_EXTEND_REPEAT, "CAIRO_EXTEND_REPEAT", "repeat" },
467 { CAIRO_EXTEND_REFLECT, "CAIRO_EXTEND_REFLECT", "reflect" },
468 { CAIRO_EXTEND_PAD, "CAIRO_EXTEND_PAD", "pad" },
469 { 0, NULL, NULL }
470 };
471 GType type = g_enum_register_static (g_intern_static_string ("cairo_extend_t"), values);
472
473 g_once_init_leave (&type_volatile, type);
474 }
475 return type_volatile;
476}
477
478GType
479cairo_gobject_filter_get_type (void)
480{
481 static volatile gsize type_volatile = 0;
482 if (g_once_init_enter (&type_volatile)) {
483 static const GEnumValue values[] = {
484 { CAIRO_FILTER_FAST, "CAIRO_FILTER_FAST", "fast" },
485 { CAIRO_FILTER_GOOD, "CAIRO_FILTER_GOOD", "good" },
486 { CAIRO_FILTER_BEST, "CAIRO_FILTER_BEST", "best" },
487 { CAIRO_FILTER_NEAREST, "CAIRO_FILTER_NEAREST", "nearest" },
488 { CAIRO_FILTER_BILINEAR, "CAIRO_FILTER_BILINEAR", "bilinear" },
489 { CAIRO_FILTER_GAUSSIAN, "CAIRO_FILTER_GAUSSIAN", "gaussian" },
490 { 0, NULL, NULL }
491 };
492 GType type = g_enum_register_static (g_intern_static_string ("cairo_filter_t"), values);
493
494 g_once_init_leave (&type_volatile, type);
495 }
496 return type_volatile;
497}
498
499GType
500cairo_gobject_region_overlap_get_type (void)
501{
502 static volatile gsize type_volatile = 0;
503 if (g_once_init_enter (&type_volatile)) {
504 static const GEnumValue values[] = {
505 { CAIRO_REGION_OVERLAP_IN, "CAIRO_REGION_OVERLAP_IN", "in" },
506 { CAIRO_REGION_OVERLAP_OUT, "CAIRO_REGION_OVERLAP_OUT", "out" },
507 { CAIRO_REGION_OVERLAP_PART, "CAIRO_REGION_OVERLAP_PART", "part" },
508 { 0, NULL, NULL }
509 };
510 GType type = g_enum_register_static (g_intern_static_string ("cairo_region_overlap_t"), values);
511
512 g_once_init_leave (&type_volatile, type);
513 }
514 return type_volatile;
515}
516
517
518/* Generated data ends here */
519
diff --git a/util/cairo-gobject/cairo-gobject-structs.c b/util/cairo-gobject/cairo-gobject-structs.c
new file mode 100644
index 000000000..05e3ece80
--- /dev/null
+++ b/util/cairo-gobject/cairo-gobject-structs.c
@@ -0,0 +1,87 @@
1/* cairo - a vector graphics library with display and print output
2 *
3 * Copyright © 2010 Red Hat Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it either under the terms of the GNU Lesser General Public
7 * License version 2.1 as published by the Free Software Foundation
8 * (the "LGPL") or, at your option, under the terms of the Mozilla
9 * Public License Version 1.1 (the "MPL"). If you do not alter this
10 * notice, a recipient may use your version of this file under either
11 * the MPL or the LGPL.
12 *
13 * You should have received a copy of the LGPL along with this library
14 * in the file COPYING-LGPL-2.1; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
16 * You should have received a copy of the MPL along with this library
17 * in the file COPYING-MPL-1.1
18 *
19 * The contents of this file are subject to the Mozilla Public License
20 * Version 1.1 (the "License"); you may not use this file except in
21 * compliance with the License. You may obtain a copy of the License at
22 * http://www.mozilla.org/MPL/
23 *
24 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
25 * OF ANY KIND, either express or implied. See the LGPL or the MPL for
26 * the specific language governing rights and limitations.
27 *
28 * The Original Code is the cairo graphics library.
29 *
30 * The Initial Developer of the Original Code is University of Southern
31 * California.
32 *
33 * Contributor(s):
34 * Benjamin Otte <otte@redhat.com>
35 */
36
37#ifdef HAVE_CONFIG_H
38#include "config.h"
39#endif
40
41#include "cairo-gobject.h"
42
43#define CAIRO_DEFINE_BOXED(Name,underscore_name,copy_func,free_func) \
44GType \
45underscore_name ## _get_type (void) \
46{ \
47 static volatile gsize type_volatile = 0; \
48 if (g_once_init_enter (&type_volatile)) { \
49 GType type = g_boxed_type_register_static (g_intern_static_string (Name), \
50 (GBoxedCopyFunc)copy_func, \
51 (GBoxedFreeFunc)free_func); \
52 g_once_init_leave (&type_volatile, type); \
53 } \
54 return type_volatile; \
55}
56
57CAIRO_DEFINE_BOXED ("CairoContext", cairo_gobject_context,
58 cairo_reference, cairo_destroy);
59CAIRO_DEFINE_BOXED ("CairoDevice", cairo_gobject_device,
60 cairo_device_reference, cairo_device_destroy);
61CAIRO_DEFINE_BOXED ("CairoPattern", cairo_gobject_pattern,
62 cairo_pattern_reference, cairo_pattern_destroy);
63CAIRO_DEFINE_BOXED ("CairoSurface", cairo_gobject_surface,
64 cairo_surface_reference, cairo_surface_destroy);
65CAIRO_DEFINE_BOXED ("CairoScaledFont", cairo_gobject_scaled_font,
66 cairo_scaled_font_reference, cairo_scaled_font_destroy);
67CAIRO_DEFINE_BOXED ("CairoFontFace", cairo_gobject_font_face,
68 cairo_font_face_reference, cairo_font_face_destroy);
69CAIRO_DEFINE_BOXED ("CairoFontOptions", cairo_gobject_font_options,
70 cairo_font_options_copy, cairo_font_options_destroy);
71CAIRO_DEFINE_BOXED ("CairoRegion", cairo_gobject_region,
72 cairo_region_reference, cairo_region_destroy);
73
74#define COPY_FUNC(name) \
75static gpointer \
76cairo_gobject_cairo_ ## name ## _copy (gpointer src) \
77{ \
78 return g_memdup (src, sizeof (cairo_ ## name ## _t)); \
79}
80
81COPY_FUNC (rectangle)
82CAIRO_DEFINE_BOXED ("CairoRectangle", cairo_gobject_rectangle,
83 cairo_gobject_cairo_rectangle_copy, g_free);
84COPY_FUNC (rectangle_int)
85CAIRO_DEFINE_BOXED ("CairoRectangleInt", cairo_gobject_rectangle_int,
86 cairo_gobject_cairo_rectangle_int_copy, g_free);
87
diff --git a/util/cairo-gobject/cairo-gobject.h b/util/cairo-gobject/cairo-gobject.h
new file mode 100644
index 000000000..2db4fd11f
--- /dev/null
+++ b/util/cairo-gobject/cairo-gobject.h
@@ -0,0 +1,186 @@
1/* cairo - a vector graphics library with display and print output
2 *
3 * Copyright © 2010 Red Hat Inc.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it either under the terms of the GNU Lesser General Public
7 * License version 2.1 as published by the Free Software Foundation
8 * (the "LGPL") or, at your option, under the terms of the Mozilla
9 * Public License Version 1.1 (the "MPL"). If you do not alter this
10 * notice, a recipient may use your version of this file under either
11 * the MPL or the LGPL.
12 *
13 * You should have received a copy of the LGPL along with this library
14 * in the file COPYING-LGPL-2.1; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
16 * You should have received a copy of the MPL along with this library
17 * in the file COPYING-MPL-1.1
18 *
19 * The contents of this file are subject to the Mozilla Public License
20 * Version 1.1 (the "License"); you may not use this file except in
21 * compliance with the License. You may obtain a copy of the License at
22 * http://www.mozilla.org/MPL/
23 *
24 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
25 * OF ANY KIND, either express or implied. See the LGPL or the MPL for
26 * the specific language governing rights and limitations.
27 *
28 * The Original Code is the cairo graphics library.
29 *
30 * The Initial Developer of the Original Code is University of Southern
31 * California.
32 *
33 * Contributor(s):
34 * Benjamin Otte <otte@redhat.com>
35 */
36
37#ifndef CAIRO_GOBJECT_H
38#define CAIRO_GOBJECT_H
39
40#include <cairo.h>
41
42#if CAIRO_HAS_GOBJECT_FUNCTIONS
43
44#include <glib-object.h>
45
46CAIRO_BEGIN_DECLS
47
48/* structs */
49
50#define CAIRO_GOBJECT_TYPE_CONTEXT cairo_gobject_context_get_type
51cairo_public GType
52cairo_gobject_context_get_type (void);
53
54#define CAIRO_GOBJECT_TYPE_DEVICE cairo_gobject_device_get_type
55cairo_public GType
56cairo_gobject_device_get_type (void);
57
58#define CAIRO_GOBJECT_TYPE_PATTERN cairo_gobject_pattern_get_type
59cairo_public GType
60cairo_gobject_pattern_get_type (void);
61
62#define CAIRO_GOBJECT_TYPE_SURFACE cairo_gobject_surface_get_type
63cairo_public GType
64cairo_gobject_surface_get_type (void);
65
66#define CAIRO_GOBJECT_TYPE_RECTANGLE cairo_gobject_rectangle_get_type
67cairo_public GType
68cairo_gobject_rectangle_get_type (void);
69
70#define CAIRO_GOBJECT_TYPE_SCALED_FONT cairo_gobject_scaled_font_get_type
71cairo_public GType
72cairo_gobject_scaled_font_get_type (void);
73
74#define CAIRO_GOBJECT_TYPE_FONT_FACE cairo_gobject_font_face_get_type
75cairo_public GType
76cairo_gobject_font_face_get_type (void);
77
78#define CAIRO_GOBJECT_TYPE_FONT_OPTIONS cairo_gobject_font_options_get_type
79cairo_public GType
80cairo_gobject_font_options_get_type (void);
81
82#define CAIRO_GOBJECT_TYPE_RECTANGLE_INT cairo_gobject_rectangle_int_get_type
83cairo_public GType
84cairo_gobject_rectangle_int_get_type (void);
85
86#define CAIRO_GOBJECT_TYPE_REGION cairo_gobject_region_get_type
87cairo_public GType
88cairo_gobject_region_get_type (void);
89
90/* enums */
91
92#define CAIRO_GOBJECT_TYPE_STATUS cairo_gobject_status_get_type
93cairo_public GType
94cairo_gobject_status_get_type (void);
95
96#define CAIRO_GOBJECT_TYPE_CONTENT cairo_gobject_content_get_type
97cairo_public GType
98cairo_gobject_content_get_type (void);
99
100#define CAIRO_GOBJECT_TYPE_OPERATOR cairo_gobject_operator_get_type
101cairo_public GType
102cairo_gobject_operator_get_type (void);
103
104#define CAIRO_GOBJECT_TYPE_ANTIALIAS cairo_gobject_antialias_get_type
105cairo_public GType
106cairo_gobject_antialias_get_type (void);
107
108#define CAIRO_GOBJECT_TYPE_FILL_RULE cairo_gobject_fill_rule_get_type
109cairo_public GType
110cairo_gobject_fill_rule_get_type (void);
111
112#define CAIRO_GOBJECT_TYPE_LINE_CAP cairo_gobject_line_cap_get_type
113cairo_public GType
114cairo_gobject_line_cap_get_type (void);
115
116#define CAIRO_GOBJECT_TYPE_LINE_JOIN cairo_gobject_line_join_get_type
117cairo_public GType
118cairo_gobject_line_join_get_type (void);
119
120#define CAIRO_GOBJECT_TYPE_CLUSTER_FLAGS cairo_gobject_cluster_flags_get_type
121cairo_public GType
122cairo_gobject_text_cluster_flags_get_type (void);
123
124#define CAIRO_GOBJECT_TYPE_FONT_SLANT cairo_gobject_font_slant_get_type
125cairo_public GType
126cairo_gobject_font_slant_get_type (void);
127
128#define CAIRO_GOBJECT_TYPE_FONT_WEIGHT cairo_gobject_font_weight_get_type
129cairo_public GType
130cairo_gobject_font_weight_get_type (void);
131
132#define CAIRO_GOBJECT_TYPE_SUBPIXEL_ORDER cairo_gobject_subpixel_order_get_type
133cairo_public GType
134cairo_gobject_subpixel_order_get_type (void);
135
136#define CAIRO_GOBJECT_TYPE_HINT_STYLE cairo_gobject_hint_style_get_type
137cairo_public GType
138cairo_gobject_hint_style_get_type (void);
139
140#define CAIRO_GOBJECT_TYPE_HNT_METRICS cairo_gobject_hint_metrics_get_type
141cairo_public GType
142cairo_gobject_hint_metrics_get_type (void);
143
144#define CAIRO_GOBJECT_TYPE_FONT_TYPE cairo_gobject_font_type_get_type
145cairo_public GType
146cairo_gobject_font_type_get_type (void);
147
148#define CAIRO_GOBJECT_TYPE_PATH_DATA_TYPE cairo_gobject_path_data_type_get_type
149cairo_public GType
150cairo_gobject_path_data_type_get_type (void);
151
152#define CAIRO_GOBJECT_TYPE_DEVICE_TYPE cairo_gobject_device_type_get_type
153cairo_public GType
154cairo_gobject_device_type_get_type (void);
155
156#define CAIRO_GOBJECT_TYPE_SURFACE_TYPE cairo_gobject_surface_type_get_type
157cairo_public GType
158cairo_gobject_surface_type_get_type (void);
159
160#define CAIRO_GOBJECT_TYPE_FORMAT cairo_gobject_format_get_type
161cairo_public GType
162cairo_gobject_format_get_type (void);
163
164#define CAIRO_GOBJECT_TYPE_PATTERN_TYPE cairo_gobject_pattern_type_get_type
165cairo_public GType
166cairo_gobject_pattern_type_get_type (void);
167
168#define CAIRO_GOBJECT_TYPE_EXTEND cairo_gobject_extend_get_type
169cairo_public GType
170cairo_gobject_extend_get_type (void);
171
172#define CAIRO_GOBJECT_TYPE_FILTER cairo_gobject_filter_get_type
173cairo_public GType
174cairo_gobject_filter_get_type (void);
175
176#define CAIRO_GOBJECT_TYPE_REGION_OVERLAP cairo_gobject_region_overlap_get_type
177cairo_public GType
178cairo_gobject_region_overlap_get_type (void);
179
180CAIRO_END_DECLS
181
182#else /* CAIRO_HAS_GOBJECT_FUNCTIONS */
183# error Cairo was not compiled with support for GObject
184#endif /* CAIRO_HAS_GOBJECT_FUNCTIONS */
185
186#endif /* CAIRO_GOBJECT_H */