--- a/Cairo__ScaledFont.st Wed May 30 20:06:35 2012 +0000
+++ b/Cairo__ScaledFont.st Thu Jun 14 09:18:25 2012 +0000
@@ -6,12 +6,50 @@
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
- category:'Cairo - Objects'
+ category:'Cairo-Objects'
!
!ScaledFont class methodsFor:'accessing'!
+dllPath
+
+ OperatingSystem isMSWINDOWSlike ifTrue:[
+ ^ #( 'C:\Windows' 'C:\Windows\System32' "Wild guess, should not harm" )
+ ].
+
+ OperatingSystem isUNIXlike ifTrue:[
+ OperatingSystem getSystemType == #linux ifTrue:[
+ | path |
+
+ path := #( '/lib' '/usr/lib' '/usr/local/lib' ).
+ (OperatingSystem getSystemInfo at:#machine) = 'x86_64' ifTrue:[
+ "If the machine is 64bit, prepend standard path for 32bit libs.
+ Leave standard paths at the end, as the system might be completely
+ 32bit but running on 64bit-capable CPU.
+
+ CAVEAT: This is bit dangerous, as on 64bit OS, if ia32 libs are
+ not installed byt 64bit sqlite libs are, then 64bit libs are found
+ and when a function is called, segfault will occur!!
+
+ Q: Is there a way how to figure out if the OS itself is 32bit,
+ regardles on CPU?"
+ path := #( '/lib32' '/usr/lib32' '/usr/local/lib32' ) , path.
+ ].
+ ^path
+
+ ].
+ ].
+
+ self error:'Unsupported operating system'
+
+ "
+ SqliteLibrary dllPath
+ "
+
+ "Created: / 31-08-2011 / 18:02:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
libraryName
OperatingSystem isUNIXlike ifTrue:[^'libcairo.so.2'].
@@ -19,11 +57,15 @@
OperatingSystem isMSWINDOWSlike ifTrue:[^'cairo.dll'].
self error:'Library name for host OS is not known'
+
+ "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
structSize
^0
+
+ "Modified: / 10-09-2008 / 18:19:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !
!ScaledFont class methodsFor:'primitives'!
@@ -136,102 +178,8 @@
<cdecl: Cairo::ScaledFont "cairo_scaled_font_create" ( Cairo::FontFace Cairo::Matrix Cairo::Matrix Cairo::FontOptions ) >
self primitiveFailed
-!
-primScaledFontDestroy: scaled_font
-
- <cdecl: void "cairo_scaled_font_destroy" ( Cairo::ScaledFont ) >
- self primitiveFailed
-!
-
-primScaledFontExtents: scaled_font extents: extents
-
- <cdecl: void "cairo_scaled_font_extents" ( Cairo::ScaledFont Cairo::FontExtents ) >
- self primitiveFailed
-!
-
-primScaledFontGetCtm: scaled_font ctm: ctm
-
- <cdecl: void "cairo_scaled_font_get_ctm" ( Cairo::ScaledFont Cairo::Matrix ) >
- self primitiveFailed
-!
-
-primScaledFontGetFontFace: scaled_font
-
- <cdecl: Cairo::FontFace "cairo_scaled_font_get_font_face" ( Cairo::ScaledFont ) >
- self primitiveFailed
-!
-
-primScaledFontGetFontMatrix: scaled_font fontMatrix: font_matrix
-
- <cdecl: void "cairo_scaled_font_get_font_matrix" ( Cairo::ScaledFont Cairo::Matrix ) >
- self primitiveFailed
-!
-
-primScaledFontGetFontOptions: scaled_font options: options
-
- <cdecl: void "cairo_scaled_font_get_font_options" ( Cairo::ScaledFont Cairo::FontOptions ) >
- self primitiveFailed
-!
-
-primScaledFontGetReferenceCount: scaled_font
-
- <cdecl: uint32 "cairo_scaled_font_get_reference_count" ( Cairo::ScaledFont ) >
- self primitiveFailed
-!
-
-primScaledFontGetScaleMatrix: scaled_font scaleMatrix: scale_matrix
-
- <cdecl: void "cairo_scaled_font_get_scale_matrix" ( Cairo::ScaledFont Cairo::Matrix ) >
- self primitiveFailed
-!
-
-primScaledFontGetType: scaled_font
-
- <cdecl: int32 "cairo_scaled_font_get_type" ( Cairo::ScaledFont ) >
- self primitiveFailed
-!
-
-primScaledFontGetUserData: scaled_font key: key
-
- <cdecl: voidPointer "cairo_scaled_font_get_user_data" ( Cairo::ScaledFont Cairo::UserDataKey ) >
- self primitiveFailed
-!
-
-primScaledFontGlyphExtents: 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
-!
-
-primScaledFontReference: scaled_font
-
- <cdecl: Cairo::ScaledFont "cairo_scaled_font_reference" ( Cairo::ScaledFont ) >
- self primitiveFailed
-!
-
-primScaledFontSetUserData: scaled_font key: key userData: user_data destroy: destroy
-
- <cdecl: int32 "cairo_scaled_font_set_user_data" ( Cairo::ScaledFont Cairo::UserDataKey voidPointer pointer ) >
- self primitiveFailed
-!
-
-primScaledFontStatus: scaled_font
-
- <cdecl: int32 "cairo_scaled_font_status" ( Cairo::ScaledFont ) >
- self primitiveFailed
-!
-
-primScaledFontTextExtents: scaled_font utf8: utf8 extents: extents
-
- <cdecl: void "cairo_scaled_font_text_extents" ( Cairo::ScaledFont charPointer Cairo::TextExtents ) >
- self primitiveFailed
-!
-
-primScaledFontTextToGlyphs: scaled_font x: x y: y utf8: utf8 utf8Len: utf8_len glyphs: glyphs numGlyphs: num_glyphs clusters: clusters numClusters: num_clusters clusterFlags: cluster_flags
-
- <cdecl: int32 "cairo_scaled_font_text_to_glyphs" ( Cairo::ScaledFont double double charPointer int32 pointer int32Pointer pointer int32Pointer intPointer ) >
- self primitiveFailed
+ "Modified: / 10-09-2008 / 18:19:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
primSetUserData: scaled_font key: key userData: user_data destroy: destroy