salut
je viens de jeter un oeil, et ca a l'aie interessant.
je suis assez d'accord avec le début : "... I simply couldn't ... predictably control layout of morphs...." : entre les evénements layoutChanged, les changements de focus, les paramèters divers (autofit, autowrap etc) + les imbrications de morphs et de layout, c'est pas trop étanche tout ca... par exple ds un écran j'ai un champ qui fait de la saisie à l'envers, mais pas toujours - on va dire 3 fois sur 4- et pas s'il remplit entièrement son morph parent (et j'ai essayé un paquet de combinaisons de layout, resizing rigid, shrinkwrap etc). apparemmetn le curseur se remet au début du champ lors du layout, à cause de ??? qui entrainerait une perte (temporaire) de focus... bref pas très pratique hein.
merci pour le tuyau
A+
"ducasse" ducasse@iam.unibe.ch a écrit dans le message de news: D1903E08-F376-11D7-A767-000A9573EAE2@iam.unibe.ch... 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@
"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@
extent: 0.25@)). ]. ].
t openInWorld.
"Alexandre Benoit" alexandre.benoit139ZsbGIQGT5GWvitb5QawA@public.gmane.org a écrit dans le message de news: 3F71EE21.10605019ZsbGIQGT40+RUStk7vmg@public.gmane.org
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.
- Une matrice de cases noires ou blanches.
- 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œ51WKytQuJI8mQ4nJOOf3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org http://lists.squeakfoundation.org/listinfo/squeak-fr