言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

レイアウトマネージャを利用したツリー表示

問題点: サブモルフのレイアウトが反映されない。
原因: 親モルフをレイアウトする前にサブモルフのサイズを確定する必要があるが、その際にサブモルフをレイアウトしておかなくてはならなかった。
解決: レイアウト時明示的にサブモルフの fullBounds を呼ぶ。(無限ループにならないかちょっと心配)

レイアウト実行の流れ。
レイアウトが変わったとき(Morph>>position: メソッドなど) self layoutChanged が呼ばれる。これは実際にはレイアウト変更のトリガではなく、変更して欲しいという事を覚えておく為の物(動作としては変数 fullBounds を nil にする)。
描画時 fullBounds で実際にレイアウトルーチン LayoutPolicy>>layout:in: が呼ばれる。
cellInset は Point でも 整数でも良い(そんなんアリか??)