[Squeak-ja: 4540] Re: How to BlockerMorph

Kazuki Minamitani ka.minami @ nifty.com
2011年 4月 28日 (木) 16:52:34 JST


南谷です。
昨日はお疲れ様でした。

表示での誤魔化しではありますが、以下のようにするのはいかがでしょうか?

1. BlockerMorphへのMouseEnter時の処理
  マウスカーソルを隠す
  BlockerMorphの外周に、ダミーのカーソル型Morphを貼り付ける

2. BlockerMorphからのMouseLeave時の処理
  マウスカーソルを表示
  ダミーのカーソル型Morphを取り除く

3. BlockerMorphは、MouseEnter、MouseLeave以外の入力イベントを無視する



2011年4月28日8:20 Tomohiro Oda <tomohiro @ sra.co.jp>:
> おだです。
>
> 昨晩のSmalltalk勉強会でHandMorphの位置の変更について聞きましたが、
> この件について、ひき続きご相談させていただきたいと思います。
>
> 私がしたいことは、bounds内にマウスカーソルが入ってくることを阻止
> する、BlockerMorph(仮称)を作ることです。
>
> 例えば、通常のUIでボタンを使えなくするためにはdisableします。
> しかし、それでは使う人にとっては、「ボタンを押したのに動かない」
> ということになります。disableはマウスを使ったGUIに慣れた人の常識
> であって、現実世界のボタンで押しても動かなければ、「壊れてる?」
> と思われてしまうでしょう。
>
> 現実世界のボタンを使えなくするには、物理的にプラスチックカバーで
> 囲って、「そこにボタンがあるのはわかるが押すことができない。押すには
> カバーを開けたり破ったりする必要がある。」ことが直感的にわかるように
> なっています。
>
> そんな、プラスチックカバーに相当するMorphとして、BlockerMorphを
> 作りたいのです。そのためには、aHandMorph position: aPointでは
> 不足しているようです。直感的には、HandMorphを通して、OS側にマウス
> 位置を知らせる手段が必要だと思います。
>
> 以上、ご助言いただければ幸いです。
> ---
> おだ
>

-- 
Kazuki Minamitani
ka.minami @ nifty.com


Squeak-ja メーリングリストの案内