Bindinge updated to recent Cairo version.
authorJan Vrany <jan.vrany@fit.cvut.cz>
Sun, 28 Dec 2014 22:38:24 +0100
changeset 29 6ba06265e543
parent 28 1bd3d147cd77
child 30 c8fe298c8cc7
Bindinge updated to recent Cairo version. All primitives moved to a new class - Cairo::CPrimitives. Callouts selectors changed to reflect C function names closely.
Cairo__Antialias.st
Cairo__CPrimitives.st
Cairo__ClockView.st
Cairo__Content.st
Cairo__Device.st
Cairo__DeviceType.st
Cairo__Extend.st
Cairo__FillRule.st
Cairo__Filter.st
Cairo__FontExtents.st
Cairo__FontFace.st
Cairo__FontOptions.st
Cairo__FontSlant.st
Cairo__FontType.st
Cairo__FontWeight.st
Cairo__Format.st
Cairo__Glyph.st
Cairo__GraphicsContext.st
Cairo__HintMetrics.st
Cairo__HintStyle.st
Cairo__LineCap.st
Cairo__LineJoin.st
Cairo__Matrix.st
Cairo__Operator.st
Cairo__Path.st
Cairo__PathData.st
Cairo__PathDataType.st
Cairo__Pattern.st
Cairo__PatternType.st
Cairo__PdfVersion.st
Cairo__Rectangle.st
Cairo__RectangleInt.st
Cairo__RectangleList.st
Cairo__RefCountedStructure.st
Cairo__Region.st
Cairo__RegionOverlap.st
Cairo__ScaledFont.st
Cairo__Status.st
Cairo__SubpixelOrder.st
Cairo__Surface.st
Cairo__SurfaceObserverMode.st
Cairo__SurfaceType.st
Cairo__SvgVersion.st
Cairo__TextCluster.st
Cairo__TextClusterFlags.st
Cairo__TextExampleView.st
Cairo__TextExtents.st
Cairo__UserDataKey.st
Make.proto
Make.spec
abbrev.stc
bc.mak
libInit.cc
libcairo.rc
stx_goodies_libcairo.st
--- a/Cairo__Antialias.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__Antialias.st	Sun Dec 28 22:38:24 2014 +0100
@@ -4,63 +4,62 @@
 
 SharedPool subclass:#Antialias
 	instanceVariableNames:''
-	classVariableNames:'ANTIALIAS_DEFAULT ANTIALIAS_NONE ANTIALIAS_GRAY
-		ANTIALIAS_SUBPIXEL'
+	classVariableNames:'CAIRO_ANTIALIAS_DEFAULT CAIRO_ANTIALIAS_NONE CAIRO_ANTIALIAS_GRAY
+		CAIRO_ANTIALIAS_SUBPIXEL CAIRO_ANTIALIAS_FAST
+		CAIRO_ANTIALIAS_GOOD CAIRO_ANTIALIAS_BEST'
 	poolDictionaries:''
 	category:'Cairo-Constants'
 !
 
-
 !Antialias class methodsFor:'initialization'!
 
 initialize
 
-	ANTIALIAS_DEFAULT := 0.
-	ANTIALIAS_NONE := 1.
-	ANTIALIAS_GRAY := 2.
-	ANTIALIAS_SUBPIXEL := 3.
-
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    CAIRO_ANTIALIAS_DEFAULT := 0.
+    CAIRO_ANTIALIAS_NONE := 1.
+    CAIRO_ANTIALIAS_GRAY := 2.
+    CAIRO_ANTIALIAS_SUBPIXEL := 3.
+    CAIRO_ANTIALIAS_FAST := 4.
+    CAIRO_ANTIALIAS_GOOD := 5.
+    CAIRO_ANTIALIAS_BEST := 6.
 ! !
 
 !Antialias class methodsFor:'constants'!
 
-ANTIALIAS_DEFAULT
+CAIRO_ANTIALIAS_BEST
 
-	^ANTIALIAS_DEFAULT
-
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_ANTIALIAS_BEST
 !
 
-ANTIALIAS_GRAY
+CAIRO_ANTIALIAS_DEFAULT
 
-	^ANTIALIAS_GRAY
+    ^CAIRO_ANTIALIAS_DEFAULT
+!
 
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_ANTIALIAS_FAST
+
+    ^CAIRO_ANTIALIAS_FAST
 !
 
-ANTIALIAS_NONE
+CAIRO_ANTIALIAS_GOOD
 
-	^ANTIALIAS_NONE
+    ^CAIRO_ANTIALIAS_GOOD
+!
 
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_ANTIALIAS_GRAY
+
+    ^CAIRO_ANTIALIAS_GRAY
 !
 
-ANTIALIAS_SUBPIXEL
+CAIRO_ANTIALIAS_NONE
 
-	^ANTIALIAS_SUBPIXEL
+    ^CAIRO_ANTIALIAS_NONE
+!
 
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_ANTIALIAS_SUBPIXEL
+
+    ^CAIRO_ANTIALIAS_SUBPIXEL
 ! !
 
-!Antialias class methodsFor:'documentation'!
-
-version
-    ^'$Id$'
-!
-
-version_HG
-    ^ '$Changeset: <not expanded> $'
-! !
 
 Antialias initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__CPrimitives.st	Sun Dec 28 22:38:24 2014 +0100
