[cairo-commit] boilerplate/Makefile.win32.features build/Makefile.win32.features build/Makefile.win32.features-h configure.ac src/Makefile.win32.features util/cairo-gobject util/Makefile.am

Benjamin Otte company at kemper.freedesktop.org
Sat Aug 7 11:22:36 PDT 2010


 boilerplate/Makefile.win32.features        |   12 
 build/Makefile.win32.features              |    1 
 build/Makefile.win32.features-h            |    3 
 configure.ac                               |   10 
 src/Makefile.win32.features                |   16 
 util/Makefile.am                           |    4 
 util/cairo-gobject/Makefile.am             |   15 
 util/cairo-gobject/cairo-gobject-enums.c   |  519 +++++++++++++++++++++++++++++
 util/cairo-gobject/cairo-gobject-structs.c |   87 ++++
 util/cairo-gobject/cairo-gobject.h         |  186 ++++++++++
 10 files changed, 853 insertions(+)

New commits:
commit 661f4859cdbc0394ed0a9db34ced0f4e2bbe78ff
Author: Benjamin Otte <otte at redhat.com>
Date:   Sat Aug 7 20:05:42 2010 +0200

    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.

diff --git a/boilerplate/Makefile.win32.features b/boilerplate/Makefile.win32.features
index ee59071..a72d233 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
 enabled_cairo_boilerplate_sources += $(cairo_boilerplate_pthread_sources)
 endif
 
+supported_cairo_boilerplate_headers += $(cairo_boilerplate_gobject_headers)
+all_cairo_boilerplate_headers += $(cairo_boilerplate_gobject_headers)
+all_cairo_boilerplate_private += $(cairo_boilerplate_gobject_private)
+all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_gobject_cxx_sources)
+all_cairo_boilerplate_sources += $(cairo_boilerplate_gobject_sources)
+ifeq ($(CAIRO_HAS_GOBJECT_FUNCTIONS),1)
+enabled_cairo_boilerplate_headers += $(cairo_boilerplate_gobject_headers)
+enabled_cairo_boilerplate_private += $(cairo_boilerplate_gobject_private)
+enabled_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_gobject_cxx_sources)
+enabled_cairo_boilerplate_sources += $(cairo_boilerplate_gobject_sources)
+endif
+
 all_cairo_boilerplate_private += $(cairo_boilerplate_trace_private) $(cairo_boilerplate_trace_headers)
 all_cairo_boilerplate_cxx_sources += $(cairo_boilerplate_trace_cxx_sources)
 all_cairo_boilerplate_sources += $(cairo_boilerplate_trace_sources)
diff --git a/build/Makefile.win32.features b/build/Makefile.win32.features
index 7e60617..c8f4a7c 100644
--- a/build/Makefile.win32.features
+++ b/build/Makefile.win32.features
@@ -35,6 +35,7 @@ CAIRO_HAS_TEST_SURFACES=0
 CAIRO_HAS_TEE_SURFACE=0
 CAIRO_HAS_XML_SURFACE=0
 CAIRO_HAS_PTHREAD=0
+CAIRO_HAS_GOBJECT_FUNCTIONS=1
 CAIRO_HAS_TRACE=0
 CAIRO_HAS_INTERPRETER=1
 CAIRO_HAS_SYMBOL_LOOKUP=0
diff --git a/build/Makefile.win32.features-h b/build/Makefile.win32.features-h
index 2106f02..f5cbcf1 100644
--- a/build/Makefile.win32.features-h
+++ b/build/Makefile.win32.features-h
@@ -113,6 +113,9 @@ endif
 ifeq ($(CAIRO_HAS_PTHREAD),1)
 	@echo "#define CAIRO_HAS_PTHREAD 1" >> src/cairo-features.h
 endif
+ifeq ($(CAIRO_HAS_GOBJECT_FUNCTIONS),1)
+	@echo "#define CAIRO_HAS_GOBJECT_FUNCTIONS 1" >> src/cairo-features.h
+endif
 ifeq ($(CAIRO_HAS_TRACE),1)
 	@echo "#define CAIRO_HAS_TRACE 1" >> src/cairo-features.h
 endif
diff --git a/configure.ac b/configure.ac
index e75f0db..3c30841 100644
--- a/configure.ac
+++ b/configure.ac
@@ -652,6 +652,15 @@ AC_SUBST(real_pthread_LIBS)
 
 
 dnl ===========================================================================
+dnl Build gobject integration library
+
+CAIRO_ENABLE_FUNCTIONS(gobject, gobject, yes, [
+  gobject_REQUIRES="gobject-2.0"
+  PKG_CHECK_MODULES(gobject, $gobject_REQUIRES, , [AC_MSG_RESULT(no)
+  use_gobject="no (requires $gobject_REQUIRES http://download.gnome.org/pub/GNOME/sources/glib/)"])
+])
+
+dnl ===========================================================================
 dnl Default to quick testing during development, but force a full test before
 dnl release
 
@@ -791,6 +800,7 @@ test/pdiff/Makefile
 perf/Makefile
 util/Makefile
 util/cairo-fdr/Makefile
+util/cairo-gobject/Makefile
 util/cairo-script/Makefile
 util/cairo-script/examples/Makefile
 util/cairo-sphinx/Makefile
diff --git a/src/Makefile.win32.features b/src/Makefile.win32.features
index 4e3b74a..fb47816 100644
--- a/src/Makefile.win32.features
+++ b/src/Makefile.win32.features
@@ -597,6 +597,22 @@ enabled_cairo_cxx_sources += $(cairo_pthread_cxx_sources)
 enabled_cairo_sources += $(cairo_pthread_sources)
 endif
 
+supported_cairo_headers += $(cairo_gobject_headers)
+all_cairo_headers += $(cairo_gobject_headers)
+all_cairo_private += $(cairo_gobject_private)
+all_cairo_cxx_sources += $(cairo_gobject_cxx_sources)
+all_cairo_sources += $(cairo_gobject_sources)
+ifeq ($(CAIRO_HAS_GOBJECT_FUNCTIONS),1)
+enabled_cairo_headers += $(cairo_gobject_headers)
+enabled_cairo_private += $(cairo_gobject_private)
+enabled_cairo_cxx_sources += $(cairo_gobject_cxx_sources)
+enabled_cairo_sources += $(cairo_gobject_sources)
+endif
+all_cairo_pkgconf += cairo-gobject.pc
+ifeq ($(CAIRO_HAS_GOBJECT_FUNCTIONS),1)
+enabled_cairo_pkgconf += cairo-gobject.pc
+endif
+
 all_cairo_private += $(cairo_trace_private) $(cairo_trace_headers)
 all_cairo_cxx_sources += $(cairo_trace_cxx_sources)
 all_cairo_sources += $(cairo_trace_sources)
