[Pharo-project] How to know 'real' extent of a PanelMorph

Cyrille Delaunay cy.delaunay at gmail.com
Mon May 30 13:50:10 CEST 2011


Thanks gary.
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 at 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 -----
> *From:* Cyrille Delaunay <cy.delaunay at gmail.com>
> *To:* pharo-project <Pharo-project at lists.gforge.inria.fr>
> *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 at 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?
>
>
-------------- section suivante --------------
Une pi?ce jointe HTML a ?t? nettoy?e...
URL: <http://lists.gforge.inria.fr/pipermail/pharo-project/attachments/20110530/6231992e/attachment.htm>


More information about the Pharo-project mailing list