南谷です。
昨日はお疲れ様でした。
表示での誤魔化しではありますが、以下のようにするのはいかがでしょうか?
1. BlockerMorphへのMouseEnter時の処理
マウスカーソルを隠す
BlockerMorphの外周に、ダミーのカーソル型Morphを貼り付ける
2. BlockerMorphからのMouseLeave時の処理
マウスカーソルを表示
ダミーのカーソル型Morphを取り除く
3. BlockerMorphは、MouseEnter、MouseLeave以外の入力イベントを無視する
2011年4月28日8:20 Tomohiro Oda <
[hidden email]>:
> おだです。
>
> 昨晩のSmalltalk勉強会でHandMorphの位置の変更について聞きましたが、
> この件について、ひき続きご相談させていただきたいと思います。
>
> 私がしたいことは、bounds内にマウスカーソルが入ってくることを阻止
> する、BlockerMorph(仮称)を作ることです。
>
> 例えば、通常のUIでボタンを使えなくするためにはdisableします。
> しかし、それでは使う人にとっては、「ボタンを押したのに動かない」
> ということになります。disableはマウスを使ったGUIに慣れた人の常識
> であって、現実世界のボタンで押しても動かなければ、「壊れてる?」
> と思われてしまうでしょう。
>
> 現実世界のボタンを使えなくするには、物理的にプラスチックカバーで
> 囲って、「そこにボタンがあるのはわかるが押すことができない。押すには
> カバーを開けたり破ったりする必要がある。」ことが直感的にわかるように
> なっています。
>
> そんな、プラスチックカバーに相当するMorphとして、BlockerMorphを
> 作りたいのです。そのためには、aHandMorph position: aPointでは
> 不足しているようです。直感的には、HandMorphを通して、OS側にマウス
> 位置を知らせる手段が必要だと思います。
>
> 以上、ご助言いただければ幸いです。
> ---
> おだ
>
--
Kazuki Minamitani
[hidden email]