DeviceWorkstation.st
changeset 3478 b9d198097d10
parent 3464 3688d9eb93f2
child 3513 64ae1498b94c
--- a/DeviceWorkstation.st	Wed Sep 05 17:40:22 2001 +0200
+++ b/DeviceWorkstation.st	Wed Sep 05 19:27:05 2001 +0200
@@ -22,10 +22,10 @@
 		motionEventCompression lastId lastView keyboardMap rootView
 		isSlow activeKeyboardGrab activePointerGrab buttonTranslation
 		multiClickTimeDelta altModifiers metaModifiers ctrlModifiers
-		shiftModifiers superModifiers buttonModifiers supportsDeepIcons preferredIconSize
-		ditherColors fixColors numFixRed numFixGreen numFixBlue
-		fixGrayColors copyBuffer lastCopyBuffer blackColor whiteColor
-		focusMode activeView clipBoardEncoding focusView
+		shiftModifiers superModifiers buttonModifiers supportsDeepIcons
+		preferredIconSize ditherColors fixColors numFixRed numFixGreen
+		numFixBlue fixGrayColors copyBuffer lastCopyBuffer blackColor
+		whiteColor focusMode activeView clipBoardEncoding focusView
 		deviceErrorSignal deviceIOErrorSignal mayOpenDebugger
 		suppressDebugger'
 	classVariableNames:'ButtonTranslation MultiClickTimeDelta DeviceErrorSignal
@@ -37,6 +37,14 @@
 	category:'Interface-Graphics'
 !
 
+Object subclass:#DeviceFontMetrics
+	instanceVariableNames:'encoding ascent descent maxAscent maxDescent minWidth maxWidth
+		averageWidth'
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:DeviceWorkstation
+!
+
 !DeviceWorkstation class methodsFor:'documentation'!
 
 copyright
@@ -4595,28 +4603,22 @@
     "Modified: 29.2.1996 / 04:31:51 / cg"
 !
 
-fontMetricsOf:fontId into:aBlock
-    "evaluate aBlock, passing a fonts metrics as arguments"
-
-    |encoding avgAscent avgDescent
-     maxAscent maxDescent minWidth maxWidth avgWidth|
-
-    encoding := self encodingOf:fontId.
-    avgAscent := self ascentOf:fontId.
-    avgDescent := self descentOf:fontId.
-    maxAscent := self maxAscentOf:fontId.
-    maxDescent := self maxDescentOf:fontId.
-    minWidth := self minWidthOfFont:fontId.
-    maxWidth := self maxWidthOfFont:fontId.
-    avgWidth := self widthOf:' ' inFont:fontId.
-    aBlock value:encoding 
-	   value:avgAscent
-	   value:avgDescent
-	   value:maxAscent
-	   value:maxDescent
-	   value:minWidth
-	   value:maxWidth
-	   value:avgWidth
+fontMetricsOf:fontId
+    "return a fonts metrics info object"
+
+    |info|
+
+    info := DeviceWorkstation::DeviceFontMetrics new.
+    info
+      ascent:(self ascentOf:fontId)
+      descent:(self descentOf:fontId)
+      maxAscent:(self maxAscentOf:fontId)
+      maxDescent:(self maxDescentOf:fontId)
+      minWidth:(self minWidthOfFont:fontId)
+      maxWidth:(self maxWidthOfFont:fontId)
+      avgWidth:(self widthOf:' ' inFont:fontId).
+
+    ^ info
 !
 
 fontResolutionOf:fontId
@@ -7260,9 +7262,80 @@
     "Created: 4.4.1997 / 14:45:26 / cg"
 ! !
 
+!DeviceWorkstation::DeviceFontMetrics methodsFor:'accessing'!
+
+ascent
+    "return the value of the instance variable 'ascent' (automatically generated)"
+
+    ^ ascent
+!
+
+ascent:ascentArg descent:descentArg maxAscent:maxAscentArg maxDescent:maxDescentArg minWidth:minWidthArg maxWidth:maxWidthArg avgWidth:avgWidthArg
+    ascent := ascentArg.
+    descent := descentArg.
+    maxAscent := maxAscentArg.
+    maxDescent := maxDescentArg.
+    minWidth := minWidthArg.
+    maxWidth := maxWidthArg.
+    averageWidth := avgWidthArg
+!
+
+averageWidth
+    "return the value of the instance variable 'averageWidth' (automatically generated)"
+
+    ^ averageWidth
+!
+
+descent
+    "return the value of the instance variable 'descent' (automatically generated)"
+
+    ^ descent
+!
+
+encoding
+    "return the value of the instance variable 'encoding' (automatically generated)"
+
+    ^ encoding
+!
+
+encoding:encodingArg ascent:ascentArg descent:descentArg maxAscent:maxAscentArg maxDescent:maxDescentArg minWidth:minWidthArg maxWidth:maxWidthArg avgWidth:avgWidthArg
+    encoding := encodingArg.
+    ascent := ascentArg.
+    descent := descentArg.
+    maxAscent := maxAscentArg.
+    maxDescent := maxDescentArg.
+    minWidth := minWidthArg.
+    maxWidth := maxWidthArg.
+    averageWidth := avgWidthArg
+!
+
+maxAscent
+    "return the value of the instance variable 'maxAscent' (automatically generated)"
+
+    ^ maxAscent
+!
+
+maxDescent
+    "return the value of the instance variable 'maxDescent' (automatically generated)"
+
+    ^ maxDescent
+!
+
+maxWidth
+    "return the value of the instance variable 'maxWidth' (automatically generated)"
+
+    ^ maxWidth
+!
+
+minWidth
+    "return the value of the instance variable 'minWidth' (automatically generated)"
+
+    ^ minWidth
+! !
+
 !DeviceWorkstation class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/DeviceWorkstation.st,v 1.400 2001-08-15 16:40:48 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/DeviceWorkstation.st,v 1.401 2001-09-05 17:27:05 cg Exp $'
 ! !
 DeviceWorkstation initialize!