Indeed #minExtent give something interesting according the 'resizing strategy' of the submorphs (#rigid #spaceFill #shrinkWrap). If resizing of submorphs are #rigid, it works well. For example :
� ��|tmpPanelMorph|
� � tmpPanelMorph := PanelMorph new changeTableLayout;hResizing: #shrinkWrap;
vResizing: #shrinkWrap; listDirection: #leftToRight; yourself.�
� � tmpPanelMorph addMorphBack: (�
(PluggableListMorph�
on: (ListModel new list: #(adededed ) ;yourself)�
list: #list
selected: #selectionIndex�
changeSelected: #selectionIndex: ) hResizing: �#rigid; vResizing: �#rigid ; yourself) �.
� � �tmpPanelMorph addMorphBack: (�
(PluggableListMorph�
on: (ListModel new list: #(a b c d e f g �h i j �k l m n ) ;yourself)�
list: #list
selected: #selectionIndex�
changeSelected: #selectionIndex: ) hResizing: �#rigid; vResizing: �#rigid ; yourself).
� � � � tmpPanelMorph minExtent.
The minExtent is 'correct'. Now if you try with:
� �|tmpPanelMorph|
� �tmpPanelMorph := PanelMorph new changeTableLayout;hResizing: #shrinkWrap;
vResizing: #shrinkWrap; listDirection: #leftToRight; yourself.�
� �tmpPanelMorph addMorphBack: (�
(PluggableListMorph�
on: (ListModel new list: #(adededed ) ;yourself)�
list: #list
selected: #selectionIndex�
changeSelected: #selectionIndex: ) hResizing: �#spaceFill; vResizing: �#spaceFill ; yourself) �.
� �tmpPanelMorph addMorphBack: (�
(PluggableListMorph�
on: (ListModel new list: #(a b c d e f g �h i j �k l m n ) ;yourself)�
list: #list
selected: #selectionIndex�
changeSelected: #selectionIndex: ) hResizing: �#spaceFill; vResizing: �#spaceFill ; yourself).
� � tmpPanelMorph minExtent.
It answers something smaller. So I don't know if it would make sense to be able to retreive the same extent whatever the 'extending stratgies' of the submorphs ? Maybe another method that would always return this value (optimalExtent like you said) ?
2011/5/23 Gary Chambers
<gazzaguru2@btinternet.com>
Try #minExtent, though that won't cater for things
with scrollbars.
Perhaps worth re-implementing #optimalExtent to
deal with those.
Regards, Gary
----- Original Message -----
Sent: Friday, May 20, 2011 2:34 PM
Subject: [Pharo-project] How to know
'real' extent of a PanelMorph
Hello,
I have a panelMorph composed by several row/columns with different kind
of morphs.
What I would like to know is, what is the extent / size that I should use
to FULLY display this panel (without scrollbars).�
Each time I ask for the extent of a panelMorph, it answers
50@40, whatever what is inside. If you openInWorld you
will have something very very small.
Is there a way to retrieve an extent with which the panel morph will be
'well' displayed (without having scrollbars everywhere)?
In other words, what I really want to know is:
Given two panelMorph, is there a way to say that one need more place than
the other to be displayed?