--- a/TabView.st Thu Apr 03 19:38:32 1997 +0200
+++ b/TabView.st Thu Apr 03 20:24:33 1997 +0200
@@ -634,7 +634,7 @@
showSelected
"draw current selection as selected
"
- |tab list size savOrg savExt expSel savIns setIns newExt ctr x1 x2|
+ |leftExtX rightExtX vspace tab list size savOrg savExt expSel savIns setIns newExt ctr x1 x2 nOrg|
list := self list.
size := list size.
@@ -642,28 +642,41 @@
(selection notNil and:[self shown and:[size ~~ 0]]) ifFalse:[
^ self
].
- tab := list at:selection.
- savOrg := tab origin.
- savExt := tab extent.
- savIns := tab inset.
- expSel := tabStyle at:#expandSelection.
- newExt := savExt + (expSel x@0).
+ tab := list at:selection.
+ savOrg := tab origin.
+ savExt := tab extent.
+ savIns := tab inset.
+ expSel := tabStyle at:#expandSelection.
+ rightExtX := expSel x.
- (tabStyle at:#vspace) == 0 ifTrue:[setIns := 0]
- ifFalse:[setIns := savIns].
+ (vspace := tabStyle at:#vspace) == 0 ifTrue:[
+ leftExtX := rightExtX := rightExtX//2.
+ setIns := 0
+ ] ifFalse:[
+ leftExtX := 0.
+ setIns := savIns
+ ].
- x1 := savOrg x.
+ newExt := savExt + ((leftExtX + rightExtX)@0).
+ nOrg := savOrg - ( leftExtX @ (expSel y)).
+
+ (x1 := nOrg x) < 0 ifTrue:[
+ newExt x:(newExt x + x1).
+ nOrg x:0.
+ x1 := 0.
+ ].
+
ctr := self extent x.
(x2 := x1 + newExt x) > ctr ifTrue:[
x2 := ctr - x1.
newExt x:x2.
].
- tab origin:(savOrg - (0 @ (expSel y))) extent:newExt inset:setIns.
+ tab origin:nOrg extent:newExt inset:setIns.
tab redraw:true.
tab origin:savOrg extent:savExt inset:savIns.
- (selection < lastIdInFirstLine or:[(tabStyle at:#hspace) ~~ 0]) ifTrue:[
+ (selection < lastIdInFirstLine or:[vspace ~~ 0]) ifTrue:[
ctr := selection + 1.
ctr to:size do:[:i||tX1 tX2 draw|
@@ -681,11 +694,10 @@
]
]
]
-
! !
!TabView class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libwidg2/TabView.st,v 1.1 1997-04-03 17:34:45 ca Exp $'
+ ^ '$Header: /cvs/stx/stx/libwidg2/TabView.st,v 1.2 1997-04-03 18:24:33 ca Exp $'
! !