ページ

2008年5月1日木曜日

rubberBand(その15)縦横比率を維持したままリサイズ(その2)

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

縦横比を維持しながらのリサイズの続き。

そもそもマウスカーソルを自由に動かせるから不自然な動きになってしまうのでは?
縦横比によって決まる傾きに沿ってのみカーソルが動くようにすれば不自然感はなくなるのではないか?



参考のためエクセルがどういう動きになっているかを調べてみた。


エクセルでもマウスカーソルの動きに制限を加えていた。エクセルでシフトキーを押しながらリサイズをするとマウスカーソルは矢印の範囲でしか動かない(この説明では分かりづらいと思うのでエクセルを持っている人は試してみて下さい)。やっぱりそうなるのか。


方式はともかくマウスカーソルの動きに制約を加えることにする。マウスカーソルの位置を指定する関数が CGDirectDisplay.h にある。

CGDisplayMoveCursorToPoint(CGDirectDisplayID display, CGPoint point);


- - - -
まずはこの関数を使いマウスカーソル位置の固定を試してみた。
ところが NSView はフリップしている(Y座標系が反転している)のでマウスの Y位置が意図通りの場所にならない。
うーむ。