Initial commit.
authorJan Vrany <jan.vrany@fit.cvut.cz>
Thu, 10 Jul 2008 09:30:44 +0000
changeset 1 2439fb18f3dc
parent 0 07ce2b301015
child 2 c2f163833877
Initial commit.
Cairo__Antialias.st
Cairo__Content.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__Rectangle.st
Cairo__RectangleList.st
Cairo__ScaledFont.st
Cairo__Status.st
Cairo__SubpixelOrder.st
Cairo__Surface.st
Cairo__SurfaceType.st
Cairo__SvgVersion.st
Cairo__TextExtents.st
Cairo__UserDataKey.st
extensions.st
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__Antialias.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,56 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+SharedPool subclass:#Antialias
+	instanceVariableNames:''
+	classVariableNames:'ANTIALIAS_DEFAULT ANTIALIAS_NONE ANTIALIAS_GRAY
+		ANTIALIAS_SUBPIXEL'
+	poolDictionaries:''
+	category:'Cairo - Constants'
+!
+
+!Antialias class methodsFor:'initialization'!
+
+initialize
+
+	ANTIALIAS_DEFAULT := 0.
+	ANTIALIAS_NONE := 1.
+	ANTIALIAS_GRAY := 2.
+	ANTIALIAS_SUBPIXEL := 3.
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!Antialias class methodsFor:'constants'!
+
+ANTIALIAS_DEFAULT
+
+	^ANTIALIAS_DEFAULT
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+ANTIALIAS_GRAY
+
+	^ANTIALIAS_GRAY
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+ANTIALIAS_NONE
+
+	^ANTIALIAS_NONE
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+ANTIALIAS_SUBPIXEL
+
+	^ANTIALIAS_SUBPIXEL
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+
+Antialias initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__Content.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,47 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+SharedPool subclass:#Content
+	instanceVariableNames:''
+	classVariableNames:'CONTENT_COLOR CONTENT_ALPHA CONTENT_COLOR_ALPHA'
+	poolDictionaries:''
+	category:'Cairo - Constants'
+!
+
+!Content class methodsFor:'initialization'!
+
+initialize
+
+	CONTENT_COLOR := 4096.
+	CONTENT_ALPHA := 8192.
+	CONTENT_COLOR_ALPHA := 12288.
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!Content class methodsFor:'constants'!
+
+CONTENT_ALPHA
+
+	^CONTENT_ALPHA
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+CONTENT_COLOR
+
+	^CONTENT_COLOR
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+CONTENT_COLOR_ALPHA
+
+	^CONTENT_COLOR_ALPHA
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+
+Content initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__Extend.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,55 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+SharedPool subclass:#Extend
+	instanceVariableNames:''
+	classVariableNames:'EXTEND_NONE EXTEND_REPEAT EXTEND_REFLECT 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-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!Extend class methodsFor:'constants'!
+
+EXTEND_NONE
+
+	^EXTEND_NONE
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+EXTEND_PAD
+
+	^EXTEND_PAD
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+EXTEND_REFLECT
+
+	^EXTEND_REFLECT
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+EXTEND_REPEAT
+
+	^EXTEND_REPEAT
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+
+Extend initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__FillRule.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,39 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+SharedPool subclass:#FillRule
+	instanceVariableNames:''
+	classVariableNames:'FILL_RULE_WINDING FILL_RULE_EVEN_ODD'
+	poolDictionaries:''
+	category:'Cairo - Constants'
+!
+
+!FillRule class methodsFor:'initialization'!
+
+initialize
+
+	FILL_RULE_WINDING := 0.
+	FILL_RULE_EVEN_ODD := 1.
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!FillRule class methodsFor:'constants'!
+
+FILL_RULE_EVEN_ODD
+
+	^FILL_RULE_EVEN_ODD
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+FILL_RULE_WINDING
+
+	^FILL_RULE_WINDING
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+
+FillRule initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__Filter.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,72 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+SharedPool subclass:#Filter
+	instanceVariableNames:''
+	classVariableNames:'FILTER_FAST FILTER_GOOD FILTER_BEST FILTER_NEAREST
+		FILTER_BILINEAR 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-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!Filter class methodsFor:'constants'!
+
+FILTER_BEST
+
+	^FILTER_BEST
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+FILTER_BILINEAR
+
+	^FILTER_BILINEAR
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+FILTER_FAST
+
+	^FILTER_FAST
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+FILTER_GAUSSIAN
+
+	^FILTER_GAUSSIAN
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+FILTER_GOOD
+
+	^FILTER_GOOD
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+FILTER_NEAREST
+
+	^FILTER_NEAREST
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+
+Filter initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__FontExtents.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,96 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+ExternalStructure subclass:#FontExtents
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Cairo - C Types'
+!
+
+!FontExtents class methodsFor:'accessing'!
+
+libraryName
+
+	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so'].
+
+	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+
+	self error:'Library name for host OS is not known'
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!FontExtents methodsFor:'accessing - primitives'!
+
+primAscent
+
+	self doubleAt:1 + 0
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primAscent: value
+
+	self doubleAt:1 + 0 put:value
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primDescent
+
+	self doubleAt:1 + 8
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primDescent: value
+
+	self doubleAt:1 + 8 put:value
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primHeight
+
+	self doubleAt:1 + 16
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primHeight: value
+
+	self doubleAt:1 + 16 put:value
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primMaxXAdvance
+
+	self doubleAt:1 + 24
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primMaxXAdvance: value
+
+	self doubleAt:1 + 24 put:value
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primMaxYAdvance
+
+	self doubleAt:1 + 32
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primMaxYAdvance: value
+
+	self doubleAt:1 + 32 put:value
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__FontFace.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,82 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+ExternalStructure subclass:#FontFace
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Cairo - C Types'
+!
+
+!FontFace class methodsFor:'accessing'!
+
+libraryName
+
+	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so'].
+
+	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+
+	self error:'Library name for host OS is not known'
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!FontFace class methodsFor:'primitives'!
+
+primDestroy: font_face 
+
+	<cdecl: void "cairo_font_face_destroy" ( Cairo::FontFace ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetReferenceCount: font_face 
+
+	<cdecl: uint32 "cairo_font_face_get_reference_count" ( Cairo::FontFace ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetType: font_face 
+
+	<cdecl: int32 "cairo_font_face_get_type" ( Cairo::FontFace ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetUserData: font_face key: key 
+
+	<cdecl: pointer "cairo_font_face_get_user_data" ( Cairo::FontFace Cairo::UserDataKey ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primReference: font_face 
+
+	<cdecl: Cairo::FontFace "cairo_font_face_reference" ( Cairo::FontFace ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetUserData: font_face key: key userData: user_data destroy: destroy 
+
+	<cdecl: int32 "cairo_font_face_set_user_data" ( Cairo::FontFace Cairo::UserDataKey pointer pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primStatus: font_face 
+
+	<cdecl: int32 "cairo_font_face_status" ( Cairo::FontFace ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__FontOptions.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,146 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+ExternalStructure subclass:#FontOptions
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Cairo - C Types'
+!
+
+!FontOptions class methodsFor:'accessing'!
+
+libraryName
+
+	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so'].
+
+	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+
+	self error:'Library name for host OS is not known'
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!FontOptions class methodsFor:'primitives'!
+
+primCopy: original 
+
+	<cdecl: Cairo::FontOptions "cairo_font_options_copy" ( Cairo::FontOptions ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primDestroy: options 
+
+	<cdecl: void "cairo_font_options_destroy" ( Cairo::FontOptions ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primEqual: options other: other 
+
+	<cdecl: int32 "cairo_font_options_equal" ( Cairo::FontOptions Cairo::FontOptions ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primFontOptionsCreate
+
+	<cdecl: Cairo::FontOptions "cairo_font_options_create" ( ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetAntialias: options 
+
+	<cdecl: int32 "cairo_font_options_get_antialias" ( Cairo::FontOptions ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetHintMetrics: options 
+
+	<cdecl: int32 "cairo_font_options_get_hint_metrics" ( Cairo::FontOptions ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetHintStyle: options 
+
+	<cdecl: int32 "cairo_font_options_get_hint_style" ( Cairo::FontOptions ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetSubpixelOrder: options 
+
+	<cdecl: int32 "cairo_font_options_get_subpixel_order" ( Cairo::FontOptions ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primHash: options 
+
+	<cdecl: int32 "cairo_font_options_hash" ( Cairo::FontOptions ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primMerge: options other: other 
+
+	<cdecl: void "cairo_font_options_merge" ( Cairo::FontOptions Cairo::FontOptions ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetAntialias: options antialias: antialias 
+
+	<cdecl: void "cairo_font_options_set_antialias" ( Cairo::FontOptions int32 ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetHintMetrics: options hintMetrics: hint_metrics 
+
+	<cdecl: void "cairo_font_options_set_hint_metrics" ( Cairo::FontOptions int32 ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetHintStyle: options hintStyle: hint_style 
+
+	<cdecl: void "cairo_font_options_set_hint_style" ( Cairo::FontOptions int32 ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetSubpixelOrder: options subpixelOrder: subpixel_order 
+
+	<cdecl: void "cairo_font_options_set_subpixel_order" ( Cairo::FontOptions int32 ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primStatus: options 
+
+	<cdecl: int32 "cairo_font_options_status" ( Cairo::FontOptions ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__FontSlant.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,47 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+SharedPool subclass:#FontSlant
+	instanceVariableNames:''
+	classVariableNames:'FONT_SLANT_NORMAL FONT_SLANT_ITALIC 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-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!FontSlant class methodsFor:'constants'!
+
+FONT_SLANT_ITALIC
+
+	^FONT_SLANT_ITALIC
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+FONT_SLANT_NORMAL
+
+	^FONT_SLANT_NORMAL
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+FONT_SLANT_OBLIQUE
+
+	^FONT_SLANT_OBLIQUE
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+
+FontSlant initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__FontType.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,55 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+SharedPool subclass:#FontType
+	instanceVariableNames:''
+	classVariableNames:'FONT_TYPE_TOY FONT_TYPE_FT FONT_TYPE_WIN32 FONT_TYPE_QUARTZ'
+	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-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!FontType class methodsFor:'constants'!
+
+FONT_TYPE_FT
+
+	^FONT_TYPE_FT
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+FONT_TYPE_QUARTZ
+
+	^FONT_TYPE_QUARTZ
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+FONT_TYPE_TOY
+
+	^FONT_TYPE_TOY
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+FONT_TYPE_WIN32
+
+	^FONT_TYPE_WIN32
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+
+FontType initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__FontWeight.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,39 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+SharedPool subclass:#FontWeight
+	instanceVariableNames:''
+	classVariableNames:'FONT_WEIGHT_NORMAL FONT_WEIGHT_BOLD'
+	poolDictionaries:''
+	category:'Cairo - Constants'
+!
+
+!FontWeight class methodsFor:'initialization'!
+
+initialize
+
+	FONT_WEIGHT_NORMAL := 0.
+	FONT_WEIGHT_BOLD := 1.
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!FontWeight class methodsFor:'constants'!
+
+FONT_WEIGHT_BOLD
+
+	^FONT_WEIGHT_BOLD
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+FONT_WEIGHT_NORMAL
+
+	^FONT_WEIGHT_NORMAL
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+
+FontWeight initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__Format.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,55 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+SharedPool subclass:#Format
+	instanceVariableNames:''
+	classVariableNames:'FORMAT_ARGB32 FORMAT_RGB24 FORMAT_A8 FORMAT_A1'
+	poolDictionaries:''
+	category:'Cairo - Constants'
+!
+
+!Format class methodsFor:'initialization'!
+
+initialize
+
+	FORMAT_ARGB32 := 0.
+	FORMAT_RGB24 := 1.
+	FORMAT_A8 := 2.
+	FORMAT_A1 := 3.
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!Format class methodsFor:'constants'!
+
+FORMAT_A1
+
+	^FORMAT_A1
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+FORMAT_A8
+
+	^FORMAT_A8
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+FORMAT_ARGB32
+
+	^FORMAT_ARGB32
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+FORMAT_RGB24
+
+	^FORMAT_RGB24
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+
+Format initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__Glyph.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,61 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+ExternalStructure subclass:#Glyph
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Cairo - C Types'
+!
+
+!Glyph class methodsFor:'accessing'!
+
+libraryName
+
+	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so'].
+
+	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+
+	self error:'Library name for host OS is not known'
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!Glyph methodsFor:'accessing - primitives'!
+
+primIndex
+
+	self longAt:1 + 0
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primX
+
+	self doubleAt:1 + 4
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primX: value
+
+	self doubleAt:1 + 4 put:value
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primY
+
+	self doubleAt:1 + 12
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primY: value
+
+	self doubleAt:1 + 12 put:value
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__GraphicsContext.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,958 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+ExternalStructure subclass:#GraphicsContext
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Cairo - C Types'
+!
+
+!GraphicsContext class methodsFor:'instance creation'!
+
+on: surface
+
+    self 
+        assert: (surface isKindOf: Surface)
+        message: 'surface is not valid Cairo surface'.
+
+    ^(self primCreate: surface)
+        registerForFinalization;
+        yourself
+
+    "Created: / 10-07-2008 / 09:37:57 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!GraphicsContext class methodsFor:'accessing'!
+
+libraryName
+
+	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so'].
+
+	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+
+	self error:'Library name for host OS is not known'
+
+    "Modified: / 10-07-2008 / 11:04:08 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!GraphicsContext class methodsFor:'primitives'!
+
+primAppendPath: cr path: path 
+
+	<cdecl: void "cairo_append_path" ( Cairo::GraphicsContext Cairo::Path ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primArc: cr xc: xc yc: yc radius: radius angle1: angle1 angle2: angle2 
+
+	<cdecl: void "cairo_arc" ( Cairo::GraphicsContext double double double double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primArcNegative: cr xc: xc yc: yc radius: radius angle1: angle1 angle2: angle2 
+
+	<cdecl: void "cairo_arc_negative" ( Cairo::GraphicsContext double double double double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primClip: cr 
+
+	<cdecl: void "cairo_clip" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primClipExtents: cr x1: x1 y1: y1 x2: x2 y2: y2 
+
+	<cdecl: void "cairo_clip_extents" ( Cairo::GraphicsContext pointer pointer pointer pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primClipPreserve: cr 
+
+	<cdecl: void "cairo_clip_preserve" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primClosePath: cr 
+
+	<cdecl: void "cairo_close_path" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primCopyClipRectangleList: cr 
+
+	<cdecl: Cairo::RectangleList "cairo_copy_clip_rectangle_list" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primCopyPage: cr 
+
+	<cdecl: void "cairo_copy_page" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primCopyPath: cr 
+
+	<cdecl: Cairo::Path "cairo_copy_path" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primCopyPathFlat: cr 
+
+	<cdecl: Cairo::Path "cairo_copy_path_flat" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primCreate: target 
+
+	<cdecl: Cairo::GraphicsContext "cairo_create" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primCurveTo: cr x1: x1 y1: y1 x2: x2 y2: y2 x3: x3 y3: y3 
+
+	<cdecl: void "cairo_curve_to" ( Cairo::GraphicsContext double double double double double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primDestroy: cr 
+
+	<cdecl: void "cairo_destroy" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primDeviceToUser: cr x: x y: y 
+
+	<cdecl: void "cairo_device_to_user" ( Cairo::GraphicsContext pointer pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primDeviceToUserDistance: cr dx: dx dy: dy 
+
+	<cdecl: void "cairo_device_to_user_distance" ( Cairo::GraphicsContext pointer pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primFill: cr 
+
+	<cdecl: void "cairo_fill" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primFillExtents: cr x1: x1 y1: y1 x2: x2 y2: y2 
+
+	<cdecl: void "cairo_fill_extents" ( Cairo::GraphicsContext pointer pointer pointer pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primFillPreserve: cr 
+
+	<cdecl: void "cairo_fill_preserve" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primFontExtents: cr extents: extents 
+
+	<cdecl: void "cairo_font_extents" ( Cairo::GraphicsContext Cairo::FontExtents ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetAntialias: cr 
+
+	<cdecl: int32 "cairo_get_antialias" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetCurrentPoint: cr x: x y: y 
+
+	<cdecl: void "cairo_get_current_point" ( Cairo::GraphicsContext pointer pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetDash: cr dashes: dashes offset: offset 
+
+	<cdecl: void "cairo_get_dash" ( Cairo::GraphicsContext pointer pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetDashCount: cr 
+
+	<cdecl: int32 "cairo_get_dash_count" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetFillRule: cr 
+
+	<cdecl: int32 "cairo_get_fill_rule" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetFontFace: cr 
+
+	<cdecl: Cairo::FontFace "cairo_get_font_face" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetFontMatrix: cr matrix: matrix 
+
+	<cdecl: void "cairo_get_font_matrix" ( Cairo::GraphicsContext Cairo::Matrix ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetFontOptions: cr options: options 
+
+	<cdecl: void "cairo_get_font_options" ( Cairo::GraphicsContext Cairo::FontOptions ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetGroupTarget: cr 
+
+	<cdecl: Cairo::Surface "cairo_get_group_target" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetLineCap: cr 
+
+	<cdecl: int32 "cairo_get_line_cap" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetLineJoin: cr 
+
+	<cdecl: int32 "cairo_get_line_join" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetLineWidth: cr 
+
+	<cdecl: double "cairo_get_line_width" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetMatrix: cr matrix: matrix 
+
+	<cdecl: void "cairo_get_matrix" ( Cairo::GraphicsContext Cairo::Matrix ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetMiterLimit: cr 
+
+	<cdecl: double "cairo_get_miter_limit" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetOperator: cr 
+
+	<cdecl: int32 "cairo_get_operator" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetReferenceCount: cr 
+
+	<cdecl: uint32 "cairo_get_reference_count" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetScaledFont: cr 
+
+	<cdecl: Cairo::ScaledFont "cairo_get_scaled_font" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetSource: cr 
+
+	<cdecl: Cairo::Pattern "cairo_get_source" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetTarget: cr 
+
+	<cdecl: Cairo::Surface "cairo_get_target" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetTolerance: cr 
+
+	<cdecl: double "cairo_get_tolerance" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetUserData: cr key: key 
+
+	<cdecl: pointer "cairo_get_user_data" ( Cairo::GraphicsContext Cairo::UserDataKey ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGlyphExtents: cr glyphs: glyphs numGlyphs: num_glyphs extents: extents 
+
+	<cdecl: void "cairo_glyph_extents" ( Cairo::GraphicsContext Cairo::Glyph int32 Cairo::TextExtents ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGlyphPath: cr glyphs: glyphs numGlyphs: num_glyphs 
+
+	<cdecl: void "cairo_glyph_path" ( Cairo::GraphicsContext Cairo::Glyph int32 ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primHasCurrentPoint: cr 
+
+	<cdecl: int32 "cairo_has_current_point" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primIdentityMatrix: cr 
+
+	<cdecl: void "cairo_identity_matrix" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primInFill: cr x: x y: y 
+
+	<cdecl: int32 "cairo_in_fill" ( Cairo::GraphicsContext double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primInStroke: cr x: x y: y 
+
+	<cdecl: int32 "cairo_in_stroke" ( Cairo::GraphicsContext double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primLineTo: cr x: x y: y 
+
+	<cdecl: void "cairo_line_to" ( Cairo::GraphicsContext double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primMask: cr pattern: pattern 
+
+	<cdecl: void "cairo_mask" ( Cairo::GraphicsContext Cairo::Pattern ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primMaskSurface: cr surface: surface surfaceX: surface_x surfaceY: surface_y 
+
+	<cdecl: void "cairo_mask_surface" ( Cairo::GraphicsContext Cairo::Surface double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primMoveTo: cr x: x y: y 
+
+	<cdecl: void "cairo_move_to" ( Cairo::GraphicsContext double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primNewPath: cr 
+
+	<cdecl: void "cairo_new_path" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primNewSubPath: cr 
+
+	<cdecl: void "cairo_new_sub_path" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primPaint: cr 
+
+	<cdecl: void "cairo_paint" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primPaintWithAlpha: cr alpha: alpha 
+
+	<cdecl: void "cairo_paint_with_alpha" ( Cairo::GraphicsContext double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primPathExtents: cr x1: x1 y1: y1 x2: x2 y2: y2 
+
+	<cdecl: void "cairo_path_extents" ( Cairo::GraphicsContext pointer pointer pointer pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primPopGroup: cr 
+
+	<cdecl: Cairo::Pattern "cairo_pop_group" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primPopGroupToSource: cr 
+
+	<cdecl: void "cairo_pop_group_to_source" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primPushGroup: cr 
+
+	<cdecl: void "cairo_push_group" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primPushGroupWithContent: cr content: content 
+
+	<cdecl: void "cairo_push_group_with_content" ( Cairo::GraphicsContext int32 ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primRectangle: cr x: x y: y width: width height: height 
+
+	<cdecl: void "cairo_rectangle" ( Cairo::GraphicsContext double double double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primReference: cr 
+
+	<cdecl: Cairo::GraphicsContext "cairo_reference" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primRelCurveTo: cr dx1: dx1 dy1: dy1 dx2: dx2 dy2: dy2 dx3: dx3 dy3: dy3 
+
+	<cdecl: void "cairo_rel_curve_to" ( Cairo::GraphicsContext double double double double double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primRelLineTo: cr dx: dx dy: dy 
+
+	<cdecl: void "cairo_rel_line_to" ( Cairo::GraphicsContext double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primRelMoveTo: cr dx: dx dy: dy 
+
+	<cdecl: void "cairo_rel_move_to" ( Cairo::GraphicsContext double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primResetClip: cr 
+
+	<cdecl: void "cairo_reset_clip" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primRestore: cr 
+
+	<cdecl: void "cairo_restore" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primRotate: cr angle: angle 
+
+	<cdecl: void "cairo_rotate" ( Cairo::GraphicsContext double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSave: cr 
+
+	<cdecl: void "cairo_save" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primScale: cr sx: sx sy: sy 
+
+	<cdecl: void "cairo_scale" ( Cairo::GraphicsContext double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSelectFontFace: cr family: family slant: slant weight: weight 
+
+	<cdecl: void "cairo_select_font_face" ( Cairo::GraphicsContext charPointer int32 int32 ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetAntialias: cr antialias: antialias 
+
+	<cdecl: void "cairo_set_antialias" ( Cairo::GraphicsContext int32 ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetDash: cr dashes: dashes numDashes: num_dashes offset: offset 
+
+	<cdecl: void "cairo_set_dash" ( Cairo::GraphicsContext pointer int32 double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetFillRule: cr fillRule: fill_rule 
+
+	<cdecl: void "cairo_set_fill_rule" ( Cairo::GraphicsContext int32 ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetFontFace: cr fontFace: font_face 
+
+	<cdecl: void "cairo_set_font_face" ( Cairo::GraphicsContext Cairo::FontFace ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetFontMatrix: cr matrix: matrix 
+
+	<cdecl: void "cairo_set_font_matrix" ( Cairo::GraphicsContext Cairo::Matrix ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetFontOptions: cr options: options 
+
+	<cdecl: void "cairo_set_font_options" ( Cairo::GraphicsContext Cairo::FontOptions ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetFontSize: cr size: size 
+
+	<cdecl: void "cairo_set_font_size" ( Cairo::GraphicsContext double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetLineCap: cr lineCap: line_cap 
+
+	<cdecl: void "cairo_set_line_cap" ( Cairo::GraphicsContext int32 ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetLineJoin: cr lineJoin: line_join 
+
+	<cdecl: void "cairo_set_line_join" ( Cairo::GraphicsContext int32 ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetLineWidth: cr width: width 
+
+	<cdecl: void "cairo_set_line_width" ( Cairo::GraphicsContext double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetMatrix: cr matrix: matrix 
+
+	<cdecl: void "cairo_set_matrix" ( Cairo::GraphicsContext Cairo::Matrix ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetMiterLimit: cr limit: limit 
+
+	<cdecl: void "cairo_set_miter_limit" ( Cairo::GraphicsContext double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetOperator: cr op: op 
+
+	<cdecl: void "cairo_set_operator" ( Cairo::GraphicsContext int32 ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetScaledFont: cr scaledFont: scaled_font 
+
+	<cdecl: void "cairo_set_scaled_font" ( Cairo::GraphicsContext Cairo::ScaledFont ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetSource: cr source: source 
+
+	<cdecl: void "cairo_set_source" ( Cairo::GraphicsContext Cairo::Pattern ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetSourceRgb: cr red: red green: green blue: blue 
+
+	<cdecl: void "cairo_set_source_rgb" ( Cairo::GraphicsContext double double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetSourceRgba: cr red: red green: green blue: blue alpha: alpha 
+
+	<cdecl: void "cairo_set_source_rgba" ( Cairo::GraphicsContext double double double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetSourceSurface: cr surface: surface x: x y: y 
+
+	<cdecl: void "cairo_set_source_surface" ( Cairo::GraphicsContext Cairo::Surface double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetTolerance: cr tolerance: tolerance 
+
+	<cdecl: void "cairo_set_tolerance" ( Cairo::GraphicsContext double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetUserData: cr key: key userData: user_data destroy: destroy 
+
+	<cdecl: int32 "cairo_set_user_data" ( Cairo::GraphicsContext Cairo::UserDataKey pointer pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primShowGlyphs: cr glyphs: glyphs numGlyphs: num_glyphs 
+
+	<cdecl: void "cairo_show_glyphs" ( Cairo::GraphicsContext Cairo::Glyph int32 ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primShowPage: cr 
+
+	<cdecl: void "cairo_show_page" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primShowText: cr utf8: utf8 
+
+	<cdecl: void "cairo_show_text" ( Cairo::GraphicsContext charPointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primStatus: cr 
+
+	<cdecl: int32 "cairo_status" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primStroke: cr 
+
+	<cdecl: void "cairo_stroke" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primStrokeExtents: cr x1: x1 y1: y1 x2: x2 y2: y2 
+
+	<cdecl: void "cairo_stroke_extents" ( Cairo::GraphicsContext pointer pointer pointer pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primStrokePreserve: cr 
+
+	<cdecl: void "cairo_stroke_preserve" ( Cairo::GraphicsContext ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primTextExtents: cr utf8: utf8 extents: extents 
+
+	<cdecl: void "cairo_text_extents" ( Cairo::GraphicsContext charPointer Cairo::TextExtents ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primTextPath: cr utf8: utf8 
+
+	<cdecl: void "cairo_text_path" ( Cairo::GraphicsContext charPointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primTransform: cr matrix: matrix 
+
+	<cdecl: void "cairo_transform" ( Cairo::GraphicsContext Cairo::Matrix ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primTranslate: cr tx: tx ty: ty 
+
+	<cdecl: void "cairo_translate" ( Cairo::GraphicsContext double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primUserToDevice: cr x: x y: y 
+
+	<cdecl: void "cairo_user_to_device" ( Cairo::GraphicsContext pointer pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primUserToDeviceDistance: cr dx: dx dy: dy 
+
+	<cdecl: void "cairo_user_to_device_distance" ( Cairo::GraphicsContext pointer pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!GraphicsContext methodsFor:'accessing'!
+
+paint: aColor
+
+    ^self 
+        paintRed:   (aColor red / 100) asDouble
+        green:      (aColor green / 100) asDouble
+        blue:       (aColor blue / 100) asDouble
+        alpha:      aColor alpha
+
+    "Created: / 10-07-2008 / 11:18:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+referenceCount
+
+    ^self class primGetReferenceCount: self
+
+    "Created: / 10-07-2008 / 10:28:37 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+surface
+
+    ^self class primGetTarget: self
+
+    "Created: / 10-07-2008 / 10:33:59 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!GraphicsContext methodsFor:'cairo - paints'!
+
+paintRed: red green: green blue: blue alpha: alpha
+
+    ^self class 
+        primSetSourceRgba: self red: red green: green blue: blue alpha: alpha
+
+    "Created: / 10-07-2008 / 11:10:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!GraphicsContext methodsFor:'cairo - paths'!
+
+rectangleX: x y: y width: width height: height 
+
+    ^self class 
+        primRectangle: self 
+        x: x asDouble 
+        y: y asDouble 
+        width: width asDouble 
+        height: height asDouble
+
+    "Created: / 10-07-2008 / 09:41:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!GraphicsContext methodsFor:'cairo - stroke & fill'!
+
+fill
+
+    ^self class primFill: self
+
+    "Created: / 10-07-2008 / 09:42:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+stroke
+
+    ^self class primStroke: self
+
+    "Created: / 10-07-2008 / 09:42:43 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!GraphicsContext methodsFor:'initialization & release'!
+
+finalize
+
+    Transcript showCR:'Cairo [INFO]: Finalizing  GC ' ,self address hexPrintString, ' ref count: ', self referenceCount printString.
+    (self class primGetTarget: self) flush.
+    self class primDestroy: self
+
+    "Created: / 10-07-2008 / 09:43:37 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+reference
+
+    ^self class primReference: self
+
+    "Created: / 10-07-2008 / 10:27:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__HintMetrics.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,47 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+SharedPool subclass:#HintMetrics
+	instanceVariableNames:''
+	classVariableNames:'HINT_METRICS_DEFAULT HINT_METRICS_OFF 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-07-2008 / 11:04:08 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!HintMetrics class methodsFor:'constants'!
+
+HINT_METRICS_DEFAULT
+
+	^HINT_METRICS_DEFAULT
+
+    "Modified: / 10-07-2008 / 11:04:08 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+HINT_METRICS_OFF
+
+	^HINT_METRICS_OFF
+
+    "Modified: / 10-07-2008 / 11:04:08 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+HINT_METRICS_ON
+
+	^HINT_METRICS_ON
+
+    "Modified: / 10-07-2008 / 11:04:08 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+
+HintMetrics initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__HintStyle.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,64 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+SharedPool subclass:#HintStyle
+	instanceVariableNames:''
+	classVariableNames:'HINT_STYLE_DEFAULT HINT_STYLE_NONE HINT_STYLE_SLIGHT
+		HINT_STYLE_MEDIUM 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-07-2008 / 11:04:08 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!HintStyle class methodsFor:'constants'!
+
+HINT_STYLE_DEFAULT
+
+	^HINT_STYLE_DEFAULT
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+HINT_STYLE_FULL
+
+	^HINT_STYLE_FULL
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+HINT_STYLE_MEDIUM
+
+	^HINT_STYLE_MEDIUM
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+HINT_STYLE_NONE
+
+	^HINT_STYLE_NONE
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+HINT_STYLE_SLIGHT
+
+	^HINT_STYLE_SLIGHT
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+
+HintStyle initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__LineCap.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,47 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+SharedPool subclass:#LineCap
+	instanceVariableNames:''
+	classVariableNames:'LINE_CAP_BUTT LINE_CAP_ROUND 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-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!LineCap class methodsFor:'constants'!
+
+LINE_CAP_BUTT
+
+	^LINE_CAP_BUTT
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+LINE_CAP_ROUND
+
+	^LINE_CAP_ROUND
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+LINE_CAP_SQUARE
+
+	^LINE_CAP_SQUARE
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+
+LineCap initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__LineJoin.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,47 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+SharedPool subclass:#LineJoin
+	instanceVariableNames:''
+	classVariableNames:'LINE_JOIN_MITER LINE_JOIN_ROUND 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-07-2008 / 11:04:08 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!LineJoin class methodsFor:'constants'!
+
+LINE_JOIN_BEVEL
+
+	^LINE_JOIN_BEVEL
+
+    "Modified: / 10-07-2008 / 11:04:08 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+LINE_JOIN_MITER
+
+	^LINE_JOIN_MITER
+
+    "Modified: / 10-07-2008 / 11:04:08 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+LINE_JOIN_ROUND
+
+	^LINE_JOIN_ROUND
+
+    "Modified: / 10-07-2008 / 11:04:08 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+
+LineJoin initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__Matrix.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,208 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+ExternalStructure subclass:#Matrix
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Cairo - C Types'
+!
+
+!Matrix class methodsFor:'accessing'!
+
+libraryName
+
+	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so'].
+
+	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+
+	self error:'Library name for host OS is not known'
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!Matrix class methodsFor:'primitives'!
+
+primInit: matrix xx: xx yx: yx xy: xy yy: yy x0: x0 y0: y0 
+
+	<cdecl: void "cairo_matrix_init" ( Cairo::Matrix double double double double double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primInitIdentity: matrix 
+
+	<cdecl: void "cairo_matrix_init_identity" ( Cairo::Matrix ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primInitRotate: matrix radians: radians 
+
+	<cdecl: void "cairo_matrix_init_rotate" ( Cairo::Matrix double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primInitScale: matrix sx: sx sy: sy 
+
+	<cdecl: void "cairo_matrix_init_scale" ( Cairo::Matrix double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primInitTranslate: matrix tx: tx ty: ty 
+
+	<cdecl: void "cairo_matrix_init_translate" ( Cairo::Matrix double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primInvert: matrix 
+
+	<cdecl: int32 "cairo_matrix_invert" ( Cairo::Matrix ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primMultiply: result a: a b: b 
+
+	<cdecl: void "cairo_matrix_multiply" ( Cairo::Matrix Cairo::Matrix Cairo::Matrix ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primRotate: matrix radians: radians 
+
+	<cdecl: void "cairo_matrix_rotate" ( Cairo::Matrix double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primScale: matrix sx: sx sy: sy 
+
+	<cdecl: void "cairo_matrix_scale" ( Cairo::Matrix double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primTransformDistance: matrix dx: dx dy: dy 
+
+	<cdecl: void "cairo_matrix_transform_distance" ( Cairo::Matrix pointer pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primTransformPoint: matrix x: x y: y 
+
+	<cdecl: void "cairo_matrix_transform_point" ( Cairo::Matrix pointer pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primTranslate: matrix tx: tx ty: ty 
+
+	<cdecl: void "cairo_matrix_translate" ( Cairo::Matrix double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!Matrix methodsFor:'accessing - primitives'!
+
+primX0
+
+	self doubleAt:1 + 32
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primX0: value
+
+	self doubleAt:1 + 32 put:value
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primXx
+
+	self doubleAt:1 + 0
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primXx: value
+
+	self doubleAt:1 + 0 put:value
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primXy
+
+	self doubleAt:1 + 16
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primXy: value
+
+	self doubleAt:1 + 16 put:value
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primY0
+
+	self doubleAt:1 + 40
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primY0: value
+
+	self doubleAt:1 + 40 put:value
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primYx
+
+	self doubleAt:1 + 8
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primYx: value
+
+	self doubleAt:1 + 8 put:value
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primYy
+
+	self doubleAt:1 + 24
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primYy: value
+
+	self doubleAt:1 + 24 put:value
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__Operator.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,138 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+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'
+	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-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!Operator class methodsFor:'constants'!
+
+OPERATOR_ADD
+
+	^OPERATOR_ADD
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+OPERATOR_ATOP
+
+	^OPERATOR_ATOP
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+OPERATOR_CLEAR
+
+	^OPERATOR_CLEAR
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+OPERATOR_DEST
+
+	^OPERATOR_DEST
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+OPERATOR_DEST_ATOP
+
+	^OPERATOR_DEST_ATOP
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+OPERATOR_DEST_IN
+
+	^OPERATOR_DEST_IN
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+OPERATOR_DEST_OUT
+
+	^OPERATOR_DEST_OUT
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+OPERATOR_DEST_OVER
+
+	^OPERATOR_DEST_OVER
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+OPERATOR_IN
+
+	^OPERATOR_IN
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+OPERATOR_OUT
+
+	^OPERATOR_OUT
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+OPERATOR_OVER
+
+	^OPERATOR_OVER
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+OPERATOR_SATURATE
+
+	^OPERATOR_SATURATE
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+OPERATOR_SOURCE
+
+	^OPERATOR_SOURCE
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+OPERATOR_XOR
+
+	^OPERATOR_XOR
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+
+Operator initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__Path.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,78 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+ExternalStructure subclass:#Path
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Cairo - C Types'
+!
+
+!Path class methodsFor:'accessing'!
+
+libraryName
+
+	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so'].
+
+	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+
+	self error:'Library name for host OS is not known'
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!Path class methodsFor:'primitives'!
+
+primDestroy: path 
+
+	<cdecl: void "cairo_path_destroy" ( Cairo::Path ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!Path methodsFor:'accessing - primitives'!
+
+primData
+
+	self doubleWordAt:1 + 4
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primData: value
+
+	self doubleWordAt:1 + 4 put:value
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primNumData
+
+	self doubleWordAt:1 + 8
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primNumData: value
+
+	self doubleWordAt:1 + 8 put:value
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primStatus
+
+	self doubleWordAt:1 + 0
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primStatus: value
+
+	self doubleWordAt:1 + 0 put:value
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__PathData.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,54 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+ExternalStructure subclass:#PathData
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Cairo - C Types'
+!
+
+!PathData class methodsFor:'accessing'!
+
+libraryName
+
+	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so'].
+
+	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+
+	self error:'Library name for host OS is not known'
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!PathData methodsFor:'accessing - primitives'!
+
+primHeader
+
+	self at:1 + 0
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primHeader: value
+
+	self at:1 + 0 put:value
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primPoint
+
+	self at:1 + 0
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primPoint: value
+
+	self at:1 + 0 put:value
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__PathDataType.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,55 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+SharedPool subclass:#PathDataType
+	instanceVariableNames:''
+	classVariableNames:'PATH_MOVE_TO PATH_LINE_TO PATH_CURVE_TO 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-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!PathDataType class methodsFor:'constants'!
+
+PATH_CLOSE_PATH
+
+	^PATH_CLOSE_PATH
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+PATH_CURVE_TO
+
+	^PATH_CURVE_TO
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+PATH_LINE_TO
+
+	^PATH_LINE_TO
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+PATH_MOVE_TO
+
+	^PATH_MOVE_TO
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+
+PathDataType initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__Pattern.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,234 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+ExternalStructure subclass:#Pattern
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Cairo - C Types'
+!
+
+!Pattern class methodsFor:'accessing'!
+
+libraryName
+
+	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so'].
+
+	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+
+	self error:'Library name for host OS is not known'
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!Pattern class methodsFor:'primitives'!
+
+primAddColorStopRgb: pattern offset: offset red: red green: green blue: blue 
+
+	<cdecl: void "cairo_pattern_add_color_stop_rgb" ( Cairo::Pattern double double double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primAddColorStopRgba: pattern offset: offset red: red green: green blue: blue alpha: alpha 
+
+	<cdecl: void "cairo_pattern_add_color_stop_rgba" ( Cairo::Pattern double double double double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primDestroy: pattern 
+
+	<cdecl: void "cairo_pattern_destroy" ( Cairo::Pattern ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetColorStopCount: pattern count: count 
+
+	<cdecl: int32 "cairo_pattern_get_color_stop_count" ( Cairo::Pattern pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetColorStopRgba: pattern index: index offset: offset red: red green: green blue: blue alpha: alpha 
+
+	<cdecl: int32 "cairo_pattern_get_color_stop_rgba" ( Cairo::Pattern int32 pointer pointer pointer pointer pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetExtend: pattern 
+
+	<cdecl: int32 "cairo_pattern_get_extend" ( Cairo::Pattern ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetFilter: pattern 
+
+	<cdecl: int32 "cairo_pattern_get_filter" ( Cairo::Pattern ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetLinearPoints: pattern x0: x0 y0: y0 x1: x1 y1: y1 
+
+	<cdecl: int32 "cairo_pattern_get_linear_points" ( Cairo::Pattern pointer pointer pointer pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetMatrix: pattern matrix: matrix 
+
+	<cdecl: void "cairo_pattern_get_matrix" ( Cairo::Pattern Cairo::Matrix ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetRadialCircles: pattern x0: x0 y0: y0 r0: r0 x1: x1 y1: y1 r1: r1 
+
+	<cdecl: int32 "cairo_pattern_get_radial_circles" ( Cairo::Pattern pointer pointer pointer pointer pointer pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetReferenceCount: pattern 
+
+	<cdecl: uint32 "cairo_pattern_get_reference_count" ( Cairo::Pattern ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetRgba: pattern red: red green: green blue: blue alpha: alpha 
+
+	<cdecl: int32 "cairo_pattern_get_rgba" ( Cairo::Pattern pointer pointer pointer pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetSurface: pattern surface: surface 
+
+	<cdecl: int32 "cairo_pattern_get_surface" ( Cairo::Pattern pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetType: pattern 
+
+	<cdecl: int32 "cairo_pattern_get_type" ( Cairo::Pattern ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetUserData: pattern key: key 
+
+	<cdecl: pointer "cairo_pattern_get_user_data" ( Cairo::Pattern Cairo::UserDataKey ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primPatternCreateForSurface: surface 
+
+	<cdecl: Cairo::Pattern "cairo_pattern_create_for_surface" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primPatternCreateLinear: x0 y0: y0 x1: x1 y1: y1 
+
+	<cdecl: Cairo::Pattern "cairo_pattern_create_linear" ( double double double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primPatternCreateRadial: cx0 cy0: cy0 radius0: radius0 cx1: cx1 cy1: cy1 radius1: radius1 
+
+	<cdecl: Cairo::Pattern "cairo_pattern_create_radial" ( double double double double double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primPatternCreateRgb: red green: green blue: blue 
+
+	<cdecl: Cairo::Pattern "cairo_pattern_create_rgb" ( double double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primPatternCreateRgba: red green: green blue: blue alpha: alpha 
+
+	<cdecl: Cairo::Pattern "cairo_pattern_create_rgba" ( double double double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primReference: pattern 
+
+	<cdecl: Cairo::Pattern "cairo_pattern_reference" ( Cairo::Pattern ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetExtend: pattern extend: extend 
+
+	<cdecl: void "cairo_pattern_set_extend" ( Cairo::Pattern int32 ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetFilter: pattern filter: filter 
+
+	<cdecl: void "cairo_pattern_set_filter" ( Cairo::Pattern int32 ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetMatrix: pattern matrix: matrix 
+
+	<cdecl: void "cairo_pattern_set_matrix" ( Cairo::Pattern Cairo::Matrix ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetUserData: pattern key: key userData: user_data destroy: destroy 
+
+	<cdecl: int32 "cairo_pattern_set_user_data" ( Cairo::Pattern Cairo::UserDataKey pointer pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primStatus: pattern 
+
+	<cdecl: int32 "cairo_pattern_status" ( Cairo::Pattern ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__PatternType.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,56 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+SharedPool subclass:#PatternType
+	instanceVariableNames:''
+	classVariableNames:'PATTERN_TYPE_SOLID PATTERN_TYPE_SURFACE PATTERN_TYPE_LINEAR
+		PATTERN_TYPE_RADIAL'
+	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-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!PatternType class methodsFor:'constants'!
+
+PATTERN_TYPE_LINEAR
+
+	^PATTERN_TYPE_LINEAR
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+PATTERN_TYPE_RADIAL
+
+	^PATTERN_TYPE_RADIAL
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+PATTERN_TYPE_SOLID
+
+	^PATTERN_TYPE_SOLID
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+PATTERN_TYPE_SURFACE
+
+	^PATTERN_TYPE_SURFACE
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+
+PatternType initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__Rectangle.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,82 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+ExternalStructure subclass:#Rectangle
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Cairo - C Types'
+!
+
+!Rectangle class methodsFor:'accessing'!
+
+libraryName
+
+	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so'].
+
+	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+
+	self error:'Library name for host OS is not known'
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!Rectangle methodsFor:'accessing - primitives'!
+
+primHeight
+
+	self doubleAt:1 + 24
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primHeight: value
+
+	self doubleAt:1 + 24 put:value
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primWidth
+
+	self doubleAt:1 + 16
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primWidth: value
+
+	self doubleAt:1 + 16 put:value
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primX
+
+	self doubleAt:1 + 0
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primX: value
+
+	self doubleAt:1 + 0 put:value
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primY
+
+	self doubleAt:1 + 8
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primY: value
+
+	self doubleAt:1 + 8 put:value
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__RectangleList.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,78 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+ExternalStructure subclass:#RectangleList
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Cairo - C Types'
+!
+
+!RectangleList class methodsFor:'accessing'!
+
+libraryName
+
+	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so'].
+
+	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+
+	self error:'Library name for host OS is not known'
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!RectangleList class methodsFor:'primitives'!
+
+primDestroy: rectangle_list 
+
+	<cdecl: void "cairo_rectangle_list_destroy" ( Cairo::RectangleList ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!RectangleList methodsFor:'accessing - primitives'!
+
+primNumRectangles
+
+	self doubleWordAt:1 + 8
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primNumRectangles: value
+
+	self doubleWordAt:1 + 8 put:value
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primRectangles
+
+	self doubleWordAt:1 + 4
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primRectangles: value
+
+	self doubleWordAt:1 + 4 put:value
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primStatus
+
+	self doubleWordAt:1 + 0
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primStatus: value
+
+	self doubleWordAt:1 + 0 put:value
+
+    "Modified: / 10-07-2008 / 11:04:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__ScaledFont.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,146 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+ExternalStructure subclass:#ScaledFont
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Cairo - C Types'
+!
+
+!ScaledFont class methodsFor:'accessing'!
+
+libraryName
+
+	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so'].
+
+	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+
+	self error:'Library name for host OS is not known'
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!ScaledFont class methodsFor:'primitives'!
+
+primDestroy: scaled_font 
+
+	<cdecl: void "cairo_scaled_font_destroy" ( Cairo::ScaledFont ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primExtents: scaled_font extents: extents 
+
+	<cdecl: void "cairo_scaled_font_extents" ( Cairo::ScaledFont Cairo::FontExtents ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetCtm: scaled_font ctm: ctm 
+
+	<cdecl: void "cairo_scaled_font_get_ctm" ( Cairo::ScaledFont Cairo::Matrix ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetFontFace: scaled_font 
+
+	<cdecl: Cairo::FontFace "cairo_scaled_font_get_font_face" ( Cairo::ScaledFont ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetFontMatrix: scaled_font fontMatrix: font_matrix 
+
+	<cdecl: void "cairo_scaled_font_get_font_matrix" ( Cairo::ScaledFont Cairo::Matrix ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetFontOptions: scaled_font options: options 
+
+	<cdecl: void "cairo_scaled_font_get_font_options" ( Cairo::ScaledFont Cairo::FontOptions ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetReferenceCount: scaled_font 
+
+	<cdecl: uint32 "cairo_scaled_font_get_reference_count" ( Cairo::ScaledFont ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetType: scaled_font 
+
+	<cdecl: int32 "cairo_scaled_font_get_type" ( Cairo::ScaledFont ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetUserData: scaled_font key: key 
+
+	<cdecl: pointer "cairo_scaled_font_get_user_data" ( Cairo::ScaledFont Cairo::UserDataKey ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGlyphExtents: scaled_font glyphs: glyphs numGlyphs: num_glyphs extents: extents 
+
+	<cdecl: void "cairo_scaled_font_glyph_extents" ( Cairo::ScaledFont Cairo::Glyph int32 Cairo::TextExtents ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primReference: scaled_font 
+
+	<cdecl: Cairo::ScaledFont "cairo_scaled_font_reference" ( Cairo::ScaledFont ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primScaledFontCreate: font_face fontMatrix: font_matrix ctm: ctm options: options 
+
+	<cdecl: Cairo::ScaledFont "cairo_scaled_font_create" ( Cairo::FontFace Cairo::Matrix Cairo::Matrix Cairo::FontOptions ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetUserData: scaled_font key: key userData: user_data destroy: destroy 
+
+	<cdecl: int32 "cairo_scaled_font_set_user_data" ( Cairo::ScaledFont Cairo::UserDataKey pointer pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primStatus: scaled_font 
+
+	<cdecl: int32 "cairo_scaled_font_status" ( Cairo::ScaledFont ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primTextExtents: scaled_font utf8: utf8 extents: extents 
+
+	<cdecl: void "cairo_scaled_font_text_extents" ( Cairo::ScaledFont charPointer Cairo::TextExtents ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__Status.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,233 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+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'
+	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-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!Status class methodsFor:'constants'!
+
+STATUS_CLIP_NOT_REPRESENTABLE
+
+	^STATUS_CLIP_NOT_REPRESENTABLE
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+STATUS_FILE_NOT_FOUND
+
+	^STATUS_FILE_NOT_FOUND
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+STATUS_INVALID_CONTENT
+
+	^STATUS_INVALID_CONTENT
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+STATUS_INVALID_DASH
+
+	^STATUS_INVALID_DASH
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+STATUS_INVALID_DSC_COMMENT
+
+	^STATUS_INVALID_DSC_COMMENT
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+STATUS_INVALID_FORMAT
+
+	^STATUS_INVALID_FORMAT
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+STATUS_INVALID_INDEX
+
+	^STATUS_INVALID_INDEX
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+STATUS_INVALID_MATRIX
+
+	^STATUS_INVALID_MATRIX
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+STATUS_INVALID_PATH_DATA
+
+	^STATUS_INVALID_PATH_DATA
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+STATUS_INVALID_POP_GROUP
+
+	^STATUS_INVALID_POP_GROUP
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+STATUS_INVALID_RESTORE
+
+	^STATUS_INVALID_RESTORE
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+STATUS_INVALID_STATUS
+
+	^STATUS_INVALID_STATUS
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+STATUS_INVALID_STRIDE
+
+	^STATUS_INVALID_STRIDE
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+STATUS_INVALID_STRING
+
+	^STATUS_INVALID_STRING
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+STATUS_INVALID_VISUAL
+
+	^STATUS_INVALID_VISUAL
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+STATUS_NO_CURRENT_POINT
+
+	^STATUS_NO_CURRENT_POINT
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+STATUS_NO_MEMORY
+
+	^STATUS_NO_MEMORY
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+STATUS_NULL_POINTER
+
+	^STATUS_NULL_POINTER
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+STATUS_PATTERN_TYPE_MISMATCH
+
+	^STATUS_PATTERN_TYPE_MISMATCH
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+STATUS_READ_ERROR
+
+	^STATUS_READ_ERROR
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+STATUS_SUCCESS
+
+	^STATUS_SUCCESS
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+STATUS_SURFACE_FINISHED
+
+	^STATUS_SURFACE_FINISHED
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+STATUS_SURFACE_TYPE_MISMATCH
+
+	^STATUS_SURFACE_TYPE_MISMATCH
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+STATUS_TEMP_FILE_ERROR
+
+	^STATUS_TEMP_FILE_ERROR
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+STATUS_WRITE_ERROR
+
+	^STATUS_WRITE_ERROR
+
+    "Modified: / 10-07-2008 / 11:04:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+
+Status initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__SubpixelOrder.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,64 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+SharedPool subclass:#SubpixelOrder
+	instanceVariableNames:''
+	classVariableNames:'SUBPIXEL_ORDER_DEFAULT SUBPIXEL_ORDER_RGB SUBPIXEL_ORDER_BGR
+		SUBPIXEL_ORDER_VRGB 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-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!SubpixelOrder class methodsFor:'constants'!
+
+SUBPIXEL_ORDER_BGR
+
+	^SUBPIXEL_ORDER_BGR
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+SUBPIXEL_ORDER_DEFAULT
+
+	^SUBPIXEL_ORDER_DEFAULT
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+SUBPIXEL_ORDER_RGB
+
+	^SUBPIXEL_ORDER_RGB
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+SUBPIXEL_ORDER_VBGR
+
+	^SUBPIXEL_ORDER_VBGR
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+SUBPIXEL_ORDER_VRGB
+
+	^SUBPIXEL_ORDER_VRGB
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+
+SubpixelOrder initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__Surface.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,477 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+ExternalStructure subclass:#Surface
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Cairo - C Types'
+!
+
+!Surface class methodsFor:'instance creation'!
+
+forPdfFile: aStringOrFilename width: w height: h
+
+    ^self
+        primPdfSurfaceCreate: aStringOrFilename asFilename asString
+        widthInPoints: w asDouble 
+        heightInPoints: h asDouble
+
+    "Created: / 10-07-2008 / 09:35:34 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+forView: view
+
+    ^view device cairoSurfaceFor: view
+
+    "Created: / 10-07-2008 / 10:15:04 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+forXlib: dpy drawable: drawable visual: visual width: width height: height 
+
+    ^self primXlibSurfaceCreate: dpy drawable: drawable visual: visual width: width height: height
+
+    "Created: / 10-07-2008 / 11:06:22 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!Surface class methodsFor:'accessing'!
+
+libraryName
+
+	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so'].
+
+	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+
+	self error:'Library name for host OS is not known'
+
+    "Modified: / 10-07-2008 / 11:04:08 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!Surface class methodsFor:'primitives'!
+
+primCopyPage: surface 
+
+	<cdecl: void "cairo_surface_copy_page" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / 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-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primDestroy: surface 
+
+	<cdecl: void "cairo_surface_destroy" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primFinish: surface 
+
+	<cdecl: void "cairo_surface_finish" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primFlush: surface 
+
+	<cdecl: void "cairo_surface_flush" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetContent: surface 
+
+	<cdecl: int32 "cairo_surface_get_content" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetDeviceOffset: surface xOffset: x_offset yOffset: y_offset 
+
+	<cdecl: void "cairo_surface_get_device_offset" ( Cairo::Surface pointer pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetFontOptions: surface options: options 
+
+	<cdecl: void "cairo_surface_get_font_options" ( Cairo::Surface Cairo::FontOptions ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetReferenceCount: surface 
+
+	<cdecl: uint32 "cairo_surface_get_reference_count" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetType: surface 
+
+	<cdecl: int32 "cairo_surface_get_type" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primGetUserData: surface key: key 
+
+	<cdecl: pointer "cairo_surface_get_user_data" ( Cairo::Surface Cairo::UserDataKey ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / 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-07-2008 / 11:04:13 / 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-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primImageSurfaceCreateFromPng: filename 
+
+	<cdecl: Cairo::Surface "cairo_image_surface_create_from_png" ( charPointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / 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-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primImageSurfaceGetData: surface 
+
+	<cdecl: pointer "cairo_image_surface_get_data" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primImageSurfaceGetFormat: surface 
+
+	<cdecl: int32 "cairo_image_surface_get_format" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primImageSurfaceGetHeight: surface 
+
+	<cdecl: int32 "cairo_image_surface_get_height" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primImageSurfaceGetStride: surface 
+
+	<cdecl: int32 "cairo_image_surface_get_stride" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primImageSurfaceGetWidth: surface 
+
+	<cdecl: int32 "cairo_image_surface_get_width" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primMarkDirty: surface 
+
+	<cdecl: void "cairo_surface_mark_dirty" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primMarkDirtyRectangle: surface x: x y: y width: width height: height 
+
+	<cdecl: void "cairo_surface_mark_dirty_rectangle" ( Cairo::Surface int32 int32 int32 int32 ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:15 / 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-07-2008 / 11:04:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primPdfSurfaceCreateForStream: write_func closure: closure widthInPoints: width_in_points heightInPoints: height_in_points 
+
+	<cdecl: Cairo::Surface "cairo_pdf_surface_create_for_stream" ( pointer pointer double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primPdfSurfaceSetSize: surface widthInPoints: width_in_points heightInPoints: height_in_points 
+
+	<cdecl: void "cairo_pdf_surface_set_size" ( Cairo::Surface double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primReference: surface 
+
+	<cdecl: Cairo::Surface "cairo_surface_reference" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetDeviceOffset: surface xOffset: x_offset yOffset: y_offset 
+
+	<cdecl: void "cairo_surface_set_device_offset" ( Cairo::Surface double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetFallbackResolution: surface xPixelsPerInch: x_pixels_per_inch yPixelsPerInch: y_pixels_per_inch 
+
+	<cdecl: void "cairo_surface_set_fallback_resolution" ( Cairo::Surface double double ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSetUserData: surface key: key userData: user_data destroy: destroy 
+
+	<cdecl: int32 "cairo_surface_set_user_data" ( Cairo::Surface Cairo::UserDataKey pointer pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primShowPage: surface 
+
+	<cdecl: void "cairo_surface_show_page" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primStatus: surface 
+
+	<cdecl: int32 "cairo_surface_status" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:16 / 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 / 11:04:15 / 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 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primSvgSurfaceRestrictToVersion: surface version: version 
+
+	<cdecl: void "cairo_svg_surface_restrict_to_version" ( Cairo::Surface int32 ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primWriteToPng: surface filename: filename 
+
+	<cdecl: int32 "cairo_surface_write_to_png" ( Cairo::Surface charPointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primWriteToPngStream: surface writeFunc: write_func closure: closure 
+
+	<cdecl: int32 "cairo_surface_write_to_png_stream" ( Cairo::Surface pointer pointer ) >
+	self primitiveFailed
+
+    "Modified: / 10-07-2008 / 11:04:12 / 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
+
+    "Created: / 10-07-2008 / 11:04:15 / 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
+
+    "Created: / 10-07-2008 / 11:04:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primXlibSurfaceGetDepth: surface 
+
+	<cdecl: int32 "cairo_xlib_surface_get_depth" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Created: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primXlibSurfaceGetDisplay: surface 
+
+	<cdecl: pointer "cairo_xlib_surface_get_display" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Created: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primXlibSurfaceGetDrawable: surface 
+
+	<cdecl: int32 "cairo_xlib_surface_get_drawable" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Created: / 10-07-2008 / 11:04:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primXlibSurfaceGetHeight: surface 
+
+	<cdecl: int32 "cairo_xlib_surface_get_height" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Created: / 10-07-2008 / 11:04:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primXlibSurfaceGetScreen: surface 
+
+	<cdecl: pointer "cairo_xlib_surface_get_screen" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Created: / 10-07-2008 / 11:04:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primXlibSurfaceGetVisual: surface 
+
+	<cdecl: pointer "cairo_xlib_surface_get_visual" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Created: / 10-07-2008 / 11:04:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primXlibSurfaceGetWidth: surface 
+
+	<cdecl: int32 "cairo_xlib_surface_get_width" ( Cairo::Surface ) >
+	self primitiveFailed
+
+    "Created: / 10-07-2008 / 11:04:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primXlibSurfaceSetDrawable: surface drawable: drawable width: width height: height 
+
+	<cdecl: void "cairo_xlib_surface_set_drawable" ( Cairo::Surface int32 int32 int32 ) >
+	self primitiveFailed
+
+    "Created: / 10-07-2008 / 11:04:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primXlibSurfaceSetSize: surface width: width height: height 
+
+	<cdecl: void "cairo_xlib_surface_set_size" ( Cairo::Surface int32 int32 ) >
+	self primitiveFailed
+
+    "Created: / 10-07-2008 / 11:04:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!Surface methodsFor:'accessing'!
+
+graphicsContext
+
+    ^GraphicsContext on: self
+
+    "Created: / 10-07-2008 / 09:38:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+referenceCount
+
+    ^self class primGetReferenceCount: self
+
+    "Created: / 10-07-2008 / 10:28:49 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+type
+
+    ^self class primGetType: self
+
+    "Created: / 10-07-2008 / 10:34:36 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!Surface methodsFor:'initialization & release'!
+
+finalize
+
+    Transcript showCR:'Cairo [INFO]: Finalizing surface ' ,self address hexPrintString, ' ref count: ', self referenceCount printString.
+    self class 
+        primFlush: self;
+        primDestroy: self
+
+    "Created: / 10-07-2008 / 09:54:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+flush
+
+    ^self class primFlush: self
+
+    "Created: / 10-07-2008 / 10:32:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+reference
+
+    ^self class primReference: self
+
+    "Created: / 10-07-2008 / 10:28:03 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__SurfaceType.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,139 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+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'
+	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-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!SurfaceType class methodsFor:'constants'!
+
+SURFACE_TYPE_BEOS
+
+	^SURFACE_TYPE_BEOS
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+SURFACE_TYPE_DIRECTFB
+
+	^SURFACE_TYPE_DIRECTFB
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+SURFACE_TYPE_GLITZ
+
+	^SURFACE_TYPE_GLITZ
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+SURFACE_TYPE_IMAGE
+
+	^SURFACE_TYPE_IMAGE
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+SURFACE_TYPE_OS2
+
+	^SURFACE_TYPE_OS2
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+SURFACE_TYPE_PDF
+
+	^SURFACE_TYPE_PDF
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+SURFACE_TYPE_PS
+
+	^SURFACE_TYPE_PS
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+SURFACE_TYPE_QUARTZ
+
+	^SURFACE_TYPE_QUARTZ
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+SURFACE_TYPE_QUARTZ_IMAGE
+
+	^SURFACE_TYPE_QUARTZ_IMAGE
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+SURFACE_TYPE_SVG
+
+	^SURFACE_TYPE_SVG
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+SURFACE_TYPE_WIN32
+
+	^SURFACE_TYPE_WIN32
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+SURFACE_TYPE_WIN32_PRINTING
+
+	^SURFACE_TYPE_WIN32_PRINTING
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+SURFACE_TYPE_XCB
+
+	^SURFACE_TYPE_XCB
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+SURFACE_TYPE_XLIB
+
+	^SURFACE_TYPE_XLIB
+
+    "Modified: / 10-07-2008 / 11:04:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+
+SurfaceType initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__SvgVersion.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,39 @@
+"{ 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 / 11:04:08 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!SvgVersion class methodsFor:'constants'!
+
+SVG_VERSION_1_1
+
+	^SVG_VERSION_1_1
+
+    "Modified: / 10-07-2008 / 11:04:08 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+SVG_VERSION_1_2
+
+	^SVG_VERSION_1_2
+
+    "Modified: / 10-07-2008 / 11:04:08 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+
+SvgVersion initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__TextExtents.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,110 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+ExternalStructure subclass:#TextExtents
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Cairo - C Types'
+!
+
+!TextExtents class methodsFor:'accessing'!
+
+libraryName
+
+	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so'].
+
+	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+
+	self error:'Library name for host OS is not known'
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!TextExtents methodsFor:'accessing - primitives'!
+
+primHeight
+
+	self doubleAt:1 + 24
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primHeight: value
+
+	self doubleAt:1 + 24 put:value
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primWidth
+
+	self doubleAt:1 + 16
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primWidth: value
+
+	self doubleAt:1 + 16 put:value
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primXAdvance
+
+	self doubleAt:1 + 32
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primXAdvance: value
+
+	self doubleAt:1 + 32 put:value
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primXBearing
+
+	self doubleAt:1 + 0
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primXBearing: value
+
+	self doubleAt:1 + 0 put:value
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primYAdvance
+
+	self doubleAt:1 + 40
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primYAdvance: value
+
+	self doubleAt:1 + 40 put:value
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primYBearing
+
+	self doubleAt:1 + 8
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primYBearing: value
+
+	self doubleAt:1 + 8 put:value
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Cairo__UserDataKey.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,40 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+"{ NameSpace: Cairo }"
+
+ExternalStructure subclass:#UserDataKey
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Cairo - C Types'
+!
+
+!UserDataKey class methodsFor:'accessing'!
+
+libraryName
+
+	OperatingSystem isUNIXlike ifTrue:[^'libcairo.so'].
+
+	OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
+
+	self error:'Library name for host OS is not known'
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
+!UserDataKey methodsFor:'accessing - primitives'!
+
+primUnused
+
+	self doubleWordAt:1 + 0
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primUnused: value
+
+	self doubleWordAt:1 + 0 put:value
+
+    "Modified: / 10-07-2008 / 11:04:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/extensions.st	Thu Jul 10 09:30:44 2008 +0000
@@ -0,0 +1,65 @@
+"{ Package: 'stx:goodies/libcairo' }"
+
+!
+
+!DeviceGraphicsContext methodsFor:'cairo support'!
+
+drawableId
+
+    ^drawableId
+
+    "Created: / 10-07-2008 / 10:20:04 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+!GraphicsDevice methodsFor:'cairo support'!
+
+cairoSurfaceFor: view
+
+    self error:'Graphics device not supported'
+
+    "Created: / 10-07-2008 / 10:16:21 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+!GraphicsDevice methodsFor:'accessing'!
+
+displayId
+    ^ displayId
+
+    "Created: / 04-07-2008 / 12:58:56 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+!GraphicsDevice methodsFor:'accessing'!
+
+screen
+    ^ screen
+
+    "Created: / 04-07-2008 / 13:12:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+!XWorkstation methodsFor:'cairo support'!
+
+cairoSurfaceFor: view
+
+    ^Cairo::Surface 
+        forXlib: displayId
+        drawable: view drawableId address 
+        visual: self visualStructure 
+        width: view width 
+        height: view height
+
+    "Created: / 10-07-2008 / 10:16:36 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !
+!XWorkstation methodsFor:'cairo support'!
+
+visualStructure
+
+    | screenNumber |
+    screenNumber := screen.
+
+    %{
+        return __MKEXTERNALADDRESS( DefaultVisual( myDpy , __intVal ( screenNumber ) ) );
+    %}.
+    ^nil
+
+    "
+        Screen current visualStructure    
+    "
+
+    "Created: / 10-07-2008 / 11:03:01 / Jan Vrany <vranyj1@fel.cvut.cz>"
+! !