[Squeak-fr] Re: [TableLayout] Peut-on faire des tableaux avec ce Layout ?

ducasse ducasse at iam.unibe.ch
Mar 30 Sep 21:49:27 CEST 2003


salut alain

as-tu regarde le package (en cours) nomme Brick developpe par todd 
blanchar?
Il a un modele inspire de NextStep. Je n'ai jamais joue avec.

Stef

On Mardi, sep 30, 2003, at 20:27 Europe/Zurich, ALR wrote:

> Salut
>
> (Chantal) la désous  un bout de code si ca peut t'aider  :o)
> Mets le ds un wokspace, selectionne en entier (C-A)  et évalues.
>
> Le TableLayout ne peut pas garantir la même taille pour toutes les 
> lignes,
> le layout
> proportionnel est mieux pour cela.
>
> Est cequ'y a qqu'un qui a écrit-refléchit-..??##**..- sur un layout 
> plus
> sioux, style gridbalyout de java (mais en + simple :-))
> qui éviterait d'imbriquer douze millions de layouts et morphs pour 
> faire un
> écran de saisie à 10 champs?
>
>
> cordialement,
> Alain
>
>
>
> | t |
> " le morph principal rectangulaire, arrangé avec un tablelayout de 
> haut vers
> le bas.
> le resizing est #spaceFill pour occuper tt l'espace du morph"
> t _ RectangleMorph new beTransparent ; borderWidth: 0;
>  layoutPolicy: TableLayout new; hResizing: #spaceFill; vResizing:
> #spaceFill;
>  listDirection: #topToBottom ; cellPositioning: #topLeft ; 
> extent:200 at 150.
>
> "Ajouter 4 lignes"
> 1 to: 4 do: [ :l | | r |
>
>  "la ligne est un morph arrangé avec un layout proportionel, les 
> cellules
> seront
>  ajoutées avec un LayoutFrame qui indiquera la position ds la ligne : 
> 1/4 en
> largeur, 1 en hauteur"
>  r _ RectangleMorph new beTransparent ;  borderWidth: 0;
>    layoutPolicy: ProportionalLayout new ;
>    hResizing: #spaceFill ; vResizing: #spaceFill.
>
>  " ajout de la ligne au tableau"
>  t addMorphBack: r.
>
>  " ajout de 4 cellules à la ligne"
>  1 to: 4 do: [ :c | | cell text string |
>
>   " la cellule a un layout proportionnel pour pouvoir centrer le texte 
> (tip
> NedKonz)"
>   cell _ RectangleMorph new borderWidth: 1 ; layoutPolicy:
> ProportionalLayout new ;
>        borderStyle: (BorderStyle raised width: 2).
>   string _ ''.
>   (l = 1 and: [ c = 1 ]) ifTrue: [ string _ 'x'].
>   (l = 1 and: [ c > 1 ]) ifTrue: [ string _ 'e', c asString ].
>   (l > 1 and: [ c = 1 ]) ifTrue: [ string _ 'e', (l + 2) asString ].
>   text _ StringMorph new contents: string.
>
>   " le textmorph est ajouté à la cellule, centré en lui donnant un 
> offset
> égal à la moité
>   de la largeur et hauteur du texte"
>   cell addMorph: text fullFrame: (LayoutFrame new leftFraction: 0.5 
> offset:
> text width // -2 ;
>           topFraction: 0.5 offset: text height // -2 ).
>
>   "Ajoute la cellule à la ligne, occupe 1/4 (0.25) de largeur de la 
> ligne et
> hauteur 1 (100%)"
>   r addMorph: cell fullFrame: (LayoutFrame fractions: (c-1*0.25 at 0 
> extent:
> 0.25 at 1)).
>  ].
> ].
>
> t openInWorld.
>
>
> "Alexandre Benoit"
> <alexandre.benoit13 at wanadoo.fr> a écrit dans le
> message de news: 3F71EE21.1060501 at wanadoo.fr...
>>     Bonjour,
>> Je sais utiliser TableLayout pour aligner verticalement ou
>> horizontalement des Morphs.
>> Mais est-il possible de créer un tableau de Morph autrement qu'en
>> alignant verticalement des Morphs qui sont eux-mêmes des alignements
>> horizontaux de Morph ?
>> Je pose la question par ce que pour moi ça revient pas au même. 
>> J'essaye
>> de coder un jeu de logigramme où l'écran est divisé en trois parties.
>> 1) Une matrice de cases noires ou blanches.
>> 2) Une zone d'énoncé au dessus de la matrice avec un énoncé pour 
>> chaque
>> colonne.
>> 3) Une zone d'énoncé à gauche de la matrice avec un énoncé par ligne.
>> Les problèmes c'est qu'il faut mettre les énoncés bien en regard avec 
>> la
>> matrice. En plus en haut à gauche il y a une zone vide qui décale 
>> tout.
>> Schéma :
>> =======
>> Vide e1 e2 e3
>>     e4  x    x    x
>>     e5  x    x    x
>>     e6  x    x    x
>> Si je fais un alignement vertical d'alignements horizontaux j'aurai du
>> mal à faire coïncidé e1 e2 et e3 avec leurs colonnes respectives.
>> Si je fais un alignement horizontal d'alignements verticaux j'aurai du
>> mal à faire coïncidé e4 e5 et e6 avec leurs lignes respectives.
>>
>> Avez-vous une suggestion à me faire ?
>> Remarque j'ai pas envie d'utiliser un truc rigide avec placement "à la
>> main" des sous Morphs comme dans MinesBoard>>adjustTiles par ce que ça
>> supprime la possibilité de tout redimensionné en redimensionnant le
>> Morph par exemple à l'aide du halo.
>> Peut-être ma solution c'est le ProportionnalLayout, mais je connais 
>> pas
>> bien ce Layout les tutoriaux parlent surtout de l'autre.
>>
>> Merci de vos suggestions
>
>
>
> _______________________________________________
> Squeak-fr mailing list
> Squeak-fr at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/listinfo/squeak-fr



Plus d'informations sur la liste de diffusion Squeak-fr