VBox 内の複数のFrameをマウスで選択させたいと思っています。
スケジューラーなどにあるタイムラインのようなイメージです。
DiscreteGraphicSelectionFrame を利用すれば簡単に実装できること思いますが、
マウスの範囲選択線を表示させないようにすることは可能でしょうか。
また、選択されたFrameは、GraphicSelectableDrawStyleで指定できる mask や、 invert ではなく、
特定の色(青色を想定)に塗りつぶしたいです。
もちろん、この色は、選択を解除されたら、元の色(白色を想定)に戻したいです。
よい方法があれば教えてください。
オブジェクトの選択
以前ちょっとした検証で似たようなものを作ってみようとしたのですが、
イベントのハンドリングが想像以上に複雑で挫折しました。。。
そのうちVer8でマウスジェスチャーが実装されると聞き、
それで出来るようになるかと思ったのですが、
OS依存のためXPなどでは出来ないようですね。
開発中途で申し訳ないのですが、
参考までに途中まで作成したサンプルを添付します。
もしお役に立つのであればご参照ください。
overdraw-selection メソッドのオーバーライドをすることでマウスの選択線を消すことができました。
nmyzk さんのコードも別途参考にさせていただきます。
ありがとうございました。
Code:
{define-class public CustomDiscreteGraphicSelectionFrame {inherits DiscreteGraphicSelectionFrame}
{constructor public {default ...}
{construct-super ...}
}
{method public {overdraw-selection g:Graphic, gc:Renderer2d}:void
{if g != self then
{super.overdraw-selection g, gc}
}
}
}nmyzk さんのコードも別途参考にさせていただきます。
ありがとうございました。