ドラッグ中のポインタの座標が知りたい

画面上の任意の点の色を取得するアレ。

今は公開されてないっぽい色目ちゃんのように、色を取得したい点までアイコンをドラッグしていって、適当なところでドラッグをやめて、その点の色を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ならできるのかな?