Curl Global Community
オブジェクトの選択 - Printable Version

+- Curl Global Community (https://communities.curl.com)
+-- Forum: Discussions (https://communities.curl.com/forumdisplay.php?fid=1)
+--- Forum: General Curl questions (https://communities.curl.com/forumdisplay.php?fid=2)
+--- Thread: オブジェクトの選択 (/showthread.php?tid=280)



オブジェクトの選択 - umemura - 09-16-2011

VBox 内の複数のFrameをマウスで選択させたいと思っています。
スケジューラーなどにあるタイムラインのようなイメージです。

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

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

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



RE: オブジェクトの選択 - nmyzk - 09-16-2011


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

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


開発中途で申し訳ないのですが、
参考までに途中まで作成したサンプルを添付します。
もしお役に立つのであればご参照ください。



RE: オブジェクトの選択 - umemura - 09-16-2011

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