--- a/Cairo__FontExtents.st Wed May 30 20:06:35 2012 +0000
+++ b/Cairo__FontExtents.st Thu Jun 14 09:18:25 2012 +0000
@@ -6,12 +6,50 @@
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
- category:'Cairo - Objects'
+ category:'Cairo-Objects'
!
!FontExtents 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:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
structSize
^320
+
+ "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !
!FontExtents methodsFor:'accessing'!
@@ -31,51 +73,71 @@
ascent
^self doubleAt:1 + 0
+
+ "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
ascent: value
self doubleAt:1 + 0 put:value
+
+ "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
descent
^self doubleAt:1 + 8
+
+ "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
descent: value
self doubleAt:1 + 8 put:value
+
+ "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
height
^self doubleAt:1 + 16
+
+ "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
height: value
self doubleAt:1 + 16 put:value
+
+ "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
maxXAdvance
^self doubleAt:1 + 24
+
+ "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
maxXAdvance: value
self doubleAt:1 + 24 put:value
+
+ "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
maxYAdvance
^self doubleAt:1 + 32
+
+ "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
!
maxYAdvance: value
self doubleAt:1 + 32 put:value
+
+ "Modified: / 10-09-2008 / 18:19:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !
!FontExtents class methodsFor:'documentation'!