Tricky...Just an experiment, but try the following after filing in attached change set.
Can make the re-proportioning explicit and maybe fix things to constrain to the owner morph if interested...
| container morph1 morph2 morph3 ex1 ex2 ex3 sp1 sp2|
morph1 := (PanelMorph new fillStyle: (SolidFillStyle color: Color red))
hResizing: #spaceFill;
vResizing: #spaceFill.
morph2 := (PanelMorph new fillStyle: (SolidFillStyle color: Color blue))
hResizing: #spaceFill;
vResizing: #spaceFill.
morph3 := (PanelMorph new fillStyle: (SolidFillStyle color: Color yellow))
hResizing: #spaceFill;
vResizing: #spaceFill.
ex1 := (UITheme builder newExpander: 'Red' for: morph1)
expanded: true.
ex2 := (UITheme builder newExpander: 'Blue' for: morph2)
expanded: true.
ex3 := (UITheme builder newExpander: 'Yellow' for: morph3)
expanded: true.
sp1 := EdgeGripMorph new
target: ex1;
edgeName: #bottom;
vResizing: #rigid;
extent: 24 @ ProportionalSplitterMorph splitterWidth;
on: #mouseDown send: #expandedSizingRigid to: ex1.
sp2 := EdgeGripMorph new
target: ex2;
edgeName: #bottom;
vResizing: #rigid;
extent: 24 @ ProportionalSplitterMorph splitterWidth;
on: #mouseDown send: #expandedSizingRigid to: ex2.
container := UITheme builder newColumn: {
ex1.
sp1.
ex2.
sp2.
ex3}.
container cellInset: 0.
container extent: 400@400.
container openInWindow.
Have a play/fun.
Regards, Gary
----- Original Message -----
From: "Tudor Girba" <[email protected]>
To: "[email protected] Development"
<[email protected]>
Sent: Friday, January 21, 2011 11:18 PM Subject: [Pharo-project] collapsing panes Hi,I have a question about how to obtain an effect similar to minimizing a pane in Eclipse. Let's consider the example from below. I have a ProportionalLayout because I want to fill the entire space and be able to resize the inside panes. Now, I would also like to have some way of collapsing one of the panes and have the rest resize to fill the rest of the space. It's a bit like I would need some part of a behavior from the TableLayout.
Can anyone provide me with some hints in this direction? Do I need to create a new Layout?
| container morph1 morph2 morph3 window | container := PanelMorph new. morph1 := PanelMorph new fillStyle: (SolidFillStyle color: Color red). morph2 := PanelMorph new fillStyle: (SolidFillStyle color: Color blue). morph3 := PanelMorph new fillStyle: (SolidFillStyle color: Color yellow). container changeProportionalLayout.container addMorph: morph1 fullFrame: (LayoutFrame fractions: (0 @ 0 corner: 1 @ 0.33)). container addMorph: morph2 fullFrame: (LayoutFrame fractions: (0 @ 0.33 corner: 1 @ 0.66)). container addMorph: morph3 fullFrame: (LayoutFrame fractions: (0 @ 0.66 corner: 1 @ 1)).
container addPaneSplitters. container fillStyle: (SolidFillStyle color: Color yellow). container extent: 400@400. container openInWindow. Cheers, Doru -- www.tudorgirba.com "Be rather willing to give than demanding to get."
ExpanderTweak.1.cs
Description: Binary data
