--- a/View.st Mon Mar 20 13:27:08 1995 +0100
+++ b/View.st Thu Mar 23 17:54:10 1995 +0100
@@ -34,7 +34,7 @@
COPYRIGHT (c) 1989 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libview/View.st,v 1.35 1995-03-18 05:12:23 claus Exp $
+$Header: /cvs/stx/stx/libview/View.st,v 1.36 1995-03-23 16:53:18 claus Exp $
'!
!View class methodsFor:'documentation'!
@@ -55,7 +55,7 @@
version
"
-$Header: /cvs/stx/stx/libview/View.st,v 1.35 1995-03-18 05:12:23 claus Exp $
+$Header: /cvs/stx/stx/libview/View.st,v 1.36 1995-03-23 16:53:18 claus Exp $
"
!
@@ -962,22 +962,33 @@
computeCorner
"compute my corner; if I have relative
- origins or blocks to evaluate, do it now .."
-
- |org newCorner newExt|
+ origins or blocks to evaluate, do it now ..
+ Blocks may return relative values or nil; nil means: take current value."
+
+ |org newCorner newExt x y|
(cornerRule notNil) ifTrue:[
- newCorner := cornerRule value
+ newCorner := cornerRule value.
+ "
+ allow return of relative values ...
+ "
+ x := newCorner x.
+ y := newCorner y.
+ x isNil ifTrue:[x := self corner x].
+ y isNil ifTrue:[y := self corner y].
+ ((x isInteger not) or:[y isInteger not]) ifTrue:[
+ newCorner := self cornerFromRelativeCorner:x@y
+ ]
] ifFalse:[
(relativeCorner notNil) ifTrue:[
- newCorner := self cornerFromRelativeCorner
+ newCorner := self cornerFromRelativeCorner:relativeCorner
] ifFalse:[
org := self computeOrigin.
(extentRule notNil) ifTrue:[
newExt := extentRule value
] ifFalse:[
(relativeExtent notNil) ifTrue:[
- newExt := self extentFromRelativeExtent
+ newExt := self extentFromRelativeExtent:relativeExtent
]
].
newCorner := org + newExt
@@ -988,31 +999,44 @@
computeExtent
"compute my extent; if I have relative
- extent or blocks to evaluate, do it now .."
-
- |newOrg newExt newCorner|
-
- (originRule notNil) ifTrue:[
- newOrg := originRule value
- ] ifFalse:[
- (relativeOrigin notNil) ifTrue:[
- newOrg := self originFromRelativeOrigin.
- ] ifFalse:[
- newOrg := (left @ top).
- ].
- ].
+ extent or blocks to evaluate, do it now ..
+ There is one catch here, if the dimension was defined
+ by origin/corner, compute them here and take that value.
+ I.e. origin/corner definition has precedence over extent definition."
+
+ |newOrg newExt newCorner x y|
(cornerRule notNil) ifTrue:[
- newCorner := cornerRule value
+ newCorner := cornerRule value.
+ "
+ allow return of relative values ...
+ "
+ x := newCorner x.
+ y := newCorner y.
+ x isNil ifTrue:[x := self corner x].
+ y isNil ifTrue:[y := self corner y].
+ ((x isInteger not) or:[y isInteger not]) ifTrue:[
+ newCorner := self cornerFromRelativeCorner:x@y
+ ]
] ifFalse:[
(relativeCorner notNil) ifTrue:[
- newCorner := self cornerFromRelativeCorner
+ newCorner := self cornerFromRelativeCorner:relativeCorner
] ifFalse:[
(extentRule notNil) ifTrue:[
- newExt := extentRule value
+ newExt := extentRule value.
+ "
+ allow return of relative values ...
+ "
+ x := newExt x.
+ y := newExt y.
+ x isNil ifTrue:[x := width].
+ y isNil ifTrue:[y := height].
+ ((x isInteger not) or:[y isInteger not]) ifTrue:[
+ newExt := self extentFromRelativeExtent:x@y
+ ]
] ifFalse:[
(relativeExtent notNil) ifTrue:[
- newExt := self extentFromRelativeExtent
+ newExt := self extentFromRelativeExtent:relativeExtent
] ifFalse:[
newExt := (width @ height).
].
@@ -1021,6 +1045,7 @@
].
newCorner notNil ifTrue:[
+ newOrg := self computeOrigin.
^ newCorner - newOrg.
].
^ newExt.
@@ -1028,18 +1053,26 @@
computeOrigin
"compute my origin; if I have relative
- origins or blocks to evaluate, do it now .."
-
- |newOrg newCorner|
+ origins or blocks to evaluate, do it now ..
+ Blocks may return relative values or nil; nil means: take current value."
+
+ |newOrg x y|
(originRule notNil) ifTrue:[
newOrg := originRule value.
- (newOrg x isInteger not or:[newOrg y isInteger not]) ifTrue:[
- newOrg := self originFromRelativeOrigin:newOrg.
+ "
+ allow return of relative values ...
+ "
+ x := newOrg x.
+ y := newOrg y.
+ x isNil ifTrue:[x := self origin x].
+ y isNil ifTrue:[y := self origin y].
+ ((x isInteger not) or:[y isInteger not]) ifTrue:[
+ newOrg := self originFromRelativeOrigin:x@y.
]
] ifFalse:[
(relativeOrigin notNil) ifTrue:[
- newOrg := self originFromRelativeOrigin.
+ newOrg := self originFromRelativeOrigin:relativeOrigin.
] ifFalse:[
^ (left @ top).
].
@@ -1568,7 +1601,7 @@
extentFromRelativeExtent:aPoint
"compute & return pixel extent from relativeExtent, aPoint"
- |rel newX newY inRect bw2 r b|
+ |rel newX newY inRect bw2 i|
superView isNil ifTrue:[
inRect := 0@0 extent:device extent
@@ -1599,13 +1632,21 @@
].
insets notNil ifTrue:[
- r := insets at:3.
- (r ~~ 0) ifTrue:[
- newX := newX - r
+ i := insets at:1.
+ (i ~~ 0) ifTrue:[
+ newX := newX - i
+ ].
+ i := insets at:3.
+ (i ~~ 0) ifTrue:[
+ newX := newX - i
].
- b := insets at:4.
- (b ~~ 0) ifTrue:[
- newY := newY - b
+ i := insets at:4.
+ (i ~~ 0) ifTrue:[
+ newY := newY - i
+ ].
+ i := insets at:4.
+ (i ~~ 0) ifTrue:[
+ newY := newY - i
].
].
^ newX @ newY
@@ -2921,6 +2962,12 @@
]
!
+processName
+ "return a string to be shown in the process monitor"
+
+ ^ self name
+!
+
name
"return my name component to be used for resource-access"