Curl Global Community

Full Version: オブジェクトの選択
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
VBox 内の複数のFrameをマウスで選択させたいと思っています。
スケジューラーなどにあるタイムラインのようなイメージです。

DiscreteGraphicSelectionFrame を利用すれば簡単に実装できること思いますが、
マウスの範囲選択線を表示させないようにすることは可能でしょうか。

また、選択されたFrameは、GraphicSelectableDrawStyleで指定できる mask や、 invert ではなく、
特定の色(青色を想定)に塗りつぶしたいです。
もちろん、この色は、選択を解除されたら、元の色(白色を想定)に戻したいです。

よい方法があれば教えてください。

以前ちょっとした検証で似たようなものを作ってみようとしたのですが、
イベントのハンドリングが想像以上に複雑で挫折しました。。。

そのうちVer8でマウスジェスチャーが実装されると聞き、
それで出来るようになるかと思ったのですが、
OS依存のためXPなどでは出来ないようですね。


開発中途で申し訳ないのですが、
参考までに途中まで作成したサンプルを添付します。
もしお役に立つのであればご参照ください。
overdraw-selection メソッドのオーバーライドをすることでマウスの選択線を消すことができました。

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 さんのコードも別途参考にさせていただきます。
ありがとうございました。