コントロールwindow上にあるボタンを押すとqtviewのwindowがフルスクリーンになるという機能を作ります。
インターフェースビルダーから
MainManu.nibのClassesタブをクリックして新しい機能を作っていきます。
[classの作り方]
classes→NSobject→でリターンを二回押す。
するとMyObjectというのができます。これで新しいクラスができます。
今回はクラス名をfullsにしました。
fullsのinspecter(fullsを選んでtools→ShowInspecter)を開きます。
1.outletを作る
でAttribuleタブを選択し、まず、OutLetを追加します。addボタンでoutletを追加して、Outletnameをつけます。これはこの機能(Fulls)の出力先になります。
2.Actionを作る。
addボタンで追加しAction名をつけます。(ここでは、fullactionにしました。
これはボタンをクリックしたときに、呼ばれる関数だと思ってください。
![]()
[classファイルの生成]
Main.NibのClassesにあるfullsをえらんで以前と同じように、create files for fullsで
fulls.hとfulls.mを生成します。
[fulls.mファイルについて]
ーーーーー
#import "fulls.h"//ヘッダーファイルの読み込み
@implementation fulls
- (IBAction)fullaction:(id)sender
{//インターフェースビルダー(IB)上から、アクションが呼び出された時の
動作内容(関数名fullaction)
[ winFull setFrame: [ [ winFull screen ] frame ] display:YES];
//ディスプレイサイズにwindowをセットする。
[ winFull makeKeyAndOrderFront : self ];
//windowを最前面にする
}
@end
ーーーーーーー
fulls.mをxcodeウィンドウでダブルクリックして開き、上記の内容に書き換えてください。
fulls.hですが開くと下記のようになってますので、そのままでいいです。
----------------
/* fulls */
#import
@interface fulls : NSObject
{
IBOutlet id winFull;
//インターフェースビルダー上にはwinfullというアウトレットが設定されているという事
}
- (IBAction)fullaction:(id)sender;
//インターフェースビルダー上にはfullactionというactionが設定されているという事
@end
-----------
mとhともに保存しておきます。
![]()
![]()
[インスタンスを作る]
再び、インターフェースビルダー上に戻り、Classesからfullsを選択
そしてメニューバー→classes→Instrantiate fullsを選択します。
すると、MainMenu.nibのInstancesにブルーのBoxができています。
これはfull.classに書いた命令や機能をインターフェースビルダーで使えるようにしてくれているInstanceと呼ばれるものです。
[インターフェースと機能をつなげる]
コントロール用のwindowにボタンをおき、コントロールを押しながらボタンからfullsに向かってマウスを動かします。
![]()
fullsの上につながったら、自動的にインスペクターが開きます。
Target/actionが選択でき、"fullaction"が反映されており、選択できる状態です。
fullaction選びconnectボタンを押す事と、「このwindow上のボタンを押したとき、”ullaction”が呼び出される」事になります。
つぎに先ほど設定したOutputもインターフェースビルダー上で決めてしまいます。
fullscreenにしたいのはqtviewのwindowなので、今度は先ほどと逆に、fullsのインスタンスをコントロールを押しながらクリックし、そのままqtviewの乗っているwindowのツールバーあたりまで持っていきます。
するとまたinspercterのoutletの選択項目が自動的に開きますので、そのままwinFullを選択しconnectボタンを押します。
これで、xcodeから「ビルドして実行」し、window上のボタンを押すと
fullscreenになります。
qtviewのサイズ設定
フルスクリーンにしたとき、サイズが自動でリサイズするように設定します。
![]()
qtviewを選択→inspercterのサイズタブを選択→4方向をクリックしてバネ上にする。
*といったのですが、quartzcomposerファイルでclearパッチをつけるのを忘れていたのでこのまま、fullscreenにするとノイズが出てしまいます。clearを追加してください。
またG5のデフォルトのビデオカード6600ではclearをつけても、ノイズが出て対応できない
可能性があります。
この場合、フルスクリーン化のクラスを使わない方法を使いました。
例:(1074x768全画面出力希望とした場合)
最終出力の画面サイズ以上に環境設定のモニター解像度(1900x768など)を設定
xcodeのプロジェクトを立ち上げる→
qtviewをのせたwindowのサイズを希望の最終出力(1074x768)に設定
でビルドする。
→モニター解像度を最終出力ものに(1074x768)戻す→作成したappを立ち上げる。
モニター解像度が1074x768にしても、1074x768のwindowをインターフェースビルダーで作れないという所に結構ハマりました。
ここまでのサンプルです。
quartzファイルの中で使用している映像ファイルはいれてませんのでquartzファイルを開いて
適度なムービーを使用してもらえればいいです。
