January 31, 2007

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

Written by noriko matsumoto | Cocoa

windowでの映像の表示ができたので次にコントロール用のwindowを作ります。

インターフェースビルダーから、cocoa controllersのwindowの絵があるところをクリック。
Windowとでっかくかいてあるwindowの絵を適当な場所へドラッグアンドドロッグ。
自動的に、MainMenu.nibにwindow1というのができます。
名称未設定 1.jpg0ピクチャ 7.png

そのままコントロール用のウィンドウのshowinspecterを出していろいろ処理します。
2つ以上windowを使う場合、全てのwindowアトリビュートでoneshotをチェックボックスを外さないと表示してくれません。また、VIsible at launch timeのチェックボックスを入れておきます。
というわけで、quartz表示用のwindowとコントロール用のwindowができました。

でxcodeからビルドして実行を押してみると2つwindowがでててqtzが再生されてます。

で次、
ボタンを押したら、qtzのwindowをフルスクリーンにする機能を作ります。
ーーーーー
MainMenu.nibのClassesタブをクリック。
NSobject→NSResponder→NSwindowを選択。
0ピクチャ 8.png0ピクチャ 9.png

そのもう一個先のところでリターンを2回押す。とMywindowというのができます。
このMywindowでもいいのですが、なんかせっかくなのでわかりやすい名前をつけます。
今回はqtwinにしました。qtwinを選択して、インターフェースビルダーのメニューから
Classes→Create Classfile for qtwinというのを選びます。
ーーーーー
するとXcodeのところにqtwin.hとqtwin.mができてます。
0ピクチャ 10.png
hはヘッダーファイル、qtwin.mは実際は動いてほしい機能を書くファイルです。

で、そのままqtwin.mを開いて、
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
#import "qtwin.h"
#import

@implementation qtwin

- (id) initWithContentRect : (NSRect) contentRect
styleMask : (unsigned int) aStyle //windowスタイル
backing : (NSBackingStoreType) bufferingType

defer : (BOOL) flag {

/// INITIALIZE BY SUPER CLASS
NSWindow* winFull = [ super initWithContentRect : contentRect
styleMask :NSBorderlessWindowMask//ぼーだーなし
backing : bufferingType
defer : NO ];
[ winFull setLevel : kCGScreenSaverWindowLevel ];

return winFull;//winFullをかえす
}
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
と書きます。
ここでは、wifullはwindowを
枠やツールバーのない状態で全てのwindowから一番高いレベルで
表示されるんだ。ということが書かれてます。

main.hにはこれを、
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
/* qtwin */

#import
@interface qtwin: NSWindow

{
NSPoint _initialLocation;
}
@end
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
これはまた後日つかう所なので、また、改めて説明。

で保存してください。
でこれらをどうするかというと、またインターフェースビルダーに戻り、
qrtzをおいたwindowのShowInspecterでClassを選択→
qtwinを選んであげます。
ピクチャ 4.png00ピクチャ 4.png
そのままビルドすると、枠なしwindowができました。

(この過程はjitterなら簡単なのになーーーといつも思いますが、、、)

関連記事






次の記事

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

前の記事

Jan 30, 07
Written by noriko matsumoto | Cocoa
どもです。2007年はフランクにいきたいマツモトです。 という訳で「quartzcomposer+cocoa...