--- a/Cairo__Surface.st Fri Jul 11 08:49:27 2008 +0000
+++ b/Cairo__Surface.st Tue Sep 09 21:28:47 2008 +0000
@@ -2,14 +2,13 @@
"{ NameSpace: Cairo }"
-ExternalStructure subclass:#Surface
+RefCountedStructure subclass:#Surface
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
- category:'Cairo - C Types'
+ category:'Cairo - Objects'
!
-
!Surface class methodsFor:'instance creation'!
forPdfFile: aStringOrFilename width: w height: h
@@ -46,7 +45,14 @@
self error:'Library name for host OS is not known'
- "Modified: / 10-07-2008 / 23:05:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:42 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+structSize
+
+ ^0
+
+ "Modified: / 09-09-2008 / 21:57:42 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !
!Surface class methodsFor:'primitives'!
@@ -56,7 +62,7 @@
<cdecl: void "cairo_surface_copy_page" ( Cairo::Surface ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primCreateSimilar: other content: content width: width height: height
@@ -64,7 +70,7 @@
<cdecl: Cairo::Surface "cairo_surface_create_similar" ( Cairo::Surface int32 int32 int32 ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primDestroy: surface
@@ -72,7 +78,7 @@
<cdecl: void "cairo_surface_destroy" ( Cairo::Surface ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primFinish: surface
@@ -80,7 +86,7 @@
<cdecl: void "cairo_surface_finish" ( Cairo::Surface ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primFlush: surface
@@ -88,7 +94,7 @@
<cdecl: void "cairo_surface_flush" ( Cairo::Surface ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primGetContent: surface
@@ -96,7 +102,7 @@
<cdecl: int32 "cairo_surface_get_content" ( Cairo::Surface ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primGetDeviceOffset: surface xOffset: x_offset yOffset: y_offset
@@ -104,7 +110,7 @@
<cdecl: void "cairo_surface_get_device_offset" ( Cairo::Surface pointer pointer ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primGetFontOptions: surface options: options
@@ -112,7 +118,7 @@
<cdecl: void "cairo_surface_get_font_options" ( Cairo::Surface Cairo::FontOptions ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primGetReferenceCount: surface
@@ -120,7 +126,7 @@
<cdecl: uint32 "cairo_surface_get_reference_count" ( Cairo::Surface ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primGetType: surface
@@ -128,7 +134,7 @@
<cdecl: int32 "cairo_surface_get_type" ( Cairo::Surface ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primGetUserData: surface key: key
@@ -136,7 +142,7 @@
<cdecl: pointer "cairo_surface_get_user_data" ( Cairo::Surface Cairo::UserDataKey ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primImageSurfaceCreate: format width: width height: height
@@ -144,7 +150,7 @@
<cdecl: Cairo::Surface "cairo_image_surface_create" ( int32 int32 int32 ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primImageSurfaceCreateForData: data format: format width: width height: height stride: stride
@@ -152,7 +158,7 @@
<cdecl: Cairo::Surface "cairo_image_surface_create_for_data" ( pointer int32 int32 int32 int32 ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primImageSurfaceCreateFromPng: filename
@@ -160,7 +166,7 @@
<cdecl: Cairo::Surface "cairo_image_surface_create_from_png" ( charPointer ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primImageSurfaceCreateFromPngStream: read_func closure: closure
@@ -168,7 +174,7 @@
<cdecl: Cairo::Surface "cairo_image_surface_create_from_png_stream" ( pointer pointer ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primImageSurfaceGetData: surface
@@ -176,7 +182,7 @@
<cdecl: pointer "cairo_image_surface_get_data" ( Cairo::Surface ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primImageSurfaceGetFormat: surface
@@ -184,7 +190,7 @@
<cdecl: int32 "cairo_image_surface_get_format" ( Cairo::Surface ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primImageSurfaceGetHeight: surface
@@ -192,7 +198,7 @@
<cdecl: int32 "cairo_image_surface_get_height" ( Cairo::Surface ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primImageSurfaceGetStride: surface
@@ -200,7 +206,7 @@
<cdecl: int32 "cairo_image_surface_get_stride" ( Cairo::Surface ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primImageSurfaceGetWidth: surface
@@ -208,7 +214,7 @@
<cdecl: int32 "cairo_image_surface_get_width" ( Cairo::Surface ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primMarkDirty: surface
@@ -216,7 +222,7 @@
<cdecl: void "cairo_surface_mark_dirty" ( Cairo::Surface ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primMarkDirtyRectangle: surface x: x y: y width: width height: height
@@ -224,7 +230,7 @@
<cdecl: void "cairo_surface_mark_dirty_rectangle" ( Cairo::Surface int32 int32 int32 int32 ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primPdfSurfaceCreate: filename widthInPoints: width_in_points heightInPoints: height_in_points
@@ -232,7 +238,7 @@
<cdecl: Cairo::Surface "cairo_pdf_surface_create" ( charPointer double double ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primPdfSurfaceCreateForStream: write_func closure: closure widthInPoints: width_in_points heightInPoints: height_in_points
@@ -240,7 +246,7 @@
<cdecl: Cairo::Surface "cairo_pdf_surface_create_for_stream" ( pointer pointer double double ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primPdfSurfaceSetSize: surface widthInPoints: width_in_points heightInPoints: height_in_points
@@ -248,7 +254,7 @@
<cdecl: void "cairo_pdf_surface_set_size" ( Cairo::Surface double double ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primReference: surface
@@ -256,7 +262,7 @@
<cdecl: Cairo::Surface "cairo_surface_reference" ( Cairo::Surface ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primSetDeviceOffset: surface xOffset: x_offset yOffset: y_offset
@@ -264,7 +270,7 @@
<cdecl: void "cairo_surface_set_device_offset" ( Cairo::Surface double double ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primSetFallbackResolution: surface xPixelsPerInch: x_pixels_per_inch yPixelsPerInch: y_pixels_per_inch
@@ -272,7 +278,7 @@
<cdecl: void "cairo_surface_set_fallback_resolution" ( Cairo::Surface double double ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primSetUserData: surface key: key userData: user_data destroy: destroy
@@ -280,7 +286,7 @@
<cdecl: int32 "cairo_surface_set_user_data" ( Cairo::Surface Cairo::UserDataKey pointer pointer ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primShowPage: surface
@@ -288,7 +294,7 @@
<cdecl: void "cairo_surface_show_page" ( Cairo::Surface ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primStatus: surface
@@ -296,7 +302,7 @@
<cdecl: int32 "cairo_surface_status" ( Cairo::Surface ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primSvgSurfaceCreate: filename widthInPoints: width_in_points heightInPoints: height_in_points
@@ -328,7 +334,7 @@
<cdecl: int32 "cairo_surface_write_to_png" ( Cairo::Surface charPointer ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primWriteToPngStream: surface writeFunc: write_func closure: closure
@@ -336,7 +342,7 @@
<cdecl: int32 "cairo_surface_write_to_png_stream" ( Cairo::Surface pointer pointer ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primXlibSurfaceCreate: dpy drawable: drawable visual: visual width: width height: height
@@ -344,7 +350,7 @@
<cdecl: Cairo::Surface "cairo_xlib_surface_create" ( pointer int32 pointer int32 int32 ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primXlibSurfaceCreateForBitmap: dpy bitmap: bitmap screen: screen width: width height: height
@@ -352,7 +358,7 @@
<cdecl: Cairo::Surface "cairo_xlib_surface_create_for_bitmap" ( pointer int32 pointer int32 int32 ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primXlibSurfaceGetDepth: surface
@@ -360,7 +366,7 @@
<cdecl: int32 "cairo_xlib_surface_get_depth" ( Cairo::Surface ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primXlibSurfaceGetDisplay: surface
@@ -368,7 +374,7 @@
<cdecl: pointer "cairo_xlib_surface_get_display" ( Cairo::Surface ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primXlibSurfaceGetDrawable: surface
@@ -376,7 +382,15 @@
<cdecl: int32 "cairo_xlib_surface_get_drawable" ( Cairo::Surface ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
+!
+
+primXlibSurfaceGetGc: surface
+
+ <cdecl: pointer "cairo_xlib_surface_get_gc" ( Cairo::Surface ) >
+ self primitiveFailed
+
+ "Modified: / 09-09-2008 / 21:57:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primXlibSurfaceGetHeight: surface
@@ -384,7 +398,7 @@
<cdecl: int32 "cairo_xlib_surface_get_height" ( Cairo::Surface ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primXlibSurfaceGetScreen: surface
@@ -392,7 +406,7 @@
<cdecl: pointer "cairo_xlib_surface_get_screen" ( Cairo::Surface ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primXlibSurfaceGetVisual: surface
@@ -400,7 +414,7 @@
<cdecl: pointer "cairo_xlib_surface_get_visual" ( Cairo::Surface ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primXlibSurfaceGetWidth: surface
@@ -408,7 +422,7 @@
<cdecl: int32 "cairo_xlib_surface_get_width" ( Cairo::Surface ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primXlibSurfaceSetDrawable: surface drawable: drawable width: width height: height
@@ -416,7 +430,7 @@
<cdecl: void "cairo_xlib_surface_set_drawable" ( Cairo::Surface int32 int32 int32 ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primXlibSurfaceSetSize: surface width: width height: height
@@ -424,23 +438,20 @@
<cdecl: void "cairo_xlib_surface_set_size" ( Cairo::Surface int32 int32 ) >
self primitiveFailed
- "Modified: / 10-07-2008 / 23:05:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Modified: / 09-09-2008 / 21:57:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !
!Surface methodsFor:'accessing'!
-graphicsContext
-
- ^GraphicsContext on: self
+gcId
- "Created: / 10-07-2008 / 09:38:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
-!
+ self
+ assert: (self type == SurfaceType SURFACE_TYPE_XLIB)
+ message: 'Not a xlib surface!!'.
-referenceCount
+ ^self class primXlibSurfaceGetGc: self
- ^self class primGetReferenceCount: self
-
- "Created: / 10-07-2008 / 10:28:49 / Jan Vrany <vranyj1@fel.cvut.cz>"
+ "Created: / 09-09-2008 / 22:19:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
type
@@ -471,32 +482,10 @@
!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>"
! !
-!Surface class methodsFor:'documentation'!
-
-version
- ^'$Id$'
-! !