# HG changeset patch # User Claus Gittinger # Date 905795900 -7200 # Node ID 88a2147882773b59ee3feafe61f3144c019a54bd # Parent 4d408220a60b81dd670b1a37fe8188568f2cb957 reenabled old showUnselected code. diff -r 4d408220a60b -r 88a214788277 UIObjectView.st --- a/UIObjectView.st Sat Sep 12 18:12:27 1998 +0200 +++ b/UIObjectView.st Mon Sep 14 19:58:20 1998 +0200 @@ -475,6 +475,7 @@ exposeX:x y:y width:w height:h "handle an expose event from device; redraw selection " + resizeData isNil ifTrue:[ super exposeX:x y:y width:w height:h. @@ -489,7 +490,8 @@ ]. self showSelected:aComponent ] - ] + ]. + ! @@ -620,20 +622,28 @@ invertOutlineOf:something "invert outline of an object or collection of objects " - |wasClipped p| + |wasClipped| (wasClipped := clipChildren) ifTrue:[ self clippedByChildren:(clipChildren := false). ]. - something isCollection ifTrue:[ - something do:[:v| - p := v originRelativeTo:self. - self xoring:[self displayRectangle:(p extent:v extent)]. + self xoring:[ + |p| + + something isCollection ifTrue:[ + something do:[:v | + |p| + + p := v originRelativeTo:self. + self displayRectangle:(p extent:v extent). + ]. + ] ifFalse:[ + |p| + + p := something originRelativeTo:self. + self displayRectangle:(p extent:something extent). ] - ] ifFalse:[ - p := something originRelativeTo:self. - self xoring:[self displayRectangle:(p extent:something extent)] ]. wasClipped ifTrue:[ @@ -945,65 +955,65 @@ selectionHiddenLevel ~~ 0 ifTrue:[^ self]. - "/ new: simply create a little view ontop, - "/ and move it over the handles. This will generate - "/ the required expose events automatically. - - v := SimpleView in:self. - self handlesOf:aComponent do:[:rec :wht | - r isNil - ifTrue:[r := rec] - ifFalse:[r := r merge:rec]. - ]. - - "/ if the area is small, make one big rectangle-expose - r area < 10000 ifTrue:[ - v origin:r origin extent:r extent. - v map. - v unmap. - ] ifFalse:[ - self handlesOf:aComponent do:[:rec :wht | - v origin:rec origin extent:rec extent. - v map. - v unmap. - ]. - ]. - v destroy. - ^ self. - -"/ OLD code: -"/ (wasClipped := clipChildren) ifTrue:[ -"/ self clippedByChildren:(clipChildren := false). +"/ "/ new: simply create a little view ontop, +"/ "/ and move it over the handles. This will generate +"/ "/ the required expose events automatically. +"/ "/ mhmh - does not work correctly with inverted frame (exposes destroy it) +"/ +"/ v := SimpleView in:self. +"/ self handlesOf:aComponent do:[:rec :wht | +"/ r isNil +"/ ifTrue:[r := rec] +"/ ifFalse:[r := r merge:rec]. "/ ]. "/ -"/ self handlesOf:aComponent do:[:rec :wht| self clearRectangle:rec ]. -"/ -"/ wasClipped ifTrue:[ -"/ self clippedByChildren:(clipChildren := true). +"/ "/ if the area is small, make one big rectangle-expose +"/ r area < 10000 ifTrue:[ +"/ v origin:r origin extent:r extent. +"/ v map. +"/ v unmap. +"/ ] ifFalse:[ +"/ self handlesOf:aComponent do:[:rec :wht | +"/ v origin:rec origin extent:rec extent. +"/ v map. +"/ v unmap. +"/ ]. "/ ]. -"/ -"/ "/ must redraw all components which are affected b the handles -"/ r := (aComponent originRelativeTo:self) - (3@3) extent:(aComponent extent + (6@6)). -"/ -"/ subViews do:[:anotherComponent | -"/ |absOrg absFrame| -"/ -"/ anotherComponent ~~ inputView ifTrue:[ -"/ absOrg := anotherComponent originRelativeTo:self. -"/ absFrame := absOrg extent:(anotherComponent extent). -"/ (absFrame intersects:r) ifTrue:[ -"/ anotherComponent withAllSubViewsDo:[:v | -"/ v shown ifTrue:[ -"/ aSet notNil ifTrue:[ -"/ aSet add:v -"/ ] ifFalse:[ -"/ self handleAffectedViews:v -"/ ] -"/ ] -"/ ] -"/ ] -"/ ] -"/ ]. +"/ v destroy. +"/ ^ self. + + (wasClipped := clipChildren) ifTrue:[ + self clippedByChildren:(clipChildren := false). + ]. + + self handlesOf:aComponent do:[:rec :wht| self clearRectangle:rec ]. + + wasClipped ifTrue:[ + self clippedByChildren:(clipChildren := true). + ]. + + "/ must redraw all components which are affected b the handles + r := (aComponent originRelativeTo:self) - (3@3) extent:(aComponent extent + (6@6)). + + subViews do:[:anotherComponent | + |absOrg absFrame| + + anotherComponent ~~ inputView ifTrue:[ + absOrg := anotherComponent originRelativeTo:self. + absFrame := absOrg extent:(anotherComponent extent). + (absFrame intersects:r) ifTrue:[ + anotherComponent withAllSubViewsDo:[:v | + v shown ifTrue:[ + aSet notNil ifTrue:[ + aSet add:v + ] ifFalse:[ + self handleAffectedViews:v + ] + ] + ] + ] + ] + ]. "Modified: / 24.8.1998 / 12:19:38 / cg" !