|
11-02-09 / 23:37 : Cappuccino : layout automatique et récursive (cjed) | Un des (très nombreux) intérêts de Cappuccino pour la création d'interfaces (en plus d'Interface Builder, du binding dynamique/chaîne de délégation, des combinaisons de composants non figées, de la spécialisation sans héritage - par délégation -, du degré d'abstraction) est la gestion automatique des layouts (tutorial posté il y a deux mois). Contrairement aux bibliothèques de tags JSP (incluant JSF) et composants Java/Swing, l'AppKit de Cappuccino (comme en Cocoa) gère automatiquement la répartition des composants au niveau du container parent. Il suffit de préciser pour les composants inclus les comportements souhaités (contraintes), par un masque de propriétés (via la méthode setAutoresizingMask) : CPViewWidthSizable, CPViewHeightSizable, CPViewMinXMargin, CPViewMaxXMargin, CPViewMinYMargin, CPViewMaxYMargin. La vue parent s'occupe alors automatiquement du placement, de manière récursive (en parcourant l'arbre des vues si plusieurs niveaux).
Dans une thread récente, un utilisateur expliquait d'ailleurs :
Thankfully "layout managers" are a dopey Java-like paradigm that Cocoa
avoids. Cocoa pretty much has one (fairly sensible) layout paradigm. If you look at the 6 layout-related attributes that you can set on any view in IB, these translate directly to flags that you can set on any view's setAutoresizingMask: method from code. Views tell their parent which edges they want to be anchored to and which directions they wish their size to be expanded in. CPView figures out the rest
"automagically" when it lays out its subview. | | Commentaires | Poster un commentaire | |
|