@@ -0,0 +1,2144 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+Object subclass:#CPrimitives
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Cairo-Primitives'
+!
+
+!CPrimitives class methodsFor:'accessing'!
+
+dllPath
+
+    OperatingSystem isMSWINDOWSlike ifTrue:[
+        ^ #( 'C:\Windows' 'C:\Windows\System32' "Wild guess, should not harm" )
+    ].
+
+    OperatingSystem isUNIXlike ifTrue:[
+        OperatingSystem getSystemType == #linux ifTrue:[
+            | path |
+
+            path := #( '/lib' '/usr/lib' '/usr/local/lib' ).
+            (OperatingSystem getSystemInfo at:#machine) = 'x86_64' ifTrue:[
+                "If the machine is 64bit, prepend standard path for 32bit libs.
+                 Leave standard paths at the end, as the system might be completely 
+                 32bit but running on 64bit-capable CPU.
+
+                CAVEAT: This is bit dangerous, as on 64bit OS, if ia32 libs are
+                not installed byt 64bit sqlite libs are, then 64bit libs are found
+                and when a function is called, segfault will occur!!
+
+                Q: Is there a way how to figure out if the OS itself is 32bit,
+                regardles on CPU?"
+                path := #( '/lib32' '/usr/lib32' '/usr/local/lib32' ) , path.
+            ].
+            ^path
+
+        ].
+    ].
+
+    self error:'Unsupported operating system'
+
+    "
+        SqliteLibrary dllPath
+    "
+
+    "Created: / 31-08-2011 / 18:02:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+libraryName
+
+    OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
+
+    OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+
+    self error:'Library name for host OS is not known'
+! !
+
+!CPrimitives class methodsFor:'primitives'!
+
+cairo_append_path: cr _: path 
+
+    <cdecl: void "cairo_append_path" ( Cairo::GraphicsContext Cairo::Path ) >
+    self primitiveFailed
+!
+
+cairo_arc: cr _: xc _: yc _: radius _: angle1 _: angle2 
+
+    <cdecl: void "cairo_arc" ( Cairo::GraphicsContext double double double double double ) >
+    self primitiveFailed
+!
+
+cairo_arc_negative: cr _: xc _: yc _: radius _: angle1 _: angle2 
+
+    <cdecl: void "cairo_arc_negative" ( Cairo::GraphicsContext double double double double double ) >
+    self primitiveFailed
+!
+
+cairo_clip: cr 
+
+    <cdecl: void "cairo_clip" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_clip_extents: cr _: x1 _: y1 _: x2 _: y2 
+
+    <cdecl: void "cairo_clip_extents" ( Cairo::GraphicsContext doublePointer doublePointer doublePointer doublePointer ) >
+    self primitiveFailed
+!
+
+cairo_clip_preserve: cr 
+
+    <cdecl: void "cairo_clip_preserve" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_close_path: cr 
+
+    <cdecl: void "cairo_close_path" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_copy_clip_rectangle_list: cr 
+
+    <cdecl: Cairo::RectangleList "cairo_copy_clip_rectangle_list" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_copy_page: cr 
+
+    <cdecl: void "cairo_copy_page" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_copy_path: cr 
+
+    <cdecl: Cairo::Path "cairo_copy_path" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_copy_path_flat: cr 
+
+    <cdecl: Cairo::Path "cairo_copy_path_flat" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_create: target 
+
+    <cdecl: Cairo::GraphicsContext "cairo_create" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_curve_to: cr _: x1 _: y1 _: x2 _: y2 _: x3 _: y3 
+
+    <cdecl: void "cairo_curve_to" ( Cairo::GraphicsContext double double double double double double ) >
+    self primitiveFailed
+!
+
+cairo_debug_reset_static_data
+
+    <cdecl: void "cairo_debug_reset_static_data" ( ) >
+    self primitiveFailed
+!
+
+cairo_destroy: cr 
+
+    <cdecl: void "cairo_destroy" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_device_acquire: device 
+
+    <cdecl: int32 "cairo_device_acquire" ( Cairo::Device ) >
+    self primitiveFailed
+!
+
+cairo_device_destroy: device 
+
+    <cdecl: void "cairo_device_destroy" ( Cairo::Device ) >
+    self primitiveFailed
+!
+
+cairo_device_finish: device 
+
+    <cdecl: void "cairo_device_finish" ( Cairo::Device ) >
+    self primitiveFailed
+!
+
+cairo_device_flush: device 
+
+    <cdecl: void "cairo_device_flush" ( Cairo::Device ) >
+    self primitiveFailed
+!
+
+cairo_device_get_reference_count: device 
+
+    <cdecl: uint32 "cairo_device_get_reference_count" ( Cairo::Device ) >
+    self primitiveFailed
+!
+
+cairo_device_get_type: device 
+
+    <cdecl: int32 "cairo_device_get_type" ( Cairo::Device ) >
+    self primitiveFailed
+!
+
+cairo_device_get_user_data: device _: key 
+
+    <cdecl: voidPointer "cairo_device_get_user_data" ( Cairo::Device Cairo::UserDataKey ) >
+    self primitiveFailed
+!
+
+cairo_device_observer_elapsed: device 
+
+    <cdecl: double "cairo_device_observer_elapsed" ( Cairo::Device ) >
+    self primitiveFailed
+!
+
+cairo_device_observer_fill_elapsed: device 
+
+    <cdecl: double "cairo_device_observer_fill_elapsed" ( Cairo::Device ) >
+    self primitiveFailed
+!
+
+cairo_device_observer_glyphs_elapsed: device 
+
+    <cdecl: double "cairo_device_observer_glyphs_elapsed" ( Cairo::Device ) >
+    self primitiveFailed
+!
+
+cairo_device_observer_mask_elapsed: device 
+
+    <cdecl: double "cairo_device_observer_mask_elapsed" ( Cairo::Device ) >
+    self primitiveFailed
+!
+
+cairo_device_observer_paint_elapsed: device 
+
+    <cdecl: double "cairo_device_observer_paint_elapsed" ( Cairo::Device ) >
+    self primitiveFailed
+!
+
+cairo_device_observer_print: device _: write_func _: closure 
+
+    <cdecl: int32 "cairo_device_observer_print" ( Cairo::Device pointer voidPointer ) >
+    self primitiveFailed
+!
+
+cairo_device_observer_stroke_elapsed: device 
+
+    <cdecl: double "cairo_device_observer_stroke_elapsed" ( Cairo::Device ) >
+    self primitiveFailed
+!
+
+cairo_device_reference: device 
+
+    <cdecl: Cairo::Device "cairo_device_reference" ( Cairo::Device ) >
+    self primitiveFailed
+!
+
+cairo_device_release: device 
+
+    <cdecl: void "cairo_device_release" ( Cairo::Device ) >
+    self primitiveFailed
+!
+
+cairo_device_set_user_data: device _: key _: user_data _: destroy 
+
+    <cdecl: int32 "cairo_device_set_user_data" ( Cairo::Device Cairo::UserDataKey voidPointer pointer ) >
+    self primitiveFailed
+!
+
+cairo_device_status: device 
+
+    <cdecl: int32 "cairo_device_status" ( Cairo::Device ) >
+    self primitiveFailed
+!
+
+cairo_device_to_user: cr _: x _: y 
+
+    <cdecl: void "cairo_device_to_user" ( Cairo::GraphicsContext doublePointer doublePointer ) >
+    self primitiveFailed
+!
+
+cairo_device_to_user_distance: cr _: dx _: dy 
+
+    <cdecl: void "cairo_device_to_user_distance" ( Cairo::GraphicsContext doublePointer doublePointer ) >
+    self primitiveFailed
+!
+
+cairo_fill: cr 
+
+    <cdecl: void "cairo_fill" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_fill_extents: cr _: x1 _: y1 _: x2 _: y2 
+
+    <cdecl: void "cairo_fill_extents" ( Cairo::GraphicsContext doublePointer doublePointer doublePointer doublePointer ) >
+    self primitiveFailed
+!
+
+cairo_fill_preserve: cr 
+
+    <cdecl: void "cairo_fill_preserve" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_font_extents: cr _: extents 
+
+    <cdecl: void "cairo_font_extents" ( Cairo::GraphicsContext Cairo::FontExtents ) >
+    self primitiveFailed
+!
+
+cairo_font_face_destroy: font_face 
+
+    <cdecl: void "cairo_font_face_destroy" ( Cairo::FontFace ) >
+    self primitiveFailed
+!
+
+cairo_font_face_get_reference_count: font_face 
+
+    <cdecl: uint32 "cairo_font_face_get_reference_count" ( Cairo::FontFace ) >
+    self primitiveFailed
+!
+
+cairo_font_face_get_type: font_face 
+
+    <cdecl: int32 "cairo_font_face_get_type" ( Cairo::FontFace ) >
+    self primitiveFailed
+!
+
+cairo_font_face_get_user_data: font_face _: key 
+
+    <cdecl: voidPointer "cairo_font_face_get_user_data" ( Cairo::FontFace Cairo::UserDataKey ) >
+    self primitiveFailed
+!
+
+cairo_font_face_reference: font_face 
+
+    <cdecl: Cairo::FontFace "cairo_font_face_reference" ( Cairo::FontFace ) >
+    self primitiveFailed
+!
+
+cairo_font_face_set_user_data: font_face _: key _: user_data _: destroy 
+
+    <cdecl: int32 "cairo_font_face_set_user_data" ( Cairo::FontFace Cairo::UserDataKey voidPointer pointer ) >
+    self primitiveFailed
+!
+
+cairo_font_face_status: font_face 
+
+    <cdecl: int32 "cairo_font_face_status" ( Cairo::FontFace ) >
+    self primitiveFailed
+!
+
+cairo_font_options_copy: original 
+
+    <cdecl: Cairo::FontOptions "cairo_font_options_copy" ( Cairo::FontOptions ) >
+    self primitiveFailed
+!
+
+cairo_font_options_create
+
+    <cdecl: Cairo::FontOptions "cairo_font_options_create" ( ) >
+    self primitiveFailed
+!
+
+cairo_font_options_destroy: options 
+
+    <cdecl: void "cairo_font_options_destroy" ( Cairo::FontOptions ) >
+    self primitiveFailed
+!
+
+cairo_font_options_equal: options _: other 
+
+    <cdecl: int32 "cairo_font_options_equal" ( Cairo::FontOptions Cairo::FontOptions ) >
+    self primitiveFailed
+!
+
+cairo_font_options_get_antialias: options 
+
+    <cdecl: int32 "cairo_font_options_get_antialias" ( Cairo::FontOptions ) >
+    self primitiveFailed
+!
+
+cairo_font_options_get_hint_metrics: options 
+
+    <cdecl: int32 "cairo_font_options_get_hint_metrics" ( Cairo::FontOptions ) >
+    self primitiveFailed
+!
+
+cairo_font_options_get_hint_style: options 
+
+    <cdecl: int32 "cairo_font_options_get_hint_style" ( Cairo::FontOptions ) >
+    self primitiveFailed
+!
+
+cairo_font_options_get_subpixel_order: options 
+
+    <cdecl: int32 "cairo_font_options_get_subpixel_order" ( Cairo::FontOptions ) >
+    self primitiveFailed
+!
+
+cairo_font_options_hash: options 
+
+    <cdecl: long "cairo_font_options_hash" ( Cairo::FontOptions ) >
+    self primitiveFailed
+!
+
+cairo_font_options_merge: options _: other 
+
+    <cdecl: void "cairo_font_options_merge" ( Cairo::FontOptions Cairo::FontOptions ) >
+    self primitiveFailed
+!
+
+cairo_font_options_set_antialias: options _: antialias 
+
+    <cdecl: void "cairo_font_options_set_antialias" ( Cairo::FontOptions int32 ) >
+    self primitiveFailed
+!
+
+cairo_font_options_set_hint_metrics: options _: hint_metrics 
+
+    <cdecl: void "cairo_font_options_set_hint_metrics" ( Cairo::FontOptions int32 ) >
+    self primitiveFailed
+!
+
+cairo_font_options_set_hint_style: options _: hint_style 
+
+    <cdecl: void "cairo_font_options_set_hint_style" ( Cairo::FontOptions int32 ) >
+    self primitiveFailed
+!
+
+cairo_font_options_set_subpixel_order: options _: subpixel_order 
+
+    <cdecl: void "cairo_font_options_set_subpixel_order" ( Cairo::FontOptions int32 ) >
+    self primitiveFailed
+!
+
+cairo_font_options_status: options 
+
+    <cdecl: int32 "cairo_font_options_status" ( Cairo::FontOptions ) >
+    self primitiveFailed
+!
+
+cairo_format_stride_for_width: format _: width 
+
+    <cdecl: int32 "cairo_format_stride_for_width" ( int32 int32 ) >
+    self primitiveFailed
+!
+
+cairo_get_antialias: cr 
+
+    <cdecl: int32 "cairo_get_antialias" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_get_current_point: cr _: x _: y 
+
+    <cdecl: void "cairo_get_current_point" ( Cairo::GraphicsContext doublePointer doublePointer ) >
+    self primitiveFailed
+!
+
+cairo_get_dash: cr _: dashes _: offset 
+
+    <cdecl: void "cairo_get_dash" ( Cairo::GraphicsContext doublePointer doublePointer ) >
+    self primitiveFailed
+!
+
+cairo_get_dash_count: cr 
+
+    <cdecl: int32 "cairo_get_dash_count" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_get_fill_rule: cr 
+
+    <cdecl: int32 "cairo_get_fill_rule" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_get_font_face: cr 
+
+    <cdecl: Cairo::FontFace "cairo_get_font_face" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_get_font_matrix: cr _: matrix 
+
+    <cdecl: void "cairo_get_font_matrix" ( Cairo::GraphicsContext Cairo::Matrix ) >
+    self primitiveFailed
+!
+
+cairo_get_font_options: cr _: options 
+
+    <cdecl: void "cairo_get_font_options" ( Cairo::GraphicsContext Cairo::FontOptions ) >
+    self primitiveFailed
+!
+
+cairo_get_group_target: cr 
+
+    <cdecl: Cairo::Surface "cairo_get_group_target" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_get_line_cap: cr 
+
+    <cdecl: int32 "cairo_get_line_cap" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_get_line_join: cr 
+
+    <cdecl: int32 "cairo_get_line_join" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_get_line_width: cr 
+
+    <cdecl: double "cairo_get_line_width" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_get_matrix: cr _: matrix 
+
+    <cdecl: void "cairo_get_matrix" ( Cairo::GraphicsContext Cairo::Matrix ) >
+    self primitiveFailed
+!
+
+cairo_get_miter_limit: cr 
+
+    <cdecl: double "cairo_get_miter_limit" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_get_operator: cr 
+
+    <cdecl: int32 "cairo_get_operator" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_get_reference_count: cr 
+
+    <cdecl: uint32 "cairo_get_reference_count" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_get_scaled_font: cr 
+
+    <cdecl: Cairo::ScaledFont "cairo_get_scaled_font" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_get_source: cr 
+
+    <cdecl: Cairo::Pattern "cairo_get_source" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_get_target: cr 
+
+    <cdecl: Cairo::Surface "cairo_get_target" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_get_tolerance: cr 
+
+    <cdecl: double "cairo_get_tolerance" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_get_user_data: cr _: key 
+
+    <cdecl: voidPointer "cairo_get_user_data" ( Cairo::GraphicsContext Cairo::UserDataKey ) >
+    self primitiveFailed
+!
+
+cairo_glyph_allocate: num_glyphs 
+
+    <cdecl: Cairo::Glyph "cairo_glyph_allocate" ( int32 ) >
+    self primitiveFailed
+!
+
+cairo_glyph_extents: cr _: glyphs _: num_glyphs _: extents 
+
+    <cdecl: void "cairo_glyph_extents" ( Cairo::GraphicsContext Cairo::Glyph int32 Cairo::TextExtents ) >
+    self primitiveFailed
+!
+
+cairo_glyph_free: glyphs 
+
+    <cdecl: void "cairo_glyph_free" ( Cairo::Glyph ) >
+    self primitiveFailed
+!
+
+cairo_glyph_path: cr _: glyphs _: num_glyphs 
+
+    <cdecl: void "cairo_glyph_path" ( Cairo::GraphicsContext Cairo::Glyph int32 ) >
+    self primitiveFailed
+!
+
+cairo_has_current_point: cr 
+
+    <cdecl: int32 "cairo_has_current_point" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_identity_matrix: cr 
+
+    <cdecl: void "cairo_identity_matrix" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_image_surface_create: format _: width _: height 
+
+    <cdecl: Cairo::Surface "cairo_image_surface_create" ( int32 int32 int32 ) >
+    self primitiveFailed
+!
+
+cairo_image_surface_create_for_data: data _: format _: width _: height _: stride 
+
+    <cdecl: Cairo::Surface "cairo_image_surface_create_for_data" ( charPointer int32 int32 int32 int32 ) >
+    self primitiveFailed
+!
+
+cairo_image_surface_create_from_png: filename 
+
+    <cdecl: Cairo::Surface "cairo_image_surface_create_from_png" ( charPointer ) >
+    self primitiveFailed
+!
+
+cairo_image_surface_create_from_png_stream: read_func _: closure 
+
+    <cdecl: Cairo::Surface "cairo_image_surface_create_from_png_stream" ( pointer voidPointer ) >
+    self primitiveFailed
+!
+
+cairo_image_surface_get_data: surface 
+
+    <cdecl: charPointer "cairo_image_surface_get_data" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_image_surface_get_format: surface 
+
+    <cdecl: int32 "cairo_image_surface_get_format" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_image_surface_get_height: surface 
+
+    <cdecl: int32 "cairo_image_surface_get_height" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_image_surface_get_stride: surface 
+
+    <cdecl: int32 "cairo_image_surface_get_stride" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_image_surface_get_width: surface 
+
+    <cdecl: int32 "cairo_image_surface_get_width" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_in_clip: cr _: x _: y 
+
+    <cdecl: int32 "cairo_in_clip" ( Cairo::GraphicsContext double double ) >
+    self primitiveFailed
+!
+
+cairo_in_fill: cr _: x _: y 
+
+    <cdecl: int32 "cairo_in_fill" ( Cairo::GraphicsContext double double ) >
+    self primitiveFailed
+!
+
+cairo_in_stroke: cr _: x _: y 
+
+    <cdecl: int32 "cairo_in_stroke" ( Cairo::GraphicsContext double double ) >
+    self primitiveFailed
+!
+
+cairo_line_to: cr _: x _: y 
+
+    <cdecl: void "cairo_line_to" ( Cairo::GraphicsContext double double ) >
+    self primitiveFailed
+!
+
+cairo_mask: cr _: pattern 
+
+    <cdecl: void "cairo_mask" ( Cairo::GraphicsContext Cairo::Pattern ) >
+    self primitiveFailed
+!
+
+cairo_mask_surface: cr _: surface _: surface_x _: surface_y 
+
+    <cdecl: void "cairo_mask_surface" ( Cairo::GraphicsContext Cairo::Surface double double ) >
+    self primitiveFailed
+!
+
+cairo_matrix_init: matrix _: xx _: yx _: xy _: yy _: x0 _: y0 
+
+    <cdecl: void "cairo_matrix_init" ( Cairo::Matrix double double double double double double ) >
+    self primitiveFailed
+!
+
+cairo_matrix_init_identity: matrix 
+
+    <cdecl: void "cairo_matrix_init_identity" ( Cairo::Matrix ) >
+    self primitiveFailed
+!
+
+cairo_matrix_init_rotate: matrix _: radians 
+
+    <cdecl: void "cairo_matrix_init_rotate" ( Cairo::Matrix double ) >
+    self primitiveFailed
+!
+
+cairo_matrix_init_scale: matrix _: sx _: sy 
+
+    <cdecl: void "cairo_matrix_init_scale" ( Cairo::Matrix double double ) >
+    self primitiveFailed
+!
+
+cairo_matrix_init_translate: matrix _: tx _: ty 
+
+    <cdecl: void "cairo_matrix_init_translate" ( Cairo::Matrix double double ) >
+    self primitiveFailed
+!
+
+cairo_matrix_invert: matrix 
+
+    <cdecl: int32 "cairo_matrix_invert" ( Cairo::Matrix ) >
+    self primitiveFailed
+!
+
+cairo_matrix_multiply: result _: a _: b 
+
+    <cdecl: void "cairo_matrix_multiply" ( Cairo::Matrix Cairo::Matrix Cairo::Matrix ) >
+    self primitiveFailed
+!
+
+cairo_matrix_rotate: matrix _: radians 
+
+    <cdecl: void "cairo_matrix_rotate" ( Cairo::Matrix double ) >
+    self primitiveFailed
+!
+
+cairo_matrix_scale: matrix _: sx _: sy 
+
+    <cdecl: void "cairo_matrix_scale" ( Cairo::Matrix double double ) >
+    self primitiveFailed
+!
+
+cairo_matrix_transform_distance: matrix _: dx _: dy 
+
+    <cdecl: void "cairo_matrix_transform_distance" ( Cairo::Matrix doublePointer doublePointer ) >
+    self primitiveFailed
+!
+
+cairo_matrix_transform_point: matrix _: x _: y 
+
+    <cdecl: void "cairo_matrix_transform_point" ( Cairo::Matrix doublePointer doublePointer ) >
+    self primitiveFailed
+!
+
+cairo_matrix_translate: matrix _: tx _: ty 
+
+    <cdecl: void "cairo_matrix_translate" ( Cairo::Matrix double double ) >
+    self primitiveFailed
+!
+
+cairo_mesh_pattern_begin_patch: pattern 
+
+    <cdecl: void "cairo_mesh_pattern_begin_patch" ( Cairo::Pattern ) >
+    self primitiveFailed
+!
+
+cairo_mesh_pattern_curve_to: pattern _: x1 _: y1 _: x2 _: y2 _: x3 _: y3 
+
+    <cdecl: void "cairo_mesh_pattern_curve_to" ( Cairo::Pattern double double double double double double ) >
+    self primitiveFailed
+!
+
+cairo_mesh_pattern_end_patch: pattern 
+
+    <cdecl: void "cairo_mesh_pattern_end_patch" ( Cairo::Pattern ) >
+    self primitiveFailed
+!
+
+cairo_mesh_pattern_get_control_point: pattern _: patch_num _: point_num _: x _: y 
+
+    <cdecl: int32 "cairo_mesh_pattern_get_control_point" ( Cairo::Pattern uint32 uint32 doublePointer doublePointer ) >
+    self primitiveFailed
+!
+
+cairo_mesh_pattern_get_corner_color_rgba: pattern _: patch_num _: corner_num _: red _: green _: blue _: alpha 
+
+    <cdecl: int32 "cairo_mesh_pattern_get_corner_color_rgba" ( Cairo::Pattern uint32 uint32 doublePointer doublePointer doublePointer doublePointer ) >
+    self primitiveFailed
+!
+
+cairo_mesh_pattern_get_patch_count: pattern _: count 
+
+    <cdecl: int32 "cairo_mesh_pattern_get_patch_count" ( Cairo::Pattern int32Pointer ) >
+    self primitiveFailed
+!
+
+cairo_mesh_pattern_get_path: pattern _: patch_num 
+
+    <cdecl: Cairo::Path "cairo_mesh_pattern_get_path" ( Cairo::Pattern uint32 ) >
+    self primitiveFailed
+!
+
+cairo_mesh_pattern_line_to: pattern _: x _: y 
+
+    <cdecl: void "cairo_mesh_pattern_line_to" ( Cairo::Pattern double double ) >
+    self primitiveFailed
+!
+
+cairo_mesh_pattern_move_to: pattern _: x _: y 
+
+    <cdecl: void "cairo_mesh_pattern_move_to" ( Cairo::Pattern double double ) >
+    self primitiveFailed
+!
+
+cairo_mesh_pattern_set_control_point: pattern _: point_num _: x _: y 
+
+    <cdecl: void "cairo_mesh_pattern_set_control_point" ( Cairo::Pattern uint32 double double ) >
+    self primitiveFailed
+!
+
+cairo_mesh_pattern_set_corner_color_rgb: pattern _: corner_num _: red _: green _: blue 
+
+    <cdecl: void "cairo_mesh_pattern_set_corner_color_rgb" ( Cairo::Pattern uint32 double double double ) >
+    self primitiveFailed
+!
+
+cairo_mesh_pattern_set_corner_color_rgba: pattern _: corner_num _: red _: green _: blue _: alpha 
+
+    <cdecl: void "cairo_mesh_pattern_set_corner_color_rgba" ( Cairo::Pattern uint32 double double double double ) >
+    self primitiveFailed
+!
+
+cairo_move_to: cr _: x _: y 
+
+    <cdecl: void "cairo_move_to" ( Cairo::GraphicsContext double double ) >
+    self primitiveFailed
+!
+
+cairo_new_path: cr 
+
+    <cdecl: void "cairo_new_path" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_new_sub_path: cr 
+
+    <cdecl: void "cairo_new_sub_path" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_paint: cr 
+
+    <cdecl: void "cairo_paint" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_paint_with_alpha: cr _: alpha 
+
+    <cdecl: void "cairo_paint_with_alpha" ( Cairo::GraphicsContext double ) >
+    self primitiveFailed
+!
+
+cairo_path_destroy: path 
+
+    <cdecl: void "cairo_path_destroy" ( Cairo::Path ) >
+    self primitiveFailed
+!
+
+cairo_path_extents: cr _: x1 _: y1 _: x2 _: y2 
+
+    <cdecl: void "cairo_path_extents" ( Cairo::GraphicsContext doublePointer doublePointer doublePointer doublePointer ) >
+    self primitiveFailed
+!
+
+cairo_pattern_add_color_stop_rgb: pattern _: offset _: red _: green _: blue 
+
+    <cdecl: void "cairo_pattern_add_color_stop_rgb" ( Cairo::Pattern double double double double ) >
+    self primitiveFailed
+!
+
+cairo_pattern_add_color_stop_rgba: pattern _: offset _: red _: green _: blue _: alpha 
+
+    <cdecl: void "cairo_pattern_add_color_stop_rgba" ( Cairo::Pattern double double double double double ) >
+    self primitiveFailed
+!
+
+cairo_pattern_create_for_surface: surface 
+
+    <cdecl: Cairo::Pattern "cairo_pattern_create_for_surface" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_pattern_create_linear: x0 _: y0 _: x1 _: y1 
+
+    <cdecl: Cairo::Pattern "cairo_pattern_create_linear" ( double double double double ) >
+    self primitiveFailed
+!
+
+cairo_pattern_create_mesh
+
+    <cdecl: Cairo::Pattern "cairo_pattern_create_mesh" ( ) >
+    self primitiveFailed
+!
+
+cairo_pattern_create_radial: cx0 _: cy0 _: radius0 _: cx1 _: cy1 _: radius1 
+
+    <cdecl: Cairo::Pattern "cairo_pattern_create_radial" ( double double double double double double ) >
+    self primitiveFailed
+!
+
+cairo_pattern_create_raster_source: user_data _: content _: width _: height 
+
+    <cdecl: Cairo::Pattern "cairo_pattern_create_raster_source" ( voidPointer int32 int32 int32 ) >
+    self primitiveFailed
+!
+
+cairo_pattern_create_rgb: red _: green _: blue 
+
+    <cdecl: Cairo::Pattern "cairo_pattern_create_rgb" ( double double double ) >
+    self primitiveFailed
+!
+
+cairo_pattern_create_rgba: red _: green _: blue _: alpha 
+
+    <cdecl: Cairo::Pattern "cairo_pattern_create_rgba" ( double double double double ) >
+    self primitiveFailed
+!
+
+cairo_pattern_destroy: pattern 
+
+    <cdecl: void "cairo_pattern_destroy" ( Cairo::Pattern ) >
+    self primitiveFailed
+!
+
+cairo_pattern_get_color_stop_count: pattern _: count 
+
+    <cdecl: int32 "cairo_pattern_get_color_stop_count" ( Cairo::Pattern int32Pointer ) >
+    self primitiveFailed
+!
+
+cairo_pattern_get_color_stop_rgba: pattern _: index _: offset _: red _: green _: blue _: alpha 
+
+    <cdecl: int32 "cairo_pattern_get_color_stop_rgba" ( Cairo::Pattern int32 doublePointer doublePointer doublePointer doublePointer doublePointer ) >
+    self primitiveFailed
+!
+
+cairo_pattern_get_extend: pattern 
+
+    <cdecl: int32 "cairo_pattern_get_extend" ( Cairo::Pattern ) >
+    self primitiveFailed
+!
+
+cairo_pattern_get_filter: pattern 
+
+    <cdecl: int32 "cairo_pattern_get_filter" ( Cairo::Pattern ) >
+    self primitiveFailed
+!
+
+cairo_pattern_get_linear_points: pattern _: x0 _: y0 _: x1 _: y1 
+
+    <cdecl: int32 "cairo_pattern_get_linear_points" ( Cairo::Pattern doublePointer doublePointer doublePointer doublePointer ) >
+    self primitiveFailed
+!
+
+cairo_pattern_get_matrix: pattern _: matrix 
+
+    <cdecl: void "cairo_pattern_get_matrix" ( Cairo::Pattern Cairo::Matrix ) >
+    self primitiveFailed
+!
+
+cairo_pattern_get_radial_circles: pattern _: x0 _: y0 _: r0 _: x1 _: y1 _: r1 
+
+    <cdecl: int32 "cairo_pattern_get_radial_circles" ( Cairo::Pattern doublePointer doublePointer doublePointer doublePointer doublePointer doublePointer ) >
+    self primitiveFailed
+!
+
+cairo_pattern_get_reference_count: pattern 
+
+    <cdecl: uint32 "cairo_pattern_get_reference_count" ( Cairo::Pattern ) >
+    self primitiveFailed
+!
+
+cairo_pattern_get_rgba: pattern _: red _: green _: blue _: alpha 
+
+    <cdecl: int32 "cairo_pattern_get_rgba" ( Cairo::Pattern doublePointer doublePointer doublePointer doublePointer ) >
+    self primitiveFailed
+!
+
+cairo_pattern_get_surface: pattern _: surface 
+
+    <cdecl: int32 "cairo_pattern_get_surface" ( Cairo::Pattern pointer ) >
+    self primitiveFailed
+!
+
+cairo_pattern_get_type: pattern 
+
+    <cdecl: int32 "cairo_pattern_get_type" ( Cairo::Pattern ) >
+    self primitiveFailed
+!
+
+cairo_pattern_get_user_data: pattern _: key 
+
+    <cdecl: voidPointer "cairo_pattern_get_user_data" ( Cairo::Pattern Cairo::UserDataKey ) >
+    self primitiveFailed
+!
+
+cairo_pattern_reference: pattern 
+
+    <cdecl: Cairo::Pattern "cairo_pattern_reference" ( Cairo::Pattern ) >
+    self primitiveFailed
+!
+
+cairo_pattern_set_extend: pattern _: extend 
+
+    <cdecl: void "cairo_pattern_set_extend" ( Cairo::Pattern int32 ) >
+    self primitiveFailed
+!
+
+cairo_pattern_set_filter: pattern _: filter 
+
+    <cdecl: void "cairo_pattern_set_filter" ( Cairo::Pattern int32 ) >
+    self primitiveFailed
+!
+
+cairo_pattern_set_matrix: pattern _: matrix 
+
+    <cdecl: void "cairo_pattern_set_matrix" ( Cairo::Pattern Cairo::Matrix ) >
+    self primitiveFailed
+!
+
+cairo_pattern_set_user_data: pattern _: key _: user_data _: destroy 
+
+    <cdecl: int32 "cairo_pattern_set_user_data" ( Cairo::Pattern Cairo::UserDataKey voidPointer pointer ) >
+    self primitiveFailed
+!
+
+cairo_pattern_status: pattern 
+
+    <cdecl: int32 "cairo_pattern_status" ( Cairo::Pattern ) >
+    self primitiveFailed
+!
+
+cairo_pdf_get_versions: versions _: num_versions 
+
+    <cdecl: void "cairo_pdf_get_versions" ( pointer int32Pointer ) >
+    self primitiveFailed
+!
+
+cairo_pdf_surface_create: filename _: width_in_points _: height_in_points 
+
+    <cdecl: Cairo::Surface "cairo_pdf_surface_create" ( charPointer double double ) >
+    self primitiveFailed
+!
+
+cairo_pdf_surface_create_for_stream: write_func _: closure _: width_in_points _: height_in_points 
+
+    <cdecl: Cairo::Surface "cairo_pdf_surface_create_for_stream" ( pointer voidPointer double double ) >
+    self primitiveFailed
+!
+
+cairo_pdf_surface_restrict_to_version: surface _: version 
+
+    <cdecl: void "cairo_pdf_surface_restrict_to_version" ( Cairo::Surface int32 ) >
+    self primitiveFailed
+!
+
+cairo_pdf_surface_set_size: surface _: width_in_points _: height_in_points 
+
+    <cdecl: void "cairo_pdf_surface_set_size" ( Cairo::Surface double double ) >
+    self primitiveFailed
+!
+
+cairo_pdf_version_to_string: version 
+
+    <cdecl: charPointer "cairo_pdf_version_to_string" ( int32 ) >
+    self primitiveFailed
+!
+
+cairo_pop_group: cr 
+
+    <cdecl: Cairo::Pattern "cairo_pop_group" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_pop_group_to_source: cr 
+
+    <cdecl: void "cairo_pop_group_to_source" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_push_group: cr 
+
+    <cdecl: void "cairo_push_group" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_push_group_with_content: cr _: content 
+
+    <cdecl: void "cairo_push_group_with_content" ( Cairo::GraphicsContext int32 ) >
+    self primitiveFailed
+!
+
+cairo_raster_source_pattern_get_acquire: pattern _: acquire _: release 
+
+    <cdecl: void "cairo_raster_source_pattern_get_acquire" ( Cairo::Pattern pointer pointer ) >
+    self primitiveFailed
+!
+
+cairo_raster_source_pattern_get_callback_data: pattern 
+
+    <cdecl: voidPointer "cairo_raster_source_pattern_get_callback_data" ( Cairo::Pattern ) >
+    self primitiveFailed
+!
+
+cairo_raster_source_pattern_get_copy: pattern 
+
+    <cdecl: pointer "cairo_raster_source_pattern_get_copy" ( Cairo::Pattern ) >
+    self primitiveFailed
+!
+
+cairo_raster_source_pattern_get_finish: pattern 
+
+    <cdecl: pointer "cairo_raster_source_pattern_get_finish" ( Cairo::Pattern ) >
+    self primitiveFailed
+!
+
+cairo_raster_source_pattern_get_snapshot: pattern 
+
+    <cdecl: pointer "cairo_raster_source_pattern_get_snapshot" ( Cairo::Pattern ) >
+    self primitiveFailed
+!
+
+cairo_raster_source_pattern_set_acquire: pattern _: acquire _: release 
+
+    <cdecl: void "cairo_raster_source_pattern_set_acquire" ( Cairo::Pattern pointer pointer ) >
+    self primitiveFailed
+!
+
+cairo_raster_source_pattern_set_callback_data: pattern _: data 
+
+    <cdecl: void "cairo_raster_source_pattern_set_callback_data" ( Cairo::Pattern voidPointer ) >
+    self primitiveFailed
+!
+
+cairo_raster_source_pattern_set_copy: pattern _: copy 
+
+    <cdecl: void "cairo_raster_source_pattern_set_copy" ( Cairo::Pattern pointer ) >
+    self primitiveFailed
+!
+
+cairo_raster_source_pattern_set_finish: pattern _: finish 
+
+    <cdecl: void "cairo_raster_source_pattern_set_finish" ( Cairo::Pattern pointer ) >
+    self primitiveFailed
+!
+
+cairo_raster_source_pattern_set_snapshot: pattern _: snapshot 
+
+    <cdecl: void "cairo_raster_source_pattern_set_snapshot" ( Cairo::Pattern pointer ) >
+    self primitiveFailed
+!
+
+cairo_recording_surface_create: content _: extents 
+
+    <cdecl: Cairo::Surface "cairo_recording_surface_create" ( int32 Cairo::Rectangle ) >
+    self primitiveFailed
+!
+
+cairo_recording_surface_get_extents: surface _: extents 
+
+    <cdecl: int32 "cairo_recording_surface_get_extents" ( Cairo::Surface Cairo::Rectangle ) >
+    self primitiveFailed
+!
+
+cairo_recording_surface_ink_extents: surface _: x0 _: y0 _: width _: height 
+
+    <cdecl: void "cairo_recording_surface_ink_extents" ( Cairo::Surface doublePointer doublePointer doublePointer doublePointer ) >
+    self primitiveFailed
+!
+
+cairo_rectangle: cr _: x _: y _: width _: height 
+
+    <cdecl: void "cairo_rectangle" ( Cairo::GraphicsContext double double double double ) >
+    self primitiveFailed
+!
+
+cairo_rectangle_list_destroy: rectangle_list 
+
+    <cdecl: void "cairo_rectangle_list_destroy" ( Cairo::RectangleList ) >
+    self primitiveFailed
+!
+
+cairo_reference: cr 
+
+    <cdecl: Cairo::GraphicsContext "cairo_reference" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_region_contains_point: region _: x _: y 
+
+    <cdecl: int32 "cairo_region_contains_point" ( Cairo::Region int32 int32 ) >
+    self primitiveFailed
+!
+
+cairo_region_contains_rectangle: region _: rectangle 
+
+    <cdecl: int32 "cairo_region_contains_rectangle" ( Cairo::Region Cairo::RectangleInt ) >
+    self primitiveFailed
+!
+
+cairo_region_copy: original 
+
+    <cdecl: Cairo::Region "cairo_region_copy" ( Cairo::Region ) >
+    self primitiveFailed
+!
+
+cairo_region_create
+
+    <cdecl: Cairo::Region "cairo_region_create" ( ) >
+    self primitiveFailed
+!
+
+cairo_region_create_rectangle: rectangle 
+
+    <cdecl: Cairo::Region "cairo_region_create_rectangle" ( Cairo::RectangleInt ) >
+    self primitiveFailed
+!
+
+cairo_region_create_rectangles: rects _: count 
+
+    <cdecl: Cairo::Region "cairo_region_create_rectangles" ( Cairo::RectangleInt int32 ) >
+    self primitiveFailed
+!
+
+cairo_region_destroy: region 
+
+    <cdecl: void "cairo_region_destroy" ( Cairo::Region ) >
+    self primitiveFailed
+!
+
+cairo_region_equal: a _: b 
+
+    <cdecl: int32 "cairo_region_equal" ( Cairo::Region Cairo::Region ) >
+    self primitiveFailed
+!
+
+cairo_region_get_extents: region _: extents 
+
+    <cdecl: void "cairo_region_get_extents" ( Cairo::Region Cairo::RectangleInt ) >
+    self primitiveFailed
+!
+
+cairo_region_get_rectangle: region _: nth _: rectangle 
+
+    <cdecl: void "cairo_region_get_rectangle" ( Cairo::Region int32 Cairo::RectangleInt ) >
+    self primitiveFailed
+!
+
+cairo_region_intersect: dst _: other 
+
+    <cdecl: int32 "cairo_region_intersect" ( Cairo::Region Cairo::Region ) >
+    self primitiveFailed
+!
+
+cairo_region_intersect_rectangle: dst _: rectangle 
+
+    <cdecl: int32 "cairo_region_intersect_rectangle" ( Cairo::Region Cairo::RectangleInt ) >
+    self primitiveFailed
+!
+
+cairo_region_is_empty: region 
+
+    <cdecl: int32 "cairo_region_is_empty" ( Cairo::Region ) >
+    self primitiveFailed
+!
+
+cairo_region_num_rectangles: region 
+
+    <cdecl: int32 "cairo_region_num_rectangles" ( Cairo::Region ) >
+    self primitiveFailed
+!
+
+cairo_region_reference: region 
+
+    <cdecl: Cairo::Region "cairo_region_reference" ( Cairo::Region ) >
+    self primitiveFailed
+!
+
+cairo_region_status: region 
+
+    <cdecl: int32 "cairo_region_status" ( Cairo::Region ) >
+    self primitiveFailed
+!
+
+cairo_region_subtract: dst _: other 
+
+    <cdecl: int32 "cairo_region_subtract" ( Cairo::Region Cairo::Region ) >
+    self primitiveFailed
+!
+
+cairo_region_subtract_rectangle: dst _: rectangle 
+
+    <cdecl: int32 "cairo_region_subtract_rectangle" ( Cairo::Region Cairo::RectangleInt ) >
+    self primitiveFailed
+!
+
+cairo_region_translate: region _: dx _: dy 
+
+    <cdecl: void "cairo_region_translate" ( Cairo::Region int32 int32 ) >
+    self primitiveFailed
+!
+
+cairo_region_union: dst _: other 
+
+    <cdecl: int32 "cairo_region_union" ( Cairo::Region Cairo::Region ) >
+    self primitiveFailed
+!
+
+cairo_region_union_rectangle: dst _: rectangle 
+
+    <cdecl: int32 "cairo_region_union_rectangle" ( Cairo::Region Cairo::RectangleInt ) >
+    self primitiveFailed
+!
+
+cairo_region_xor: dst _: other 
+
+    <cdecl: int32 "cairo_region_xor" ( Cairo::Region Cairo::Region ) >
+    self primitiveFailed
+!
+
+cairo_region_xor_rectangle: dst _: rectangle 
+
+    <cdecl: int32 "cairo_region_xor_rectangle" ( Cairo::Region Cairo::RectangleInt ) >
+    self primitiveFailed
+!
+
+cairo_rel_curve_to: cr _: dx1 _: dy1 _: dx2 _: dy2 _: dx3 _: dy3 
+
+    <cdecl: void "cairo_rel_curve_to" ( Cairo::GraphicsContext double double double double double double ) >
+    self primitiveFailed
+!
+
+cairo_rel_line_to: cr _: dx _: dy 
+
+    <cdecl: void "cairo_rel_line_to" ( Cairo::GraphicsContext double double ) >
+    self primitiveFailed
+!
+
+cairo_rel_move_to: cr _: dx _: dy 
+
+    <cdecl: void "cairo_rel_move_to" ( Cairo::GraphicsContext double double ) >
+    self primitiveFailed
+!
+
+cairo_reset_clip: cr 
+
+    <cdecl: void "cairo_reset_clip" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_restore: cr 
+
+    <cdecl: void "cairo_restore" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_rotate: cr _: angle 
+
+    <cdecl: void "cairo_rotate" ( Cairo::GraphicsContext double ) >
+    self primitiveFailed
+!
+
+cairo_save: cr 
+
+    <cdecl: void "cairo_save" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_scale: cr _: sx _: sy 
+
+    <cdecl: void "cairo_scale" ( Cairo::GraphicsContext double double ) >
+    self primitiveFailed
+!
+
+cairo_scaled_font_create: font_face _: font_matrix _: ctm _: options 
+
+    <cdecl: Cairo::ScaledFont "cairo_scaled_font_create" ( Cairo::FontFace Cairo::Matrix Cairo::Matrix Cairo::FontOptions ) >
+    self primitiveFailed
+!
+
+cairo_scaled_font_destroy: scaled_font 
+
+    <cdecl: void "cairo_scaled_font_destroy" ( Cairo::ScaledFont ) >
+    self primitiveFailed
+!
+
+cairo_scaled_font_extents: scaled_font _: extents 
+
+    <cdecl: void "cairo_scaled_font_extents" ( Cairo::ScaledFont Cairo::FontExtents ) >
+    self primitiveFailed
+!
+
+cairo_scaled_font_get_ctm: scaled_font _: ctm 
+
+    <cdecl: void "cairo_scaled_font_get_ctm" ( Cairo::ScaledFont Cairo::Matrix ) >
+    self primitiveFailed
+!
+
+cairo_scaled_font_get_font_face: scaled_font 
+
+    <cdecl: Cairo::FontFace "cairo_scaled_font_get_font_face" ( Cairo::ScaledFont ) >
+    self primitiveFailed
+!
+
+cairo_scaled_font_get_font_matrix: scaled_font _: font_matrix 
+
+    <cdecl: void "cairo_scaled_font_get_font_matrix" ( Cairo::ScaledFont Cairo::Matrix ) >
+    self primitiveFailed
+!
+
+cairo_scaled_font_get_font_options: scaled_font _: options 
+
+    <cdecl: void "cairo_scaled_font_get_font_options" ( Cairo::ScaledFont Cairo::FontOptions ) >
+    self primitiveFailed
+!
+
+cairo_scaled_font_get_reference_count: scaled_font 
+
+    <cdecl: uint32 "cairo_scaled_font_get_reference_count" ( Cairo::ScaledFont ) >
+    self primitiveFailed
+!
+
+cairo_scaled_font_get_scale_matrix: scaled_font _: scale_matrix 
+
+    <cdecl: void "cairo_scaled_font_get_scale_matrix" ( Cairo::ScaledFont Cairo::Matrix ) >
+    self primitiveFailed
+!
+
+cairo_scaled_font_get_type: scaled_font 
+
+    <cdecl: int32 "cairo_scaled_font_get_type" ( Cairo::ScaledFont ) >
+    self primitiveFailed
+!
+
+cairo_scaled_font_get_user_data: scaled_font _: key 
+
+    <cdecl: voidPointer "cairo_scaled_font_get_user_data" ( Cairo::ScaledFont Cairo::UserDataKey ) >
+    self primitiveFailed
+!
+
+cairo_scaled_font_glyph_extents: scaled_font _: glyphs _: num_glyphs _: extents 
+
+    <cdecl: void "cairo_scaled_font_glyph_extents" ( Cairo::ScaledFont Cairo::Glyph int32 Cairo::TextExtents ) >
+    self primitiveFailed
+!
+
+cairo_scaled_font_reference: scaled_font 
+
+    <cdecl: Cairo::ScaledFont "cairo_scaled_font_reference" ( Cairo::ScaledFont ) >
+    self primitiveFailed
+!
+
+cairo_scaled_font_set_user_data: scaled_font _: key _: user_data _: destroy 
+
+    <cdecl: int32 "cairo_scaled_font_set_user_data" ( Cairo::ScaledFont Cairo::UserDataKey voidPointer pointer ) >
+    self primitiveFailed
+!
+
+cairo_scaled_font_status: scaled_font 
+
+    <cdecl: int32 "cairo_scaled_font_status" ( Cairo::ScaledFont ) >
+    self primitiveFailed
+!
+
+cairo_scaled_font_text_extents: scaled_font _: utf8 _: extents 
+
+    <cdecl: void "cairo_scaled_font_text_extents" ( Cairo::ScaledFont charPointer Cairo::TextExtents ) >
+    self primitiveFailed
+!
+
+cairo_scaled_font_text_to_glyphs: scaled_font _: x _: y _: utf8 _: utf8_len _: glyphs _: num_glyphs _: clusters _: num_clusters _: cluster_flags 
+
+    <cdecl: int32 "cairo_scaled_font_text_to_glyphs" ( Cairo::ScaledFont double double charPointer int32 pointer int32Pointer pointer int32Pointer intPointer ) >
+    self primitiveFailed
+!
+
+cairo_select_font_face: cr _: family _: slant _: weight 
+
+    <cdecl: void "cairo_select_font_face" ( Cairo::GraphicsContext charPointer int32 int32 ) >
+    self primitiveFailed
+!
+
+cairo_set_antialias: cr _: antialias 
+
+    <cdecl: void "cairo_set_antialias" ( Cairo::GraphicsContext int32 ) >
+    self primitiveFailed
+!
+
+cairo_set_dash: cr _: dashes _: num_dashes _: offset 
+
+    <cdecl: void "cairo_set_dash" ( Cairo::GraphicsContext doublePointer int32 double ) >
+    self primitiveFailed
+!
+
+cairo_set_fill_rule: cr _: fill_rule 
+
+    <cdecl: void "cairo_set_fill_rule" ( Cairo::GraphicsContext int32 ) >
+    self primitiveFailed
+!
+
+cairo_set_font_face: cr _: font_face 
+
+    <cdecl: void "cairo_set_font_face" ( Cairo::GraphicsContext Cairo::FontFace ) >
+    self primitiveFailed
+!
+
+cairo_set_font_matrix: cr _: matrix 
+
+    <cdecl: void "cairo_set_font_matrix" ( Cairo::GraphicsContext Cairo::Matrix ) >
+    self primitiveFailed
+!
+
+cairo_set_font_options: cr _: options 
+
+    <cdecl: void "cairo_set_font_options" ( Cairo::GraphicsContext Cairo::FontOptions ) >
+    self primitiveFailed
+!
+
+cairo_set_font_size: cr _: size 
+
+    <cdecl: void "cairo_set_font_size" ( Cairo::GraphicsContext double ) >
+    self primitiveFailed
+!
+
+cairo_set_line_cap: cr _: line_cap 
+
+    <cdecl: void "cairo_set_line_cap" ( Cairo::GraphicsContext int32 ) >
+    self primitiveFailed
+!
+
+cairo_set_line_join: cr _: line_join 
+
+    <cdecl: void "cairo_set_line_join" ( Cairo::GraphicsContext int32 ) >
+    self primitiveFailed
+!
+
+cairo_set_line_width: cr _: width 
+
+    <cdecl: void "cairo_set_line_width" ( Cairo::GraphicsContext double ) >
+    self primitiveFailed
+!
+
+cairo_set_matrix: cr _: matrix 
+
+    <cdecl: void "cairo_set_matrix" ( Cairo::GraphicsContext Cairo::Matrix ) >
+    self primitiveFailed
+!
+
+cairo_set_miter_limit: cr _: limit 
+
+    <cdecl: void "cairo_set_miter_limit" ( Cairo::GraphicsContext double ) >
+    self primitiveFailed
+!
+
+cairo_set_operator: cr _: op 
+
+    <cdecl: void "cairo_set_operator" ( Cairo::GraphicsContext int32 ) >
+    self primitiveFailed
+!
+
+cairo_set_scaled_font: cr _: scaled_font 
+
+    <cdecl: void "cairo_set_scaled_font" ( Cairo::GraphicsContext Cairo::ScaledFont ) >
+    self primitiveFailed
+!
+
+cairo_set_source: cr _: source 
+
+    <cdecl: void "cairo_set_source" ( Cairo::GraphicsContext Cairo::Pattern ) >
+    self primitiveFailed
+!
+
+cairo_set_source_rgb: cr _: red _: green _: blue 
+
+    <cdecl: void "cairo_set_source_rgb" ( Cairo::GraphicsContext double double double ) >
+    self primitiveFailed
+!
+
+cairo_set_source_rgba: cr _: red _: green _: blue _: alpha 
+
+    <cdecl: void "cairo_set_source_rgba" ( Cairo::GraphicsContext double double double double ) >
+    self primitiveFailed
+!
+
+cairo_set_source_surface: cr _: surface _: x _: y 
+
+    <cdecl: void "cairo_set_source_surface" ( Cairo::GraphicsContext Cairo::Surface double double ) >
+    self primitiveFailed
+!
+
+cairo_set_tolerance: cr _: tolerance 
+
+    <cdecl: void "cairo_set_tolerance" ( Cairo::GraphicsContext double ) >
+    self primitiveFailed
+!
+
+cairo_set_user_data: cr _: key _: user_data _: destroy 
+
+    <cdecl: int32 "cairo_set_user_data" ( Cairo::GraphicsContext Cairo::UserDataKey voidPointer pointer ) >
+    self primitiveFailed
+!
+
+cairo_show_glyphs: cr _: glyphs _: num_glyphs 
+
+    <cdecl: void "cairo_show_glyphs" ( Cairo::GraphicsContext Cairo::Glyph int32 ) >
+    self primitiveFailed
+!
+
+cairo_show_page: cr 
+
+    <cdecl: void "cairo_show_page" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_show_text: cr _: utf8 
+
+    <cdecl: void "cairo_show_text" ( Cairo::GraphicsContext charPointer ) >
+    self primitiveFailed
+!
+
+cairo_show_text_glyphs: cr _: utf8 _: utf8_len _: glyphs _: num_glyphs _: clusters _: num_clusters _: cluster_flags 
+
+    <cdecl: void "cairo_show_text_glyphs" ( Cairo::GraphicsContext charPointer int32 Cairo::Glyph int32 Cairo::TextCluster int32 int32 ) >
+    self primitiveFailed
+!
+
+cairo_status: cr 
+
+    <cdecl: int32 "cairo_status" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_status_to_string: status 
+
+    <cdecl: charPointer "cairo_status_to_string" ( int32 ) >
+    self primitiveFailed
+!
+
+cairo_stroke: cr 
+
+    <cdecl: void "cairo_stroke" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_stroke_extents: cr _: x1 _: y1 _: x2 _: y2 
+
+    <cdecl: void "cairo_stroke_extents" ( Cairo::GraphicsContext doublePointer doublePointer doublePointer doublePointer ) >
+    self primitiveFailed
+!
+
+cairo_stroke_preserve: cr 
+
+    <cdecl: void "cairo_stroke_preserve" ( Cairo::GraphicsContext ) >
+    self primitiveFailed
+!
+
+cairo_surface_copy_page: surface 
+
+    <cdecl: void "cairo_surface_copy_page" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_surface_create_for_rectangle: target _: x _: y _: width _: height 
+
+    <cdecl: Cairo::Surface "cairo_surface_create_for_rectangle" ( Cairo::Surface double double double double ) >
+    self primitiveFailed
+!
+
+cairo_surface_create_observer: target _: mode 
+
+    <cdecl: Cairo::Surface "cairo_surface_create_observer" ( Cairo::Surface int32 ) >
+    self primitiveFailed
+!
+
+cairo_surface_create_similar: other _: content _: width _: height 
+
+    <cdecl: Cairo::Surface "cairo_surface_create_similar" ( Cairo::Surface int32 int32 int32 ) >
+    self primitiveFailed
+!
+
+cairo_surface_create_similar_image: other _: format _: width _: height 
+
+    <cdecl: Cairo::Surface "cairo_surface_create_similar_image" ( Cairo::Surface int32 int32 int32 ) >
+    self primitiveFailed
+!
+
+cairo_surface_destroy: surface 
+
+    <cdecl: void "cairo_surface_destroy" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_surface_finish: surface 
+
+    <cdecl: void "cairo_surface_finish" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_surface_flush: surface 
+
+    <cdecl: void "cairo_surface_flush" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_surface_get_content: surface 
+
+    <cdecl: int32 "cairo_surface_get_content" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_surface_get_device: surface 
+
+    <cdecl: Cairo::Device "cairo_surface_get_device" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_surface_get_device_offset: surface _: x_offset _: y_offset 
+
+    <cdecl: void "cairo_surface_get_device_offset" ( Cairo::Surface doublePointer doublePointer ) >
+    self primitiveFailed
+!
+
+cairo_surface_get_device_scale: surface _: x_scale _: y_scale 
+
+    <cdecl: void "cairo_surface_get_device_scale" ( Cairo::Surface doublePointer doublePointer ) >
+    self primitiveFailed
+!
+
+cairo_surface_get_fallback_resolution: surface _: x_pixels_per_inch _: y_pixels_per_inch 
+
+    <cdecl: void "cairo_surface_get_fallback_resolution" ( Cairo::Surface doublePointer doublePointer ) >
+    self primitiveFailed
+!
+
+cairo_surface_get_font_options: surface _: options 
+
+    <cdecl: void "cairo_surface_get_font_options" ( Cairo::Surface Cairo::FontOptions ) >
+    self primitiveFailed
+!
+
+cairo_surface_get_mime_data: surface _: mime_type _: data _: length 
+
+    <cdecl: void "cairo_surface_get_mime_data" ( Cairo::Surface charPointer pointer longPointer ) >
+    self primitiveFailed
+!
+
+cairo_surface_get_reference_count: surface 
+
+    <cdecl: uint32 "cairo_surface_get_reference_count" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_surface_get_type: surface 
+
+    <cdecl: int32 "cairo_surface_get_type" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_surface_get_user_data: surface _: key 
+
+    <cdecl: voidPointer "cairo_surface_get_user_data" ( Cairo::Surface Cairo::UserDataKey ) >
+    self primitiveFailed
+!
+
+cairo_surface_has_show_text_glyphs: surface 
+
+    <cdecl: int32 "cairo_surface_has_show_text_glyphs" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_surface_map_to_image: surface _: extents 
+
+    <cdecl: Cairo::Surface "cairo_surface_map_to_image" ( Cairo::Surface Cairo::RectangleInt ) >
+    self primitiveFailed
+!
+
+cairo_surface_mark_dirty: surface 
+
+    <cdecl: void "cairo_surface_mark_dirty" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_surface_mark_dirty_rectangle: surface _: x _: y _: width _: height 
+
+    <cdecl: void "cairo_surface_mark_dirty_rectangle" ( Cairo::Surface int32 int32 int32 int32 ) >
+    self primitiveFailed
+!
+
+cairo_surface_observer_add_fill_callback: abstract_surface _: func _: data 
+
+    <cdecl: int32 "cairo_surface_observer_add_fill_callback" ( Cairo::Surface pointer voidPointer ) >
+    self primitiveFailed
+!
+
+cairo_surface_observer_add_finish_callback: abstract_surface _: func _: data 
+
+    <cdecl: int32 "cairo_surface_observer_add_finish_callback" ( Cairo::Surface pointer voidPointer ) >
+    self primitiveFailed
+!
+
+cairo_surface_observer_add_flush_callback: abstract_surface _: func _: data 
+
+    <cdecl: int32 "cairo_surface_observer_add_flush_callback" ( Cairo::Surface pointer voidPointer ) >
+    self primitiveFailed
+!
+
+cairo_surface_observer_add_glyphs_callback: abstract_surface _: func _: data 
+
+    <cdecl: int32 "cairo_surface_observer_add_glyphs_callback" ( Cairo::Surface pointer voidPointer ) >
+    self primitiveFailed
+!
+
+cairo_surface_observer_add_mask_callback: abstract_surface _: func _: data 
+
+    <cdecl: int32 "cairo_surface_observer_add_mask_callback" ( Cairo::Surface pointer voidPointer ) >
+    self primitiveFailed
+!
+
+cairo_surface_observer_add_paint_callback: abstract_surface _: func _: data 
+
+    <cdecl: int32 "cairo_surface_observer_add_paint_callback" ( Cairo::Surface pointer voidPointer ) >
+    self primitiveFailed
+!
+
+cairo_surface_observer_add_stroke_callback: abstract_surface _: func _: data 
+
+    <cdecl: int32 "cairo_surface_observer_add_stroke_callback" ( Cairo::Surface pointer voidPointer ) >
+    self primitiveFailed
+!
+
+cairo_surface_observer_elapsed: surface 
+
+    <cdecl: double "cairo_surface_observer_elapsed" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_surface_observer_print: surface _: write_func _: closure 
+
+    <cdecl: int32 "cairo_surface_observer_print" ( Cairo::Surface pointer voidPointer ) >
+    self primitiveFailed
+!
+
+cairo_surface_reference: surface 
+
+    <cdecl: Cairo::Surface "cairo_surface_reference" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_surface_set_device_offset: surface _: x_offset _: y_offset 
+
+    <cdecl: void "cairo_surface_set_device_offset" ( Cairo::Surface double double ) >
+    self primitiveFailed
+!
+
+cairo_surface_set_device_scale: surface _: x_scale _: y_scale 
+
+    <cdecl: void "cairo_surface_set_device_scale" ( Cairo::Surface double double ) >
+    self primitiveFailed
+!
+
+cairo_surface_set_fallback_resolution: surface _: x_pixels_per_inch _: y_pixels_per_inch 
+
+    <cdecl: void "cairo_surface_set_fallback_resolution" ( Cairo::Surface double double ) >
+    self primitiveFailed
+!
+
+cairo_surface_set_mime_data: surface _: mime_type _: data _: length _: destroy _: closure 
+
+    <cdecl: int32 "cairo_surface_set_mime_data" ( Cairo::Surface charPointer charPointer long pointer voidPointer ) >
+    self primitiveFailed
+!
+
+cairo_surface_set_user_data: surface _: key _: user_data _: destroy 
+
+    <cdecl: int32 "cairo_surface_set_user_data" ( Cairo::Surface Cairo::UserDataKey voidPointer pointer ) >
+    self primitiveFailed
+!
+
+cairo_surface_show_page: surface 
+
+    <cdecl: void "cairo_surface_show_page" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_surface_status: surface 
+
+    <cdecl: int32 "cairo_surface_status" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_surface_supports_mime_type: surface _: mime_type 
+
+    <cdecl: int32 "cairo_surface_supports_mime_type" ( Cairo::Surface charPointer ) >
+    self primitiveFailed
+!
+
+cairo_surface_unmap_image: surface _: image 
+
+    <cdecl: void "cairo_surface_unmap_image" ( Cairo::Surface Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_surface_write_to_png: surface _: filename 
+
+    <cdecl: int32 "cairo_surface_write_to_png" ( Cairo::Surface charPointer ) >
+    self primitiveFailed
+!
+
+cairo_surface_write_to_png_stream: surface _: write_func _: closure 
+
+    <cdecl: int32 "cairo_surface_write_to_png_stream" ( Cairo::Surface pointer voidPointer ) >
+    self primitiveFailed
+!
+
+cairo_text_cluster_allocate: num_clusters 
+
+    <cdecl: Cairo::TextCluster "cairo_text_cluster_allocate" ( int32 ) >
+    self primitiveFailed
+!
+
+cairo_text_cluster_free: clusters 
+
+    <cdecl: void "cairo_text_cluster_free" ( Cairo::TextCluster ) >
+    self primitiveFailed
+!
+
+cairo_text_extents: cr _: utf8 _: extents 
+
+    <cdecl: void "cairo_text_extents" ( Cairo::GraphicsContext charPointer Cairo::TextExtents ) >
+    self primitiveFailed
+!
+
+cairo_text_path: cr _: utf8 
+
+    <cdecl: void "cairo_text_path" ( Cairo::GraphicsContext charPointer ) >
+    self primitiveFailed
+!
+
+cairo_toy_font_face_create: family _: slant _: weight 
+
+    <cdecl: Cairo::FontFace "cairo_toy_font_face_create" ( charPointer int32 int32 ) >
+    self primitiveFailed
+!
+
+cairo_toy_font_face_get_family: font_face 
+
+    <cdecl: charPointer "cairo_toy_font_face_get_family" ( Cairo::FontFace ) >
+    self primitiveFailed
+!
+
+cairo_toy_font_face_get_slant: font_face 
+
+    <cdecl: int32 "cairo_toy_font_face_get_slant" ( Cairo::FontFace ) >
+    self primitiveFailed
+!
+
+cairo_toy_font_face_get_weight: font_face 
+
+    <cdecl: int32 "cairo_toy_font_face_get_weight" ( Cairo::FontFace ) >
+    self primitiveFailed
+!
+
+cairo_transform: cr _: matrix 
+
+    <cdecl: void "cairo_transform" ( Cairo::GraphicsContext Cairo::Matrix ) >
+    self primitiveFailed
+!
+
+cairo_translate: cr _: tx _: ty 
+
+    <cdecl: void "cairo_translate" ( Cairo::GraphicsContext double double ) >
+    self primitiveFailed
+!
+
+cairo_user_font_face_create
+
+    <cdecl: Cairo::FontFace "cairo_user_font_face_create" ( ) >
+    self primitiveFailed
+!
+
+cairo_user_font_face_get_init_func: font_face 
+
+    <cdecl: pointer "cairo_user_font_face_get_init_func" ( Cairo::FontFace ) >
+    self primitiveFailed
+!
+
+cairo_user_font_face_get_render_glyph_func: font_face 
+
+    <cdecl: pointer "cairo_user_font_face_get_render_glyph_func" ( Cairo::FontFace ) >
+    self primitiveFailed
+!
+
+cairo_user_font_face_get_text_to_glyphs_func: font_face 
+
+    <cdecl: pointer "cairo_user_font_face_get_text_to_glyphs_func" ( Cairo::FontFace ) >
+    self primitiveFailed
+!
+
+cairo_user_font_face_get_unicode_to_glyph_func: font_face 
+
+    <cdecl: pointer "cairo_user_font_face_get_unicode_to_glyph_func" ( Cairo::FontFace ) >
+    self primitiveFailed
+!
+
+cairo_user_font_face_set_init_func: font_face _: init_func 
+
+    <cdecl: void "cairo_user_font_face_set_init_func" ( Cairo::FontFace pointer ) >
+    self primitiveFailed
+!
+
+cairo_user_font_face_set_render_glyph_func: font_face _: render_glyph_func 
+
+    <cdecl: void "cairo_user_font_face_set_render_glyph_func" ( Cairo::FontFace pointer ) >
+    self primitiveFailed
+!
+
+cairo_user_font_face_set_text_to_glyphs_func: font_face _: text_to_glyphs_func 
+
+    <cdecl: void "cairo_user_font_face_set_text_to_glyphs_func" ( Cairo::FontFace pointer ) >
+    self primitiveFailed
+!
+
+cairo_user_font_face_set_unicode_to_glyph_func: font_face _: unicode_to_glyph_func 
+
+    <cdecl: void "cairo_user_font_face_set_unicode_to_glyph_func" ( Cairo::FontFace pointer ) >
+    self primitiveFailed
+!
+
+cairo_user_to_device: cr _: x _: y 
+
+    <cdecl: void "cairo_user_to_device" ( Cairo::GraphicsContext doublePointer doublePointer ) >
+    self primitiveFailed
+!
+
+cairo_user_to_device_distance: cr _: dx _: dy 
+
+    <cdecl: void "cairo_user_to_device_distance" ( Cairo::GraphicsContext doublePointer doublePointer ) >
+    self primitiveFailed
+!
+
+cairo_version
+
+    <cdecl: int32 "cairo_version" ( ) >
+    self primitiveFailed
+!
+
+cairo_version_string
+
+    <cdecl: charPointer "cairo_version_string" ( ) >
+    self primitiveFailed
+!
+
+cairo_xlib_device_debug_cap_xrender_version: device _: major_version _: minor_version 
+
+    <cdecl: void "cairo_xlib_device_debug_cap_xrender_version" ( Cairo::Device int32 int32 ) >
+    self primitiveFailed
+!
+
+cairo_xlib_device_debug_get_precision: device 
+
+    <cdecl: int32 "cairo_xlib_device_debug_get_precision" ( Cairo::Device ) >
+    self primitiveFailed
+!
+
+cairo_xlib_device_debug_set_precision: device _: precision 
+
+    <cdecl: void "cairo_xlib_device_debug_set_precision" ( Cairo::Device int32 ) >
+    self primitiveFailed
+!
+
+cairo_xlib_surface_create: dpy _: drawable _: visual _: width _: height 
+
+    <cdecl: Cairo::Surface "cairo_xlib_surface_create" ( pointer long pointer int32 int32 ) >
+    self primitiveFailed
+!
+
+cairo_xlib_surface_create_for_bitmap: dpy _: bitmap _: screen _: width _: height 
+
+    <cdecl: Cairo::Surface "cairo_xlib_surface_create_for_bitmap" ( pointer long pointer int32 int32 ) >
+    self primitiveFailed
+!
+
+cairo_xlib_surface_get_depth: surface 
+
+    <cdecl: int32 "cairo_xlib_surface_get_depth" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_xlib_surface_get_display: surface 
+
+    <cdecl: pointer "cairo_xlib_surface_get_display" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_xlib_surface_get_drawable: surface 
+
+    <cdecl: long "cairo_xlib_surface_get_drawable" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_xlib_surface_get_height: surface 
+
+    <cdecl: int32 "cairo_xlib_surface_get_height" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_xlib_surface_get_screen: surface 
+
+    <cdecl: pointer "cairo_xlib_surface_get_screen" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_xlib_surface_get_visual: surface 
+
+    <cdecl: pointer "cairo_xlib_surface_get_visual" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_xlib_surface_get_width: surface 
+
+    <cdecl: int32 "cairo_xlib_surface_get_width" ( Cairo::Surface ) >
+    self primitiveFailed
+!
+
+cairo_xlib_surface_set_drawable: surface _: drawable _: width _: height 
+
+    <cdecl: void "cairo_xlib_surface_set_drawable" ( Cairo::Surface long int32 int32 ) >
+    self primitiveFailed
+!
+
+cairo_xlib_surface_set_size: surface _: width _: height 
+
+    <cdecl: void "cairo_xlib_surface_set_size" ( Cairo::Surface int32 int32 ) >
+    self primitiveFailed
+! !
+
--- a/Cairo__ClockView.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__ClockView.st	Sun Dec 28 22:38:24 2014 +0100
@@ -51,17 +51,17 @@
 !ClockView methodsFor:'redrawing'!
 
 redraw
-    self redrawWithCairo
+    self redrawWithCairoBuffered
 
     "Created: / 16-06-2012 / 23:25:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 27-12-2014 / 00:32:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:17:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 redrawX: x y: y width: w height: h
-    self redrawWithCairoX: x y: y width: w height: h
+    self redrawWithCairoBufferedX: x y: y width: w height: h
 
     "Created: / 17-06-2012 / 21:33:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 27-12-2014 / 00:32:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:18:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !ClockView methodsFor:'redrawing - cairo'!
@@ -95,7 +95,7 @@
         inset := 0.05.
         cr save.
 
-        cr lineCap: Cairo::LineCap LINE_CAP_ROUND.
+        cr lineCap: Cairo::LineCap CAIRO_LINE_CAP_ROUND.
         (i \\ 3) ~~ 0 ifTrue:[
             inset := inset * 0.8.
             cr lineWidth: 0.03.
@@ -121,7 +121,7 @@
     secs := time seconds * (Float pi / 30).
 
     cr save.
-    cr lineCap: Cairo::LineCap LINE_CAP_ROUND.
+    cr lineCap: Cairo::LineCap CAIRO_LINE_CAP_ROUND.
 
     "/ draw the seconds hand
     cr save.
@@ -159,6 +159,7 @@
     cr restore.
 
     "Created: / 27-12-2014 / 00:00:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:13:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !ClockView class methodsFor:'documentation'!
--- a/Cairo__Content.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__Content.st	Sun Dec 28 22:38:24 2014 +0100
@@ -4,54 +4,36 @@
 
 SharedPool subclass:#Content
 	instanceVariableNames:''
-	classVariableNames:'CONTENT_COLOR CONTENT_ALPHA CONTENT_COLOR_ALPHA'
+	classVariableNames:'CAIRO_CONTENT_COLOR CAIRO_CONTENT_ALPHA CAIRO_CONTENT_COLOR_ALPHA'
 	poolDictionaries:''
 	category:'Cairo-Constants'
 !
 
-
 !Content class methodsFor:'initialization'!
 
 initialize
 
-	CONTENT_COLOR := 4096.
-	CONTENT_ALPHA := 8192.
-	CONTENT_COLOR_ALPHA := 12288.
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    CAIRO_CONTENT_COLOR := 4096.
+    CAIRO_CONTENT_ALPHA := 8192.
+    CAIRO_CONTENT_COLOR_ALPHA := 12288.
 ! !
 
 !Content class methodsFor:'constants'!
 
-CONTENT_ALPHA
-
-	^CONTENT_ALPHA
+CAIRO_CONTENT_ALPHA
 
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-CONTENT_COLOR
-
-	^CONTENT_COLOR
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_CONTENT_ALPHA
 !
 
-CONTENT_COLOR_ALPHA
+CAIRO_CONTENT_COLOR
 
-	^CONTENT_COLOR_ALPHA
+    ^CAIRO_CONTENT_COLOR
+!
 
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_CONTENT_COLOR_ALPHA
+
+    ^CAIRO_CONTENT_COLOR_ALPHA
 ! !
 
-!Content class methodsFor:'documentation'!
-
-version
-    ^'$Id$'
-!
-
-version_HG
-    ^ '$Changeset: <not expanded> $'
-! !
 
 Content initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__Device.st	Sun Dec 28 22:38:24 2014 +0100
@@ -0,0 +1,28 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+ExternalAddress subclass:#Device
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Cairo-Constants'
+!
+
+!Device class methodsFor:'accessing'!
+
+libraryName
+
+    OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
+
+    OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+
+    self error:'Library name for host OS is not known'
+!
+
+sizeof
+    "Returns size of undelaying structure in bytes"
+
+    ^0
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__DeviceType.st	Sun Dec 28 22:38:24 2014 +0100
@@ -0,0 +1,79 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+SharedPool subclass:#DeviceType
+	instanceVariableNames:''
+	classVariableNames:'CAIRO_DEVICE_TYPE_DRM CAIRO_DEVICE_TYPE_GL
+		CAIRO_DEVICE_TYPE_SCRIPT CAIRO_DEVICE_TYPE_XCB
+		CAIRO_DEVICE_TYPE_XLIB CAIRO_DEVICE_TYPE_XML
+		CAIRO_DEVICE_TYPE_COGL CAIRO_DEVICE_TYPE_WIN32
+		CAIRO_DEVICE_TYPE_INVALID'
+	poolDictionaries:''
+	category:'Cairo-Constants'
+!
+
+!DeviceType class methodsFor:'initialization'!
+
+initialize
+
+    CAIRO_DEVICE_TYPE_DRM := 0.
+    CAIRO_DEVICE_TYPE_GL := 1.
+    CAIRO_DEVICE_TYPE_SCRIPT := 2.
+    CAIRO_DEVICE_TYPE_XCB := 3.
+    CAIRO_DEVICE_TYPE_XLIB := 4.
+    CAIRO_DEVICE_TYPE_XML := 5.
+    CAIRO_DEVICE_TYPE_COGL := 6.
+    CAIRO_DEVICE_TYPE_WIN32 := 7.
+    CAIRO_DEVICE_TYPE_INVALID := -1.
+! !
+
+!DeviceType class methodsFor:'constants'!
+
+CAIRO_DEVICE_TYPE_COGL
+
+    ^CAIRO_DEVICE_TYPE_COGL
+!
+
+CAIRO_DEVICE_TYPE_DRM
+
+    ^CAIRO_DEVICE_TYPE_DRM
+!
+
+CAIRO_DEVICE_TYPE_GL
+
+    ^CAIRO_DEVICE_TYPE_GL
+!
+
+CAIRO_DEVICE_TYPE_INVALID
+
+    ^CAIRO_DEVICE_TYPE_INVALID
+!
+
+CAIRO_DEVICE_TYPE_SCRIPT
+
+    ^CAIRO_DEVICE_TYPE_SCRIPT
+!
+
+CAIRO_DEVICE_TYPE_WIN32
+
+    ^CAIRO_DEVICE_TYPE_WIN32
+!
+
+CAIRO_DEVICE_TYPE_XCB
+
+    ^CAIRO_DEVICE_TYPE_XCB
+!
+
+CAIRO_DEVICE_TYPE_XLIB
+
+    ^CAIRO_DEVICE_TYPE_XLIB
+!
+
+CAIRO_DEVICE_TYPE_XML
+
+    ^CAIRO_DEVICE_TYPE_XML
+! !
+
+
+DeviceType initialize!
--- a/Cairo__Extend.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__Extend.st	Sun Dec 28 22:38:24 2014 +0100
@@ -4,62 +4,43 @@
 
 SharedPool subclass:#Extend
 	instanceVariableNames:''
-	classVariableNames:'EXTEND_NONE EXTEND_REPEAT EXTEND_REFLECT EXTEND_PAD'
+	classVariableNames:'CAIRO_EXTEND_NONE CAIRO_EXTEND_REPEAT CAIRO_EXTEND_REFLECT
+		CAIRO_EXTEND_PAD'
 	poolDictionaries:''
 	category:'Cairo-Constants'
 !
 
-
 !Extend class methodsFor:'initialization'!
 
 initialize
 
-	EXTEND_NONE := 0.
-	EXTEND_REPEAT := 1.
-	EXTEND_REFLECT := 2.
-	EXTEND_PAD := 3.
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    CAIRO_EXTEND_NONE := 0.
+    CAIRO_EXTEND_REPEAT := 1.
+    CAIRO_EXTEND_REFLECT := 2.
+    CAIRO_EXTEND_PAD := 3.
 ! !
 
 !Extend class methodsFor:'constants'!
 
-EXTEND_NONE
+CAIRO_EXTEND_NONE
 
-	^EXTEND_NONE
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_EXTEND_NONE
 !
 
-EXTEND_PAD
+CAIRO_EXTEND_PAD
 
-	^EXTEND_PAD
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_EXTEND_PAD
 !
 
-EXTEND_REFLECT
+CAIRO_EXTEND_REFLECT
 
-	^EXTEND_REFLECT
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_EXTEND_REFLECT
 !
 
-EXTEND_REPEAT
+CAIRO_EXTEND_REPEAT
 
-	^EXTEND_REPEAT
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_EXTEND_REPEAT
 ! !
 
-!Extend class methodsFor:'documentation'!
-
-version
-    ^'$Id$'
-!
-
-version_HG
-    ^ '$Changeset: <not expanded> $'
-! !
 
 Extend initialize!
--- a/Cairo__FillRule.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__FillRule.st	Sun Dec 28 22:38:24 2014 +0100
@@ -4,46 +4,30 @@
 
 SharedPool subclass:#FillRule
 	instanceVariableNames:''
-	classVariableNames:'FILL_RULE_WINDING FILL_RULE_EVEN_ODD'
+	classVariableNames:'CAIRO_FILL_RULE_WINDING CAIRO_FILL_RULE_EVEN_ODD'
 	poolDictionaries:''
 	category:'Cairo-Constants'
 !
 
-
 !FillRule class methodsFor:'initialization'!
 
 initialize
 
-	FILL_RULE_WINDING := 0.
-	FILL_RULE_EVEN_ODD := 1.
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    CAIRO_FILL_RULE_WINDING := 0.
+    CAIRO_FILL_RULE_EVEN_ODD := 1.
 ! !
 
 !FillRule class methodsFor:'constants'!
 
-FILL_RULE_EVEN_ODD
+CAIRO_FILL_RULE_EVEN_ODD
 
-	^FILL_RULE_EVEN_ODD
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_FILL_RULE_EVEN_ODD
 !
 
-FILL_RULE_WINDING
+CAIRO_FILL_RULE_WINDING
 
-	^FILL_RULE_WINDING
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_FILL_RULE_WINDING
 ! !
 
-!FillRule class methodsFor:'documentation'!
-
-version
-    ^'$Id$'
-!
-
-version_HG
-    ^ '$Changeset: <not expanded> $'
-! !
 
 FillRule initialize!
--- a/Cairo__Filter.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__Filter.st	Sun Dec 28 22:38:24 2014 +0100
@@ -4,79 +4,55 @@
 
 SharedPool subclass:#Filter
 	instanceVariableNames:''
-	classVariableNames:'FILTER_FAST FILTER_GOOD FILTER_BEST FILTER_NEAREST
-		FILTER_BILINEAR FILTER_GAUSSIAN'
+	classVariableNames:'CAIRO_FILTER_FAST CAIRO_FILTER_GOOD CAIRO_FILTER_BEST
+		CAIRO_FILTER_NEAREST CAIRO_FILTER_BILINEAR CAIRO_FILTER_GAUSSIAN'
 	poolDictionaries:''
 	category:'Cairo-Constants'
 !
 
-
 !Filter class methodsFor:'initialization'!
 
 initialize
 
-	FILTER_FAST := 0.
-	FILTER_GOOD := 1.
-	FILTER_BEST := 2.
-	FILTER_NEAREST := 3.
-	FILTER_BILINEAR := 4.
-	FILTER_GAUSSIAN := 5.
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    CAIRO_FILTER_FAST := 0.
+    CAIRO_FILTER_GOOD := 1.
+    CAIRO_FILTER_BEST := 2.
+    CAIRO_FILTER_NEAREST := 3.
+    CAIRO_FILTER_BILINEAR := 4.
+    CAIRO_FILTER_GAUSSIAN := 5.
 ! !
 
 !Filter class methodsFor:'constants'!
 
-FILTER_BEST
+CAIRO_FILTER_BEST
 
-	^FILTER_BEST
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_FILTER_BEST
 !
 
-FILTER_BILINEAR
+CAIRO_FILTER_BILINEAR
 
-	^FILTER_BILINEAR
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_FILTER_BILINEAR
 !
 
-FILTER_FAST
+CAIRO_FILTER_FAST
 
-	^FILTER_FAST
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_FILTER_FAST
 !
 
-FILTER_GAUSSIAN
-
-	^FILTER_GAUSSIAN
+CAIRO_FILTER_GAUSSIAN
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-FILTER_GOOD
-
-	^FILTER_GOOD
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_FILTER_GAUSSIAN
 !
 
-FILTER_NEAREST
+CAIRO_FILTER_GOOD
 
-	^FILTER_NEAREST
+    ^CAIRO_FILTER_GOOD
+!
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_FILTER_NEAREST
+
+    ^CAIRO_FILTER_NEAREST
 ! !
 
-!Filter class methodsFor:'documentation'!
-
-version
-    ^'$Id$'
-!
-
-version_HG
-    ^ '$Changeset: <not expanded> $'
-! !
 
 Filter initialize!
--- a/Cairo__FontExtents.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__FontExtents.st	Sun Dec 28 22:38:24 2014 +0100
@@ -52,92 +52,74 @@
 
 libraryName
 
-	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
-
-	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+    OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
 
-	self error:'Library name for host OS is not known'
+    OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self error:'Library name for host OS is not known'
 !
 
-structSize
+sizeof
+    "Returns size of undelaying structure in bytes"
 
-	^320
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^40
 ! !
 
 !FontExtents methodsFor:'accessing'!
 
 ascent
+    "Returns double"
 
-	^self doubleAt:1 + 0
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleAt:1 + 0
 !
 
 ascent: value
 
-	self doubleAt:1 + 0 put:value
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleAt:1 + 0 put:value
 !
 
 descent
+    "Returns double"
 
-	^self doubleAt:1 + 8
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleAt:1 + 8
 !
 
 descent: value
 
-	self doubleAt:1 + 8 put:value
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleAt:1 + 8 put:value
 !
 
 height
+    "Returns double"
 
-	^self doubleAt:1 + 16
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleAt:1 + 16
 !
 
 height: value
 
-	self doubleAt:1 + 16 put:value
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleAt:1 + 16 put:value
 !
 
 maxXAdvance
+    "Returns double"
 
-	^self doubleAt:1 + 24
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleAt:1 + 24
 !
 
 maxXAdvance: value
 
-	self doubleAt:1 + 24 put:value
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleAt:1 + 24 put:value
 !
 
 maxYAdvance
+    "Returns double"
 
-	^self doubleAt:1 + 32
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleAt:1 + 32
 !
 
 maxYAdvance: value
 
-	self doubleAt:1 + 32 put:value
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleAt:1 + 32 put:value
 ! !
 
 !FontExtents class methodsFor:'documentation'!
@@ -149,3 +131,4 @@
 version_HG
     ^ '$Changeset: <not expanded> $'
 ! !
+
--- a/Cairo__FontFace.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__FontFace.st	Sun Dec 28 22:38:24 2014 +0100
@@ -50,96 +50,10 @@
     "Created: / 31-08-2011 / 18:02:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-libraryName
-
-	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
-
-	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
-
-	self error:'Library name for host OS is not known'
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-structSize
-
-	^0
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
-! !
-
-!FontFace class methodsFor:'primitives'!
-
-primDestroy: font_face 
-
-	<cdecl: const void "cairo_font_face_destroy" ( Cairo::FontFace ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primFtFontFaceCreateForFtFace: face loadFlags: load_flags 
-
-	<cdecl: const Cairo::FontFace "cairo_ft_font_face_create_for_ft_face" ( pointer int32 ) >
-	self primitiveFailed
-
-    "Created: / 10-07-2008 / 23:05:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primFtFontFaceCreateForPattern: pattern 
-
-	<cdecl: const Cairo::FontFace "cairo_ft_font_face_create_for_pattern" ( pointer ) >
-	self primitiveFailed
-
-    "Created: / 10-07-2008 / 23:05:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
+sizeof
+    "Returns size of undelaying structure in bytes"
 
-primGetReferenceCount: font_face 
-
-	<cdecl: const uint32 "cairo_font_face_get_reference_count" ( Cairo::FontFace ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetType: font_face 
-
-	<cdecl: const int32 "cairo_font_face_get_type" ( Cairo::FontFace ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetUserData: font_face key: key 
-
-	<cdecl: const pointer "cairo_font_face_get_user_data" ( Cairo::FontFace Cairo::UserDataKey ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primReference: font_face 
-
-	<cdecl: const Cairo::FontFace "cairo_font_face_reference" ( Cairo::FontFace ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetUserData: font_face key: key userData: user_data destroy: destroy 
-
-	<cdecl: const int32 "cairo_font_face_set_user_data" ( Cairo::FontFace Cairo::UserDataKey pointer pointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primStatus: font_face 
-
-	<cdecl: const int32 "cairo_font_face_status" ( Cairo::FontFace ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^0
 ! !
 
 !FontFace class methodsFor:'documentation'!
@@ -151,3 +65,4 @@
 version_HG
     ^ '$Changeset: <not expanded> $'
 ! !
+
--- a/Cairo__FontOptions.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__FontOptions.st	Sun Dec 28 22:38:24 2014 +0100
@@ -52,20 +52,17 @@
 
 libraryName
 
-	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
-
-	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+    OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
 
-	self error:'Library name for host OS is not known'
+    OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self error:'Library name for host OS is not known'
 !
 
-structSize
+sizeof
+    "Returns size of undelaying structure in bytes"
 
-	^0
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^0
 ! !
 
 !FontOptions class methodsFor:'primitives'!
@@ -207,3 +204,4 @@
 version_HG
     ^ '$Changeset: <not expanded> $'
 ! !
+
--- a/Cairo__FontSlant.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__FontSlant.st	Sun Dec 28 22:38:24 2014 +0100
@@ -4,54 +4,37 @@
 
 SharedPool subclass:#FontSlant
 	instanceVariableNames:''
-	classVariableNames:'FONT_SLANT_NORMAL FONT_SLANT_ITALIC FONT_SLANT_OBLIQUE'
+	classVariableNames:'CAIRO_FONT_SLANT_NORMAL CAIRO_FONT_SLANT_ITALIC
+		CAIRO_FONT_SLANT_OBLIQUE'
 	poolDictionaries:''
 	category:'Cairo-Constants'
 !
 
-
 !FontSlant class methodsFor:'initialization'!
 
 initialize
 
-	FONT_SLANT_NORMAL := 0.
-	FONT_SLANT_ITALIC := 1.
-	FONT_SLANT_OBLIQUE := 2.
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    CAIRO_FONT_SLANT_NORMAL := 0.
+    CAIRO_FONT_SLANT_ITALIC := 1.
+    CAIRO_FONT_SLANT_OBLIQUE := 2.
 ! !
 
 !FontSlant class methodsFor:'constants'!
 
-FONT_SLANT_ITALIC
-
-	^FONT_SLANT_ITALIC
+CAIRO_FONT_SLANT_ITALIC
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-FONT_SLANT_NORMAL
-
-	^FONT_SLANT_NORMAL
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_FONT_SLANT_ITALIC
 !
 
-FONT_SLANT_OBLIQUE
+CAIRO_FONT_SLANT_NORMAL
 
-	^FONT_SLANT_OBLIQUE
+    ^CAIRO_FONT_SLANT_NORMAL
+!
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_FONT_SLANT_OBLIQUE
+
+    ^CAIRO_FONT_SLANT_OBLIQUE
 ! !
 
-!FontSlant class methodsFor:'documentation'!
-
-version
-    ^'$Id$'
-!
-
-version_HG
-    ^ '$Changeset: <not expanded> $'
-! !
 
 FontSlant initialize!
--- a/Cairo__FontType.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__FontType.st	Sun Dec 28 22:38:24 2014 +0100
@@ -4,62 +4,49 @@
 
 SharedPool subclass:#FontType
 	instanceVariableNames:''
-	classVariableNames:'FONT_TYPE_TOY FONT_TYPE_FT FONT_TYPE_WIN32 FONT_TYPE_QUARTZ'
+	classVariableNames:'CAIRO_FONT_TYPE_TOY CAIRO_FONT_TYPE_FT CAIRO_FONT_TYPE_WIN32
+		CAIRO_FONT_TYPE_QUARTZ CAIRO_FONT_TYPE_USER'
 	poolDictionaries:''
 	category:'Cairo-Constants'
 !
 
-
 !FontType class methodsFor:'initialization'!
 
 initialize
 
-	FONT_TYPE_TOY := 0.
-	FONT_TYPE_FT := 1.
-	FONT_TYPE_WIN32 := 2.
-	FONT_TYPE_QUARTZ := 3.
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    CAIRO_FONT_TYPE_TOY := 0.
+    CAIRO_FONT_TYPE_FT := 1.
+    CAIRO_FONT_TYPE_WIN32 := 2.
+    CAIRO_FONT_TYPE_QUARTZ := 3.
+    CAIRO_FONT_TYPE_USER := 4.
 ! !
 
 !FontType class methodsFor:'constants'!
 
-FONT_TYPE_FT
+CAIRO_FONT_TYPE_FT
 
-	^FONT_TYPE_FT
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_FONT_TYPE_FT
 !
 
-FONT_TYPE_QUARTZ
+CAIRO_FONT_TYPE_QUARTZ
 
-	^FONT_TYPE_QUARTZ
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_FONT_TYPE_QUARTZ
 !
 
-FONT_TYPE_TOY
+CAIRO_FONT_TYPE_TOY
 
-	^FONT_TYPE_TOY
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_FONT_TYPE_TOY
 !
 
-FONT_TYPE_WIN32
+CAIRO_FONT_TYPE_USER
 
-	^FONT_TYPE_WIN32
+    ^CAIRO_FONT_TYPE_USER
+!
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_FONT_TYPE_WIN32
+
+    ^CAIRO_FONT_TYPE_WIN32
 ! !
 
-!FontType class methodsFor:'documentation'!
-
-version
-    ^'$Id$'
-!
-
-version_HG
-    ^ '$Changeset: <not expanded> $'
-! !
 
 FontType initialize!
--- a/Cairo__FontWeight.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__FontWeight.st	Sun Dec 28 22:38:24 2014 +0100
@@ -4,46 +4,30 @@
 
 SharedPool subclass:#FontWeight
 	instanceVariableNames:''
-	classVariableNames:'FONT_WEIGHT_NORMAL FONT_WEIGHT_BOLD'
+	classVariableNames:'CAIRO_FONT_WEIGHT_NORMAL CAIRO_FONT_WEIGHT_BOLD'
 	poolDictionaries:''
 	category:'Cairo-Constants'
 !
 
-
 !FontWeight class methodsFor:'initialization'!
 
 initialize
 
-	FONT_WEIGHT_NORMAL := 0.
-	FONT_WEIGHT_BOLD := 1.
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    CAIRO_FONT_WEIGHT_NORMAL := 0.
+    CAIRO_FONT_WEIGHT_BOLD := 1.
 ! !
 
 !FontWeight class methodsFor:'constants'!
 
-FONT_WEIGHT_BOLD
+CAIRO_FONT_WEIGHT_BOLD
 
-	^FONT_WEIGHT_BOLD
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_FONT_WEIGHT_BOLD
 !
 
-FONT_WEIGHT_NORMAL
+CAIRO_FONT_WEIGHT_NORMAL
 
-	^FONT_WEIGHT_NORMAL
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_FONT_WEIGHT_NORMAL
 ! !
 
-!FontWeight class methodsFor:'documentation'!
-
-version
-    ^'$Id$'
-!
-
-version_HG
-    ^ '$Changeset: <not expanded> $'
-! !
 
 FontWeight initialize!
--- a/Cairo__Format.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__Format.st	Sun Dec 28 22:38:24 2014 +0100
@@ -4,62 +4,62 @@
 
 SharedPool subclass:#Format
 	instanceVariableNames:''
-	classVariableNames:'FORMAT_ARGB32 FORMAT_RGB24 FORMAT_A8 FORMAT_A1'
+	classVariableNames:'CAIRO_FORMAT_INVALID CAIRO_FORMAT_ARGB32 CAIRO_FORMAT_RGB24
+		CAIRO_FORMAT_A8 CAIRO_FORMAT_A1 CAIRO_FORMAT_RGB16_565
+		CAIRO_FORMAT_RGB30'
 	poolDictionaries:''
 	category:'Cairo-Constants'
 !
 
-
 !Format class methodsFor:'initialization'!
 
 initialize
 
-	FORMAT_ARGB32 := 0.
-	FORMAT_RGB24 := 1.
-	FORMAT_A8 := 2.
-	FORMAT_A1 := 3.
-
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    CAIRO_FORMAT_INVALID := -1.
+    CAIRO_FORMAT_ARGB32 := 0.
+    CAIRO_FORMAT_RGB24 := 1.
+    CAIRO_FORMAT_A8 := 2.
+    CAIRO_FORMAT_A1 := 3.
+    CAIRO_FORMAT_RGB16_565 := 4.
+    CAIRO_FORMAT_RGB30 := 5.
 ! !
 
 !Format class methodsFor:'constants'!
 
-FORMAT_A1
+CAIRO_FORMAT_A1
 
-	^FORMAT_A1
-
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_FORMAT_A1
 !
 
-FORMAT_A8
+CAIRO_FORMAT_A8
 
-	^FORMAT_A8
+    ^CAIRO_FORMAT_A8
+!
 
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_FORMAT_ARGB32
+
+    ^CAIRO_FORMAT_ARGB32
 !
 
-FORMAT_ARGB32
+CAIRO_FORMAT_INVALID
 
-	^FORMAT_ARGB32
+    ^CAIRO_FORMAT_INVALID
+!
 
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_FORMAT_RGB16_565
+
+    ^CAIRO_FORMAT_RGB16_565
 !
 
-FORMAT_RGB24
+CAIRO_FORMAT_RGB24
 
-	^FORMAT_RGB24
+    ^CAIRO_FORMAT_RGB24
+!
 
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_FORMAT_RGB30
+
+    ^CAIRO_FORMAT_RGB30
 ! !
 
-!Format class methodsFor:'documentation'!
-
-version
-    ^'$Id$'
-!
-
-version_HG
-    ^ '$Changeset: <not expanded> $'
-! !
 
 Format initialize!
--- a/Cairo__Glyph.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__Glyph.st	Sun Dec 28 22:38:24 2014 +0100
@@ -52,57 +52,52 @@
 
 libraryName
 
-	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
-
-	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+    OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
 
-	self error:'Library name for host OS is not known'
+    OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self error:'Library name for host OS is not known'
 !
 
-structSize
+sizeof
+    "Returns size of undelaying structure in bytes"
 
-	^160
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^20
 ! !
 
 !Glyph methodsFor:'accessing'!
 
 index
+    "Returns a Cface::CLongNode"
 
-	^self longAt:1 + 0
+    ^self longLongAt:1 + 0
+!
 
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+index: value
+
+    self longLongAt:1 + 0 put:value
 !
 
 x
+    "Returns double"
 
-	^self doubleAt:1 + 4
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleAt:1 + 4
 !
 
 x: value
 
-	self doubleAt:1 + 4 put:value
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleAt:1 + 4 put:value
 !
 
 y
+    "Returns double"
 
-	^self doubleAt:1 + 12
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleAt:1 + 12
 !
 
 y: value
 
-	self doubleAt:1 + 12 put:value
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleAt:1 + 12 put:value
 ! !
 
 !Glyph class methodsFor:'documentation'!
@@ -114,3 +109,4 @@
 version_HG
     ^ '$Changeset: <not expanded> $'
 ! !
+
--- a/Cairo__GraphicsContext.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__GraphicsContext.st	Sun Dec 28 22:38:24 2014 +0100
@@ -20,13 +20,12 @@
         assert: (surface isKindOf: Cairo::Surface)
         message: 'surface is not valid Cairo surface'.
 
-    cr := self primCreate: surface.
-    cr setSurface: surface.
+    cr := CPrimitives cairo_create: surface.
     ^cr
 
     "Created: / 10-07-2008 / 09:37:57 / Jan Vrany <vranyj1@fel.cvut.cz>"
     "Modified: / 10-09-2008 / 19:03:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
-    "Modified: / 16-06-2012 / 08:36:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 21:57:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !GraphicsContext class methodsFor:'accessing'!
@@ -71,20 +70,17 @@
 
 libraryName
 
-	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
-
-	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+    OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
 
-	self error:'Library name for host OS is not known'
+    OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self error:'Library name for host OS is not known'
 !
 
 sizeof
+    "Returns size of undelaying structure in bytes"
 
-	^0
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^0
 ! !
 
 !GraphicsContext class methodsFor:'examples'!
@@ -110,850 +106,8 @@
     "Created: / 23-04-2009 / 17:33:57 / Jan Vrany <vranyj1@fel.cvut.cz>"
 ! !
 
-!GraphicsContext class methodsFor:'primitives'!
-
-primAppendPath: cr path: path
-
-	<cdecl: const void "cairo_append_path" ( Cairo::GraphicsContext Cairo::Path ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primArc: cr xc: xc yc: yc radius: radius angle1: angle1 angle2: angle2
-
-	<cdecl: const void "cairo_arc" ( Cairo::GraphicsContext double double double double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primArcNegative: cr xc: xc yc: yc radius: radius angle1: angle1 angle2: angle2
-
-	<cdecl: const void "cairo_arc_negative" ( Cairo::GraphicsContext double double double double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primClip: cr
-
-	<cdecl: const void "cairo_clip" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primClipExtents: cr x1: x1 y1: y1 x2: x2 y2: y2
-
-	<cdecl: const void "cairo_clip_extents" ( Cairo::GraphicsContext pointer pointer pointer pointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primClipPreserve: cr
-
-	<cdecl: const void "cairo_clip_preserve" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primClosePath: cr
-
-	<cdecl: const void "cairo_close_path" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primCopyClipRectangleList: cr
-
-	<cdecl: const Cairo::RectangleList "cairo_copy_clip_rectangle_list" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primCopyPage: cr
-
-	<cdecl: const void "cairo_copy_page" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primCopyPath: cr
-
-	<cdecl: const Cairo::Path "cairo_copy_path" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primCopyPathFlat: cr
-
-	<cdecl: const Cairo::Path "cairo_copy_path_flat" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primCreate: target
-
-	<cdecl: Cairo::GraphicsContext "cairo_create" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primCurveTo: cr x1: x1 y1: y1 x2: x2 y2: y2 x3: x3 y3: y3
-
-	<cdecl: const void "cairo_curve_to" ( Cairo::GraphicsContext double double double double double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primDestroy: cr
-
-	<cdecl: const void "cairo_destroy" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primDeviceToUser: cr x: x y: y
-
-	<cdecl: const void "cairo_device_to_user" ( Cairo::GraphicsContext pointer pointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primDeviceToUserDistance: cr dx: dx dy: dy
-
-	<cdecl: const void "cairo_device_to_user_distance" ( Cairo::GraphicsContext pointer pointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primFill: cr
-
-	<cdecl: const void "cairo_fill" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primFillExtents: cr x1: x1 y1: y1 x2: x2 y2: y2
-
-	<cdecl: const void "cairo_fill_extents" ( Cairo::GraphicsContext pointer pointer pointer pointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primFillPreserve: cr
-
-	<cdecl: const void "cairo_fill_preserve" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primFontExtents: cr extents: extents
-
-	<cdecl: const void "cairo_font_extents" ( Cairo::GraphicsContext Cairo::FontExtents ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetAntialias: cr
-
-	<cdecl: const int32 "cairo_get_antialias" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetCurrentPoint: cr x: x y: y
-
-	<cdecl: const void "cairo_get_current_point" ( Cairo::GraphicsContext pointer pointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetDash: cr dashes: dashes offset: offset
-
-	<cdecl: const void "cairo_get_dash" ( Cairo::GraphicsContext pointer pointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetDashCount: cr
-
-	<cdecl: const int32 "cairo_get_dash_count" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetFillRule: cr
-
-	<cdecl: const int32 "cairo_get_fill_rule" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetFontFace: cr
-
-	<cdecl: Cairo::FontFace "cairo_get_font_face" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetFontMatrix: cr matrix: matrix
-
-	<cdecl: const void "cairo_get_font_matrix" ( Cairo::GraphicsContext Cairo::Matrix ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetFontOptions: cr options: options
-
-	<cdecl: const void "cairo_get_font_options" ( Cairo::GraphicsContext Cairo::FontOptions ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetGroupTarget: cr
-
-	<cdecl: Cairo::Surface "cairo_get_group_target" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetLineCap: cr
-
-	<cdecl: const int32 "cairo_get_line_cap" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetLineJoin: cr
-
-	<cdecl: const int32 "cairo_get_line_join" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetLineWidth: cr
-
-	<cdecl: const double "cairo_get_line_width" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetMatrix: cr matrix: matrix
-
-	<cdecl: const void "cairo_get_matrix" ( Cairo::GraphicsContext Cairo::Matrix ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetMiterLimit: cr
-
-	<cdecl: const double "cairo_get_miter_limit" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetOperator: cr
-
-	<cdecl: const int32 "cairo_get_operator" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetReferenceCount: cr
-
-	<cdecl: const uint32 "cairo_get_reference_count" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetScaledFont: cr
-
-	<cdecl: Cairo::ScaledFont "cairo_get_scaled_font" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetSource: cr
-
-	<cdecl: Cairo::Pattern "cairo_get_source" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetTarget: cr
-
-	<cdecl: Cairo::Surface "cairo_get_target" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetTolerance: cr
-
-	<cdecl: const double "cairo_get_tolerance" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetUserData: cr key: key
-
-	<cdecl: const pointer "cairo_get_user_data" ( Cairo::GraphicsContext Cairo::UserDataKey ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGlyphExtents: cr glyphs: glyphs numGlyphs: num_glyphs extents: extents
-
-	<cdecl: const void "cairo_glyph_extents" ( Cairo::GraphicsContext Cairo::Glyph int32 Cairo::TextExtents ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGlyphPath: cr glyphs: glyphs numGlyphs: num_glyphs
-
-	<cdecl: const void "cairo_glyph_path" ( Cairo::GraphicsContext Cairo::Glyph int32 ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primHasCurrentPoint: cr
-
-	<cdecl: const int32 "cairo_has_current_point" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primIdentityMatrix: cr
-
-	<cdecl: const void "cairo_identity_matrix" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primInFill: cr x: x y: y
-
-	<cdecl: const int32 "cairo_in_fill" ( Cairo::GraphicsContext double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primInStroke: cr x: x y: y
-
-	<cdecl: const int32 "cairo_in_stroke" ( Cairo::GraphicsContext double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primLineTo: cr x: x y: y
-
-	<cdecl: const void "cairo_line_to" ( Cairo::GraphicsContext double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primMask: cr pattern: pattern
-
-	<cdecl: const void "cairo_mask" ( Cairo::GraphicsContext Cairo::Pattern ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primMaskSurface: cr surface: surface surfaceX: surface_x surfaceY: surface_y
-
-	<cdecl: const void "cairo_mask_surface" ( Cairo::GraphicsContext Cairo::Surface double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primMoveTo: cr x: x y: y
-
-	<cdecl: const void "cairo_move_to" ( Cairo::GraphicsContext double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primNewPath: cr
-
-	<cdecl: const void "cairo_new_path" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primNewSubPath: cr
-
-	<cdecl: const void "cairo_new_sub_path" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primPaint: cr
-
-	<cdecl: const void "cairo_paint" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primPaintWithAlpha: cr alpha: alpha
-
-	<cdecl: const void "cairo_paint_with_alpha" ( Cairo::GraphicsContext double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primPathExtents: cr x1: x1 y1: y1 x2: x2 y2: y2
-
-	<cdecl: const void "cairo_path_extents" ( Cairo::GraphicsContext pointer pointer pointer pointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primPopGroup: cr
-
-	<cdecl: Cairo::Pattern "cairo_pop_group" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primPopGroupToSource: cr
-
-	<cdecl: const void "cairo_pop_group_to_source" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primPushGroup: cr
-
-	<cdecl: const void "cairo_push_group" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primPushGroupWithContent: cr content: content
-
-	<cdecl: const void "cairo_push_group_with_content" ( Cairo::GraphicsContext int32 ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primRectangle: cr x: x y: y width: width height: height
-
-	<cdecl: const void "cairo_rectangle" ( Cairo::GraphicsContext double double double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primReference: cr
-
-	<cdecl: Cairo::GraphicsContext "cairo_reference" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primRelCurveTo: cr dx1: dx1 dy1: dy1 dx2: dx2 dy2: dy2 dx3: dx3 dy3: dy3
-
-	<cdecl: const void "cairo_rel_curve_to" ( Cairo::GraphicsContext double double double double double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primRelLineTo: cr dx: dx dy: dy
-
-	<cdecl: const void "cairo_rel_line_to" ( Cairo::GraphicsContext double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primRelMoveTo: cr dx: dx dy: dy
-
-	<cdecl: const void "cairo_rel_move_to" ( Cairo::GraphicsContext double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primResetClip: cr
-
-	<cdecl: const void "cairo_reset_clip" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primRestore: cr
-
-	<cdecl: const void "cairo_restore" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primRotate: cr angle: angle
-
-	<cdecl: const void "cairo_rotate" ( Cairo::GraphicsContext double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSave: cr
-
-	<cdecl: const void "cairo_save" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primScale: cr sx: sx sy: sy
-
-	<cdecl: const void "cairo_scale" ( Cairo::GraphicsContext double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSelectFontFace: cr family: family slant: slant weight: weight
-
-	<cdecl: const void "cairo_select_font_face" ( Cairo::GraphicsContext charPointer int32 int32 ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetAntialias: cr antialias: antialias
-
-	<cdecl: const void "cairo_set_antialias" ( Cairo::GraphicsContext int32 ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetDash: cr dashes: dashes numDashes: num_dashes offset: offset
-
-	<cdecl: const void "cairo_set_dash" ( Cairo::GraphicsContext pointer int32 double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetFillRule: cr fillRule: fill_rule
-
-	<cdecl: const void "cairo_set_fill_rule" ( Cairo::GraphicsContext int32 ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetFontFace: cr fontFace: font_face
-
-	<cdecl: const void "cairo_set_font_face" ( Cairo::GraphicsContext Cairo::FontFace ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetFontMatrix: cr matrix: matrix
-
-	<cdecl: const void "cairo_set_font_matrix" ( Cairo::GraphicsContext Cairo::Matrix ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetFontOptions: cr options: options
-
-	<cdecl: const void "cairo_set_font_options" ( Cairo::GraphicsContext Cairo::FontOptions ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetFontSize: cr size: size
-
-	<cdecl: const void "cairo_set_font_size" ( Cairo::GraphicsContext double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetLineCap: cr lineCap: line_cap
-
-	<cdecl: const void "cairo_set_line_cap" ( Cairo::GraphicsContext int32 ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetLineJoin: cr lineJoin: line_join
-
-	<cdecl: const void "cairo_set_line_join" ( Cairo::GraphicsContext int32 ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetLineWidth: cr width: width
-
-	<cdecl: const void "cairo_set_line_width" ( Cairo::GraphicsContext double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetMatrix: cr matrix: matrix
-
-	<cdecl: const void "cairo_set_matrix" ( Cairo::GraphicsContext Cairo::Matrix ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetMiterLimit: cr limit: limit
-
-	<cdecl: const void "cairo_set_miter_limit" ( Cairo::GraphicsContext double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetOperator: cr op: op
-
-	<cdecl: const void "cairo_set_operator" ( Cairo::GraphicsContext int32 ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetScaledFont: cr scaledFont: scaled_font
-
-	<cdecl: const void "cairo_set_scaled_font" ( Cairo::GraphicsContext Cairo::ScaledFont ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetSource: cr source: source
-
-	<cdecl: const void "cairo_set_source" ( Cairo::GraphicsContext Cairo::Pattern ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetSourceRgb: cr red: red green: green blue: blue
-
-	<cdecl: const void "cairo_set_source_rgb" ( Cairo::GraphicsContext double double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetSourceRgba: cr red: red green: green blue: blue alpha: alpha
-
-	<cdecl: const void "cairo_set_source_rgba" ( Cairo::GraphicsContext double double double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetSourceSurface: cr surface: surface x: x y: y
-
-	<cdecl: const void "cairo_set_source_surface" ( Cairo::GraphicsContext Cairo::Surface double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetTolerance: cr tolerance: tolerance
-
-	<cdecl: const void "cairo_set_tolerance" ( Cairo::GraphicsContext double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetUserData: cr key: key userData: user_data destroy: destroy
-
-	<cdecl: const int32 "cairo_set_user_data" ( Cairo::GraphicsContext Cairo::UserDataKey pointer pointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primShowGlyphs: cr glyphs: glyphs numGlyphs: num_glyphs
-
-	<cdecl: const void "cairo_show_glyphs" ( Cairo::GraphicsContext Cairo::Glyph int32 ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primShowPage: cr
-
-	<cdecl: const void "cairo_show_page" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primShowText: cr utf8: utf8
-
-	<cdecl: const void "cairo_show_text" ( Cairo::GraphicsContext charPointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primStatus: cr
-
-	<cdecl: const int32 "cairo_status" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primStroke: cr
-
-	<cdecl: const void "cairo_stroke" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primStrokeExtents: cr x1: x1 y1: y1 x2: x2 y2: y2
-
-	<cdecl: const void "cairo_stroke_extents" ( Cairo::GraphicsContext pointer pointer pointer pointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primStrokePreserve: cr
-
-	<cdecl: const void "cairo_stroke_preserve" ( Cairo::GraphicsContext ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primTextExtents: cr utf8: utf8 extents: extents
-
-	<cdecl: const void "cairo_text_extents" ( Cairo::GraphicsContext charPointer Cairo::TextExtents ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primTextPath: cr utf8: utf8
-
-	<cdecl: const void "cairo_text_path" ( Cairo::GraphicsContext charPointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primTransform: cr matrix: matrix
-
-	<cdecl: const void "cairo_transform" ( Cairo::GraphicsContext Cairo::Matrix ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primTranslate: cr tx: tx ty: ty
-
-	<cdecl: const void "cairo_translate" ( Cairo::GraphicsContext double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primUserToDevice: cr x: x y: y
-
-	<cdecl: const void "cairo_user_to_device" ( Cairo::GraphicsContext pointer pointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primUserToDeviceDistance: cr dx: dx dy: dy
-
-	<cdecl: const void "cairo_user_to_device_distance" ( Cairo::GraphicsContext pointer pointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-! !
-
 !GraphicsContext methodsFor:'accessing'!
 
-gcId
-
-    gcId ifNil:[gcId := self surface gcId].
-    ^gcId
-
-    "Created: / 10-09-2008 / 20:52:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
 paint: aColor
 
     ^self
@@ -966,6 +120,14 @@
     "Modified: / 23-04-2009 / 17:31:33 / Jan Vrany <vranyj1@fel.cvut.cz>"
 !
 
+referenceCount
+    "Return value or reference counter"
+
+    ^ CPrimitives cairo_get_reference_count: self
+
+    "Created: / 28-12-2014 / 22:11:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 surface
 
     surface ifNil:[surface := self class primGetTarget: self].
@@ -979,35 +141,39 @@
 
 lineCap: lc
 
-    ^self class primSetLineCap: self lineCap: lc
+    ^ CPrimitives cairo_set_line_cap: self _: lc
 
     "Created: / 17-06-2012 / 22:09:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 21:58:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 lineWidth: w
 
-    ^self class primSetLineWidth: self width: w
+    ^CPrimitives cairo_set_line_width: self _:w
 
     "Created: / 17-06-2012 / 21:55:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 21:58:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !GraphicsContext methodsFor:'font'!
 
 fontFaceFamily: family slant: slant weight: weight
 
-    ^self class primSelectFontFace: self
-        family: family asString
-        slant: slant asInteger
-        weight: weight asInteger
+    ^CPrimitives cairo_select_font_face: self
+        _: family asString
+        _: slant asInteger
+        _: weight asInteger
 
     "Created: / 23-04-2009 / 17:23:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 28-12-2014 / 21:58:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 fontSize: sz
 
-    ^self class primSetFontSize: self size: sz
+    ^CPrimitives cairo_set_font_size: self _: sz
 
     "Created: / 23-04-2009 / 17:24:33 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 28-12-2014 / 21:58:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !GraphicsContext methodsFor:'misc'!
@@ -1021,55 +187,71 @@
 setSourceSurface: aSyrface x:x y:y
     "raise an error: this method should be implemented (TODO)"
 
-    ^ self class primSetSourceSurface: self surface: aSyrface x: x y: y
+    ^ CPrimitives cairo_set_source_surface: self _: aSyrface _: x _: y
 
     "Created: / 24-12-2014 / 23:12:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 21:59:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !GraphicsContext methodsFor:'paints'!
 
 paintRed: red green: green blue: blue alpha: alpha
 
-    ^self class
-        primSetSourceRgba: self red: red green: green blue: blue alpha: alpha
+    ^CPrimitives cairo_set_source_rgba: self _: red _: green _: blue _: alpha
 
     "Created: / 10-07-2008 / 11:10:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 28-12-2014 / 21:59:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !GraphicsContext methodsFor:'paths'!
 
 arcX: x y: y radius: r from: startAngle to: stopAngle
 
-    ^self class primArc: self xc: x asDouble yc: y asDouble radius: r asDouble angle1: startAngle asDouble angle2: stopAngle asDouble
+    ^CPrimitives cairo_arc: self _: x asDouble _: y asDouble _: r asDouble _: startAngle asDouble _: stopAngle asDouble
 
     "Created: / 17-06-2012 / 21:50:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:00:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 lineToX: x y: y
 
-    ^self class primLineTo: self x: x asDouble y: y asDouble
+    ^CPrimitives cairo_line_to: self _: x asDouble _: y asDouble
 
     "Created: / 17-06-2012 / 22:15:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:00:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 moveToX: x y: y
 
-    ^self class primMoveTo: self x: x asDouble y: y asDouble
+    ^CPrimitives cairo_move_to: self _: x asDouble _: y asDouble
 
     "Created: / 23-04-2009 / 17:21:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
-    "Modified: / 17-06-2012 / 22:33:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:00:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 rectangleX: x y: y width: width height: height
 
-    ^self class
-        primRectangle: self
-        x: x asDouble
-        y: y asDouble
-        width: width asDouble
-        height: height asDouble
+    ^CPrimitives cairo_rectangle: self
+        _: x asDouble
+        _: y asDouble
+        _: width asDouble
+        _: height asDouble
 
     "Created: / 10-07-2008 / 09:41:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:01:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!GraphicsContext methodsFor:'private'!
+
+destroy
+    "Tell Cairo library to destroy the corresponding C object.
+     Remember that object is physically destroyed only if internal
+     refcounter goes to zero. However, after calling destroy,
+     this instance should be treated as invalid."
+
+    ^ CPrimitives cairo_destroy: self
+
+    "Created: / 28-12-2014 / 22:10:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !GraphicsContext methodsFor:'private accessing'!
@@ -1084,93 +266,105 @@
 !GraphicsContext methodsFor:'state'!
 
 restore
-    ^self class primRestore: self
+    ^CPrimitives cairo_restore: self
 
     "Created: / 17-06-2012 / 21:51:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:01:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 save
-    ^self class primSave: self
+    ^CPrimitives cairo_save: self
 
     "Created: / 17-06-2012 / 21:51:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:01:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !GraphicsContext methodsFor:'stroke & fill'!
 
 fill
 
-    ^self class primFill: self
+    ^CPrimitives cairo_fill: self
 
     "Created: / 10-07-2008 / 09:42:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:01:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 fillAndPreserve
 
-    ^self class primFillPreserve: self
+    ^CPrimitives cairo_fill_preserve: self
 
     "Created: / 17-06-2012 / 21:52:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:01:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 paint
     "Fills whole surface"
 
-    ^self class primPaint: self.
+    ^CPrimitives cairo_paint: self.
 
     "Created: / 17-06-2012 / 21:40:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:01:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 showPage
     "Makes sense only for PDF surfaces"
 
-    ^self class primShowPage: self.
+    ^CPrimitives cairo_show_page: self.
 
     "Created: / 17-06-2012 / 08:44:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:02:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 stroke
 
-    ^self class primStroke: self
+    ^CPrimitives cairo_stroke: self
 
     "Created: / 10-07-2008 / 09:42:43 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:02:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 strokeAndPreserve
 
-    ^self class primStrokePreserve: self
+    ^CPrimitives cairo_stroke_preserve: self
 
     "Created: / 17-06-2012 / 21:52:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:15:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !GraphicsContext methodsFor:'text'!
 
 showText: aString
 
-    ^self class primShowText: self utf8: aString utf8Encoded
+    ^CPrimitives cairo_show_text: self _: aString utf8Encoded
 
     "Created: / 23-04-2009 / 17:25:20 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:02:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !GraphicsContext methodsFor:'transformations & clipping'!
 
 clip
 
-    ^self class primClip: self.
+    ^CPrimitives cairo_clip: self.
 
     "Created: / 17-06-2012 / 21:56:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:02:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 scale: point
 
-    ^self class primScale: self sx: point x sy: point y
+    ^CPrimitives cairo_scale: self _: point x _: point y
 
     "Created: / 17-06-2012 / 21:45:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:03:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 translate: point
 
-    ^self class primTranslate: self tx: point x ty: point y
+    ^CPrimitives cairo_translate: self _: point x _: point y
 
     "Created: / 17-06-2012 / 21:45:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:03:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !GraphicsContext class methodsFor:'documentation'!
--- a/Cairo__HintMetrics.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__HintMetrics.st	Sun Dec 28 22:38:24 2014 +0100
@@ -4,54 +4,37 @@
 
 SharedPool subclass:#HintMetrics
 	instanceVariableNames:''
-	classVariableNames:'HINT_METRICS_DEFAULT HINT_METRICS_OFF HINT_METRICS_ON'
+	classVariableNames:'CAIRO_HINT_METRICS_DEFAULT CAIRO_HINT_METRICS_OFF
+		CAIRO_HINT_METRICS_ON'
 	poolDictionaries:''
 	category:'Cairo-Constants'
 !
 
-
 !HintMetrics class methodsFor:'initialization'!
 
 initialize
 
-	HINT_METRICS_DEFAULT := 0.
-	HINT_METRICS_OFF := 1.
-	HINT_METRICS_ON := 2.
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    CAIRO_HINT_METRICS_DEFAULT := 0.
+    CAIRO_HINT_METRICS_OFF := 1.
+    CAIRO_HINT_METRICS_ON := 2.
 ! !
 
 !HintMetrics class methodsFor:'constants'!
 
-HINT_METRICS_DEFAULT
-
-	^HINT_METRICS_DEFAULT
+CAIRO_HINT_METRICS_DEFAULT
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-HINT_METRICS_OFF
-
-	^HINT_METRICS_OFF
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_HINT_METRICS_DEFAULT
 !
 
-HINT_METRICS_ON
+CAIRO_HINT_METRICS_OFF
 
-	^HINT_METRICS_ON
+    ^CAIRO_HINT_METRICS_OFF
+!
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_HINT_METRICS_ON
+
+    ^CAIRO_HINT_METRICS_ON
 ! !
 
-!HintMetrics class methodsFor:'documentation'!
-
-version
-    ^'$Id$'
-!
-
-version_HG
-    ^ '$Changeset: <not expanded> $'
-! !
 
 HintMetrics initialize!
--- a/Cairo__HintStyle.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__HintStyle.st	Sun Dec 28 22:38:24 2014 +0100
@@ -4,71 +4,50 @@
 
 SharedPool subclass:#HintStyle
 	instanceVariableNames:''
-	classVariableNames:'HINT_STYLE_DEFAULT HINT_STYLE_NONE HINT_STYLE_SLIGHT
-		HINT_STYLE_MEDIUM HINT_STYLE_FULL'
+	classVariableNames:'CAIRO_HINT_STYLE_DEFAULT CAIRO_HINT_STYLE_NONE
+		CAIRO_HINT_STYLE_SLIGHT CAIRO_HINT_STYLE_MEDIUM
+		CAIRO_HINT_STYLE_FULL'
 	poolDictionaries:''
 	category:'Cairo-Constants'
 !
 
-
 !HintStyle class methodsFor:'initialization'!
 
 initialize
 
-	HINT_STYLE_DEFAULT := 0.
-	HINT_STYLE_NONE := 1.
-	HINT_STYLE_SLIGHT := 2.
-	HINT_STYLE_MEDIUM := 3.
-	HINT_STYLE_FULL := 4.
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    CAIRO_HINT_STYLE_DEFAULT := 0.
+    CAIRO_HINT_STYLE_NONE := 1.
+    CAIRO_HINT_STYLE_SLIGHT := 2.
+    CAIRO_HINT_STYLE_MEDIUM := 3.
+    CAIRO_HINT_STYLE_FULL := 4.
 ! !
 
 !HintStyle class methodsFor:'constants'!
 
-HINT_STYLE_DEFAULT
+CAIRO_HINT_STYLE_DEFAULT
 
-	^HINT_STYLE_DEFAULT
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_HINT_STYLE_DEFAULT
 !
 
-HINT_STYLE_FULL
-
-	^HINT_STYLE_FULL
+CAIRO_HINT_STYLE_FULL
 
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-HINT_STYLE_MEDIUM
-
-	^HINT_STYLE_MEDIUM
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_HINT_STYLE_FULL
 !
 
-HINT_STYLE_NONE
+CAIRO_HINT_STYLE_MEDIUM
 
-	^HINT_STYLE_NONE
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_HINT_STYLE_MEDIUM
 !
 
-HINT_STYLE_SLIGHT
+CAIRO_HINT_STYLE_NONE
 
-	^HINT_STYLE_SLIGHT
+    ^CAIRO_HINT_STYLE_NONE
+!
 
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_HINT_STYLE_SLIGHT
+
+    ^CAIRO_HINT_STYLE_SLIGHT
 ! !
 
-!HintStyle class methodsFor:'documentation'!
-
-version
-    ^'$Id$'
-!
-
-version_HG
-    ^ '$Changeset: <not expanded> $'
-! !
 
 HintStyle initialize!
--- a/Cairo__LineCap.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__LineCap.st	Sun Dec 28 22:38:24 2014 +0100
@@ -4,54 +4,36 @@
 
 SharedPool subclass:#LineCap
 	instanceVariableNames:''
-	classVariableNames:'LINE_CAP_BUTT LINE_CAP_ROUND LINE_CAP_SQUARE'
+	classVariableNames:'CAIRO_LINE_CAP_BUTT CAIRO_LINE_CAP_ROUND CAIRO_LINE_CAP_SQUARE'
 	poolDictionaries:''
 	category:'Cairo-Constants'
 !
 
-
 !LineCap class methodsFor:'initialization'!
 
 initialize
 
-	LINE_CAP_BUTT := 0.
-	LINE_CAP_ROUND := 1.
-	LINE_CAP_SQUARE := 2.
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    CAIRO_LINE_CAP_BUTT := 0.
+    CAIRO_LINE_CAP_ROUND := 1.
+    CAIRO_LINE_CAP_SQUARE := 2.
 ! !
 
 !LineCap class methodsFor:'constants'!
 
-LINE_CAP_BUTT
-
-	^LINE_CAP_BUTT
+CAIRO_LINE_CAP_BUTT
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-LINE_CAP_ROUND
-
-	^LINE_CAP_ROUND
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_LINE_CAP_BUTT
 !
 
-LINE_CAP_SQUARE
+CAIRO_LINE_CAP_ROUND
 
-	^LINE_CAP_SQUARE
+    ^CAIRO_LINE_CAP_ROUND
+!
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_LINE_CAP_SQUARE
+
+    ^CAIRO_LINE_CAP_SQUARE
 ! !
 
-!LineCap class methodsFor:'documentation'!
-
-version
-    ^'$Id$'
-!
-
-version_HG
-    ^ '$Changeset: <not expanded> $'
-! !
 
 LineCap initialize!
--- a/Cairo__LineJoin.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__LineJoin.st	Sun Dec 28 22:38:24 2014 +0100
@@ -4,54 +4,36 @@
 
 SharedPool subclass:#LineJoin
 	instanceVariableNames:''
-	classVariableNames:'LINE_JOIN_MITER LINE_JOIN_ROUND LINE_JOIN_BEVEL'
+	classVariableNames:'CAIRO_LINE_JOIN_MITER CAIRO_LINE_JOIN_ROUND CAIRO_LINE_JOIN_BEVEL'
 	poolDictionaries:''
 	category:'Cairo-Constants'
 !
 
-
 !LineJoin class methodsFor:'initialization'!
 
 initialize
 
-	LINE_JOIN_MITER := 0.
-	LINE_JOIN_ROUND := 1.
-	LINE_JOIN_BEVEL := 2.
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    CAIRO_LINE_JOIN_MITER := 0.
+    CAIRO_LINE_JOIN_ROUND := 1.
+    CAIRO_LINE_JOIN_BEVEL := 2.
 ! !
 
 !LineJoin class methodsFor:'constants'!
 
-LINE_JOIN_BEVEL
-
-	^LINE_JOIN_BEVEL
+CAIRO_LINE_JOIN_BEVEL
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-LINE_JOIN_MITER
-
-	^LINE_JOIN_MITER
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_LINE_JOIN_BEVEL
 !
 
-LINE_JOIN_ROUND
+CAIRO_LINE_JOIN_MITER
 
-	^LINE_JOIN_ROUND
+    ^CAIRO_LINE_JOIN_MITER
+!
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_LINE_JOIN_ROUND
+
+    ^CAIRO_LINE_JOIN_ROUND
 ! !
 
-!LineJoin class methodsFor:'documentation'!
-
-version
-    ^'$Id$'
-!
-
-version_HG
-    ^ '$Changeset: <not expanded> $'
-! !
 
 LineJoin initialize!
--- a/Cairo__Matrix.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__Matrix.st	Sun Dec 28 22:38:24 2014 +0100
@@ -52,20 +52,17 @@
 
 libraryName
 
-	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
-
-	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+    OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
 
-	self error:'Library name for host OS is not known'
+    OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self error:'Library name for host OS is not known'
 !
 
-structSize
+sizeof
+    "Returns size of undelaying structure in bytes"
 
-	^384
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^48
 ! !
 
 !Matrix class methodsFor:'primitives'!
@@ -169,87 +166,69 @@
 !Matrix methodsFor:'accessing'!
 
 x0
+    "Returns double"
 
-	^self doubleAt:1 + 32
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleAt:1 + 32
 !
 
 x0: value
 
-	self doubleAt:1 + 32 put:value
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleAt:1 + 32 put:value
 !
 
 xx
+    "Returns double"
 
-	^self doubleAt:1 + 0
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleAt:1 + 0
 !
 
 xx: value
 
-	self doubleAt:1 + 0 put:value
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleAt:1 + 0 put:value
 !
 
 xy
+    "Returns double"
 
-	^self doubleAt:1 + 16
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleAt:1 + 16
 !
 
 xy: value
 
-	self doubleAt:1 + 16 put:value
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleAt:1 + 16 put:value
 !
 
 y0
+    "Returns double"
 
-	^self doubleAt:1 + 40
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleAt:1 + 40
 !
 
 y0: value
 
-	self doubleAt:1 + 40 put:value
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleAt:1 + 40 put:value
 !
 
 yx
+    "Returns double"
 
-	^self doubleAt:1 + 8
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleAt:1 + 8
 !
 
 yx: value
 
-	self doubleAt:1 + 8 put:value
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleAt:1 + 8 put:value
 !
 
 yy
+    "Returns double"
 
-	^self doubleAt:1 + 24
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleAt:1 + 24
 !
 
 yy: value
 
-	self doubleAt:1 + 24 put:value
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleAt:1 + 24 put:value
 ! !
 
 !Matrix class methodsFor:'documentation'!
@@ -261,3 +240,4 @@
 version_HG
     ^ '$Changeset: <not expanded> $'
 ! !
+
--- a/Cairo__Operator.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__Operator.st	Sun Dec 28 22:38:24 2014 +0100
@@ -4,145 +4,204 @@
 
 SharedPool subclass:#Operator
 	instanceVariableNames:''
-	classVariableNames:'OPERATOR_CLEAR OPERATOR_SOURCE OPERATOR_OVER OPERATOR_IN
-		OPERATOR_OUT OPERATOR_ATOP OPERATOR_DEST OPERATOR_DEST_OVER
-		OPERATOR_DEST_IN OPERATOR_DEST_OUT OPERATOR_DEST_ATOP
-		OPERATOR_XOR OPERATOR_ADD OPERATOR_SATURATE'
+	classVariableNames:'CAIRO_OPERATOR_CLEAR CAIRO_OPERATOR_SOURCE CAIRO_OPERATOR_OVER
+		CAIRO_OPERATOR_IN CAIRO_OPERATOR_OUT CAIRO_OPERATOR_ATOP
+		CAIRO_OPERATOR_DEST CAIRO_OPERATOR_DEST_OVER
+		CAIRO_OPERATOR_DEST_IN CAIRO_OPERATOR_DEST_OUT
+		CAIRO_OPERATOR_DEST_ATOP CAIRO_OPERATOR_XOR CAIRO_OPERATOR_ADD
+		CAIRO_OPERATOR_SATURATE CAIRO_OPERATOR_MULTIPLY
+		CAIRO_OPERATOR_SCREEN CAIRO_OPERATOR_OVERLAY
+		CAIRO_OPERATOR_DARKEN CAIRO_OPERATOR_LIGHTEN
+		CAIRO_OPERATOR_COLOR_DODGE CAIRO_OPERATOR_COLOR_BURN
+		CAIRO_OPERATOR_HARD_LIGHT CAIRO_OPERATOR_SOFT_LIGHT
+		CAIRO_OPERATOR_DIFFERENCE CAIRO_OPERATOR_EXCLUSION
+		CAIRO_OPERATOR_HSL_HUE CAIRO_OPERATOR_HSL_SATURATION
+		CAIRO_OPERATOR_HSL_COLOR CAIRO_OPERATOR_HSL_LUMINOSITY'
 	poolDictionaries:''
 	category:'Cairo-Constants'
 !
 
-
 !Operator class methodsFor:'initialization'!
 
 initialize
 
-	OPERATOR_CLEAR := 0.
-	OPERATOR_SOURCE := 1.
-	OPERATOR_OVER := 2.
-	OPERATOR_IN := 3.
-	OPERATOR_OUT := 4.
-	OPERATOR_ATOP := 5.
-	OPERATOR_DEST := 6.
-	OPERATOR_DEST_OVER := 7.
-	OPERATOR_DEST_IN := 8.
-	OPERATOR_DEST_OUT := 9.
-	OPERATOR_DEST_ATOP := 10.
-	OPERATOR_XOR := 11.
-	OPERATOR_ADD := 12.
-	OPERATOR_SATURATE := 13.
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    CAIRO_OPERATOR_CLEAR := 0.
+    CAIRO_OPERATOR_SOURCE := 1.
+    CAIRO_OPERATOR_OVER := 2.
+    CAIRO_OPERATOR_IN := 3.
+    CAIRO_OPERATOR_OUT := 4.
+    CAIRO_OPERATOR_ATOP := 5.
+    CAIRO_OPERATOR_DEST := 6.
+    CAIRO_OPERATOR_DEST_OVER := 7.
+    CAIRO_OPERATOR_DEST_IN := 8.
+    CAIRO_OPERATOR_DEST_OUT := 9.
+    CAIRO_OPERATOR_DEST_ATOP := 10.
+    CAIRO_OPERATOR_XOR := 11.
+    CAIRO_OPERATOR_ADD := 12.
+    CAIRO_OPERATOR_SATURATE := 13.
+    CAIRO_OPERATOR_MULTIPLY := 14.
+    CAIRO_OPERATOR_SCREEN := 15.
+    CAIRO_OPERATOR_OVERLAY := 16.
+    CAIRO_OPERATOR_DARKEN := 17.
+    CAIRO_OPERATOR_LIGHTEN := 18.
+    CAIRO_OPERATOR_COLOR_DODGE := 19.
+    CAIRO_OPERATOR_COLOR_BURN := 20.
+    CAIRO_OPERATOR_HARD_LIGHT := 21.
+    CAIRO_OPERATOR_SOFT_LIGHT := 22.
+    CAIRO_OPERATOR_DIFFERENCE := 23.
+    CAIRO_OPERATOR_EXCLUSION := 24.
+    CAIRO_OPERATOR_HSL_HUE := 25.
+    CAIRO_OPERATOR_HSL_SATURATION := 26.
+    CAIRO_OPERATOR_HSL_COLOR := 27.
+    CAIRO_OPERATOR_HSL_LUMINOSITY := 28.
 ! !
 
 !Operator class methodsFor:'constants'!
 
-OPERATOR_ADD
+CAIRO_OPERATOR_ADD
 
-	^OPERATOR_ADD
+    ^CAIRO_OPERATOR_ADD
+!
 
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_OPERATOR_ATOP
+
+    ^CAIRO_OPERATOR_ATOP
 !
 
-OPERATOR_ATOP
+CAIRO_OPERATOR_CLEAR
 
-	^OPERATOR_ATOP
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_OPERATOR_CLEAR
 !
 
-OPERATOR_CLEAR
+CAIRO_OPERATOR_COLOR_BURN
+
+    ^CAIRO_OPERATOR_COLOR_BURN
+!
+
+CAIRO_OPERATOR_COLOR_DODGE
 
-	^OPERATOR_CLEAR
+    ^CAIRO_OPERATOR_COLOR_DODGE
+!
 
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_OPERATOR_DARKEN
+
+    ^CAIRO_OPERATOR_DARKEN
 !
 
-OPERATOR_DEST
+CAIRO_OPERATOR_DEST
+
+    ^CAIRO_OPERATOR_DEST
+!
+
+CAIRO_OPERATOR_DEST_ATOP
 
-	^OPERATOR_DEST
+    ^CAIRO_OPERATOR_DEST_ATOP
+!
 
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_OPERATOR_DEST_IN
+
+    ^CAIRO_OPERATOR_DEST_IN
 !
 
-OPERATOR_DEST_ATOP
+CAIRO_OPERATOR_DEST_OUT
 
-	^OPERATOR_DEST_ATOP
+    ^CAIRO_OPERATOR_DEST_OUT
+!
 
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_OPERATOR_DEST_OVER
+
+    ^CAIRO_OPERATOR_DEST_OVER
 !
 
-OPERATOR_DEST_IN
+CAIRO_OPERATOR_DIFFERENCE
 
-	^OPERATOR_DEST_IN
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_OPERATOR_DIFFERENCE
 !
 
-OPERATOR_DEST_OUT
+CAIRO_OPERATOR_EXCLUSION
 
-	^OPERATOR_DEST_OUT
+    ^CAIRO_OPERATOR_EXCLUSION
+!
 
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_OPERATOR_HARD_LIGHT
+
+    ^CAIRO_OPERATOR_HARD_LIGHT
 !
 
-OPERATOR_DEST_OVER
+CAIRO_OPERATOR_HSL_COLOR
+
+    ^CAIRO_OPERATOR_HSL_COLOR
+!
+
+CAIRO_OPERATOR_HSL_HUE
 
-	^OPERATOR_DEST_OVER
+    ^CAIRO_OPERATOR_HSL_HUE
+!
 
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_OPERATOR_HSL_LUMINOSITY
+
+    ^CAIRO_OPERATOR_HSL_LUMINOSITY
 !
 
-OPERATOR_IN
+CAIRO_OPERATOR_HSL_SATURATION
 
-	^OPERATOR_IN
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_OPERATOR_HSL_SATURATION
 !
 
-OPERATOR_OUT
+CAIRO_OPERATOR_IN
 
-	^OPERATOR_OUT
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_OPERATOR_IN
 !
 
-OPERATOR_OVER
+CAIRO_OPERATOR_LIGHTEN
 
-	^OPERATOR_OVER
+    ^CAIRO_OPERATOR_LIGHTEN
+!
 
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_OPERATOR_MULTIPLY
+
+    ^CAIRO_OPERATOR_MULTIPLY
 !
 
-OPERATOR_SATURATE
+CAIRO_OPERATOR_OUT
 
-	^OPERATOR_SATURATE
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_OPERATOR_OUT
 !
 
-OPERATOR_SOURCE
+CAIRO_OPERATOR_OVER
+
+    ^CAIRO_OPERATOR_OVER
+!
+
+CAIRO_OPERATOR_OVERLAY
 
-	^OPERATOR_SOURCE
+    ^CAIRO_OPERATOR_OVERLAY
+!
 
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_OPERATOR_SATURATE
+
+    ^CAIRO_OPERATOR_SATURATE
 !
 
-OPERATOR_XOR
+CAIRO_OPERATOR_SCREEN
+
+    ^CAIRO_OPERATOR_SCREEN
+!
+
+CAIRO_OPERATOR_SOFT_LIGHT
 
-	^OPERATOR_XOR
+    ^CAIRO_OPERATOR_SOFT_LIGHT
+!
+
+CAIRO_OPERATOR_SOURCE
 
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_OPERATOR_SOURCE
+!
+
+CAIRO_OPERATOR_XOR
+
+    ^CAIRO_OPERATOR_XOR
 ! !
 
-!Operator class methodsFor:'documentation'!
-
-version
-    ^'$Id$'
-!
-
-version_HG
-    ^ '$Changeset: <not expanded> $'
-! !
 
 Operator initialize!
--- a/Cairo__Path.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__Path.st	Sun Dec 28 22:38:24 2014 +0100
@@ -52,20 +52,17 @@
 
 libraryName
 
-	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
-
-	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+    OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
 
-	self error:'Library name for host OS is not known'
+    OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self error:'Library name for host OS is not known'
 !
 
-structSize
+sizeof
+    "Returns size of undelaying structure in bytes"
 
-	^96
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^12
 ! !
 
 !Path class methodsFor:'primitives'!
@@ -81,45 +78,82 @@
 !Path methodsFor:'accessing'!
 
 data
+    "Returns (pointer-to ;; Line: 186
+;; Namespace: Cairo
+;; Class: PathData
+)"
 
-	^self doubleWordAt:1 + 4
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self pointerAt:1 + 4
 !
 
 data: value
 
-	self pointerAt:1 + 4 put:value
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self pointerAt:1 + 4 put:value
 !
 
 numData
+    "Returns int32"
 
-	^self doubleWordAt:1 + 8
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self longAt:1 + 8
 !
 
 numData: value
 
-	self doubleWordAt:1 + 8 put:value
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self longAt:1 + 8 put:value
 !
 
 status
+    "Returns ;; Line: 398
+;; Namespace: Cairo
+;; Class: Status
+(enum _cairo_status
+	(value (CAIRO_STATUS_SUCCESS) 0)
+	(value (CAIRO_STATUS_NO_MEMORY) 1)
+	(value (CAIRO_STATUS_INVALID_RESTORE) 2)
+	(value (CAIRO_STATUS_INVALID_POP_GROUP) 3)
+	(value (CAIRO_STATUS_NO_CURRENT_POINT) 4)
+	(value (CAIRO_STATUS_INVALID_MATRIX) 5)
+	(value (CAIRO_STATUS_INVALID_STATUS) 6)
+	(value (CAIRO_STATUS_NULL_POINTER) 7)
+	(value (CAIRO_STATUS_INVALID_STRING) 8)
+	(value (CAIRO_STATUS_INVALID_PATH_DATA) 9)
+	(value (CAIRO_STATUS_READ_ERROR) 10)
+	(value (CAIRO_STATUS_WRITE_ERROR) 11)
+	(value (CAIRO_STATUS_SURFACE_FINISHED) 12)
+	(value (CAIRO_STATUS_SURFACE_TYPE_MISMATCH) 13)
+	(value (CAIRO_STATUS_PATTERN_TYPE_MISMATCH) 14)
+	(value (CAIRO_STATUS_INVALID_CONTENT) 15)
+	(value (CAIRO_STATUS_INVALID_FORMAT) 16)
+	(value (CAIRO_STATUS_INVALID_VISUAL) 17)
+	(value (CAIRO_STATUS_FILE_NOT_FOUND) 18)
+	(value (CAIRO_STATUS_INVALID_DASH) 19)
+	(value (CAIRO_STATUS_INVALID_DSC_COMMENT) 20)
+	(value (CAIRO_STATUS_INVALID_INDEX) 21)
+	(value (CAIRO_STATUS_CLIP_NOT_REPRESENTABLE) 22)
+	(value (CAIRO_STATUS_TEMP_FILE_ERROR) 23)
+	(value (CAIRO_STATUS_INVALID_STRIDE) 24)
+	(value (CAIRO_STATUS_FONT_TYPE_MISMATCH) 25)
+	(value (CAIRO_STATUS_USER_FONT_IMMUTABLE) 26)
+	(value (CAIRO_STATUS_USER_FONT_ERROR) 27)
+	(value (CAIRO_STATUS_NEGATIVE_COUNT) 28)
+	(value (CAIRO_STATUS_INVALID_CLUSTERS) 29)
+	(value (CAIRO_STATUS_INVALID_SLANT) 30)
+	(value (CAIRO_STATUS_INVALID_WEIGHT) 31)
+	(value (CAIRO_STATUS_INVALID_SIZE) 32)
+	(value (CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED) 33)
+	(value (CAIRO_STATUS_DEVICE_TYPE_MISMATCH) 34)
+	(value (CAIRO_STATUS_DEVICE_ERROR) 35)
+	(value (CAIRO_STATUS_INVALID_MESH_CONSTRUCTION) 36)
+	(value (CAIRO_STATUS_DEVICE_FINISHED) 37)
+	(value (CAIRO_STATUS_JBIG2_GLOBAL_MISSING) 38)
+	(value (CAIRO_STATUS_LAST_STATUS) 39) )"
 
-	^self doubleWordAt:1 + 0
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleWordAt:1 + 0
 !
 
 status: value
 
-	self doubleWordAt:1 + 0 put:value
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleWordAt:1 + 0 put:value
 ! !
 
 !Path class methodsFor:'documentation'!
@@ -131,3 +165,4 @@
 version_HG
     ^ '$Changeset: <not expanded> $'
 ! !
+
--- a/Cairo__PathData.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__PathData.st	Sun Dec 28 22:38:24 2014 +0100
@@ -52,50 +52,43 @@
 
 libraryName
 
-	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
-
-	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+    OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
 
-	self error:'Library name for host OS is not known'
+    OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
 
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self error:'Library name for host OS is not known'
 !
 
-structSize
+sizeof
+    "Returns size of undelaying structure in bytes"
 
-	^128
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^16
 ! !
 
 !PathData methodsFor:'accessing'!
 
 header
+    "Returns ;; Line: 179
+"
 
-	^self at:1 + 0
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self at:1 + 0
 !
 
 header: value
 
-	self at:1 + 0 put:value
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self at:1 + 0 put:value
 !
 
 point
+    "Returns ;; Line: 185
+"
 
-	^self at:1 + 0
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self at:1 + 0
 !
 
 point: value
 
-	self at:1 + 0 put:value
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self at:1 + 0 put:value
 ! !
 
 !PathData class methodsFor:'documentation'!
@@ -107,3 +100,4 @@
 version_HG
     ^ '$Changeset: <not expanded> $'
 ! !
+
--- a/Cairo__PathDataType.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__PathDataType.st	Sun Dec 28 22:38:24 2014 +0100
@@ -4,62 +4,43 @@
 
 SharedPool subclass:#PathDataType
 	instanceVariableNames:''
-	classVariableNames:'PATH_MOVE_TO PATH_LINE_TO PATH_CURVE_TO PATH_CLOSE_PATH'
+	classVariableNames:'CAIRO_PATH_MOVE_TO CAIRO_PATH_LINE_TO CAIRO_PATH_CURVE_TO
+		CAIRO_PATH_CLOSE_PATH'
 	poolDictionaries:''
 	category:'Cairo-Constants'
 !
 
-
 !PathDataType class methodsFor:'initialization'!
 
 initialize
 
-	PATH_MOVE_TO := 0.
-	PATH_LINE_TO := 1.
-	PATH_CURVE_TO := 2.
-	PATH_CLOSE_PATH := 3.
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    CAIRO_PATH_MOVE_TO := 0.
+    CAIRO_PATH_LINE_TO := 1.
+    CAIRO_PATH_CURVE_TO := 2.
+    CAIRO_PATH_CLOSE_PATH := 3.
 ! !
 
 !PathDataType class methodsFor:'constants'!
 
-PATH_CLOSE_PATH
+CAIRO_PATH_CLOSE_PATH
 
-	^PATH_CLOSE_PATH
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_PATH_CLOSE_PATH
 !
 
-PATH_CURVE_TO
+CAIRO_PATH_CURVE_TO
 
-	^PATH_CURVE_TO
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_PATH_CURVE_TO
 !
 
-PATH_LINE_TO
+CAIRO_PATH_LINE_TO
 
-	^PATH_LINE_TO
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_PATH_LINE_TO
 !
 
-PATH_MOVE_TO
+CAIRO_PATH_MOVE_TO
 
-	^PATH_MOVE_TO
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_PATH_MOVE_TO
 ! !
 
-!PathDataType class methodsFor:'documentation'!
-
-version
-    ^'$Id$'
-!
-
-version_HG
-    ^ '$Changeset: <not expanded> $'
-! !
 
 PathDataType initialize!
--- a/Cairo__Pattern.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__Pattern.st	Sun Dec 28 22:38:24 2014 +0100
@@ -52,230 +52,17 @@
 
 libraryName
 
-	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
-
-	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
-
-	self error:'Library name for host OS is not known'
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-structSize
-
-	^0
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
-! !
-
-!Pattern class methodsFor:'primitives'!
-
-primAddColorStopRgb: pattern offset: offset red: red green: green blue: blue 
-
-	<cdecl: const void "cairo_pattern_add_color_stop_rgb" ( Cairo::Pattern double double double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primAddColorStopRgba: pattern offset: offset red: red green: green blue: blue alpha: alpha 
-
-	<cdecl: const void "cairo_pattern_add_color_stop_rgba" ( Cairo::Pattern double double double double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primDestroy: pattern 
-
-	<cdecl: const void "cairo_pattern_destroy" ( Cairo::Pattern ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetColorStopCount: pattern count: count 
-
-	<cdecl: const int32 "cairo_pattern_get_color_stop_count" ( Cairo::Pattern pointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetColorStopRgba: pattern index: index offset: offset red: red green: green blue: blue alpha: alpha 
+    OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
 
-	<cdecl: const int32 "cairo_pattern_get_color_stop_rgba" ( Cairo::Pattern int32 pointer pointer pointer pointer pointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetExtend: pattern 
-
-	<cdecl: const int32 "cairo_pattern_get_extend" ( Cairo::Pattern ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetFilter: pattern 
-
-	<cdecl: const int32 "cairo_pattern_get_filter" ( Cairo::Pattern ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetLinearPoints: pattern x0: x0 y0: y0 x1: x1 y1: y1 
+    OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
 
-	<cdecl: const int32 "cairo_pattern_get_linear_points" ( Cairo::Pattern pointer pointer pointer pointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetMatrix: pattern matrix: matrix 
-
-	<cdecl: const void "cairo_pattern_get_matrix" ( Cairo::Pattern Cairo::Matrix ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetRadialCircles: pattern x0: x0 y0: y0 r0: r0 x1: x1 y1: y1 r1: r1 
-
-	<cdecl: const int32 "cairo_pattern_get_radial_circles" ( Cairo::Pattern pointer pointer pointer pointer pointer pointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetReferenceCount: pattern 
-
-	<cdecl: const uint32 "cairo_pattern_get_reference_count" ( Cairo::Pattern ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self error:'Library name for host OS is not known'
 !
 
-primGetRgba: pattern red: red green: green blue: blue alpha: alpha 
-
-	<cdecl: const int32 "cairo_pattern_get_rgba" ( Cairo::Pattern pointer pointer pointer pointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetSurface: pattern surface: surface 
-
-	<cdecl: const int32 "cairo_pattern_get_surface" ( Cairo::Pattern pointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetType: pattern 
-
-	<cdecl: const int32 "cairo_pattern_get_type" ( Cairo::Pattern ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetUserData: pattern key: key 
-
-	<cdecl: const pointer "cairo_pattern_get_user_data" ( Cairo::Pattern Cairo::UserDataKey ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primPatternCreateForSurface: surface 
-
-	<cdecl: const Cairo::Pattern "cairo_pattern_create_for_surface" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primPatternCreateLinear: x0 y0: y0 x1: x1 y1: y1 
-
-	<cdecl: const Cairo::Pattern "cairo_pattern_create_linear" ( double double double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primPatternCreateRadial: cx0 cy0: cy0 radius0: radius0 cx1: cx1 cy1: cy1 radius1: radius1 
-
-	<cdecl: const Cairo::Pattern "cairo_pattern_create_radial" ( double double double double double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primPatternCreateRgb: red green: green blue: blue 
+sizeof
+    "Returns size of undelaying structure in bytes"
 
-	<cdecl: const Cairo::Pattern "cairo_pattern_create_rgb" ( double double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primPatternCreateRgba: red green: green blue: blue alpha: alpha 
-
-	<cdecl: const Cairo::Pattern "cairo_pattern_create_rgba" ( double double double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primReference: pattern 
-
-	<cdecl: const Cairo::Pattern "cairo_pattern_reference" ( Cairo::Pattern ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetExtend: pattern extend: extend 
-
-	<cdecl: const void "cairo_pattern_set_extend" ( Cairo::Pattern int32 ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetFilter: pattern filter: filter 
-
-	<cdecl: const void "cairo_pattern_set_filter" ( Cairo::Pattern int32 ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetMatrix: pattern matrix: matrix 
-
-	<cdecl: const void "cairo_pattern_set_matrix" ( Cairo::Pattern Cairo::Matrix ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetUserData: pattern key: key userData: user_data destroy: destroy 
-
-	<cdecl: const int32 "cairo_pattern_set_user_data" ( Cairo::Pattern Cairo::UserDataKey pointer pointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primStatus: pattern 
-
-	<cdecl: const int32 "cairo_pattern_status" ( Cairo::Pattern ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^0
 ! !
 
 !Pattern class methodsFor:'documentation'!
@@ -287,3 +74,4 @@
 version_HG
     ^ '$Changeset: <not expanded> $'
 ! !
+
--- a/Cairo__PatternType.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__PatternType.st	Sun Dec 28 22:38:24 2014 +0100
@@ -4,63 +4,56 @@
 
 SharedPool subclass:#PatternType
 	instanceVariableNames:''
-	classVariableNames:'PATTERN_TYPE_SOLID PATTERN_TYPE_SURFACE PATTERN_TYPE_LINEAR
-		PATTERN_TYPE_RADIAL'
+	classVariableNames:'CAIRO_PATTERN_TYPE_SOLID CAIRO_PATTERN_TYPE_SURFACE
+		CAIRO_PATTERN_TYPE_LINEAR CAIRO_PATTERN_TYPE_RADIAL
+		CAIRO_PATTERN_TYPE_MESH CAIRO_PATTERN_TYPE_RASTER_SOURCE'
 	poolDictionaries:''
 	category:'Cairo-Constants'
 !
 
-
 !PatternType class methodsFor:'initialization'!
 
 initialize
 
-	PATTERN_TYPE_SOLID := 0.
-	PATTERN_TYPE_SURFACE := 1.
-	PATTERN_TYPE_LINEAR := 2.
-	PATTERN_TYPE_RADIAL := 3.
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    CAIRO_PATTERN_TYPE_SOLID := 0.
+    CAIRO_PATTERN_TYPE_SURFACE := 1.
+    CAIRO_PATTERN_TYPE_LINEAR := 2.
+    CAIRO_PATTERN_TYPE_RADIAL := 3.
+    CAIRO_PATTERN_TYPE_MESH := 4.
+    CAIRO_PATTERN_TYPE_RASTER_SOURCE := 5.
 ! !
 
 !PatternType class methodsFor:'constants'!
 
-PATTERN_TYPE_LINEAR
+CAIRO_PATTERN_TYPE_LINEAR
 
-	^PATTERN_TYPE_LINEAR
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_PATTERN_TYPE_LINEAR
 !
 
-PATTERN_TYPE_RADIAL
+CAIRO_PATTERN_TYPE_MESH
 
-	^PATTERN_TYPE_RADIAL
+    ^CAIRO_PATTERN_TYPE_MESH
+!
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_PATTERN_TYPE_RADIAL
+
+    ^CAIRO_PATTERN_TYPE_RADIAL
 !
 
-PATTERN_TYPE_SOLID
+CAIRO_PATTERN_TYPE_RASTER_SOURCE
 
-	^PATTERN_TYPE_SOLID
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_PATTERN_TYPE_RASTER_SOURCE
 !
 
-PATTERN_TYPE_SURFACE
+CAIRO_PATTERN_TYPE_SOLID
 
-	^PATTERN_TYPE_SURFACE
+    ^CAIRO_PATTERN_TYPE_SOLID
+!
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_PATTERN_TYPE_SURFACE
+
+    ^CAIRO_PATTERN_TYPE_SURFACE
 ! !
 
-!PatternType class methodsFor:'documentation'!
-
-version
-    ^'$Id$'
-!
-
-version_HG
-    ^ '$Changeset: <not expanded> $'
-! !
 
 PatternType initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__PdfVersion.st	Sun Dec 28 22:38:24 2014 +0100
@@ -0,0 +1,33 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+SharedPool subclass:#PdfVersion
+	instanceVariableNames:''
+	classVariableNames:'CAIRO_PDF_VERSION_1_4 CAIRO_PDF_VERSION_1_5'
+	poolDictionaries:''
+	category:'Cairo-Constants'
+!
+
+!PdfVersion class methodsFor:'initialization'!
+
+initialize
+
+    CAIRO_PDF_VERSION_1_4 := 0.
+    CAIRO_PDF_VERSION_1_5 := 1.
+! !
+
+!PdfVersion class methodsFor:'constants'!
+
+CAIRO_PDF_VERSION_1_4
+
+    ^CAIRO_PDF_VERSION_1_4
+!
+
+CAIRO_PDF_VERSION_1_5
+
+    ^CAIRO_PDF_VERSION_1_5
+! !
+
+
+PdfVersion initialize!
--- a/Cairo__Rectangle.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__Rectangle.st	Sun Dec 28 22:38:24 2014 +0100
@@ -52,78 +52,63 @@
 
 libraryName
 
-	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
-
-	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+    OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
 
-	self error:'Library name for host OS is not known'
+    OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self error:'Library name for host OS is not known'
 !
 
-structSize
+sizeof
+    "Returns size of undelaying structure in bytes"
 
-	^256
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^32
 ! !
 
 !Rectangle methodsFor:'accessing'!
 
 height
+    "Returns double"
 
-	^self doubleAt:1 + 24
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleAt:1 + 24
 !
 
 height: value
 
-	self doubleAt:1 + 24 put:value
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleAt:1 + 24 put:value
 !
 
 width
+    "Returns double"
 
-	^self doubleAt:1 + 16
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleAt:1 + 16
 !
 
 width: value
 
-	self doubleAt:1 + 16 put:value
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleAt:1 + 16 put:value
 !
 
 x
+    "Returns double"
 
-	^self doubleAt:1 + 0
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleAt:1 + 0
 !
 
 x: value
 
-	self doubleAt:1 + 0 put:value
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleAt:1 + 0 put:value
 !
 
 y
+    "Returns double"
 
-	^self doubleAt:1 + 8
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleAt:1 + 8
 !
 
 y: value
 
-	self doubleAt:1 + 8 put:value
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleAt:1 + 8 put:value
 ! !
 
 !Rectangle class methodsFor:'documentation'!
@@ -135,3 +120,4 @@
 version_HG
     ^ '$Changeset: <not expanded> $'
 ! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__RectangleInt.st	Sun Dec 28 22:38:24 2014 +0100
@@ -0,0 +1,74 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+ExternalAddress subclass:#RectangleInt
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Cairo-Constants'
+!
+
+!RectangleInt class methodsFor:'accessing'!
+
+libraryName
+
+    OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
+
+    OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+
+    self error:'Library name for host OS is not known'
+!
+
+sizeof
+    "Returns size of undelaying structure in bytes"
+
+    ^16
+! !
+
+!RectangleInt methodsFor:'accessing'!
+
+height
+    "Returns int32"
+
+    ^self longAt:1 + 12
+!
+
+height: value
+
+    self longAt:1 + 12 put:value
+!
+
+width
+    "Returns int32"
+
+    ^self longAt:1 + 8
+!
+
+width: value
+
+    self longAt:1 + 8 put:value
+!
+
+x
+    "Returns int32"
+
+    ^self longAt:1 + 0
+!
+
+x: value
+
+    self longAt:1 + 0 put:value
+!
+
+y
+    "Returns int32"
+
+    ^self longAt:1 + 4
+!
+
+y: value
+
+    self longAt:1 + 4 put:value
+! !
+
--- a/Cairo__RectangleList.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__RectangleList.st	Sun Dec 28 22:38:24 2014 +0100
@@ -52,20 +52,17 @@
 
 libraryName
 
-	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
-
-	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+    OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
 
-	self error:'Library name for host OS is not known'
+    OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self error:'Library name for host OS is not known'
 !
 
-structSize
+sizeof
+    "Returns size of undelaying structure in bytes"
 
-	^96
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^12
 ! !
 
 !RectangleList class methodsFor:'primitives'!
@@ -81,45 +78,82 @@
 !RectangleList methodsFor:'accessing'!
 
 numRectangles
+    "Returns int32"
 
-	^self doubleWordAt:1 + 8
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self longAt:1 + 8
 !
 
 numRectangles: value
 
-	self doubleWordAt:1 + 8 put:value
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self longAt:1 + 8 put:value
 !
 
 rectangles
+    "Returns (pointer-to ;; Line: 496
+;; Namespace: Cairo
+;; Class: Rectangle
+)"
 
-	^self doubleWordAt:1 + 4
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self pointerAt:1 + 4
 !
 
 rectangles: value
 
-	self pointerAt:1 + 4 put:value
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self pointerAt:1 + 4 put:value
 !
 
 status
+    "Returns ;; Line: 398
+;; Namespace: Cairo
+;; Class: Status
+(enum _cairo_status
+	(value (CAIRO_STATUS_SUCCESS) 0)
+	(value (CAIRO_STATUS_NO_MEMORY) 1)
+	(value (CAIRO_STATUS_INVALID_RESTORE) 2)
+	(value (CAIRO_STATUS_INVALID_POP_GROUP) 3)
+	(value (CAIRO_STATUS_NO_CURRENT_POINT) 4)
+	(value (CAIRO_STATUS_INVALID_MATRIX) 5)
+	(value (CAIRO_STATUS_INVALID_STATUS) 6)
+	(value (CAIRO_STATUS_NULL_POINTER) 7)
+	(value (CAIRO_STATUS_INVALID_STRING) 8)
+	(value (CAIRO_STATUS_INVALID_PATH_DATA) 9)
+	(value (CAIRO_STATUS_READ_ERROR) 10)
+	(value (CAIRO_STATUS_WRITE_ERROR) 11)
+	(value (CAIRO_STATUS_SURFACE_FINISHED) 12)
+	(value (CAIRO_STATUS_SURFACE_TYPE_MISMATCH) 13)
+	(value (CAIRO_STATUS_PATTERN_TYPE_MISMATCH) 14)
+	(value (CAIRO_STATUS_INVALID_CONTENT) 15)
+	(value (CAIRO_STATUS_INVALID_FORMAT) 16)
+	(value (CAIRO_STATUS_INVALID_VISUAL) 17)
+	(value (CAIRO_STATUS_FILE_NOT_FOUND) 18)
+	(value (CAIRO_STATUS_INVALID_DASH) 19)
+	(value (CAIRO_STATUS_INVALID_DSC_COMMENT) 20)
+	(value (CAIRO_STATUS_INVALID_INDEX) 21)
+	(value (CAIRO_STATUS_CLIP_NOT_REPRESENTABLE) 22)
+	(value (CAIRO_STATUS_TEMP_FILE_ERROR) 23)
+	(value (CAIRO_STATUS_INVALID_STRIDE) 24)
+	(value (CAIRO_STATUS_FONT_TYPE_MISMATCH) 25)
+	(value (CAIRO_STATUS_USER_FONT_IMMUTABLE) 26)
+	(value (CAIRO_STATUS_USER_FONT_ERROR) 27)
+	(value (CAIRO_STATUS_NEGATIVE_COUNT) 28)
+	(value (CAIRO_STATUS_INVALID_CLUSTERS) 29)
+	(value (CAIRO_STATUS_INVALID_SLANT) 30)
+	(value (CAIRO_STATUS_INVALID_WEIGHT) 31)
+	(value (CAIRO_STATUS_INVALID_SIZE) 32)
+	(value (CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED) 33)
+	(value (CAIRO_STATUS_DEVICE_TYPE_MISMATCH) 34)
+	(value (CAIRO_STATUS_DEVICE_ERROR) 35)
+	(value (CAIRO_STATUS_INVALID_MESH_CONSTRUCTION) 36)
+	(value (CAIRO_STATUS_DEVICE_FINISHED) 37)
+	(value (CAIRO_STATUS_JBIG2_GLOBAL_MISSING) 38)
+	(value (CAIRO_STATUS_LAST_STATUS) 39) )"
 
-	^self doubleWordAt:1 + 0
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleWordAt:1 + 0
 !
 
 status: value
 
-	self doubleWordAt:1 + 0 put:value
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleWordAt:1 + 0 put:value
 ! !
 
 !RectangleList class methodsFor:'documentation'!
@@ -131,3 +165,4 @@
 version_HG
     ^ '$Changeset: <not expanded> $'
 ! !
+
--- a/Cairo__RefCountedStructure.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__RefCountedStructure.st	Sun Dec 28 22:38:24 2014 +0100
@@ -19,76 +19,15 @@
     "Modified: / 25-12-2014 / 10:33:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-!RefCountedStructure class methodsFor:'accessing'!
-
-dllPath
-
-    OperatingSystem isMSWINDOWSlike ifTrue:[
-        ^ #( 'C:\Windows' 'C:\Windows\System32' "Wild guess, should not harm" )
-    ].
-
-    OperatingSystem isUNIXlike ifTrue:[
-        OperatingSystem getSystemType == #linux ifTrue:[
-            | path |
-
-            path := #( '/lib' '/usr/lib' '/usr/local/lib' ).
-            (OperatingSystem getSystemInfo at:#machine) = 'x86_64' ifTrue:[
-                "If the machine is 64bit, prepend standard path for 32bit libs.
-                 Leave standard paths at the end, as the system might be completely 
-                 32bit but running on 64bit-capable CPU.
-
-                CAVEAT: This is bit dangerous, as on 64bit OS, if ia32 libs are
-                not installed byt 64bit sqlite libs are, then 64bit libs are found
-                and when a function is called, segfault will occur!!
-
-                Q: Is there a way how to figure out if the OS itself is 32bit,
-                regardles on CPU?"
-                path := #( '/lib32' '/usr/lib32' '/usr/local/lib32' ) , path.
-            ].
-            ^path
-
-        ].
-    ].
-
-    self error:'Unsupported operating system'
-
-    "
-        SqliteLibrary dllPath
-    "
-
-    "Created: / 31-08-2011 / 18:02:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!RefCountedStructure class methodsFor:'primitives'!
-
-primDestroy: anObject
-
-    self subclassResponsibility
-
-    "Created: / 09-09-2008 / 20:30:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetReferenceCount: anObject
-
-    self subclassResponsibility
-
-    "Created: / 09-09-2008 / 20:31:04 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primReference: anObject
-
-    self subclassResponsibility
-
-    "Created: / 09-09-2008 / 20:31:08 / Jan Vrany <vranyj1@fel.cvut.cz>"
-! !
-
 !RefCountedStructure methodsFor:'accessing'!
 
 referenceCount
+    "Return value or reference counter"
 
-    ^self class primGetReferenceCount: self
+    ^ self subclassResponsibility
 
     "Created: / 09-09-2008 / 20:33:48 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:09:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !RefCountedStructure methodsFor:'finalization'!
@@ -105,10 +44,11 @@
 
 finalize
     self infoPrintCR:'Instance destroyed'.
-    self class primDestroy:self
+    self destroy
 
     "Created: / 09-09-2008 / 20:30:22 / Jan Vrany <vranyj1@fel.cvut.cz>"
     "Modified: / 10-09-2008 / 18:45:23 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 28-12-2014 / 21:39:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !RefCountedStructure methodsFor:'initialization & release'!
@@ -116,9 +56,10 @@
 release
     self setAddress: nil.
     self unregisterForFinalization.
-    ^self class primDestroy: self
+    ^self destroy
 
     "Created: / 25-12-2014 / 10:34:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 21:41:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 retain
@@ -133,6 +74,17 @@
 
 !RefCountedStructure methodsFor:'private'!
 
+destroy
+    "Tell Cairo library to destroy the corresponding C object.
+     Remember that object is physically destroyed only if internal
+     refcounter goes to zero. However, after calling destroy, 
+     this instance should be treated as invalid."
+
+    ^ self subclassResponsibility
+
+    "Created: / 28-12-2014 / 21:41:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 fromExternalAddress:anExternalAddress 
     self setAddress: anExternalAddress address.  
     self registerForFinalization.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__Region.st	Sun Dec 28 22:38:24 2014 +0100
@@ -0,0 +1,28 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+ExternalAddress subclass:#Region
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Cairo-Constants'
+!
+
+!Region class methodsFor:'accessing'!
+
+libraryName
+
+    OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
+
+    OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+
+    self error:'Library name for host OS is not known'
+!
+
+sizeof
+    "Returns size of undelaying structure in bytes"
+
+    ^0
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__RegionOverlap.st	Sun Dec 28 22:38:24 2014 +0100
@@ -0,0 +1,40 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+SharedPool subclass:#RegionOverlap
+	instanceVariableNames:''
+	classVariableNames:'CAIRO_REGION_OVERLAP_IN CAIRO_REGION_OVERLAP_OUT
+		CAIRO_REGION_OVERLAP_PART'
+	poolDictionaries:''
+	category:'Cairo-Constants'
+!
+
+!RegionOverlap class methodsFor:'initialization'!
+
+initialize
+
+    CAIRO_REGION_OVERLAP_IN := 0.
+    CAIRO_REGION_OVERLAP_OUT := 1.
+    CAIRO_REGION_OVERLAP_PART := 2.
+! !
+
+!RegionOverlap class methodsFor:'constants'!
+
+CAIRO_REGION_OVERLAP_IN
+
+    ^CAIRO_REGION_OVERLAP_IN
+!
+
+CAIRO_REGION_OVERLAP_OUT
+
+    ^CAIRO_REGION_OVERLAP_OUT
+!
+
+CAIRO_REGION_OVERLAP_PART
+
+    ^CAIRO_REGION_OVERLAP_PART
+! !
+
+
+RegionOverlap initialize!
--- a/Cairo__ScaledFont.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__ScaledFont.st	Sun Dec 28 22:38:24 2014 +0100
@@ -52,158 +52,17 @@
 
 libraryName
 
-	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
-
-	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
-
-	self error:'Library name for host OS is not known'
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-structSize
-
-	^0
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-! !
-
-!ScaledFont class methodsFor:'primitives'!
-
-primDestroy: scaled_font 
-
-	<cdecl: const void "cairo_scaled_font_destroy" ( Cairo::ScaledFont ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primExtents: scaled_font extents: extents 
-
-	<cdecl: const void "cairo_scaled_font_extents" ( Cairo::ScaledFont Cairo::FontExtents ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primFtScaledFontLockFace: scaled_font 
+    OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
 
-	<cdecl: const pointer "cairo_ft_scaled_font_lock_face" ( Cairo::ScaledFont ) >
-	self primitiveFailed
-
-    "Created: / 10-07-2008 / 23:05:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primFtScaledFontUnlockFace: scaled_font 
-
-	<cdecl: const void "cairo_ft_scaled_font_unlock_face" ( Cairo::ScaledFont ) >
-	self primitiveFailed
-
-    "Created: / 10-07-2008 / 23:05:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetCtm: scaled_font ctm: ctm 
+    OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
 
-	<cdecl: const void "cairo_scaled_font_get_ctm" ( Cairo::ScaledFont Cairo::Matrix ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetFontFace: scaled_font 
-
-	<cdecl: const Cairo::FontFace "cairo_scaled_font_get_font_face" ( Cairo::ScaledFont ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetFontMatrix: scaled_font fontMatrix: font_matrix 
-
-	<cdecl: const void "cairo_scaled_font_get_font_matrix" ( Cairo::ScaledFont Cairo::Matrix ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self error:'Library name for host OS is not known'
 !
 
-primGetFontOptions: scaled_font options: options 
-
-	<cdecl: const void "cairo_scaled_font_get_font_options" ( Cairo::ScaledFont Cairo::FontOptions ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetReferenceCount: scaled_font 
-
-	<cdecl: const uint32 "cairo_scaled_font_get_reference_count" ( Cairo::ScaledFont ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetType: scaled_font 
-
-	<cdecl: const int32 "cairo_scaled_font_get_type" ( Cairo::ScaledFont ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetUserData: scaled_font key: key 
-
-	<cdecl: const pointer "cairo_scaled_font_get_user_data" ( Cairo::ScaledFont Cairo::UserDataKey ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGlyphExtents: scaled_font glyphs: glyphs numGlyphs: num_glyphs extents: extents 
-
-	<cdecl: const void "cairo_scaled_font_glyph_extents" ( Cairo::ScaledFont Cairo::Glyph int32 Cairo::TextExtents ) >
-	self primitiveFailed
+sizeof
+    "Returns size of undelaying structure in bytes"
 
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primReference: scaled_font 
-
-	<cdecl: const Cairo::ScaledFont "cairo_scaled_font_reference" ( Cairo::ScaledFont ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primScaledFontCreate: font_face fontMatrix: font_matrix ctm: ctm options: options 
-
-	<cdecl: const Cairo::ScaledFont "cairo_scaled_font_create" ( Cairo::FontFace Cairo::Matrix Cairo::Matrix Cairo::FontOptions ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetUserData: scaled_font key: key userData: user_data destroy: destroy 
-
-	<cdecl: const int32 "cairo_scaled_font_set_user_data" ( Cairo::ScaledFont Cairo::UserDataKey pointer pointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primStatus: scaled_font 
-
-	<cdecl: const int32 "cairo_scaled_font_status" ( Cairo::ScaledFont ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primTextExtents: scaled_font utf8: utf8 extents: extents 
-
-	<cdecl: const void "cairo_scaled_font_text_extents" ( Cairo::ScaledFont charPointer Cairo::TextExtents ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^0
 ! !
 
 !ScaledFont class methodsFor:'documentation'!
@@ -215,3 +74,4 @@
 version_HG
     ^ '$Changeset: <not expanded> $'
 ! !
+
--- a/Cairo__Status.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__Status.st	Sun Dec 28 22:38:24 2014 +0100
@@ -4,240 +4,278 @@
 
 SharedPool subclass:#Status
 	instanceVariableNames:''
-	classVariableNames:'STATUS_SUCCESS STATUS_NO_MEMORY STATUS_INVALID_RESTORE
-		STATUS_INVALID_POP_GROUP STATUS_NO_CURRENT_POINT
-		STATUS_INVALID_MATRIX STATUS_INVALID_STATUS STATUS_NULL_POINTER
-		STATUS_INVALID_STRING STATUS_INVALID_PATH_DATA STATUS_READ_ERROR
-		STATUS_WRITE_ERROR STATUS_SURFACE_FINISHED
-		STATUS_SURFACE_TYPE_MISMATCH STATUS_PATTERN_TYPE_MISMATCH
-		STATUS_INVALID_CONTENT STATUS_INVALID_FORMAT
-		STATUS_INVALID_VISUAL STATUS_FILE_NOT_FOUND STATUS_INVALID_DASH
-		STATUS_INVALID_DSC_COMMENT STATUS_INVALID_INDEX
-		STATUS_CLIP_NOT_REPRESENTABLE STATUS_TEMP_FILE_ERROR
-		STATUS_INVALID_STRIDE'
+	classVariableNames:'CAIRO_STATUS_SUCCESS CAIRO_STATUS_NO_MEMORY
+		CAIRO_STATUS_INVALID_RESTORE CAIRO_STATUS_INVALID_POP_GROUP
+		CAIRO_STATUS_NO_CURRENT_POINT CAIRO_STATUS_INVALID_MATRIX
+		CAIRO_STATUS_INVALID_STATUS CAIRO_STATUS_NULL_POINTER
+		CAIRO_STATUS_INVALID_STRING CAIRO_STATUS_INVALID_PATH_DATA
+		CAIRO_STATUS_READ_ERROR CAIRO_STATUS_WRITE_ERROR
+		CAIRO_STATUS_SURFACE_FINISHED CAIRO_STATUS_SURFACE_TYPE_MISMATCH
+		CAIRO_STATUS_PATTERN_TYPE_MISMATCH CAIRO_STATUS_INVALID_CONTENT
+		CAIRO_STATUS_INVALID_FORMAT CAIRO_STATUS_INVALID_VISUAL
+		CAIRO_STATUS_FILE_NOT_FOUND CAIRO_STATUS_INVALID_DASH
+		CAIRO_STATUS_INVALID_DSC_COMMENT CAIRO_STATUS_INVALID_INDEX
+		CAIRO_STATUS_CLIP_NOT_REPRESENTABLE CAIRO_STATUS_TEMP_FILE_ERROR
+		CAIRO_STATUS_INVALID_STRIDE CAIRO_STATUS_FONT_TYPE_MISMATCH
+		CAIRO_STATUS_USER_FONT_IMMUTABLE CAIRO_STATUS_USER_FONT_ERROR
+		CAIRO_STATUS_NEGATIVE_COUNT CAIRO_STATUS_INVALID_CLUSTERS
+		CAIRO_STATUS_INVALID_SLANT CAIRO_STATUS_INVALID_WEIGHT
+		CAIRO_STATUS_INVALID_SIZE CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED
+		CAIRO_STATUS_DEVICE_TYPE_MISMATCH CAIRO_STATUS_DEVICE_ERROR
+		CAIRO_STATUS_INVALID_MESH_CONSTRUCTION
+		CAIRO_STATUS_DEVICE_FINISHED CAIRO_STATUS_JBIG2_GLOBAL_MISSING
+		CAIRO_STATUS_LAST_STATUS'
 	poolDictionaries:''
 	category:'Cairo-Constants'
 !
 
-
 !Status class methodsFor:'initialization'!
 
 initialize
 
-	STATUS_SUCCESS := 0.
-	STATUS_NO_MEMORY := 1.
-	STATUS_INVALID_RESTORE := 2.
-	STATUS_INVALID_POP_GROUP := 3.
-	STATUS_NO_CURRENT_POINT := 4.
-	STATUS_INVALID_MATRIX := 5.
-	STATUS_INVALID_STATUS := 6.
-	STATUS_NULL_POINTER := 7.
-	STATUS_INVALID_STRING := 8.
-	STATUS_INVALID_PATH_DATA := 9.
-	STATUS_READ_ERROR := 10.
-	STATUS_WRITE_ERROR := 11.
-	STATUS_SURFACE_FINISHED := 12.
-	STATUS_SURFACE_TYPE_MISMATCH := 13.
-	STATUS_PATTERN_TYPE_MISMATCH := 14.
-	STATUS_INVALID_CONTENT := 15.
-	STATUS_INVALID_FORMAT := 16.
-	STATUS_INVALID_VISUAL := 17.
-	STATUS_FILE_NOT_FOUND := 18.
-	STATUS_INVALID_DASH := 19.
-	STATUS_INVALID_DSC_COMMENT := 20.
-	STATUS_INVALID_INDEX := 21.
-	STATUS_CLIP_NOT_REPRESENTABLE := 22.
-	STATUS_TEMP_FILE_ERROR := 23.
-	STATUS_INVALID_STRIDE := 24.
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    CAIRO_STATUS_SUCCESS := 0.
+    CAIRO_STATUS_NO_MEMORY := 1.
+    CAIRO_STATUS_INVALID_RESTORE := 2.
+    CAIRO_STATUS_INVALID_POP_GROUP := 3.
+    CAIRO_STATUS_NO_CURRENT_POINT := 4.
+    CAIRO_STATUS_INVALID_MATRIX := 5.
+    CAIRO_STATUS_INVALID_STATUS := 6.
+    CAIRO_STATUS_NULL_POINTER := 7.
+    CAIRO_STATUS_INVALID_STRING := 8.
+    CAIRO_STATUS_INVALID_PATH_DATA := 9.
+    CAIRO_STATUS_READ_ERROR := 10.
+    CAIRO_STATUS_WRITE_ERROR := 11.
+    CAIRO_STATUS_SURFACE_FINISHED := 12.
+    CAIRO_STATUS_SURFACE_TYPE_MISMATCH := 13.
+    CAIRO_STATUS_PATTERN_TYPE_MISMATCH := 14.
+    CAIRO_STATUS_INVALID_CONTENT := 15.
+    CAIRO_STATUS_INVALID_FORMAT := 16.
+    CAIRO_STATUS_INVALID_VISUAL := 17.
+    CAIRO_STATUS_FILE_NOT_FOUND := 18.
+    CAIRO_STATUS_INVALID_DASH := 19.
+    CAIRO_STATUS_INVALID_DSC_COMMENT := 20.
+    CAIRO_STATUS_INVALID_INDEX := 21.
+    CAIRO_STATUS_CLIP_NOT_REPRESENTABLE := 22.
+    CAIRO_STATUS_TEMP_FILE_ERROR := 23.
+    CAIRO_STATUS_INVALID_STRIDE := 24.
+    CAIRO_STATUS_FONT_TYPE_MISMATCH := 25.
+    CAIRO_STATUS_USER_FONT_IMMUTABLE := 26.
+    CAIRO_STATUS_USER_FONT_ERROR := 27.
+    CAIRO_STATUS_NEGATIVE_COUNT := 28.
+    CAIRO_STATUS_INVALID_CLUSTERS := 29.
+    CAIRO_STATUS_INVALID_SLANT := 30.
+    CAIRO_STATUS_INVALID_WEIGHT := 31.
+    CAIRO_STATUS_INVALID_SIZE := 32.
+    CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED := 33.
+    CAIRO_STATUS_DEVICE_TYPE_MISMATCH := 34.
+    CAIRO_STATUS_DEVICE_ERROR := 35.
+    CAIRO_STATUS_INVALID_MESH_CONSTRUCTION := 36.
+    CAIRO_STATUS_DEVICE_FINISHED := 37.
+    CAIRO_STATUS_JBIG2_GLOBAL_MISSING := 38.
+    CAIRO_STATUS_LAST_STATUS := 39.
 ! !
 
 !Status class methodsFor:'constants'!
 
-STATUS_CLIP_NOT_REPRESENTABLE
+CAIRO_STATUS_CLIP_NOT_REPRESENTABLE
 
-	^STATUS_CLIP_NOT_REPRESENTABLE
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_STATUS_CLIP_NOT_REPRESENTABLE
 !
 
-STATUS_FILE_NOT_FOUND
+CAIRO_STATUS_DEVICE_ERROR
+
+    ^CAIRO_STATUS_DEVICE_ERROR
+!
+
+CAIRO_STATUS_DEVICE_FINISHED
 
-	^STATUS_FILE_NOT_FOUND
+    ^CAIRO_STATUS_DEVICE_FINISHED
+!
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_STATUS_DEVICE_TYPE_MISMATCH
+
+    ^CAIRO_STATUS_DEVICE_TYPE_MISMATCH
 !
 
-STATUS_INVALID_CONTENT
+CAIRO_STATUS_FILE_NOT_FOUND
 
-	^STATUS_INVALID_CONTENT
+    ^CAIRO_STATUS_FILE_NOT_FOUND
+!
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_STATUS_FONT_TYPE_MISMATCH
+
+    ^CAIRO_STATUS_FONT_TYPE_MISMATCH
 !
 
-STATUS_INVALID_DASH
+CAIRO_STATUS_INVALID_CLUSTERS
 
-	^STATUS_INVALID_DASH
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_STATUS_INVALID_CLUSTERS
 !
 
-STATUS_INVALID_DSC_COMMENT
+CAIRO_STATUS_INVALID_CONTENT
 
-	^STATUS_INVALID_DSC_COMMENT
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_STATUS_INVALID_CONTENT
 !
 
-STATUS_INVALID_FORMAT
+CAIRO_STATUS_INVALID_DASH
 
-	^STATUS_INVALID_FORMAT
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_STATUS_INVALID_DASH
 !
 
-STATUS_INVALID_INDEX
+CAIRO_STATUS_INVALID_DSC_COMMENT
 
-	^STATUS_INVALID_INDEX
+    ^CAIRO_STATUS_INVALID_DSC_COMMENT
+!
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_STATUS_INVALID_FORMAT
+
+    ^CAIRO_STATUS_INVALID_FORMAT
 !
 
-STATUS_INVALID_MATRIX
+CAIRO_STATUS_INVALID_INDEX
 
-	^STATUS_INVALID_MATRIX
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_STATUS_INVALID_INDEX
 !
 
-STATUS_INVALID_PATH_DATA
+CAIRO_STATUS_INVALID_MATRIX
 
-	^STATUS_INVALID_PATH_DATA
+    ^CAIRO_STATUS_INVALID_MATRIX
+!
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_STATUS_INVALID_MESH_CONSTRUCTION
+
+    ^CAIRO_STATUS_INVALID_MESH_CONSTRUCTION
 !
 
-STATUS_INVALID_POP_GROUP
+CAIRO_STATUS_INVALID_PATH_DATA
 
-	^STATUS_INVALID_POP_GROUP
+    ^CAIRO_STATUS_INVALID_PATH_DATA
+!
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_STATUS_INVALID_POP_GROUP
+
+    ^CAIRO_STATUS_INVALID_POP_GROUP
 !
 
-STATUS_INVALID_RESTORE
+CAIRO_STATUS_INVALID_RESTORE
 
-	^STATUS_INVALID_RESTORE
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_STATUS_INVALID_RESTORE
 !
 
-STATUS_INVALID_STATUS
+CAIRO_STATUS_INVALID_SIZE
 
-	^STATUS_INVALID_STATUS
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_STATUS_INVALID_SIZE
 !
 
-STATUS_INVALID_STRIDE
+CAIRO_STATUS_INVALID_SLANT
 
-	^STATUS_INVALID_STRIDE
+    ^CAIRO_STATUS_INVALID_SLANT
+!
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_STATUS_INVALID_STATUS
+
+    ^CAIRO_STATUS_INVALID_STATUS
 !
 
-STATUS_INVALID_STRING
+CAIRO_STATUS_INVALID_STRIDE
 
-	^STATUS_INVALID_STRING
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_STATUS_INVALID_STRIDE
 !
 
-STATUS_INVALID_VISUAL
+CAIRO_STATUS_INVALID_STRING
+
+    ^CAIRO_STATUS_INVALID_STRING
+!
+
+CAIRO_STATUS_INVALID_VISUAL
 
-	^STATUS_INVALID_VISUAL
+    ^CAIRO_STATUS_INVALID_VISUAL
+!
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_STATUS_INVALID_WEIGHT
+
+    ^CAIRO_STATUS_INVALID_WEIGHT
 !
 
-STATUS_NO_CURRENT_POINT
+CAIRO_STATUS_JBIG2_GLOBAL_MISSING
 
-	^STATUS_NO_CURRENT_POINT
+    ^CAIRO_STATUS_JBIG2_GLOBAL_MISSING
+!
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_STATUS_LAST_STATUS
+
+    ^CAIRO_STATUS_LAST_STATUS
 !
 
-STATUS_NO_MEMORY
+CAIRO_STATUS_NEGATIVE_COUNT
 
-	^STATUS_NO_MEMORY
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_STATUS_NEGATIVE_COUNT
 !
 
-STATUS_NULL_POINTER
+CAIRO_STATUS_NO_CURRENT_POINT
 
-	^STATUS_NULL_POINTER
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_STATUS_NO_CURRENT_POINT
 !
 
-STATUS_PATTERN_TYPE_MISMATCH
+CAIRO_STATUS_NO_MEMORY
 
-	^STATUS_PATTERN_TYPE_MISMATCH
+    ^CAIRO_STATUS_NO_MEMORY
+!
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_STATUS_NULL_POINTER
+
+    ^CAIRO_STATUS_NULL_POINTER
 !
 
-STATUS_READ_ERROR
+CAIRO_STATUS_PATTERN_TYPE_MISMATCH
 
-	^STATUS_READ_ERROR
+    ^CAIRO_STATUS_PATTERN_TYPE_MISMATCH
+!
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_STATUS_READ_ERROR
+
+    ^CAIRO_STATUS_READ_ERROR
 !
 
-STATUS_SUCCESS
+CAIRO_STATUS_SUCCESS
 
-	^STATUS_SUCCESS
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_STATUS_SUCCESS
 !
 
-STATUS_SURFACE_FINISHED
+CAIRO_STATUS_SURFACE_FINISHED
 
-	^STATUS_SURFACE_FINISHED
+    ^CAIRO_STATUS_SURFACE_FINISHED
+!
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_STATUS_SURFACE_TYPE_MISMATCH
+
+    ^CAIRO_STATUS_SURFACE_TYPE_MISMATCH
 !
 
-STATUS_SURFACE_TYPE_MISMATCH
+CAIRO_STATUS_TEMP_FILE_ERROR
 
-	^STATUS_SURFACE_TYPE_MISMATCH
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_STATUS_TEMP_FILE_ERROR
 !
 
-STATUS_TEMP_FILE_ERROR
+CAIRO_STATUS_USER_FONT_ERROR
 
-	^STATUS_TEMP_FILE_ERROR
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_STATUS_USER_FONT_ERROR
 !
 
-STATUS_WRITE_ERROR
+CAIRO_STATUS_USER_FONT_IMMUTABLE
+
+    ^CAIRO_STATUS_USER_FONT_IMMUTABLE
+!
+
+CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED
 
-	^STATUS_WRITE_ERROR
+    ^CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED
+!
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_STATUS_WRITE_ERROR
+
+    ^CAIRO_STATUS_WRITE_ERROR
 ! !
 
-!Status class methodsFor:'documentation'!
-
-version
-    ^'$Id$'
-!
-
-version_HG
-    ^ '$Changeset: <not expanded> $'
-! !
 
 Status initialize!
--- a/Cairo__SubpixelOrder.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__SubpixelOrder.st	Sun Dec 28 22:38:24 2014 +0100
@@ -4,71 +4,50 @@
 
 SharedPool subclass:#SubpixelOrder
 	instanceVariableNames:''
-	classVariableNames:'SUBPIXEL_ORDER_DEFAULT SUBPIXEL_ORDER_RGB SUBPIXEL_ORDER_BGR
-		SUBPIXEL_ORDER_VRGB SUBPIXEL_ORDER_VBGR'
+	classVariableNames:'CAIRO_SUBPIXEL_ORDER_DEFAULT CAIRO_SUBPIXEL_ORDER_RGB
+		CAIRO_SUBPIXEL_ORDER_BGR CAIRO_SUBPIXEL_ORDER_VRGB
+		CAIRO_SUBPIXEL_ORDER_VBGR'
 	poolDictionaries:''
 	category:'Cairo-Constants'
 !
 
-
 !SubpixelOrder class methodsFor:'initialization'!
 
 initialize
 
-	SUBPIXEL_ORDER_DEFAULT := 0.
-	SUBPIXEL_ORDER_RGB := 1.
-	SUBPIXEL_ORDER_BGR := 2.
-	SUBPIXEL_ORDER_VRGB := 3.
-	SUBPIXEL_ORDER_VBGR := 4.
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    CAIRO_SUBPIXEL_ORDER_DEFAULT := 0.
+    CAIRO_SUBPIXEL_ORDER_RGB := 1.
+    CAIRO_SUBPIXEL_ORDER_BGR := 2.
+    CAIRO_SUBPIXEL_ORDER_VRGB := 3.
+    CAIRO_SUBPIXEL_ORDER_VBGR := 4.
 ! !
 
 !SubpixelOrder class methodsFor:'constants'!
 
-SUBPIXEL_ORDER_BGR
+CAIRO_SUBPIXEL_ORDER_BGR
 
-	^SUBPIXEL_ORDER_BGR
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_SUBPIXEL_ORDER_BGR
 !
 
-SUBPIXEL_ORDER_DEFAULT
-
-	^SUBPIXEL_ORDER_DEFAULT
+CAIRO_SUBPIXEL_ORDER_DEFAULT
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-SUBPIXEL_ORDER_RGB
-
-	^SUBPIXEL_ORDER_RGB
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_SUBPIXEL_ORDER_DEFAULT
 !
 
-SUBPIXEL_ORDER_VBGR
+CAIRO_SUBPIXEL_ORDER_RGB
 
-	^SUBPIXEL_ORDER_VBGR
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_SUBPIXEL_ORDER_RGB
 !
 
-SUBPIXEL_ORDER_VRGB
+CAIRO_SUBPIXEL_ORDER_VBGR
 
-	^SUBPIXEL_ORDER_VRGB
+    ^CAIRO_SUBPIXEL_ORDER_VBGR
+!
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_SUBPIXEL_ORDER_VRGB
+
+    ^CAIRO_SUBPIXEL_ORDER_VRGB
 ! !
 
-!SubpixelOrder class methodsFor:'documentation'!
-
-version
-    ^'$Id$'
-!
-
-version_HG
-    ^ '$Changeset: <not expanded> $'
-! !
 
 SubpixelOrder initialize!
--- a/Cairo__Surface.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__Surface.st	Sun Dec 28 22:38:24 2014 +0100
@@ -5,7 +5,7 @@
 RefCountedStructure subclass:#Surface
 	instanceVariableNames:'view'
 	classVariableNames:''
-	poolDictionaries:'Cairo::SurfaceType'
+	poolDictionaries:'Cairo::SurfaceType Cairo::Format'
 	category:'Cairo-Objects'
 !
 
@@ -14,26 +14,28 @@
 
 forImageFormat: format width: width height: height 
 
-    ^self primImageSurfaceCreate: format width: width height: height
+    ^CPrimitives cairo_image_surface_create: format _: width _: height
 
     "Created: / 24-12-2014 / 23:43:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:03:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 forImageFormatARGB32width: width height: height 
 
-    ^self primImageSurfaceCreate: Format FORMAT_ARGB32 width: width height: height
+    ^self forImageFormat: CAIRO_FORMAT_ARGB32 width: width height: height
 
     "Created: / 24-12-2014 / 23:44:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:04:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 forPdfFile: aStringOrFilename width: w height: h
 
-    ^self
-        primPdfSurfaceCreate: aStringOrFilename asFilename asString
-        widthInPoints: w asDouble 
-        heightInPoints: h asDouble
+    ^CPrimitives cairo_pdf_surface_create: aStringOrFilename asFilename asString
+        _: w asDouble 
+        _: h asDouble
 
     "Created: / 10-07-2008 / 09:35:34 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:05:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 forView: view
@@ -45,9 +47,10 @@
 
 forXlib: dpy drawable: drawable visual: visual width: width height: height 
 
-    ^self primXlibSurfaceCreate: dpy drawable: drawable visual: visual width: width height: height
+    ^CPrimitives cairo_xlib_surface_create: dpy _: drawable _: visual _: width _: height
 
     "Created: / 10-07-2008 / 11:06:22 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:06:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !Surface class methodsFor:'accessing'!
@@ -92,457 +95,69 @@
 
 libraryName
 
-	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
-
-	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+    OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
 
-	self error:'Library name for host OS is not known'
+    OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
 
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self error:'Library name for host OS is not known'
 !
 
 sizeof
-
-	^0
-
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
-! !
-
-!Surface class methodsFor:'primitives'!
-
-primCopyPage: surface 
-
-	<cdecl: const void "cairo_surface_copy_page" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primCreateSimilar: other content: content width: width height: height 
-
-	<cdecl: Cairo::Surface "cairo_surface_create_similar" ( Cairo::Surface int32 int32 int32 ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primDestroy: surface 
-
-	<cdecl: const void "cairo_surface_destroy" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primFinish: surface 
-
-	<cdecl: const void "cairo_surface_finish" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primFlush: surface 
-
-	<cdecl: const void "cairo_surface_flush" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetContent: surface 
-
-	<cdecl: const int32 "cairo_surface_get_content" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetDeviceOffset: surface xOffset: x_offset yOffset: y_offset 
-
-	<cdecl: const void "cairo_surface_get_device_offset" ( Cairo::Surface pointer pointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetFontOptions: surface options: options 
-
-	<cdecl: const void "cairo_surface_get_font_options" ( Cairo::Surface Cairo::FontOptions ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetReferenceCount: surface 
-
-	<cdecl: const uint32 "cairo_surface_get_reference_count" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetType: surface 
-
-	<cdecl: const int32 "cairo_surface_get_type" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primGetUserData: surface key: key 
-
-	<cdecl: const pointer "cairo_surface_get_user_data" ( Cairo::Surface Cairo::UserDataKey ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primImageSurfaceCreate: format width: width height: height 
-
-	<cdecl: Cairo::Surface "cairo_image_surface_create" ( int32 int32 int32 ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primImageSurfaceCreateForData: data format: format width: width height: height stride: stride 
-
-	<cdecl: Cairo::Surface "cairo_image_surface_create_for_data" ( pointer int32 int32 int32 int32 ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primImageSurfaceCreateFromPng: filename 
-
-	<cdecl: Cairo::Surface "cairo_image_surface_create_from_png" ( charPointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primImageSurfaceCreateFromPngStream: read_func closure: closure 
-
-	<cdecl: Cairo::Surface "cairo_image_surface_create_from_png_stream" ( pointer pointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primImageSurfaceGetData: surface 
-
-	<cdecl: const pointer "cairo_image_surface_get_data" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primImageSurfaceGetFormat: surface 
-
-	<cdecl: const int32 "cairo_image_surface_get_format" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primImageSurfaceGetHeight: surface 
-
-	<cdecl: const int32 "cairo_image_surface_get_height" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primImageSurfaceGetStride: surface 
-
-	<cdecl: const int32 "cairo_image_surface_get_stride" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primImageSurfaceGetWidth: surface 
-
-	<cdecl: const int32 "cairo_image_surface_get_width" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primMarkDirty: surface 
-
-	<cdecl: const void "cairo_surface_mark_dirty" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primMarkDirtyRectangle: surface x: x y: y width: width height: height 
-
-	<cdecl: const void "cairo_surface_mark_dirty_rectangle" ( Cairo::Surface int32 int32 int32 int32 ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primPdfSurfaceCreate: filename widthInPoints: width_in_points heightInPoints: height_in_points 
-
-	<cdecl: Cairo::Surface "cairo_pdf_surface_create" ( charPointer double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primPdfSurfaceCreateForStream: write_func closure: closure widthInPoints: width_in_points heightInPoints: height_in_points 
+    "Returns size of undelaying structure in bytes"
 
-	<cdecl: Cairo::Surface "cairo_pdf_surface_create_for_stream" ( pointer pointer double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primPdfSurfaceSetSize: surface widthInPoints: width_in_points heightInPoints: height_in_points 
-
-	<cdecl: const void "cairo_pdf_surface_set_size" ( Cairo::Surface double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primReference: surface 
-
-	<cdecl: Cairo::Surface "cairo_surface_reference" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetDeviceOffset: surface xOffset: x_offset yOffset: y_offset 
-
-	<cdecl: const void "cairo_surface_set_device_offset" ( Cairo::Surface double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetFallbackResolution: surface xPixelsPerInch: x_pixels_per_inch yPixelsPerInch: y_pixels_per_inch 
-
-	<cdecl: const void "cairo_surface_set_fallback_resolution" ( Cairo::Surface double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSetUserData: surface key: key userData: user_data destroy: destroy 
-
-	<cdecl: const int32 "cairo_surface_set_user_data" ( Cairo::Surface Cairo::UserDataKey pointer pointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primShowPage: surface 
-
-	<cdecl: const void "cairo_surface_show_page" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primStatus: surface 
-
-	<cdecl: const int32 "cairo_surface_status" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSvgSurfaceCreate: filename widthInPoints: width_in_points heightInPoints: height_in_points 
-
-	<cdecl: Cairo::Surface "cairo_svg_surface_create" ( charPointer double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSvgSurfaceCreateForStream: write_func closure: closure widthInPoints: width_in_points heightInPoints: height_in_points 
-
-	<cdecl: Cairo::Surface "cairo_svg_surface_create_for_stream" ( pointer pointer double double ) >
-	self primitiveFailed
-
-    "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primSvgSurfaceRestrictToVersion: surface version: version 
-
-	<cdecl: const void "cairo_svg_surface_restrict_to_version" ( Cairo::Surface int32 ) >
-	self primitiveFailed
-
-    "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primWriteToPng: surface filename: filename 
-
-	<cdecl: const int32 "cairo_surface_write_to_png" ( Cairo::Surface charPointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primWriteToPngStream: surface writeFunc: write_func closure: closure 
-
-	<cdecl: const int32 "cairo_surface_write_to_png_stream" ( Cairo::Surface pointer pointer ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primXlibSurfaceCreate: dpy drawable: drawable visual: visual width: width height: height 
-
-	<cdecl: Cairo::Surface "cairo_xlib_surface_create" ( pointer int32 pointer int32 int32 ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primXlibSurfaceCreateForBitmap: dpy bitmap: bitmap screen: screen width: width height: height 
-
-	<cdecl: Cairo::Surface "cairo_xlib_surface_create_for_bitmap" ( pointer int32 pointer int32 int32 ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primXlibSurfaceGetDepth: surface 
-
-	<cdecl: const int32 "cairo_xlib_surface_get_depth" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primXlibSurfaceGetDisplay: surface 
-
-	<cdecl: const pointer "cairo_xlib_surface_get_display" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primXlibSurfaceGetDrawable: surface 
-
-	<cdecl: const int32 "cairo_xlib_surface_get_drawable" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primXlibSurfaceGetGc: surface 
-
-	<cdecl: const pointer "cairo_xlib_surface_get_gc" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primXlibSurfaceGetHeight: surface 
-
-	<cdecl: const int32 "cairo_xlib_surface_get_height" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primXlibSurfaceGetScreen: surface 
-
-	<cdecl: const pointer "cairo_xlib_surface_get_screen" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primXlibSurfaceGetVisual: surface 
-
-	<cdecl: const pointer "cairo_xlib_surface_get_visual" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primXlibSurfaceGetWidth: surface 
-
-	<cdecl: const int32 "cairo_xlib_surface_get_width" ( Cairo::Surface ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primXlibSurfaceSetDrawable: surface drawable: drawable width: width height: height 
-
-	<cdecl: const void "cairo_xlib_surface_set_drawable" ( Cairo::Surface int32 int32 int32 ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-primXlibSurfaceSetSize: surface width: width height: height 
-
-	<cdecl: const void "cairo_xlib_surface_set_size" ( Cairo::Surface int32 int32 ) >
-	self primitiveFailed
-
-    "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^0
 ! !
 
 !Surface methodsFor:'accessing'!
 
-gcId
-
-    self
-        assert: (self type == SurfaceType SURFACE_TYPE_XLIB)
-        message: 'Not a xlib surface!!'.
-
-    ^self class primXlibSurfaceGetGc: self
-
-    "Created: / 09-09-2008 / 22:19:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
 height
 
-    self type == SURFACE_TYPE_XLIB ifTrue:[
-        ^self class primXlibSurfaceGetHeight: self 
+    self type == CAIRO_SURFACE_TYPE_XLIB ifTrue:[
+        ^ CPrimitives cairo_xlib_surface_get_height: self 
     ].
 
     self error:'Operation not supported'
 
     "Created: / 17-06-2012 / 15:37:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 21:50:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+referenceCount
+    "Return value or reference counter"
+
+    ^ CPrimitives cairo_surface_get_reference_count: self
+
+    "Created: / 28-12-2014 / 22:09:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 type
-
-    ^self class primGetType: self
+    ^CPrimitives cairo_surface_get_type: self
 
     "Created: / 10-07-2008 / 10:34:36 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 28-12-2014 / 21:46:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 width
 
-    self type == SURFACE_TYPE_XLIB ifTrue:[
-        ^self class primXlibSurfaceGetWidth: self 
+    self type == CAIRO_SURFACE_TYPE_XLIB ifTrue:[
+        ^ CPrimitives cairo_xlib_surface_get_width: self 
+    ].
+ 
+    self error:'Operation not supported'
+
+    "Created: / 17-06-2012 / 15:37:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 21:50:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+width: w height: h
+    self type == CAIRO_SURFACE_TYPE_XLIB ifTrue:[
+        ^ CPrimitives cairo_xlib_surface_set_size: self _: w _: h 
     ].
 
     self error:'Operation not supported'
 
-    "Created: / 17-06-2012 / 15:37:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-width: w height: h
-    self type == SURFACE_TYPE_XLIB ifTrue:[
-        self class primXlibSurfaceSetSize: self width: w height: h
-    ]
-
     "Created: / 10-07-2008 / 19:36:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
-    "Modified: / 26-12-2014 / 23:24:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 21:52:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !Surface methodsFor:'change & update'!
@@ -566,16 +181,18 @@
 
 finish
 
-    ^self class primFinish: self
+    ^CPrimitives cairo_surface_finish: self
 
     "Created: / 17-06-2012 / 08:49:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 21:48:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 flush
 
-    ^self class primFlush: self
+    ^CPrimitives cairo_surface_flush: self
 
     "Created: / 10-07-2008 / 10:32:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    "Modified: / 28-12-2014 / 21:48:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 setView: aView
@@ -589,6 +206,19 @@
     "Created: / 17-06-2012 / 15:04:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!Surface methodsFor:'private'!
+
+destroy
+    "Tell Cairo library to destroy the corresponding C object.
+     Remember that object is physically destroyed only if internal
+     refcounter goes to zero. However, after calling destroy,
+     this instance should be treated as invalid."
+
+    ^ CPrimitives cairo_surface_destroy: self
+
+    "Created: / 28-12-2014 / 22:10:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !Surface methodsFor:'queries'!
 
 isViewSurface
@@ -601,16 +231,18 @@
 
 isWin32Surface
 
-    ^self type == SURFACE_TYPE_WIN32
+    ^self type == CAIRO_SURFACE_TYPE_WIN32
 
     "Created: / 17-06-2012 / 15:01:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 21:46:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 isXLibSurface
 
-    ^self type == SURFACE_TYPE_XLIB
+    ^self type == CAIRO_SURFACE_TYPE_XLIB
 
     "Created: / 17-06-2012 / 14:58:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 21:46:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !Surface class methodsFor:'documentation'!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__SurfaceObserverMode.st	Sun Dec 28 22:38:24 2014 +0100
@@ -0,0 +1,34 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+SharedPool subclass:#SurfaceObserverMode
+	instanceVariableNames:''
+	classVariableNames:'CAIRO_SURFACE_OBSERVER_NORMAL
+		CAIRO_SURFACE_OBSERVER_RECORD_OPERATIONS'
+	poolDictionaries:''
+	category:'Cairo-Constants'
+!
+
+!SurfaceObserverMode class methodsFor:'initialization'!
+
+initialize
+
+    CAIRO_SURFACE_OBSERVER_NORMAL := 0.
+    CAIRO_SURFACE_OBSERVER_RECORD_OPERATIONS := 1.
+! !
+
+!SurfaceObserverMode class methodsFor:'constants'!
+
+CAIRO_SURFACE_OBSERVER_NORMAL
+
+    ^CAIRO_SURFACE_OBSERVER_NORMAL
+!
+
+CAIRO_SURFACE_OBSERVER_RECORD_OPERATIONS
+
+    ^CAIRO_SURFACE_OBSERVER_RECORD_OPERATIONS
+! !
+
+
+SurfaceObserverMode initialize!
--- a/Cairo__SurfaceType.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__SurfaceType.st	Sun Dec 28 22:38:24 2014 +0100
@@ -4,146 +4,180 @@
 
 SharedPool subclass:#SurfaceType
 	instanceVariableNames:''
-	classVariableNames:'SURFACE_TYPE_IMAGE SURFACE_TYPE_PDF SURFACE_TYPE_PS
-		SURFACE_TYPE_XLIB SURFACE_TYPE_XCB SURFACE_TYPE_GLITZ
-		SURFACE_TYPE_QUARTZ SURFACE_TYPE_WIN32 SURFACE_TYPE_BEOS
-		SURFACE_TYPE_DIRECTFB SURFACE_TYPE_SVG SURFACE_TYPE_OS2
-		SURFACE_TYPE_WIN32_PRINTING SURFACE_TYPE_QUARTZ_IMAGE'
+	classVariableNames:'CAIRO_SURFACE_TYPE_IMAGE CAIRO_SURFACE_TYPE_PDF
+		CAIRO_SURFACE_TYPE_PS CAIRO_SURFACE_TYPE_XLIB
+		CAIRO_SURFACE_TYPE_XCB CAIRO_SURFACE_TYPE_GLITZ
+		CAIRO_SURFACE_TYPE_QUARTZ CAIRO_SURFACE_TYPE_WIN32
+		CAIRO_SURFACE_TYPE_BEOS CAIRO_SURFACE_TYPE_DIRECTFB
+		CAIRO_SURFACE_TYPE_SVG CAIRO_SURFACE_TYPE_OS2
+		CAIRO_SURFACE_TYPE_WIN32_PRINTING CAIRO_SURFACE_TYPE_QUARTZ_IMAGE
+		CAIRO_SURFACE_TYPE_SCRIPT CAIRO_SURFACE_TYPE_QT
+		CAIRO_SURFACE_TYPE_RECORDING CAIRO_SURFACE_TYPE_VG
+		CAIRO_SURFACE_TYPE_GL CAIRO_SURFACE_TYPE_DRM
+		CAIRO_SURFACE_TYPE_TEE CAIRO_SURFACE_TYPE_XML
+		CAIRO_SURFACE_TYPE_SKIA CAIRO_SURFACE_TYPE_SUBSURFACE
+		CAIRO_SURFACE_TYPE_COGL'
 	poolDictionaries:''
 	category:'Cairo-Constants'
 !
 
-
 !SurfaceType class methodsFor:'initialization'!
 
 initialize
 
-	SURFACE_TYPE_IMAGE := 0.
-	SURFACE_TYPE_PDF := 1.
-	SURFACE_TYPE_PS := 2.
-	SURFACE_TYPE_XLIB := 3.
-	SURFACE_TYPE_XCB := 4.
-	SURFACE_TYPE_GLITZ := 5.
-	SURFACE_TYPE_QUARTZ := 6.
-	SURFACE_TYPE_WIN32 := 7.
-	SURFACE_TYPE_BEOS := 8.
-	SURFACE_TYPE_DIRECTFB := 9.
-	SURFACE_TYPE_SVG := 10.
-	SURFACE_TYPE_OS2 := 11.
-	SURFACE_TYPE_WIN32_PRINTING := 12.
-	SURFACE_TYPE_QUARTZ_IMAGE := 13.
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    CAIRO_SURFACE_TYPE_IMAGE := 0.
+    CAIRO_SURFACE_TYPE_PDF := 1.
+    CAIRO_SURFACE_TYPE_PS := 2.
+    CAIRO_SURFACE_TYPE_XLIB := 3.
+    CAIRO_SURFACE_TYPE_XCB := 4.
+    CAIRO_SURFACE_TYPE_GLITZ := 5.
+    CAIRO_SURFACE_TYPE_QUARTZ := 6.
+    CAIRO_SURFACE_TYPE_WIN32 := 7.
+    CAIRO_SURFACE_TYPE_BEOS := 8.
+    CAIRO_SURFACE_TYPE_DIRECTFB := 9.
+    CAIRO_SURFACE_TYPE_SVG := 10.
+    CAIRO_SURFACE_TYPE_OS2 := 11.
+    CAIRO_SURFACE_TYPE_WIN32_PRINTING := 12.
+    CAIRO_SURFACE_TYPE_QUARTZ_IMAGE := 13.
+    CAIRO_SURFACE_TYPE_SCRIPT := 14.
+    CAIRO_SURFACE_TYPE_QT := 15.
+    CAIRO_SURFACE_TYPE_RECORDING := 16.
+    CAIRO_SURFACE_TYPE_VG := 17.
+    CAIRO_SURFACE_TYPE_GL := 18.
+    CAIRO_SURFACE_TYPE_DRM := 19.
+    CAIRO_SURFACE_TYPE_TEE := 20.
+    CAIRO_SURFACE_TYPE_XML := 21.
+    CAIRO_SURFACE_TYPE_SKIA := 22.
+    CAIRO_SURFACE_TYPE_SUBSURFACE := 23.
+    CAIRO_SURFACE_TYPE_COGL := 24.
 ! !
 
 !SurfaceType class methodsFor:'constants'!
 
-SURFACE_TYPE_BEOS
+CAIRO_SURFACE_TYPE_BEOS
 
-	^SURFACE_TYPE_BEOS
+    ^CAIRO_SURFACE_TYPE_BEOS
+!
 
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_SURFACE_TYPE_COGL
+
+    ^CAIRO_SURFACE_TYPE_COGL
 !
 
-SURFACE_TYPE_DIRECTFB
+CAIRO_SURFACE_TYPE_DIRECTFB
 
-	^SURFACE_TYPE_DIRECTFB
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_SURFACE_TYPE_DIRECTFB
 !
 
-SURFACE_TYPE_GLITZ
+CAIRO_SURFACE_TYPE_DRM
 
-	^SURFACE_TYPE_GLITZ
+    ^CAIRO_SURFACE_TYPE_DRM
+!
 
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_SURFACE_TYPE_GL
+
+    ^CAIRO_SURFACE_TYPE_GL
 !
 
-SURFACE_TYPE_IMAGE
+CAIRO_SURFACE_TYPE_GLITZ
+
+    ^CAIRO_SURFACE_TYPE_GLITZ
+!
+
+CAIRO_SURFACE_TYPE_IMAGE
 
-	^SURFACE_TYPE_IMAGE
+    ^CAIRO_SURFACE_TYPE_IMAGE
+!
 
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_SURFACE_TYPE_OS2
+
+    ^CAIRO_SURFACE_TYPE_OS2
 !
 
-SURFACE_TYPE_OS2
+CAIRO_SURFACE_TYPE_PDF
 
-	^SURFACE_TYPE_OS2
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_SURFACE_TYPE_PDF
 !
 
-SURFACE_TYPE_PDF
+CAIRO_SURFACE_TYPE_PS
 
-	^SURFACE_TYPE_PDF
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_SURFACE_TYPE_PS
 !
 
-SURFACE_TYPE_PS
+CAIRO_SURFACE_TYPE_QT
 
-	^SURFACE_TYPE_PS
+    ^CAIRO_SURFACE_TYPE_QT
+!
 
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_SURFACE_TYPE_QUARTZ
+
+    ^CAIRO_SURFACE_TYPE_QUARTZ
 !
 
-SURFACE_TYPE_QUARTZ
+CAIRO_SURFACE_TYPE_QUARTZ_IMAGE
 
-	^SURFACE_TYPE_QUARTZ
+    ^CAIRO_SURFACE_TYPE_QUARTZ_IMAGE
+!
 
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_SURFACE_TYPE_RECORDING
+
+    ^CAIRO_SURFACE_TYPE_RECORDING
 !
 
-SURFACE_TYPE_QUARTZ_IMAGE
+CAIRO_SURFACE_TYPE_SCRIPT
 
-	^SURFACE_TYPE_QUARTZ_IMAGE
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_SURFACE_TYPE_SCRIPT
 !
 
-SURFACE_TYPE_SVG
+CAIRO_SURFACE_TYPE_SKIA
 
-	^SURFACE_TYPE_SVG
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_SURFACE_TYPE_SKIA
 !
 
-SURFACE_TYPE_WIN32
+CAIRO_SURFACE_TYPE_SUBSURFACE
 
-	^SURFACE_TYPE_WIN32
+    ^CAIRO_SURFACE_TYPE_SUBSURFACE
+!
 
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_SURFACE_TYPE_SVG
+
+    ^CAIRO_SURFACE_TYPE_SVG
 !
 
-SURFACE_TYPE_WIN32_PRINTING
+CAIRO_SURFACE_TYPE_TEE
 
-	^SURFACE_TYPE_WIN32_PRINTING
-
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_SURFACE_TYPE_TEE
 !
 
-SURFACE_TYPE_XCB
+CAIRO_SURFACE_TYPE_VG
 
-	^SURFACE_TYPE_XCB
+    ^CAIRO_SURFACE_TYPE_VG
+!
 
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+CAIRO_SURFACE_TYPE_WIN32
+
+    ^CAIRO_SURFACE_TYPE_WIN32
 !
 
-SURFACE_TYPE_XLIB
+CAIRO_SURFACE_TYPE_WIN32_PRINTING
+
+    ^CAIRO_SURFACE_TYPE_WIN32_PRINTING
+!
+
+CAIRO_SURFACE_TYPE_XCB
 
-	^SURFACE_TYPE_XLIB
+    ^CAIRO_SURFACE_TYPE_XCB
+!
+
+CAIRO_SURFACE_TYPE_XLIB
 
-    "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^CAIRO_SURFACE_TYPE_XLIB
+!
+
+CAIRO_SURFACE_TYPE_XML
+
+    ^CAIRO_SURFACE_TYPE_XML
 ! !
 
-!SurfaceType class methodsFor:'documentation'!
-
-version
-    ^'$Id$'
-!
-
-version_HG
-    ^ '$Changeset: <not expanded> $'
-! !
 
 SurfaceType initialize!
--- a/Cairo__SvgVersion.st	Sat Dec 27 00:45:13 2014 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-"{ Package: 'stx:goodies/libcairo' }"
-
-"{ NameSpace: Cairo }"
-
-SharedPool subclass:#SvgVersion
-	instanceVariableNames:''
-	classVariableNames:'SVG_VERSION_1_1 SVG_VERSION_1_2'
-	poolDictionaries:''
-	category:'Cairo-Constants'
-!
-
-
-!SvgVersion class methodsFor:'initialization'!
-
-initialize
-
-	SVG_VERSION_1_1 := 0.
-	SVG_VERSION_1_2 := 1.
-
-    "Modified: / 10-07-2008 / 23:05:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-! !
-
-!SvgVersion class methodsFor:'constants'!
-
-SVG_VERSION_1_1
-
-	^SVG_VERSION_1_1
-
-    "Modified: / 10-07-2008 / 23:05:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
-
-SVG_VERSION_1_2
-
-	^SVG_VERSION_1_2
-
-    "Modified: / 10-07-2008 / 23:05:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
-! !
-
-!SvgVersion class methodsFor:'documentation'!
-
-version
-    ^'$Id$'
-!
-
-version_HG
-    ^ '$Changeset: <not expanded> $'
-! !
-
-SvgVersion initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__TextCluster.st	Sun Dec 28 22:38:24 2014 +0100
@@ -0,0 +1,52 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+ExternalAddress subclass:#TextCluster
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Cairo-Constants'
+!
+
+!TextCluster class methodsFor:'accessing'!
+
+libraryName
+
+    OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
+
+    OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+
+    self error:'Library name for host OS is not known'
+!
+
+sizeof
+    "Returns size of undelaying structure in bytes"
+
+    ^8
+! !
+
+!TextCluster methodsFor:'accessing'!
+
+numBytes
+    "Returns int32"
+
+    ^self longAt:1 + 0
+!
+
+numBytes: value
+
+    self longAt:1 + 0 put:value
+!
+
+numGlyphs
+    "Returns int32"
+
+    ^self longAt:1 + 4
+!
+
+numGlyphs: value
+
+    self longAt:1 + 4 put:value
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__TextClusterFlags.st	Sun Dec 28 22:38:24 2014 +0100
@@ -0,0 +1,27 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+SharedPool subclass:#TextClusterFlags
+	instanceVariableNames:''
+	classVariableNames:'CAIRO_TEXT_CLUSTER_FLAG_BACKWARD'
+	poolDictionaries:''
+	category:'Cairo-Constants'
+!
+
+!TextClusterFlags class methodsFor:'initialization'!
+
+initialize
+
+    CAIRO_TEXT_CLUSTER_FLAG_BACKWARD := 1.
+! !
+
+!TextClusterFlags class methodsFor:'constants'!
+
+CAIRO_TEXT_CLUSTER_FLAG_BACKWARD
+
+    ^CAIRO_TEXT_CLUSTER_FLAG_BACKWARD
+! !
+
+
+TextClusterFlags initialize!
--- a/Cairo__TextExampleView.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__TextExampleView.st	Sun Dec 28 22:38:24 2014 +0100
@@ -40,13 +40,14 @@
     self font: (Font family: 'Helvetica' face: 'medium' style: 'italic' size: 32).
     self displayString: 'Hello world!!' x: 10 y: 40.
 
-    cr fontFaceFamily: 'Helvetice' slant: Cairo::FontSlant FONT_SLANT_ITALIC weight: Cairo::FontWeight FONT_WEIGHT_NORMAL. 
+    cr fontFaceFamily: 'Helvetice' slant: Cairo::FontSlant CAIRO_FONT_SLANT_ITALIC weight: Cairo::FontWeight CAIRO_FONT_WEIGHT_NORMAL. 
     cr fontSize: 42.
 
     cr moveToX: 10 y: 82.
     cr showText: 'Hello World!!'
 
     "Created: / 27-12-2014 / 00:36:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 28-12-2014 / 22:13:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 redrawX: x y: y width: w height: h
--- a/Cairo__TextExtents.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__TextExtents.st	Sun Dec 28 22:38:24 2014 +0100
@@ -52,106 +52,85 @@
 
 libraryName
 
-	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
-
-	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+    OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
 
-	self error:'Library name for host OS is not known'
+    OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
 
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self error:'Library name for host OS is not known'
 !
 
-structSize
+sizeof
+    "Returns size of undelaying structure in bytes"
 
-	^384
-
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^48
 ! !
 
 !TextExtents methodsFor:'accessing'!
 
 height
+    "Returns double"
 
-	^self doubleAt:1 + 24
-
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleAt:1 + 24
 !
 
 height: value
 
-	self doubleAt:1 + 24 put:value
-
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleAt:1 + 24 put:value
 !
 
 width
+    "Returns double"
 
-	^self doubleAt:1 + 16
-
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleAt:1 + 16
 !
 
 width: value
 
-	self doubleAt:1 + 16 put:value
-
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleAt:1 + 16 put:value
 !
 
 xAdvance
+    "Returns double"
 
-	^self doubleAt:1 + 32
-
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleAt:1 + 32
 !
 
 xAdvance: value
 
-	self doubleAt:1 + 32 put:value
-
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleAt:1 + 32 put:value
 !
 
 xBearing
+    "Returns double"
 
-	^self doubleAt:1 + 0
-
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleAt:1 + 0
 !
 
 xBearing: value
 
-	self doubleAt:1 + 0 put:value
-
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleAt:1 + 0 put:value
 !
 
 yAdvance
+    "Returns double"
 
-	^self doubleAt:1 + 40
-
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleAt:1 + 40
 !
 
 yAdvance: value
 
-	self doubleAt:1 + 40 put:value
-
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleAt:1 + 40 put:value
 !
 
 yBearing
+    "Returns double"
 
-	^self doubleAt:1 + 8
-
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self doubleAt:1 + 8
 !
 
 yBearing: value
 
-	self doubleAt:1 + 8 put:value
-
-    "Modified: / 10-09-2008 / 18:19:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self doubleAt:1 + 8 put:value
 ! !
 
 !TextExtents class methodsFor:'documentation'!
--- a/Cairo__UserDataKey.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/Cairo__UserDataKey.st	Sun Dec 28 22:38:24 2014 +0100
@@ -52,36 +52,30 @@
 
 libraryName
 
-	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
-
-	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+    OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
 
-	self error:'Library name for host OS is not known'
+    OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
 
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self error:'Library name for host OS is not known'
 !
 
-structSize
+sizeof
+    "Returns size of undelaying structure in bytes"
 
-	^32
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^4
 ! !
 
 !UserDataKey methodsFor:'accessing'!
 
 unused
+    "Returns int32"
 
-	^self doubleWordAt:1 + 0
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    ^self longAt:1 + 0
 !
 
 unused: value
 
-	self doubleWordAt:1 + 0 put:value
-
-    "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+    self longAt:1 + 0 put:value
 ! !
 
 !UserDataKey class methodsFor:'documentation'!
@@ -93,3 +87,4 @@
 version_HG
     ^ '$Changeset: <not expanded> $'
 ! !
+
--- a/Make.proto	Sat Dec 27 00:45:13 2014 +0100
+++ b/Make.proto	Sun Dec 28 22:38:24 2014 +0100
@@ -145,8 +145,11 @@
 
 # BEGINMAKEDEPEND --- do not remove this line; make depend needs it
 $(OUTDIR)Cairo__Antialias.$(O) Cairo__Antialias.$(H): Cairo__Antialias.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
+$(OUTDIR)Cairo__CPrimitives.$(O) Cairo__CPrimitives.$(H): Cairo__CPrimitives.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)Cairo__ClockView.$(O) Cairo__ClockView.$(H): Cairo__ClockView.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(STCHDR)
 $(OUTDIR)Cairo__Content.$(O) Cairo__Content.$(H): Cairo__Content.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
+$(OUTDIR)Cairo__Device.$(O) Cairo__Device.$(H): Cairo__Device.st $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)Cairo__DeviceType.$(O) Cairo__DeviceType.$(H): Cairo__DeviceType.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
 $(OUTDIR)Cairo__Extend.$(O) Cairo__Extend.$(H): Cairo__Extend.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
 $(OUTDIR)Cairo__FillRule.$(O) Cairo__FillRule.$(H): Cairo__FillRule.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
 $(OUTDIR)Cairo__Filter.$(O) Cairo__Filter.$(H): Cairo__Filter.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
@@ -168,13 +171,19 @@
 $(OUTDIR)Cairo__PathData.$(O) Cairo__PathData.$(H): Cairo__PathData.st $(INCLUDE_TOP)/stx/libbasic/ArrayedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalBytes.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalStructure.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/UninterpretedBytes.$(H) $(STCHDR)
 $(OUTDIR)Cairo__PathDataType.$(O) Cairo__PathDataType.$(H): Cairo__PathDataType.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
 $(OUTDIR)Cairo__PatternType.$(O) Cairo__PatternType.$(H): Cairo__PatternType.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
+$(OUTDIR)Cairo__PdfVersion.$(O) Cairo__PdfVersion.$(H): Cairo__PdfVersion.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
 $(OUTDIR)Cairo__Rectangle.$(O) Cairo__Rectangle.$(H): Cairo__Rectangle.st $(INCLUDE_TOP)/stx/libbasic/ArrayedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalBytes.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalStructure.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/UninterpretedBytes.$(H) $(STCHDR)
+$(OUTDIR)Cairo__RectangleInt.$(O) Cairo__RectangleInt.$(H): Cairo__RectangleInt.st $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)Cairo__RectangleList.$(O) Cairo__RectangleList.$(H): Cairo__RectangleList.st $(INCLUDE_TOP)/stx/libbasic/ArrayedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalBytes.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalStructure.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/UninterpretedBytes.$(H) $(STCHDR)
 $(OUTDIR)Cairo__RefCountedStructure.$(O) Cairo__RefCountedStructure.$(H): Cairo__RefCountedStructure.st $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)Cairo__Region.$(O) Cairo__Region.$(H): Cairo__Region.st $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)Cairo__RegionOverlap.$(O) Cairo__RegionOverlap.$(H): Cairo__RegionOverlap.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
 $(OUTDIR)Cairo__Status.$(O) Cairo__Status.$(H): Cairo__Status.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
 $(OUTDIR)Cairo__SubpixelOrder.$(O) Cairo__SubpixelOrder.$(H): Cairo__SubpixelOrder.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
+$(OUTDIR)Cairo__SurfaceObserverMode.$(O) Cairo__SurfaceObserverMode.$(H): Cairo__SurfaceObserverMode.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
 $(OUTDIR)Cairo__SurfaceType.$(O) Cairo__SurfaceType.$(H): Cairo__SurfaceType.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
-$(OUTDIR)Cairo__SvgVersion.$(O) Cairo__SvgVersion.$(H): Cairo__SvgVersion.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
+$(OUTDIR)Cairo__TextCluster.$(O) Cairo__TextCluster.$(H): Cairo__TextCluster.st $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)Cairo__TextClusterFlags.$(O) Cairo__TextClusterFlags.$(H): Cairo__TextClusterFlags.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(STCHDR)
 $(OUTDIR)Cairo__TextExampleView.$(O) Cairo__TextExampleView.$(H): Cairo__TextExampleView.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(STCHDR)
 $(OUTDIR)Cairo__TextExtents.$(O) Cairo__TextExtents.$(H): Cairo__TextExtents.st $(INCLUDE_TOP)/stx/libbasic/ArrayedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalBytes.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalStructure.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/UninterpretedBytes.$(H) $(STCHDR)
 $(OUTDIR)Cairo__UserDataKey.$(O) Cairo__UserDataKey.$(H): Cairo__UserDataKey.st $(INCLUDE_TOP)/stx/libbasic/ArrayedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalBytes.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalStructure.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/UninterpretedBytes.$(H) $(STCHDR)
@@ -183,7 +192,7 @@
 $(OUTDIR)Cairo__GraphicsContext.$(O) Cairo__GraphicsContext.$(H): Cairo__GraphicsContext.st $(INCLUDE_TOP)/stx/goodies/libcairo/Cairo__RefCountedStructure.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)Cairo__Pattern.$(O) Cairo__Pattern.$(H): Cairo__Pattern.st $(INCLUDE_TOP)/stx/goodies/libcairo/Cairo__RefCountedStructure.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)Cairo__ScaledFont.$(O) Cairo__ScaledFont.$(H): Cairo__ScaledFont.st $(INCLUDE_TOP)/stx/goodies/libcairo/Cairo__RefCountedStructure.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)Cairo__Surface.$(O) Cairo__Surface.$(H): Cairo__Surface.st $(INCLUDE_TOP)/stx/goodies/libcairo/Cairo__RefCountedStructure.$(H) $(INCLUDE_TOP)/stx/goodies/libcairo/Cairo__SurfaceType.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)Cairo__Surface.$(O) Cairo__Surface.$(H): Cairo__Surface.st $(INCLUDE_TOP)/stx/goodies/libcairo/Cairo__Format.$(H) $(INCLUDE_TOP)/stx/goodies/libcairo/Cairo__RefCountedStructure.$(H) $(INCLUDE_TOP)/stx/goodies/libcairo/Cairo__SurfaceType.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview/DeviceGraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/DeviceWorkstation.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsDevice.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/HostGraphicsDevice.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/XGraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/XWorkstation.$(H) $(STCHDR)
 
 # ENDMAKEDEPEND --- do not remove this line
--- a/Make.spec	Sat Dec 27 00:45:13 2014 +0100
+++ b/Make.spec	Sun Dec 28 22:38:24 2014 +0100
@@ -52,8 +52,11 @@
 
 COMMON_CLASSES= \
 	Cairo::Antialias \
+	Cairo::CPrimitives \
 	Cairo::ClockView \
 	Cairo::Content \
+	Cairo::Device \
+	Cairo::DeviceType \
 	Cairo::Extend \
 	Cairo::FillRule \
 	Cairo::Filter \
@@ -75,13 +78,19 @@
 	Cairo::PathData \
 	Cairo::PathDataType \
 	Cairo::PatternType \
+	Cairo::PdfVersion \
 	Cairo::Rectangle \
+	Cairo::RectangleInt \
 	Cairo::RectangleList \
 	Cairo::RefCountedStructure \
+	Cairo::Region \
+	Cairo::RegionOverlap \
 	Cairo::Status \
 	Cairo::SubpixelOrder \
+	Cairo::SurfaceObserverMode \
 	Cairo::SurfaceType \
-	Cairo::SvgVersion \
+	Cairo::TextCluster \
+	Cairo::TextClusterFlags \
 	Cairo::TextExampleView \
 	Cairo::TextExtents \
 	Cairo::UserDataKey \
@@ -97,8 +106,11 @@
 
 COMMON_OBJS= \
     $(OUTDIR_SLASH)Cairo__Antialias.$(O) \
+    $(OUTDIR_SLASH)Cairo__CPrimitives.$(O) \
     $(OUTDIR_SLASH)Cairo__ClockView.$(O) \
     $(OUTDIR_SLASH)Cairo__Content.$(O) \
+    $(OUTDIR_SLASH)Cairo__Device.$(O) \
+    $(OUTDIR_SLASH)Cairo__DeviceType.$(O) \
     $(OUTDIR_SLASH)Cairo__Extend.$(O) \
     $(OUTDIR_SLASH)Cairo__FillRule.$(O) \
     $(OUTDIR_SLASH)Cairo__Filter.$(O) \
@@ -120,13 +132,19 @@
     $(OUTDIR_SLASH)Cairo__PathData.$(O) \
     $(OUTDIR_SLASH)Cairo__PathDataType.$(O) \
     $(OUTDIR_SLASH)Cairo__PatternType.$(O) \
+    $(OUTDIR_SLASH)Cairo__PdfVersion.$(O) \
     $(OUTDIR_SLASH)Cairo__Rectangle.$(O) \
+    $(OUTDIR_SLASH)Cairo__RectangleInt.$(O) \
     $(OUTDIR_SLASH)Cairo__RectangleList.$(O) \
     $(OUTDIR_SLASH)Cairo__RefCountedStructure.$(O) \
+    $(OUTDIR_SLASH)Cairo__Region.$(O) \
+    $(OUTDIR_SLASH)Cairo__RegionOverlap.$(O) \
     $(OUTDIR_SLASH)Cairo__Status.$(O) \
     $(OUTDIR_SLASH)Cairo__SubpixelOrder.$(O) \
+    $(OUTDIR_SLASH)Cairo__SurfaceObserverMode.$(O) \
     $(OUTDIR_SLASH)Cairo__SurfaceType.$(O) \
-    $(OUTDIR_SLASH)Cairo__SvgVersion.$(O) \
+    $(OUTDIR_SLASH)Cairo__TextCluster.$(O) \
+    $(OUTDIR_SLASH)Cairo__TextClusterFlags.$(O) \
     $(OUTDIR_SLASH)Cairo__TextExampleView.$(O) \
     $(OUTDIR_SLASH)Cairo__TextExtents.$(O) \
     $(OUTDIR_SLASH)Cairo__UserDataKey.$(O) \
--- a/abbrev.stc	Sat Dec 27 00:45:13 2014 +0100
+++ b/abbrev.stc	Sun Dec 28 22:38:24 2014 +0100
@@ -2,8 +2,11 @@
 # this file is needed for stc to be able to compile modules independently.
 # it provides information about a classes filename, category and especially namespace.
 Cairo::Antialias Cairo__Antialias stx:goodies/libcairo 'Cairo-Constants' 0
+Cairo::CPrimitives Cairo__CPrimitives stx:goodies/libcairo 'Cairo-Primitives' 0
 Cairo::ClockView Cairo__ClockView stx:goodies/libcairo 'Cairo-Examples' 2
 Cairo::Content Cairo__Content stx:goodies/libcairo 'Cairo-Constants' 0
+Cairo::Device Cairo__Device stx:goodies/libcairo 'Cairo-Constants' 0
+Cairo::DeviceType Cairo__DeviceType stx:goodies/libcairo 'Cairo-Constants' 0
 Cairo::Extend Cairo__Extend stx:goodies/libcairo 'Cairo-Constants' 0
 Cairo::FillRule Cairo__FillRule stx:goodies/libcairo 'Cairo-Constants' 0
 Cairo::Filter Cairo__Filter stx:goodies/libcairo 'Cairo-Constants' 0
@@ -25,13 +28,19 @@
 Cairo::PathData Cairo__PathData stx:goodies/libcairo 'Cairo-Objects' 1
 Cairo::PathDataType Cairo__PathDataType stx:goodies/libcairo 'Cairo-Constants' 0
 Cairo::PatternType Cairo__PatternType stx:goodies/libcairo 'Cairo-Constants' 0
+Cairo::PdfVersion Cairo__PdfVersion stx:goodies/libcairo 'Cairo-Constants' 0
 Cairo::Rectangle Cairo__Rectangle stx:goodies/libcairo 'Cairo-Objects' 1
+Cairo::RectangleInt Cairo__RectangleInt stx:goodies/libcairo 'Cairo-Constants' 0
 Cairo::RectangleList Cairo__RectangleList stx:goodies/libcairo 'Cairo-Objects' 1
 Cairo::RefCountedStructure Cairo__RefCountedStructure stx:goodies/libcairo 'Cairo-Objects' 0
+Cairo::Region Cairo__Region stx:goodies/libcairo 'Cairo-Constants' 0
+Cairo::RegionOverlap Cairo__RegionOverlap stx:goodies/libcairo 'Cairo-Constants' 0
 Cairo::Status Cairo__Status stx:goodies/libcairo 'Cairo-Constants' 0
 Cairo::SubpixelOrder Cairo__SubpixelOrder stx:goodies/libcairo 'Cairo-Constants' 0
+Cairo::SurfaceObserverMode Cairo__SurfaceObserverMode stx:goodies/libcairo 'Cairo-Constants' 0
 Cairo::SurfaceType Cairo__SurfaceType stx:goodies/libcairo 'Cairo-Constants' 0
-Cairo::SvgVersion Cairo__SvgVersion stx:goodies/libcairo 'Cairo-Constants' 0
+Cairo::TextCluster Cairo__TextCluster stx:goodies/libcairo 'Cairo-Constants' 0
+Cairo::TextClusterFlags Cairo__TextClusterFlags stx:goodies/libcairo 'Cairo-Constants' 0
 Cairo::TextExampleView Cairo__TextExampleView stx:goodies/libcairo 'Cairo-Examples' 2
 Cairo::TextExtents Cairo__TextExtents stx:goodies/libcairo 'Cairo-Objects' 1
 Cairo::UserDataKey Cairo__UserDataKey stx:goodies/libcairo 'Cairo-Objects' 1
--- a/bc.mak	Sat Dec 27 00:45:13 2014 +0100
+++ b/bc.mak	Sun Dec 28 22:38:24 2014 +0100
@@ -70,8 +70,11 @@
 
 # BEGINMAKEDEPEND --- do not remove this line; make depend needs it
 $(OUTDIR)Cairo__Antialias.$(O) Cairo__Antialias.$(H): Cairo__Antialias.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
+$(OUTDIR)Cairo__CPrimitives.$(O) Cairo__CPrimitives.$(H): Cairo__CPrimitives.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)Cairo__ClockView.$(O) Cairo__ClockView.$(H): Cairo__ClockView.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(STCHDR)
 $(OUTDIR)Cairo__Content.$(O) Cairo__Content.$(H): Cairo__Content.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
+$(OUTDIR)Cairo__Device.$(O) Cairo__Device.$(H): Cairo__Device.st $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)Cairo__DeviceType.$(O) Cairo__DeviceType.$(H): Cairo__DeviceType.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
 $(OUTDIR)Cairo__Extend.$(O) Cairo__Extend.$(H): Cairo__Extend.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
 $(OUTDIR)Cairo__FillRule.$(O) Cairo__FillRule.$(H): Cairo__FillRule.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
 $(OUTDIR)Cairo__Filter.$(O) Cairo__Filter.$(H): Cairo__Filter.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
@@ -93,13 +96,19 @@
 $(OUTDIR)Cairo__PathData.$(O) Cairo__PathData.$(H): Cairo__PathData.st $(INCLUDE_TOP)\stx\libbasic\ArrayedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalBytes.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalStructure.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\UninterpretedBytes.$(H) $(STCHDR)
 $(OUTDIR)Cairo__PathDataType.$(O) Cairo__PathDataType.$(H): Cairo__PathDataType.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
 $(OUTDIR)Cairo__PatternType.$(O) Cairo__PatternType.$(H): Cairo__PatternType.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
+$(OUTDIR)Cairo__PdfVersion.$(O) Cairo__PdfVersion.$(H): Cairo__PdfVersion.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
 $(OUTDIR)Cairo__Rectangle.$(O) Cairo__Rectangle.$(H): Cairo__Rectangle.st $(INCLUDE_TOP)\stx\libbasic\ArrayedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalBytes.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalStructure.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\UninterpretedBytes.$(H) $(STCHDR)
+$(OUTDIR)Cairo__RectangleInt.$(O) Cairo__RectangleInt.$(H): Cairo__RectangleInt.st $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)Cairo__RectangleList.$(O) Cairo__RectangleList.$(H): Cairo__RectangleList.st $(INCLUDE_TOP)\stx\libbasic\ArrayedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalBytes.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalStructure.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\UninterpretedBytes.$(H) $(STCHDR)
 $(OUTDIR)Cairo__RefCountedStructure.$(O) Cairo__RefCountedStructure.$(H): Cairo__RefCountedStructure.st $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)Cairo__Region.$(O) Cairo__Region.$(H): Cairo__Region.st $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)Cairo__RegionOverlap.$(O) Cairo__RegionOverlap.$(H): Cairo__RegionOverlap.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
 $(OUTDIR)Cairo__Status.$(O) Cairo__Status.$(H): Cairo__Status.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
 $(OUTDIR)Cairo__SubpixelOrder.$(O) Cairo__SubpixelOrder.$(H): Cairo__SubpixelOrder.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
+$(OUTDIR)Cairo__SurfaceObserverMode.$(O) Cairo__SurfaceObserverMode.$(H): Cairo__SurfaceObserverMode.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
 $(OUTDIR)Cairo__SurfaceType.$(O) Cairo__SurfaceType.$(H): Cairo__SurfaceType.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
-$(OUTDIR)Cairo__SvgVersion.$(O) Cairo__SvgVersion.$(H): Cairo__SvgVersion.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
+$(OUTDIR)Cairo__TextCluster.$(O) Cairo__TextCluster.$(H): Cairo__TextCluster.st $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)Cairo__TextClusterFlags.$(O) Cairo__TextClusterFlags.$(H): Cairo__TextClusterFlags.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(STCHDR)
 $(OUTDIR)Cairo__TextExampleView.$(O) Cairo__TextExampleView.$(H): Cairo__TextExampleView.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(STCHDR)
 $(OUTDIR)Cairo__TextExtents.$(O) Cairo__TextExtents.$(H): Cairo__TextExtents.st $(INCLUDE_TOP)\stx\libbasic\ArrayedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalBytes.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalStructure.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\UninterpretedBytes.$(H) $(STCHDR)
 $(OUTDIR)Cairo__UserDataKey.$(O) Cairo__UserDataKey.$(H): Cairo__UserDataKey.st $(INCLUDE_TOP)\stx\libbasic\ArrayedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalBytes.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalStructure.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\UninterpretedBytes.$(H) $(STCHDR)
@@ -108,7 +117,7 @@
 $(OUTDIR)Cairo__GraphicsContext.$(O) Cairo__GraphicsContext.$(H): Cairo__GraphicsContext.st $(INCLUDE_TOP)\stx\goodies\libcairo\Cairo__RefCountedStructure.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)Cairo__Pattern.$(O) Cairo__Pattern.$(H): Cairo__Pattern.st $(INCLUDE_TOP)\stx\goodies\libcairo\Cairo__RefCountedStructure.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)Cairo__ScaledFont.$(O) Cairo__ScaledFont.$(H): Cairo__ScaledFont.st $(INCLUDE_TOP)\stx\goodies\libcairo\Cairo__RefCountedStructure.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)Cairo__Surface.$(O) Cairo__Surface.$(H): Cairo__Surface.st $(INCLUDE_TOP)\stx\goodies\libcairo\Cairo__RefCountedStructure.$(H) $(INCLUDE_TOP)\stx\goodies\libcairo\Cairo__SurfaceType.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)Cairo__Surface.$(O) Cairo__Surface.$(H): Cairo__Surface.st $(INCLUDE_TOP)\stx\goodies\libcairo\Cairo__Format.$(H) $(INCLUDE_TOP)\stx\goodies\libcairo\Cairo__RefCountedStructure.$(H) $(INCLUDE_TOP)\stx\goodies\libcairo\Cairo__SurfaceType.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview\DeviceGraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\DeviceWorkstation.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsDevice.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\HostGraphicsDevice.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\XGraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\XWorkstation.$(H) $(STCHDR)
 
 # ENDMAKEDEPEND --- do not remove this line
--- a/libInit.cc	Sat Dec 27 00:45:13 2014 +0100
+++ b/libInit.cc	Sun Dec 28 22:38:24 2014 +0100
@@ -28,8 +28,11 @@
 OBJ snd; struct __vmData__ *__pRT__; {
 __BEGIN_PACKAGE2__("libstx_goodies_libcairo", _libstx_goodies_libcairo_Init, "stx:goodies/libcairo");
 _Cairo__Antialias_Init(pass,__pRT__,snd);
+_Cairo__CPrimitives_Init(pass,__pRT__,snd);
 _Cairo__ClockView_Init(pass,__pRT__,snd);
 _Cairo__Content_Init(pass,__pRT__,snd);
+_Cairo__Device_Init(pass,__pRT__,snd);
+_Cairo__DeviceType_Init(pass,__pRT__,snd);
 _Cairo__Extend_Init(pass,__pRT__,snd);
 _Cairo__FillRule_Init(pass,__pRT__,snd);
 _Cairo__Filter_Init(pass,__pRT__,snd);
@@ -51,13 +54,19 @@
 _Cairo__PathData_Init(pass,__pRT__,snd);
 _Cairo__PathDataType_Init(pass,__pRT__,snd);
 _Cairo__PatternType_Init(pass,__pRT__,snd);
+_Cairo__PdfVersion_Init(pass,__pRT__,snd);
 _Cairo__Rectangle_Init(pass,__pRT__,snd);
+_Cairo__RectangleInt_Init(pass,__pRT__,snd);
 _Cairo__RectangleList_Init(pass,__pRT__,snd);
 _Cairo__RefCountedStructure_Init(pass,__pRT__,snd);
+_Cairo__Region_Init(pass,__pRT__,snd);
+_Cairo__RegionOverlap_Init(pass,__pRT__,snd);
 _Cairo__Status_Init(pass,__pRT__,snd);
 _Cairo__SubpixelOrder_Init(pass,__pRT__,snd);
+_Cairo__SurfaceObserverMode_Init(pass,__pRT__,snd);
 _Cairo__SurfaceType_Init(pass,__pRT__,snd);
-_Cairo__SvgVersion_Init(pass,__pRT__,snd);
+_Cairo__TextCluster_Init(pass,__pRT__,snd);
+_Cairo__TextClusterFlags_Init(pass,__pRT__,snd);
 _Cairo__TextExampleView_Init(pass,__pRT__,snd);
 _Cairo__TextExtents_Init(pass,__pRT__,snd);
 _Cairo__UserDataKey_Init(pass,__pRT__,snd);
--- a/libcairo.rc	Sat Dec 27 00:45:13 2014 +0100
+++ b/libcairo.rc	Sun Dec 28 22:38:24 2014 +0100
@@ -25,7 +25,7 @@
       VALUE "LegalCopyright", "Copyright Jan Vrany 2008\0"
       VALUE "ProductName", "Cairo\0"
       VALUE "ProductVersion", "6.2.5.0\0"
-      VALUE "ProductDate", "Fri, 26 Dec 2014 23:39:21 GMT\0"
+      VALUE "ProductDate", "Sun, 28 Dec 2014 21:31:20 GMT\0"
     END
 
   END
--- a/stx_goodies_libcairo.st	Sat Dec 27 00:45:13 2014 +0100
+++ b/stx_goodies_libcairo.st	Sun Dec 28 22:38:24 2014 +0100
@@ -102,8 +102,11 @@
     ^ #(
         "<className> or (<className> attributes...) in load order"
         #'Cairo::Antialias'
+        #'Cairo::CPrimitives'
         #'Cairo::ClockView'
         #'Cairo::Content'
+        #'Cairo::Device'
+        #'Cairo::DeviceType'
         #'Cairo::Extend'
         #'Cairo::FillRule'
         #'Cairo::Filter'
@@ -125,13 +128,19 @@
         #'Cairo::PathData'
         #'Cairo::PathDataType'
         #'Cairo::PatternType'
+        #'Cairo::PdfVersion'
         #'Cairo::Rectangle'
+        #'Cairo::RectangleInt'
         #'Cairo::RectangleList'
         #'Cairo::RefCountedStructure'
+        #'Cairo::Region'
+        #'Cairo::RegionOverlap'
         #'Cairo::Status'
         #'Cairo::SubpixelOrder'
+        #'Cairo::SurfaceObserverMode'
         #'Cairo::SurfaceType'
-        #'Cairo::SvgVersion'
+        #'Cairo::TextCluster'
+        #'Cairo::TextClusterFlags'
         #'Cairo::TextExampleView'
         #'Cairo::TextExtents'
         #'Cairo::UserDataKey'