[Q][morphic] Collapsing menus. Was: how to hide submorphs

Ned Konz ned at bike-nomad.com
Tue Apr 30 19:13:43 UTC 2002


On Tuesday 30 April 2002 12:08 pm, Martin Drautzburg wrote:
> I tried the code below, but #clipSubmorphs: true still lets me drag
> the owner morph from the invisible rectangle below. If I adjust
> fullBounds to bounds I can no longer grab, but I have trouble
> getting the hidden morph repainted after an #expand. 

Normally, the fullBounds is what is repainted.

I'd recommend not having visible submorphs outside your fullBounds. 
Actually, I'd recommend not having submorphs at all outside your 
fullBounds.

> Sending a self
> changed from an inspector does repaint it but the same message in
> the #expand method seems to have no effect.
>
> I may be completely on the wrong track ... how would *you* collapse
> a menu ?

You can just override drawOn: to only draw the collapsed view when 
collapsed, otherwise call super drawOn: for drawing the whole thing.

drawOn: aCanvas
self isCollapsed ifTrue: [ aCanvas fillRectangle: (self position 
extent: 20 at 20) color: Color green "or whatever you want to draw for 
collapsed" ]
ifFalse: [ ^super drawOn: aCanvas ].

You may also want to override fullBounds to be sensitive to your 
collapsed state (otherwise you'll be asked to redraw when it's not 
strictly necessary).

-- 
Ned Konz
http://bike-nomad.com
GPG key ID: BEEA7EFE




More information about the Squeak-dev mailing list