言語ゲーム

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

Twitter: @propella

Tweak でツールがメニューから現れるまでの流れ。

Tweak では、何かと複雑化していて、ただウインドウを出すだけでも openInWorld 一発というわけには行かない。特にメニューからウインドウを出す動作はややこしいので調べてみた。

CProjectBuilder>>newWorldMenu メニューの定義

例えばワークスペースを開く場合、メニュイーの動作をシミュレートする式はこうなる。

CProjectBuilder allInstances last
    openTool: (MessageSend receiver: CWorkspace selector: #open)

#openTool: の中で CDragMaker が作成される。

CDragMaker>>onMouseDown の中でツールが生成される