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

Version 6.0
Copyright © 2015, Rogue Wave Software, Inc. All Rights Reserved.