Pharo 1.4 summer でのテスト。スクリーンショットを使用して説明する方がよいと思います。コードは以下のとおりです。
これは私の初期状態です (私のコードで今得ているもの):
次のように、グループ ボックス モーフを開いたときに水平方向に塗りつぶします。
サイズ変更後、グループ ボックスのモーフが境界を維持するようにします。つまり、次のようになります。
これは私が試したコードです:
| s morph1 morph2 row groupBox scroller |
s := ScrollPane new.
morph1 := BorderedMorph new.
morph2 := BorderedMorph new.
row := UITheme builder newRow: {morph1 . morph2}.
groupBox := UITheme builder newGroupbox: 'Group Box Test' for: row.
groupBox
layoutFrame: (LayoutFrame fractions: (0 @ 0 corner: 1 @ 0.8));
vResizing: #spaceFill;
hResizing: #spaceFill;
layoutChanged.
scroller := s scroller.
scroller
addMorph: (groupBox position: 0@0)
fullFrame: (0 @ 0 corner: 0.8@0.5).
s scroller color: Color white.
s
extent: 250@150;
openCenteredInWorld
コンテナーは ScrollPane でなければなりません。
ポリモーフ UIBuilder を使用しないように Bert のコードを調整した結果、次のようになりました。
morph1 := Morph new.
morph2 := Morph new.
row := ScrollPane new.
row
color: Color white; borderColor: Color gray; borderWidth: 1;
layoutPolicy: ProportionalLayout new.
row scroller
addMorph: morph1 fullFrame: (LayoutFrame fractions: (0@0 corner: 1@0) offsets: (5@5 corner: -60@45));
addMorph: morph2 fullFrame: (LayoutFrame fractions: (1@0 corner: 1@0) offsets: (-50@5 corner: -5@45)).
row
extent: 250@150;
openInHand
内側の青いモーフが重なっていて、指定されたフレームを埋めていないため、機能しません。フレームを使用して多くの組み合わせを試しましたが、これまでのところ何も機能しませんでした。私が欠けているものを知っていますか?