マネージャー・ビュー
複数のビューをマネージャーに付加すると、プログラムはさまざまな設定で同時にグラフィック・オブジェクトを表示できます。
Figure 1.2は、この関係を図示したものです。
図 1.2 マネージャーに連結された複数のビュー
次の
IlvManager メンバー関数は、マネージャーへのビューの連結を処理します。
addView - ビューをマネージャーに付加します。次に、すべてのイベントは、マネージャーに配置されたインタラクターの階層によって処理されます。
removeView - マネージャー・ビュー・リストからビューを削除します。ビューはマネージャー処理の対象外になります。
getViews - 現在マネージャーに接続されているすべてのビューに対するポインターの配列を戻します。
このセクションでは、マネージャー・ビューの次の側面について説明します。
ビュー変換
ビューに関連するトランスフォーマーに変更を加えるには、以下の
IlvManager メンバー関数を使用してください (ビューのサイズを変更する
fitToContents を除く)。
例:ビューのズーム
このアクセラレーターは、次の 2 つの倍率を使用してビューをズームします。
static void ZoomView(IlvManager* manager, IlvView* view, IlvEvent& event, IlvAny) { IlvPoint pt(event.x(), event.y()); manager->zoomView(view, pt, IlvFloat(2), IlvFloat(2), IlvTrue); } |
zoomView 引数に指定された点は、ズーム後も位置は変わりません。最後のパラメーターがビューの再描画を強制的に行います。
ダブル・バッファリング
ダブル・バッファリング・メンバー関数を使用すると、オブジェクトの操作による画面のちらつきを防ぐことができます。この機能ではそれぞれのマネージャー・ビューに対して、ビューと同じサイズの非表示ビットマップを割り当てることが必要です。ビューと色モデルの数に応じて、ダブル・バッファリングはメモリーを大量に消費する可能性があります。
ダブル・バッファリングを処理するメンバー関数:
メモ: ダブル・バッファリング・モードのビューの背景色を変更するには、setBackground メンバー関数を使用する必要があります。 |
例
この関数は、指定されたビューのダブル・バッファリング・モードを切り替えます。
static void ToggleDoubleBuffering(IlvManager* manager, IlvView* view) { manager->setDoubleBuffering(view, !manager->isDoubleBuffering(view)); } |
Version 5.6
Copyright © 2012, Rogue Wave Software, Inc. All Rights Reserved.