ドラッグ中のポインタの座標が知りたい
画面上の任意の点の色を取得するアレ。
今は公開されてないっぽい色目ちゃんのように、色を取得したい点までアイコンをドラッグしていって、適当なところでドラッグをやめて、その点の色をNSReadPixel()で取得、ってのが概要。
ドラッグし始めるのは、mouseDown:からdragImage:at:offset:event:pasteboard:source:slideBack:を使えばいい。だけど、これだけじゃドラッグ中の位置情報は得られないっぽい。ドラッグの終点の座標は、mouseUp:でNSEventのlocationInWindowから取得できるかもだけど。
NSDraggingDestinationなるプロトコルにdraggingUpdated:なんてのがあるけど、これはドラッグされてるもの(この場合はアイコン)がその領域中あるビューに実装すべきものであって、アイコンをコントロールする側のアプリケーションのウィンドウに実装しても意味が無い。
mouseDragged:かなー。でもできなかったような。
とりあえず自由形状のウインドウを作ろうというページを見つけたので、今からやってみる。
dragImage:at:offset:pasteboard:source:slideback と mouseDragged: はやっぱ連動しない。まぁデータをどっかに移すわけではないので、mouseDragged: で常にアイコンを描画するようにしてみる。slidebackが使えないのはちょっと残念かも。
っていうかそもそもNSReadPixel()の引数はスクリーン座標系でのNSPointじゃない。Cocoaじゃ無理?Carbonならできるのかな?