[Squeak-fr] Re: Positionnement des morphs : Layout et compagnie

Alain Plantec alain.plantec at univ-brest.fr
Ven 21 Juil 14:43:40 UTC 2006


Bonjour,
je pense avoir trouvé mieux finalement, j'ai complété la FAQ sur ofset avec :

on peut utiliser Morph>>#layoutInset: et Morph>>#cellInset: : 
ces deux méthodes prennent un point en argument pour spécifier l'espace horizontal et vertical; 
#layoutInset: est pour l'espace intérieur du conteneur 
#cellInset: est pour l'espace intérieur entre les morphs contenus 

   | conteneur rect1 rect2 rect3 |
   conteneur := AlignmentMorph newRow 
   color: Color black;
   layoutInset: 50 @ 0;
   cellInset: 50 @ 0;
   hResizing: #shrinkWrap;
   vResizing: #shrinkWrap.
   rect1 := RectangleMorph new  extent: 50 @ 20; color: Color red.
   rect2 := RectangleMorph new extent: 50 @ 20; color: Color blue.
   rect3 := RectangleMorph new extent: 50 @ 20; color: Color green.
   conteneur 
      addMorph:  rect1 ;
      addMorph: rect2;
      addMorph: rect3;
      openInWorld.

C'est mieux car on évite l'utilisation d'un morph fantôme et c'est paramétrable en x et y.
Il faut un morph conteneur avec un TableLayout.

alain

FERRERE Frédéric a écrit : 
> Bonjour,
>
> Une petite question sur le positionnement des morphs.
>
> Je souhaite placer 3 morphs en ligne dans un morph plus grand (un
> tableau à 3 colonnes),
> de telle sorte que l'espace entre les morphs et les bordures soient égaux.
>
> La seule manière que j'ai trouvé pour réaliser ce placement est
> d'utiliser 4 morph "espace".
> Cette technique donne le résultat escompté mais existe t'il un moyen
> d'arriver  au même résultat
> sans utiliser ces morphs supplémentaires ?
>
> Merci.
>
> | contener rect1 rect2 rect3 space1 space2 space3 space4 |
>
>     contener := Morph new
>                     extent: 300 at 300;
>                     color: Color black;
>                     layoutPolicy: (TableLayout new);
>                     listDirection: #leftToRight;
>                     listCentering: #justified;
>                     wrapCentering: #center.
>
>     space1 := Morph new
>                 hResizing: #spaceFill;
>                 color: Color transparent.
>     space2 := Morph new
>                 hResizing: #spaceFill;
>                 color: Color transparent.
>     space3 := Morph new
>                 hResizing: #spaceFill;
>                 color: Color transparent.
>     space4 := Morph new
>                 hResizing: #spaceFill;
>                 color: Color transparent.
>
>     rect1 := RectangleMorph new
>                     extent: 50 at 20;
>                     color: Color red.
>     rect2 := RectangleMorph new
>                     extent: 50 at 20;
>                     color: Color blue.
>     rect3 := RectangleMorph new
>                     extent: 50 at 20;
>                     color: Color green.
>
>     contener addMorph: space1;
>             addMorph: rect1 ;
>             addMorph: space2;
>             addMorph: rect2;
>             addMorph: space3;
>             addMorph: rect3;
>             addMorph: space4;
>             openInWorld.
>
>
> Cordialement,
>
> --
> Frédéric


More information about the Squeak-fr mailing list