らんだむな記憶

blogというものを体験してみようか!的なー

My Select Tool

GlyphsSDK/Python Templates/SelectTool at master · schriftgestalt/GlyphsSDK · GitHubの標準の Select Tool を拡張した My Select Tool について軽くstudyした。
GlyphsSDK/plugins.py at master · schriftgestalt/GlyphsSDK · GitHubを読み込むとプラグインプロトコルについて分かるのだが、

class SelectTool (GSToolSelect):

について今回興味がある。
特に

def addMenuItemsForEvent_toMenu_(self, theEvent, theMenu):

の実装にある conditionalContextMenus の呼び出しが気になった。
これはいつ呼ばれるのだろうか?
というの部分は簡単で、ツールを選択している状態で右クリックメニューを呼び出した時に、メインクラスに conditionalContextMenus が定義されていれば呼び出される。
問題は My Select Tool において何も変化が見られないように感じたことだ。いわゆる printfデバッグ をしてみたところ、選択されたノードの個数が1つでそのタイプが GSAnchor の時に何か起こるようだ。GSAnchorType Constants Referenceを見てもよく分からん。プラグインの紹介ページの絵を見るとなんとなくダイアクリティカルマークの基点のような感じがする。ってことで試すとビンゴ。
その基点のポイントを選択した状態で右クリックメニューを呼び出すと Randomly move anchorコンテキストメニュー内に追加された。これを選択すると基点が上下左右50unitの範囲でランダムにどこかに移動する、という内容だった。