February 12, 2007

quartzcomposer+cocoa フルスクリーン.app part4

Written by noriko matsumoto | Cocoa

qtviewをのせたwindowをマウスで移動させる方法です。
今のままフルスクリーンにしてもデュアルモニタにした画面に持っていけないので、操作ができなくなってしまい不便です。
そのため、qtviewをのせたwindwをマウスのドラッグで自由に動かせる様にします。
xcodeのqtwin.mに下記を追加します。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
- (void)mouseDragged:(NSEvent *)theEvent
{
NSPoint current_mouse;
NSPoint neworigin_mouse;

// グローバルマウス座標を得る
current_mouse = [ self convertBaseToScreen:
[ self mouseLocationOutsideOfEventStream ]];
// ウインドウの原点の位置を計算する
neworigin_mouse.x = current_mouse.x - _initialLocation.x;
neworigin_mouse.y = current_mouse.y - _initialLocation.y;

// ウインドウの位置を補正
[ self setFrameOrigin:neworigin_mouse ];

}

- (void)mouseDown:(NSEvent *)theEvent
{
// マウスクリックした場所をローカル座標で記録
_initialLocation = [ theEvent locationInWindow ];
}

ーーーーーーーーーーーーーーーーーーーーーーーー
(@endを忘れずに)
保存してインターフェースビルダーに戻り、qtviewをのせたwindowの上に
CustamViewオブジェクトをドロップアンドドラッグでのせます。

view.jpg view7.jpg

ビルドするとqtvieをのっけたwindowが動かせるようになります。

[quartzcomposerへの操作 ]
コントロールwindow上にpart1で設定しておいたquartzcomposerへの操作を追加します。
インターフェースビルダー上にスライダーを置きxcodeのBindingsという機能を使ってその値
をqtviewに読み込まれているquartzcomposerに渡します。

view2.jpg

1、インターフェースビルダー上のcocoa-Controlからwindowにスライダーをおきます。
2、スライダーの値を設定します。1.0~0.0の間で動くようにします。
デフォルトでは、Continuosuly send 〜というスライダーを動かしている間、
数値を送り続けるという設定がオフになってるのでonにしてあげないとあれ?という事になります。
3.NStextfieldをおき、スライダーと繋ぎます。(コントロールを押しながらスライダーをクリックしtextfield上まで動かし、マウスを離します)
Targetタブをクリックし、takeFloatValuefromを選択して、connectを押します。

views.jpg

view4.jpg

qtviewを選択して、inspecterを出し、Bind toをQCPatchControllerを選び、Controller keyをpatchと入力します。

view5.jpg

スライダーを選択して、inspecterを出しBindingを選び、
1.Bind toをQCPatchControllerを選び、Controller keyをpatchと入力します。
2.Model key path として、quartzcomposerで作ったパラメーターを入力します。
b.valueにしました。
同じようにスライダーを置き、quartzcomposerでbinding設定したパラメーターを設定していきます。

これでひとまず、終了です。
part4のサンプル

関連記事






次の記事

Feb 14, 07
Written by yosuke hayashi | Synthesis
またもや久しぶりのエントリになってしまいましたが、こないだjavaでやってたようなことを今度はpythonでやってみました。OSXの人はterminalでpythonと打ち込んであげればさくっと起動するあれです。interactive modeでpysndobjを駆使すればchuckやsc3でお馴染みのon...

前の記事

Feb 05, 07
Written by noriko matsumoto | Cocoa
コントロールwindow上にあるボタンを押すとqtviewのwindowがフルスクリーンになるという機能を作ります。 インターフェースビルダーから...