diff --git a/util/Makefile.am b/util/Makefile.am
index 4394fe3..0826763 100644
--- a/util/Makefile.am
+++ b/util/Makefile.am
@@ -2,6 +2,10 @@ include $(top_srcdir)/build/Makefile.am.common
 
 SUBDIRS = .
 
+if CAIRO_HAS_GOBJECT_FUNCTIONS
+SUBDIRS += cairo-gobject
+endif
+
 if CAIRO_HAS_INTERPRETER
 SUBDIRS += cairo-script
 endif
diff --git a/util/cairo-gobject/Makefile.am b/util/cairo-gobject/Makefile.am
new file mode 100644
index 0000000..22c1a27
--- /dev/null
+++ b/util/cairo-gobject/Makefile.am
@@ -0,0 +1,15 @@
+lib_LTLIBRARIES = libcairo-gobject.la
+
+AM_CPPFLAGS = -I$(top_srcdir)/src -I$(top_builddir)/src
+
+cairoincludedir=$(includedir)/cairo
+cairoinclude_HEADERS = cairo-gobject.h
+libcairo_gobject_la_SOURCES = \
+	cairo-gobject-enums.c \
+	cairo-gobject-structs.c \
+	$(NULL)
+
+libcairo_gobject_la_CFLAGS = $(CAIRO_CFLAGS) $(GOBJECT_CFLAGS)
+libcairo_gobject_la_LDFLAGS = -version-info $(CAIRO_LIBTOOL_VERSION_INFO) -no-undefined $(export_symbols)
+libcairo_gobject_la_LIBADD = $(top_builddir)/src/libcairo.la $(CAIRO_LIBS) $(GOBJECT_LIBS)
+
diff --git a/util/cairo-gobject/cairo-gobject-enums.c b/util/cairo-gobject/cairo-gobject-enums.c
new file mode 100644
index 0000000..c91cfea
--- /dev/null
+++ b/util/cairo-gobject/cairo-gobject-enums.c
@@ -0,0 +1,519 @@
+
+/* Generated data (by glib-mkenums) */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "cairo-gobject.h"
+
+GType
+cairo_gobject_status_get_type (void)
+{
+   static volatile gsize type_volatile = 0;
+   if (g_once_init_enter (&type_volatile)) {
+      static const GEnumValue values[] = {
+          { CAIRO_STATUS_SUCCESS, "CAIRO_STATUS_SUCCESS", "success" },
+          { CAIRO_STATUS_NO_MEMORY, "CAIRO_STATUS_NO_MEMORY", "no-memory" },
+          { CAIRO_STATUS_INVALID_RESTORE, "CAIRO_STATUS_INVALID_RESTORE", "invalid-restore" },
+          { CAIRO_STATUS_INVALID_POP_GROUP, "CAIRO_STATUS_INVALID_POP_GROUP", "invalid-pop-group" },
+          { CAIRO_STATUS_NO_CURRENT_POINT, "CAIRO_STATUS_NO_CURRENT_POINT", "no-current-point" },
+          { CAIRO_STATUS_INVALID_MATRIX, "CAIRO_STATUS_INVALID_MATRIX", "invalid-matrix" },
+          { CAIRO_STATUS_INVALID_STATUS, "CAIRO_STATUS_INVALID_STATUS", "invalid-status" },
+          { CAIRO_STATUS_NULL_POINTER, "CAIRO_STATUS_NULL_POINTER", "null-pointer" },
+          { CAIRO_STATUS_INVALID_STRING, "CAIRO_STATUS_INVALID_STRING", "invalid-string" },
+          { CAIRO_STATUS_INVALID_PATH_DATA, "CAIRO_STATUS_INVALID_PATH_DATA", "invalid-path-data" },
+          { CAIRO_STATUS_READ_ERROR, "CAIRO_STATUS_READ_ERROR", "read-error" },
+          { CAIRO_STATUS_WRITE_ERROR, "CAIRO_STATUS_WRITE_ERROR", "write-error" },
+          { CAIRO_STATUS_SURFACE_FINISHED, "CAIRO_STATUS_SURFACE_FINISHED", "surface-finished" },
+          { CAIRO_STATUS_SURFACE_TYPE_MISMATCH, "CAIRO_STATUS_SURFACE_TYPE_MISMATCH", "surface-type-mismatch" },
+          { CAIRO_STATUS_PATTERN_TYPE_MISMATCH, "CAIRO_STATUS_PATTERN_TYPE_MISMATCH", "pattern-type-mismatch" },
+          { CAIRO_STATUS_INVALID_CONTENT, "CAIRO_STATUS_INVALID_CONTENT", "invalid-content" },
+          { CAIRO_STATUS_INVALID_FORMAT, "CAIRO_STATUS_INVALID_FORMAT", "invalid-format" },
+          { CAIRO_STATUS_INVALID_VISUAL, "CAIRO_STATUS_INVALID_VISUAL", "invalid-visual" },
+          { CAIRO_STATUS_FILE_NOT_FOUND, "CAIRO_STATUS_FILE_NOT_FOUND", "file-not-found" },
+          { CAIRO_STATUS_INVALID_DASH, "CAIRO_STATUS_INVALID_DASH", "invalid-dash" },
+          { CAIRO_STATUS_INVALID_DSC_COMMENT, "CAIRO_STATUS_INVALID_DSC_COMMENT", "invalid-dsc-comment" },
+          { CAIRO_STATUS_INVALID_INDEX, "CAIRO_STATUS_INVALID_INDEX", "invalid-index" },
+          { CAIRO_STATUS_CLIP_NOT_REPRESENTABLE, "CAIRO_STATUS_CLIP_NOT_REPRESENTABLE", "clip-not-representable" },
+          { CAIRO_STATUS_TEMP_FILE_ERROR, "CAIRO_STATUS_TEMP_FILE_ERROR", "temp-file-error" },
+          { CAIRO_STATUS_INVALID_STRIDE, "CAIRO_STATUS_INVALID_STRIDE", "invalid-stride" },
+          { CAIRO_STATUS_FONT_TYPE_MISMATCH, "CAIRO_STATUS_FONT_TYPE_MISMATCH", "font-type-mismatch" },
+          { CAIRO_STATUS_USER_FONT_IMMUTABLE, "CAIRO_STATUS_USER_FONT_IMMUTABLE", "user-font-immutable" },
+          { CAIRO_STATUS_USER_FONT_ERROR, "CAIRO_STATUS_USER_FONT_ERROR", "user-font-error" },
+          { CAIRO_STATUS_NEGATIVE_COUNT, "CAIRO_STATUS_NEGATIVE_COUNT", "negative-count" },
+          { CAIRO_STATUS_INVALID_CLUSTERS, "CAIRO_STATUS_INVALID_CLUSTERS", "invalid-clusters" },
+          { CAIRO_STATUS_INVALID_SLANT, "CAIRO_STATUS_INVALID_SLANT", "invalid-slant" },
+          { CAIRO_STATUS_INVALID_WEIGHT, "CAIRO_STATUS_INVALID_WEIGHT", "invalid-weight" },
+          { CAIRO_STATUS_INVALID_SIZE, "CAIRO_STATUS_INVALID_SIZE", "invalid-size" },
+          { CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED, "CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED", "user-font-not-implemented" },
+          { CAIRO_STATUS_DEVICE_TYPE_MISMATCH, "CAIRO_STATUS_DEVICE_TYPE_MISMATCH", "device-type-mismatch" },
+          { CAIRO_STATUS_DEVICE_ERROR, "CAIRO_STATUS_DEVICE_ERROR", "device-error" },
+          { CAIRO_STATUS_LAST_STATUS, "CAIRO_STATUS_LAST_STATUS", "last-status" },
+          { 0, NULL, NULL }
+      };
+      GType type = g_enum_register_static (g_intern_static_string ("cairo_status_t"), values);
+
+      g_once_init_leave (&type_volatile, type);
+   }
+   return type_volatile;
+}
+
+GType
+cairo_gobject_content_get_type (void)
+{
+   static volatile gsize type_volatile = 0;
+   if (g_once_init_enter (&type_volatile)) {
+      static const GEnumValue values[] = {
+          { CAIRO_CONTENT_COLOR, "CAIRO_CONTENT_COLOR", "color" },
+          { CAIRO_CONTENT_ALPHA, "CAIRO_CONTENT_ALPHA", "alpha" },
+          { CAIRO_CONTENT_COLOR_ALPHA, "CAIRO_CONTENT_COLOR_ALPHA", "color-alpha" },
+          { 0, NULL, NULL }
+      };
+      GType type = g_enum_register_static (g_intern_static_string ("cairo_content_t"), values);
+
+      g_once_init_leave (&type_volatile, type);
+   }
+   return type_volatile;
+}
+
+GType
+cairo_gobject_operator_get_type (void)
+{
+   static volatile gsize type_volatile = 0;
+   if (g_once_init_enter (&type_volatile)) {
+      static const GEnumValue values[] = {
+          { CAIRO_OPERATOR_CLEAR, "CAIRO_OPERATOR_CLEAR", "clear" },
+          { CAIRO_OPERATOR_SOURCE, "CAIRO_OPERATOR_SOURCE", "source" },
+          { CAIRO_OPERATOR_OVER, "CAIRO_OPERATOR_OVER", "over" },
+          { CAIRO_OPERATOR_IN, "CAIRO_OPERATOR_IN", "in" },
+          { CAIRO_OPERATOR_OUT, "CAIRO_OPERATOR_OUT", "out" },
+          { CAIRO_OPERATOR_ATOP, "CAIRO_OPERATOR_ATOP", "atop" },
+          { CAIRO_OPERATOR_DEST, "CAIRO_OPERATOR_DEST", "dest" },
+          { CAIRO_OPERATOR_DEST_OVER, "CAIRO_OPERATOR_DEST_OVER", "dest-over" },
+          { CAIRO_OPERATOR_DEST_IN, "CAIRO_OPERATOR_DEST_IN", "dest-in" },
+          { CAIRO_OPERATOR_DEST_OUT, "CAIRO_OPERATOR_DEST_OUT", "dest-out" },
+          { CAIRO_OPERATOR_DEST_ATOP, "CAIRO_OPERATOR_DEST_ATOP", "dest-atop" },
+          { CAIRO_OPERATOR_XOR, "CAIRO_OPERATOR_XOR", "xor" },
+          { CAIRO_OPERATOR_ADD, "CAIRO_OPERATOR_ADD", "add" },
+          { CAIRO_OPERATOR_SATURATE, "CAIRO_OPERATOR_SATURATE", "saturate" },
+          { CAIRO_OPERATOR_MULTIPLY, "CAIRO_OPERATOR_MULTIPLY", "multiply" },
+          { CAIRO_OPERATOR_SCREEN, "CAIRO_OPERATOR_SCREEN", "screen" },
+          { CAIRO_OPERATOR_OVERLAY, "CAIRO_OPERATOR_OVERLAY", "overlay" },
+          { CAIRO_OPERATOR_DARKEN, "CAIRO_OPERATOR_DARKEN", "darken" },
+          { CAIRO_OPERATOR_LIGHTEN, "CAIRO_OPERATOR_LIGHTEN", "lighten" },
+          { CAIRO_OPERATOR_COLOR_DODGE, "CAIRO_OPERATOR_COLOR_DODGE", "color-dodge" },
+          { CAIRO_OPERATOR_COLOR_BURN, "CAIRO_OPERATOR_COLOR_BURN", "color-burn" },
+          { CAIRO_OPERATOR_HARD_LIGHT, "CAIRO_OPERATOR_HARD_LIGHT", "hard-light" },
+          { CAIRO_OPERATOR_SOFT_LIGHT, "CAIRO_OPERATOR_SOFT_LIGHT", "soft-light" },
+          { CAIRO_OPERATOR_DIFFERENCE, "CAIRO_OPERATOR_DIFFERENCE", "difference" },
+          { CAIRO_OPERATOR_EXCLUSION, "CAIRO_OPERATOR_EXCLUSION", "exclusion" },
+          { CAIRO_OPERATOR_HSL_HUE, "CAIRO_OPERATOR_HSL_HUE", "hsl-hue" },
+          { CAIRO_OPERATOR_HSL_SATURATION, "CAIRO_OPERATOR_HSL_SATURATION", "hsl-saturation" },
+          { CAIRO_OPERATOR_HSL_COLOR, "CAIRO_OPERATOR_HSL_COLOR", "hsl-color" },
+          { CAIRO_OPERATOR_HSL_LUMINOSITY, "CAIRO_OPERATOR_HSL_LUMINOSITY", "hsl-luminosity" },
+          { 0, NULL, NULL }
+      };
+      GType type = g_enum_register_static (g_intern_static_string ("cairo_operator_t"), values);
+
+      g_once_init_leave (&type_volatile, type);
+   }
+   return type_volatile;
+}
+
+GType
+cairo_gobject_antialias_get_type (void)
+{
+   static volatile gsize type_volatile = 0;
+   if (g_once_init_enter (&type_volatile)) {
+      static const GEnumValue values[] = {
+          { CAIRO_ANTIALIAS_DEFAULT, "CAIRO_ANTIALIAS_DEFAULT", "default" },
+          { CAIRO_ANTIALIAS_NONE, "CAIRO_ANTIALIAS_NONE", "none" },
+          { CAIRO_ANTIALIAS_GRAY, "CAIRO_ANTIALIAS_GRAY", "gray" },
+          { CAIRO_ANTIALIAS_SUBPIXEL, "CAIRO_ANTIALIAS_SUBPIXEL", "subpixel" },
+          { 0, NULL, NULL }
+      };
+      GType type = g_enum_register_static (g_intern_static_string ("cairo_antialias_t"), values);
+
+      g_once_init_leave (&type_volatile, type);
+   }
+   return type_volatile;
+}
+
+GType
+cairo_gobject_fill_rule_get_type (void)
+{
+   static volatile gsize type_volatile = 0;
+   if (g_once_init_enter (&type_volatile)) {
+      static const GEnumValue values[] = {
+          { CAIRO_FILL_RULE_WINDING, "CAIRO_FILL_RULE_WINDING", "winding" },
+          { CAIRO_FILL_RULE_EVEN_ODD, "CAIRO_FILL_RULE_EVEN_ODD", "even-odd" },
+          { 0, NULL, NULL }
+      };
+      GType type = g_enum_register_static (g_intern_static_string ("cairo_fill_rule_t"), values);
+
+      g_once_init_leave (&type_volatile, type);
+   }
+   return type_volatile;
+}
+
+GType
+cairo_gobject_line_cap_get_type (void)
+{
+   static volatile gsize type_volatile = 0;
+   if (g_once_init_enter (&type_volatile)) {
+      static const GEnumValue values[] = {
+          { CAIRO_LINE_CAP_BUTT, "CAIRO_LINE_CAP_BUTT", "butt" },
+          { CAIRO_LINE_CAP_ROUND, "CAIRO_LINE_CAP_ROUND", "round" },
+          { CAIRO_LINE_CAP_SQUARE, "CAIRO_LINE_CAP_SQUARE", "square" },
+          { 0, NULL, NULL }
+      };
+      GType type = g_enum_register_static (g_intern_static_string ("cairo_line_cap_t"), values);
+
+      g_once_init_leave (&type_volatile, type);
+   }
+   return type_volatile;
+}
+
+GType
+cairo_gobject_line_join_get_type (void)
+{
+   static volatile gsize type_volatile = 0;
+   if (g_once_init_enter (&type_volatile)) {
+      static const GEnumValue values[] = {
+          { CAIRO_LINE_JOIN_MITER, "CAIRO_LINE_JOIN_MITER", "miter" },
+          { CAIRO_LINE_JOIN_ROUND, "CAIRO_LINE_JOIN_ROUND", "round" },
+          { CAIRO_LINE_JOIN_BEVEL, "CAIRO_LINE_JOIN_BEVEL", "bevel" },
+          { 0, NULL, NULL }
+      };
+      GType type = g_enum_register_static (g_intern_static_string ("cairo_line_join_t"), values);
+
+      g_once_init_leave (&type_volatile, type);
+   }
+   return type_volatile;
+}
+
+GType
+cairo_gobject_text_cluster_flags_get_type (void)
+{
+   static volatile gsize type_volatile = 0;
+   if (g_once_init_enter (&type_volatile)) {
+      static const GEnumValue values[] = {
+          { CAIRO_TEXT_CLUSTER_FLAG_BACKWARD, "CAIRO_TEXT_CLUSTER_FLAG_BACKWARD", "backward" },
+          { 0, NULL, NULL }
+      };
+      GType type = g_enum_register_static (g_intern_static_string ("cairo_text_cluster_flags_t"), values);
+
+      g_once_init_leave (&type_volatile, type);
+   }
+   return type_volatile;
+}
+
+GType
+cairo_gobject_font_slant_get_type (void)
+{
+   static volatile gsize type_volatile = 0;
+   if (g_once_init_enter (&type_volatile)) {
+      static const GEnumValue values[] = {
+          { CAIRO_FONT_SLANT_NORMAL, "CAIRO_FONT_SLANT_NORMAL", "normal" },
+          { CAIRO_FONT_SLANT_ITALIC, "CAIRO_FONT_SLANT_ITALIC", "italic" },
+          { CAIRO_FONT_SLANT_OBLIQUE, "CAIRO_FONT_SLANT_OBLIQUE", "oblique" },
+          { 0, NULL, NULL }
+      };
+      GType type = g_enum_register_static (g_intern_static_string ("cairo_font_slant_t"), values);
+
+      g_once_init_leave (&type_volatile, type);
+   }
+   return type_volatile;
+}
+
+GType
+cairo_gobject_font_weight_get_type (void)
+{
+   static volatile gsize type_volatile = 0;
+   if (g_once_init_enter (&type_volatile)) {
+      static const GEnumValue values[] = {
+          { CAIRO_FONT_WEIGHT_NORMAL, "CAIRO_FONT_WEIGHT_NORMAL", "normal" },
+          { CAIRO_FONT_WEIGHT_BOLD, "CAIRO_FONT_WEIGHT_BOLD", "bold" },
+          { 0, NULL, NULL }
+      };
+      GType type = g_enum_register_static (g_intern_static_string ("cairo_font_weight_t"), values);
+
+      g_once_init_leave (&type_volatile, type);
+   }
+   return type_volatile;
+}
+
+GType
+cairo_gobject_subpixel_order_get_type (void)
+{
+   static volatile gsize type_volatile = 0;
+   if (g_once_init_enter (&type_volatile)) {
+      static const GEnumValue values[] = {
+          { CAIRO_SUBPIXEL_ORDER_DEFAULT, "CAIRO_SUBPIXEL_ORDER_DEFAULT", "default" },
+          { CAIRO_SUBPIXEL_ORDER_RGB, "CAIRO_SUBPIXEL_ORDER_RGB", "rgb" },
+          { CAIRO_SUBPIXEL_ORDER_BGR, "CAIRO_SUBPIXEL_ORDER_BGR", "bgr" },
+          { CAIRO_SUBPIXEL_ORDER_VRGB, "CAIRO_SUBPIXEL_ORDER_VRGB", "vrgb" },
+          { CAIRO_SUBPIXEL_ORDER_VBGR, "CAIRO_SUBPIXEL_ORDER_VBGR", "vbgr" },
+          { 0, NULL, NULL }
+      };
+      GType type = g_enum_register_static (g_intern_static_string ("cairo_subpixel_order_t"), values);
+
+      g_once_init_leave (&type_volatile, type);
+   }
+   return type_volatile;
+}
+
+GType
+cairo_gobject_hint_style_get_type (void)
+{
+   static volatile gsize type_volatile = 0;
+   if (g_once_init_enter (&type_volatile)) {
+      static const GEnumValue values[] = {
+          { CAIRO_HINT_STYLE_DEFAULT, "CAIRO_HINT_STYLE_DEFAULT", "default" },
+          { CAIRO_HINT_STYLE_NONE, "CAIRO_HINT_STYLE_NONE", "none" },
+          { CAIRO_HINT_STYLE_SLIGHT, "CAIRO_HINT_STYLE_SLIGHT", "slight" },
+          { CAIRO_HINT_STYLE_MEDIUM, "CAIRO_HINT_STYLE_MEDIUM", "medium" },
+          { CAIRO_HINT_STYLE_FULL, "CAIRO_HINT_STYLE_FULL", "full" },
+          { 0, NULL, NULL }
+      };
+      GType type = g_enum_register_static (g_intern_static_string ("cairo_hint_style_t"), values);
+
+      g_once_init_leave (&type_volatile, type);
+   }
+   return type_volatile;
+}
+
+GType
+cairo_gobject_hint_metrics_get_type (void)
+{
+   static volatile gsize type_volatile = 0;
+   if (g_once_init_enter (&type_volatile)) {
+      static const GEnumValue values[] = {
+          { CAIRO_HINT_METRICS_DEFAULT, "CAIRO_HINT_METRICS_DEFAULT", "default" },
+          { CAIRO_HINT_METRICS_OFF, "CAIRO_HINT_METRICS_OFF", "off" },
+          { CAIRO_HINT_METRICS_ON, "CAIRO_HINT_METRICS_ON", "on" },
+          { 0, NULL, NULL }
+      };
+      GType type = g_enum_register_static (g_intern_static_string ("cairo_hint_metrics_t"), values);
+
+      g_once_init_leave (&type_volatile, type);
+   }
+   return type_volatile;
+}
+
+GType
+cairo_gobject_font_type_get_type (void)
+{
+   static volatile gsize type_volatile = 0;
+   if (g_once_init_enter (&type_volatile)) {
+      static const GEnumValue values[] = {
+          { CAIRO_FONT_TYPE_TOY, "CAIRO_FONT_TYPE_TOY", "toy" },
+          { CAIRO_FONT_TYPE_FT, "CAIRO_FONT_TYPE_FT", "ft" },
+          { CAIRO_FONT_TYPE_WIN32, "CAIRO_FONT_TYPE_WIN32", "win32" },
+          { CAIRO_FONT_TYPE_QUARTZ, "CAIRO_FONT_TYPE_QUARTZ", "quartz" },
+          { CAIRO_FONT_TYPE_USER, "CAIRO_FONT_TYPE_USER", "user" },
+          { 0, NULL, NULL }
+      };
+      GType type = g_enum_register_static (g_intern_static_string ("cairo_font_type_t"), values);
+
+      g_once_init_leave (&type_volatile, type);
+   }
+   return type_volatile;
+}
+
+GType
+cairo_gobject_path_data_type_get_type (void)
+{
+   static volatile gsize type_volatile = 0;
+   if (g_once_init_enter (&type_volatile)) {
+      static const GEnumValue values[] = {
+          { CAIRO_PATH_MOVE_TO, "CAIRO_PATH_MOVE_TO", "move-to" },
+          { CAIRO_PATH_LINE_TO, "CAIRO_PATH_LINE_TO", "line-to" },
+          { CAIRO_PATH_CURVE_TO, "CAIRO_PATH_CURVE_TO", "curve-to" },
+          { CAIRO_PATH_CLOSE_PATH, "CAIRO_PATH_CLOSE_PATH", "close-path" },
+          { 0, NULL, NULL }
+      };
+      GType type = g_enum_register_static (g_intern_static_string ("cairo_path_data_type_t"), values);
+
+      g_once_init_leave (&type_volatile, type);
+   }
+   return type_volatile;
+}
+
+GType
+cairo_gobject_device_type_get_type (void)
+{
+   static volatile gsize type_volatile = 0;
+   if (g_once_init_enter (&type_volatile)) {
+      static const GEnumValue values[] = {
+          { CAIRO_DEVICE_TYPE_IMAGE, "CAIRO_DEVICE_TYPE_IMAGE", "image" },
+          { CAIRO_DEVICE_TYPE_PDF, "CAIRO_DEVICE_TYPE_PDF", "pdf" },
+          { CAIRO_DEVICE_TYPE_PS, "CAIRO_DEVICE_TYPE_PS", "ps" },
+          { CAIRO_DEVICE_TYPE_XLIB, "CAIRO_DEVICE_TYPE_XLIB", "xlib" },
+          { CAIRO_DEVICE_TYPE_XCB, "CAIRO_DEVICE_TYPE_XCB", "xcb" },
+          { CAIRO_DEVICE_TYPE_GLITZ, "CAIRO_DEVICE_TYPE_GLITZ", "glitz" },
+          { CAIRO_DEVICE_TYPE_QUARTZ, "CAIRO_DEVICE_TYPE_QUARTZ", "quartz" },
+          { CAIRO_DEVICE_TYPE_WIN32, "CAIRO_DEVICE_TYPE_WIN32", "win32" },
+          { CAIRO_DEVICE_TYPE_BEOS, "CAIRO_DEVICE_TYPE_BEOS", "beos" },
+          { CAIRO_DEVICE_TYPE_DIRECTFB, "CAIRO_DEVICE_TYPE_DIRECTFB", "directfb" },
+          { CAIRO_DEVICE_TYPE_SVG, "CAIRO_DEVICE_TYPE_SVG", "svg" },
+          { CAIRO_DEVICE_TYPE_OS2, "CAIRO_DEVICE_TYPE_OS2", "os2" },
+          { CAIRO_DEVICE_TYPE_WIN32_PRINTING, "CAIRO_DEVICE_TYPE_WIN32_PRINTING", "win32-printing" },
+          { CAIRO_DEVICE_TYPE_QUARTZ_IMAGE, "CAIRO_DEVICE_TYPE_QUARTZ_IMAGE", "quartz-image" },
+          { CAIRO_DEVICE_TYPE_SCRIPT, "CAIRO_DEVICE_TYPE_SCRIPT", "script" },
+          { CAIRO_DEVICE_TYPE_QT, "CAIRO_DEVICE_TYPE_QT", "qt" },
+          { CAIRO_DEVICE_TYPE_RECORDING, "CAIRO_DEVICE_TYPE_RECORDING", "recording" },
+          { CAIRO_DEVICE_TYPE_VG, "CAIRO_DEVICE_TYPE_VG", "vg" },
+          { CAIRO_DEVICE_TYPE_GL, "CAIRO_DEVICE_TYPE_GL", "gl" },
+          { CAIRO_DEVICE_TYPE_DRM, "CAIRO_DEVICE_TYPE_DRM", "drm" },
+          { CAIRO_DEVICE_TYPE_XML, "CAIRO_DEVICE_TYPE_XML", "xml" },
+          { CAIRO_DEVICE_TYPE_SKIA, "CAIRO_DEVICE_TYPE_SKIA", "skia" },
+          { 0, NULL, NULL }
+      };
+      GType type = g_enum_register_static (g_intern_static_string ("cairo_device_type_t"), values);
+
+      g_once_init_leave (&type_volatile, type);
+   }
+   return type_volatile;
+}
+
+GType
+cairo_gobject_surface_type_get_type (void)
+{
+   static volatile gsize type_volatile = 0;
+   if (g_once_init_enter (&type_volatile)) {
+      static const GEnumValue values[] = {
+          { CAIRO_SURFACE_TYPE_IMAGE, "CAIRO_SURFACE_TYPE_IMAGE", "image" },
+          { CAIRO_SURFACE_TYPE_PDF, "CAIRO_SURFACE_TYPE_PDF", "pdf" },
+          { CAIRO_SURFACE_TYPE_PS, "CAIRO_SURFACE_TYPE_PS", "ps" },
+          { CAIRO_SURFACE_TYPE_XLIB, "CAIRO_SURFACE_TYPE_XLIB", "xlib" },
+          { CAIRO_SURFACE_TYPE_XCB, "CAIRO_SURFACE_TYPE_XCB", "xcb" },
+          { CAIRO_SURFACE_TYPE_GLITZ, "CAIRO_SURFACE_TYPE_GLITZ", "glitz" },
+          { CAIRO_SURFACE_TYPE_QUARTZ, "CAIRO_SURFACE_TYPE_QUARTZ", "quartz" },
+          { CAIRO_SURFACE_TYPE_WIN32, "CAIRO_SURFACE_TYPE_WIN32", "win32" },
+          { CAIRO_SURFACE_TYPE_BEOS, "CAIRO_SURFACE_TYPE_BEOS", "beos" },
+          { CAIRO_SURFACE_TYPE_DIRECTFB, "CAIRO_SURFACE_TYPE_DIRECTFB", "directfb" },
+          { CAIRO_SURFACE_TYPE_SVG, "CAIRO_SURFACE_TYPE_SVG", "svg" },
+          { CAIRO_SURFACE_TYPE_OS2, "CAIRO_SURFACE_TYPE_OS2", "os2" },
+          { CAIRO_SURFACE_TYPE_WIN32_PRINTING, "CAIRO_SURFACE_TYPE_WIN32_PRINTING", "win32-printing" },
+          { CAIRO_SURFACE_TYPE_QUARTZ_IMAGE, "CAIRO_SURFACE_TYPE_QUARTZ_IMAGE", "quartz-image" },
+          { CAIRO_SURFACE_TYPE_SCRIPT, "CAIRO_SURFACE_TYPE_SCRIPT", "script" },
+          { CAIRO_SURFACE_TYPE_QT, "CAIRO_SURFACE_TYPE_QT", "qt" },
+          { CAIRO_SURFACE_TYPE_RECORDING, "CAIRO_SURFACE_TYPE_RECORDING", "recording" },
+          { CAIRO_SURFACE_TYPE_VG, "CAIRO_SURFACE_TYPE_VG", "vg" },
+          { CAIRO_SURFACE_TYPE_GL, "CAIRO_SURFACE_TYPE_GL", "gl" },
+          { CAIRO_SURFACE_TYPE_DRM, "CAIRO_SURFACE_TYPE_DRM", "drm" },
+          { CAIRO_SURFACE_TYPE_TEE, "CAIRO_SURFACE_TYPE_TEE", "tee" },
+          { CAIRO_SURFACE_TYPE_XML, "CAIRO_SURFACE_TYPE_XML", "xml" },
+          { CAIRO_SURFACE_TYPE_SKIA, "CAIRO_SURFACE_TYPE_SKIA", "skia" },
+          { 0, NULL, NULL }
+      };
+      GType type = g_enum_register_static (g_intern_static_string ("cairo_surface_type_t"), values);
+
+      g_once_init_leave (&type_volatile, type);
+   }
+   return type_volatile;
+}
+
+GType
+cairo_gobject_format_get_type (void)
+{
+   static volatile gsize type_volatile = 0;
+   if (g_once_init_enter (&type_volatile)) {
+      static const GEnumValue values[] = {
+          { CAIRO_FORMAT_INVALID, "CAIRO_FORMAT_INVALID", "invalid" },
+          { CAIRO_FORMAT_ARGB32, "CAIRO_FORMAT_ARGB32", "argb32" },
+          { CAIRO_FORMAT_RGB24, "CAIRO_FORMAT_RGB24", "rgb24" },
+          { CAIRO_FORMAT_A8, "CAIRO_FORMAT_A8", "a8" },
+          { CAIRO_FORMAT_A1, "CAIRO_FORMAT_A1", "a1" },
+          { CAIRO_FORMAT_RGB16_565, "CAIRO_FORMAT_RGB16_565", "rgb16-565" },
+          { 0, NULL, NULL }
+      };
+      GType type = g_enum_register_static (g_intern_static_string ("cairo_format_t"), values);
+
+      g_once_init_leave (&type_volatile, type);
+   }
+   return type_volatile;
+}
+
+GType
+cairo_gobject_pattern_type_get_type (void)
+{
+   static volatile gsize type_volatile = 0;
+   if (g_once_init_enter (&type_volatile)) {
+      static const GEnumValue values[] = {
+          { CAIRO_PATTERN_TYPE_SOLID, "CAIRO_PATTERN_TYPE_SOLID", "solid" },
+          { CAIRO_PATTERN_TYPE_SURFACE, "CAIRO_PATTERN_TYPE_SURFACE", "surface" },
+          { CAIRO_PATTERN_TYPE_LINEAR, "CAIRO_PATTERN_TYPE_LINEAR", "linear" },
+          { CAIRO_PATTERN_TYPE_RADIAL, "CAIRO_PATTERN_TYPE_RADIAL", "radial" },
+          { 0, NULL, NULL }
+      };
+      GType type = g_enum_register_static (g_intern_static_string ("cairo_pattern_type_t"), values);
+
+      g_once_init_leave (&type_volatile, type);
+   }
+   return type_volatile;
+}
+
+GType
+cairo_gobject_extend_get_type (void)
+{
+   static volatile gsize type_volatile = 0;
+   if (g_once_init_enter (&type_volatile)) {
+      static const GEnumValue values[] = {
+          { CAIRO_EXTEND_NONE, "CAIRO_EXTEND_NONE", "none" },
+          { CAIRO_EXTEND_REPEAT, "CAIRO_EXTEND_REPEAT", "repeat" },
+          { CAIRO_EXTEND_REFLECT, "CAIRO_EXTEND_REFLECT", "reflect" },
+          { CAIRO_EXTEND_PAD, "CAIRO_EXTEND_PAD", "pad" },
+          { 0, NULL, NULL }
+      };
+      GType type = g_enum_register_static (g_intern_static_string ("cairo_extend_t"), values);
+
+      g_once_init_leave (&type_volatile, type);
+   }
+   return type_volatile;
+}
+
+GType
+cairo_gobject_filter_get_type (void)
+{
+   static volatile gsize type_volatile = 0;
+   if (g_once_init_enter (&type_volatile)) {
+      static const GEnumValue values[] = {
+          { CAIRO_FILTER_FAST, "CAIRO_FILTER_FAST", "fast" },
+          { CAIRO_FILTER_GOOD, "CAIRO_FILTER_GOOD", "good" },
+          { CAIRO_FILTER_BEST, "CAIRO_FILTER_BEST", "best" },
+          { CAIRO_FILTER_NEAREST, "CAIRO_FILTER_NEAREST", "nearest" },
+          { CAIRO_FILTER_BILINEAR, "CAIRO_FILTER_BILINEAR", "bilinear" },
+          { CAIRO_FILTER_GAUSSIAN, "CAIRO_FILTER_GAUSSIAN", "gaussian" },
+          { 0, NULL, NULL }
+      };
+      GType type = g_enum_register_static (g_intern_static_string ("cairo_filter_t"), values);
+
+      g_once_init_leave (&type_volatile, type);
+   }
+   return type_volatile;
+}
+
+GType
+cairo_gobject_region_overlap_get_type (void)
+{
+   static volatile gsize type_volatile = 0;
+   if (g_once_init_enter (&type_volatile)) {
+      static const GEnumValue values[] = {
+          { CAIRO_REGION_OVERLAP_IN, "CAIRO_REGION_OVERLAP_IN", "in" },
+          { CAIRO_REGION_OVERLAP_OUT, "CAIRO_REGION_OVERLAP_OUT", "out" },
+          { CAIRO_REGION_OVERLAP_PART, "CAIRO_REGION_OVERLAP_PART", "part" },
+          { 0, NULL, NULL }
+      };
+      GType type = g_enum_register_static (g_intern_static_string ("cairo_region_overlap_t"), values);
+
+      g_once_init_leave (&type_volatile, type);
+   }
+   return type_volatile;
+}
+
+
+/* Generated data ends here */
+
diff --git a/util/cairo-gobject/cairo-gobject-structs.c b/util/cairo-gobject/cairo-gobject-structs.c
new file mode 100644
index 0000000..05e3ece
--- /dev/null
+++ b/util/cairo-gobject/cairo-gobject-structs.c
@@ -0,0 +1,87 @@
+/* cairo - a vector graphics library with display and print output
+ *
+ * Copyright © 2010 Red Hat Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it either under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation
+ * (the "LGPL") or, at your option, under the terms of the Mozilla
+ * Public License Version 1.1 (the "MPL"). If you do not alter this
+ * notice, a recipient may use your version of this file under either
+ * the MPL or the LGPL.
+ *
+ * You should have received a copy of the LGPL along with this library
+ * in the file COPYING-LGPL-2.1; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
+ * You should have received a copy of the MPL along with this library
+ * in the file COPYING-MPL-1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License
+ * Version 1.1 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
+ * OF ANY KIND, either express or implied. See the LGPL or the MPL for
+ * the specific language governing rights and limitations.
+ *
+ * The Original Code is the cairo graphics library.
+ *
+ * The Initial Developer of the Original Code is University of Southern
+ * California.
+ *
+ * Contributor(s):
+ *	Benjamin Otte <otte at redhat.com>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "cairo-gobject.h"
+
+#define CAIRO_DEFINE_BOXED(Name,underscore_name,copy_func,free_func) \
+GType \
+underscore_name ## _get_type (void) \
+{ \
+   static volatile gsize type_volatile = 0; \
+   if (g_once_init_enter (&type_volatile)) { \
+      GType type = g_boxed_type_register_static (g_intern_static_string (Name), \
+                                                 (GBoxedCopyFunc)copy_func, \
+                                                 (GBoxedFreeFunc)free_func); \
+      g_once_init_leave (&type_volatile, type); \
+   } \
+   return type_volatile; \
+}
+
+CAIRO_DEFINE_BOXED ("CairoContext", cairo_gobject_context, 
+                    cairo_reference, cairo_destroy);
+CAIRO_DEFINE_BOXED ("CairoDevice", cairo_gobject_device, 
+                    cairo_device_reference, cairo_device_destroy);
+CAIRO_DEFINE_BOXED ("CairoPattern", cairo_gobject_pattern, 
+                    cairo_pattern_reference, cairo_pattern_destroy);
+CAIRO_DEFINE_BOXED ("CairoSurface", cairo_gobject_surface, 
+                    cairo_surface_reference, cairo_surface_destroy);
+CAIRO_DEFINE_BOXED ("CairoScaledFont", cairo_gobject_scaled_font, 
+                    cairo_scaled_font_reference, cairo_scaled_font_destroy);
+CAIRO_DEFINE_BOXED ("CairoFontFace", cairo_gobject_font_face, 
+                    cairo_font_face_reference, cairo_font_face_destroy);
+CAIRO_DEFINE_BOXED ("CairoFontOptions", cairo_gobject_font_options, 
+                    cairo_font_options_copy, cairo_font_options_destroy);
+CAIRO_DEFINE_BOXED ("CairoRegion", cairo_gobject_region, 
+                    cairo_region_reference, cairo_region_destroy);
+
+#define COPY_FUNC(name) \
+static gpointer \
+cairo_gobject_cairo_ ## name ## _copy (gpointer src) \
+{ \
+    return g_memdup (src, sizeof (cairo_ ## name ## _t)); \
+}
+
+COPY_FUNC (rectangle)
+CAIRO_DEFINE_BOXED ("CairoRectangle", cairo_gobject_rectangle, 
+                    cairo_gobject_cairo_rectangle_copy, g_free);
+COPY_FUNC (rectangle_int)
+CAIRO_DEFINE_BOXED ("CairoRectangleInt", cairo_gobject_rectangle_int, 
+                    cairo_gobject_cairo_rectangle_int_copy, g_free);
+
diff --git a/util/cairo-gobject/cairo-gobject.h b/util/cairo-gobject/cairo-gobject.h
new file mode 100644
index 0000000..2db4fd1
--- /dev/null
+++ b/util/cairo-gobject/cairo-gobject.h
@@ -0,0 +1,186 @@
+/* cairo - a vector graphics library with display and print output
+ *
+ * Copyright © 2010 Red Hat Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it either under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation
+ * (the "LGPL") or, at your option, under the terms of the Mozilla
+ * Public License Version 1.1 (the "MPL"). If you do not alter this
+ * notice, a recipient may use your version of this file under either
+ * the MPL or the LGPL.
+ *
+ * You should have received a copy of the LGPL along with this library
+ * in the file COPYING-LGPL-2.1; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA
+ * You should have received a copy of the MPL along with this library
+ * in the file COPYING-MPL-1.1
+ *
+ * The contents of this file are subject to the Mozilla Public License
+ * Version 1.1 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
+ * OF ANY KIND, either express or implied. See the LGPL or the MPL for
+ * the specific language governing rights and limitations.
+ *
+ * The Original Code is the cairo graphics library.
+ *
+ * The Initial Developer of the Original Code is University of Southern
+ * California.
+ *
+ * Contributor(s):
+ *	Benjamin Otte <otte at redhat.com>
+ */
+
+#ifndef CAIRO_GOBJECT_H
+#define CAIRO_GOBJECT_H
+
+#include <cairo.h>
+
+#if CAIRO_HAS_GOBJECT_FUNCTIONS
+
+#include <glib-object.h>
+
+CAIRO_BEGIN_DECLS
+
+/* structs */
+
+#define CAIRO_GOBJECT_TYPE_CONTEXT cairo_gobject_context_get_type
+cairo_public GType
+cairo_gobject_context_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_DEVICE cairo_gobject_device_get_type
+cairo_public GType
+cairo_gobject_device_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_PATTERN cairo_gobject_pattern_get_type
+cairo_public GType
+cairo_gobject_pattern_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_SURFACE cairo_gobject_surface_get_type
+cairo_public GType
+cairo_gobject_surface_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_RECTANGLE cairo_gobject_rectangle_get_type
+cairo_public GType
+cairo_gobject_rectangle_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_SCALED_FONT cairo_gobject_scaled_font_get_type
+cairo_public GType
+cairo_gobject_scaled_font_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_FONT_FACE cairo_gobject_font_face_get_type
+cairo_public GType
+cairo_gobject_font_face_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_FONT_OPTIONS cairo_gobject_font_options_get_type
+cairo_public GType
+cairo_gobject_font_options_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_RECTANGLE_INT cairo_gobject_rectangle_int_get_type
+cairo_public GType
+cairo_gobject_rectangle_int_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_REGION cairo_gobject_region_get_type
+cairo_public GType
+cairo_gobject_region_get_type (void);
+
+/* enums */
+
+#define CAIRO_GOBJECT_TYPE_STATUS cairo_gobject_status_get_type
+cairo_public GType
+cairo_gobject_status_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_CONTENT cairo_gobject_content_get_type
+cairo_public GType
+cairo_gobject_content_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_OPERATOR cairo_gobject_operator_get_type
+cairo_public GType
+cairo_gobject_operator_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_ANTIALIAS cairo_gobject_antialias_get_type
+cairo_public GType
+cairo_gobject_antialias_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_FILL_RULE cairo_gobject_fill_rule_get_type
+cairo_public GType
+cairo_gobject_fill_rule_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_LINE_CAP cairo_gobject_line_cap_get_type
+cairo_public GType
+cairo_gobject_line_cap_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_LINE_JOIN cairo_gobject_line_join_get_type
+cairo_public GType
+cairo_gobject_line_join_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_CLUSTER_FLAGS cairo_gobject_cluster_flags_get_type
+cairo_public GType
+cairo_gobject_text_cluster_flags_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_FONT_SLANT cairo_gobject_font_slant_get_type
+cairo_public GType
+cairo_gobject_font_slant_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_FONT_WEIGHT cairo_gobject_font_weight_get_type
+cairo_public GType
+cairo_gobject_font_weight_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_SUBPIXEL_ORDER cairo_gobject_subpixel_order_get_type
+cairo_public GType
+cairo_gobject_subpixel_order_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_HINT_STYLE cairo_gobject_hint_style_get_type
+cairo_public GType
+cairo_gobject_hint_style_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_HNT_METRICS cairo_gobject_hint_metrics_get_type
+cairo_public GType
+cairo_gobject_hint_metrics_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_FONT_TYPE cairo_gobject_font_type_get_type
+cairo_public GType
+cairo_gobject_font_type_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_PATH_DATA_TYPE cairo_gobject_path_data_type_get_type
+cairo_public GType
+cairo_gobject_path_data_type_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_DEVICE_TYPE cairo_gobject_device_type_get_type
+cairo_public GType
+cairo_gobject_device_type_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_SURFACE_TYPE cairo_gobject_surface_type_get_type
+cairo_public GType
+cairo_gobject_surface_type_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_FORMAT cairo_gobject_format_get_type
+cairo_public GType
+cairo_gobject_format_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_PATTERN_TYPE cairo_gobject_pattern_type_get_type
+cairo_public GType
+cairo_gobject_pattern_type_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_EXTEND cairo_gobject_extend_get_type
+cairo_public GType
+cairo_gobject_extend_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_FILTER cairo_gobject_filter_get_type
+cairo_public GType
+cairo_gobject_filter_get_type (void);
+
+#define CAIRO_GOBJECT_TYPE_REGION_OVERLAP cairo_gobject_region_overlap_get_type
+cairo_public GType
+cairo_gobject_region_overlap_get_type (void);
+
+CAIRO_END_DECLS
+
+#else  /* CAIRO_HAS_GOBJECT_FUNCTIONS */
+# error Cairo was not compiled with support for GObject
+#endif /* CAIRO_HAS_GOBJECT_FUNCTIONS */
+
+#endif /* CAIRO_GOBJECT_H */


More information about the cairo-commit mailing list