Cyrille I tried to understand what you need because minExtent seems to returns the minimum size that is required to display a morph. I tried your example and open the two morphs and everything looks fine. Did you check the implementation of minExtent because may be you can use it as a basis for optimalExtent?
Stef On May 30, 2011, at 1:50 PM, Cyrille Delaunay wrote: > 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 <[email protected]> > 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 > To: pharo-project > 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? > >
