コンテナーの表示
コンテナーを表示するメンバー関数については、以下で説明します。
描画メンバー関数
メンバー関数
draw および
reDraw は、親クラスの
IlvDrawingView から継承されたものですが、コンテナーとは特定の方法で対話します。下記は、これらの特定のメンバー関数です。
draw は、
IlvContainer オブジェクトに格納されているすべての
IlvGraphic オブジェクトを描画します。オブジェクトをコンテナーに追加するには、このメソッドを呼び出すだけで十分です。2 つの仮想メンバー関数を使うと、宛先ポートやトランスフォーマーに関係なく、指定されたクリッピング領域に描画できます。
reDraw 作業領域を更新する場合 (オブジェクトを移動する場合など) はこのメソッドを使用します。これは
draw メソッドを呼び出す前に、指定されたクリッピング領域を消去します。
reDrawObj グラフィック・オブジェクトに適用すると、オブジェクトのバウンディング・ボックスを再描画します。
bufferedDraw 隠しピクセル・マップで仮描画を実行して、画面上に速やかにピクセル・マップを表示します。ダブル・バッファリングとの違いは、この処理が、矩形、領域、またはオブジェクトにローカライズされ、描画処理中に限りこれが続くことです。
1 つの関数が指定された
IlvRect オブジェクトに含まれる領域を描画し、別の関数が指定された
IlvRegion オブジェクトに含まれる領域を描画します。これは両方ともコンテナーの座標系に描画します。3 つ目の関数が、指定された
IlvGraphic オブジェクトをオブジェクトの座標系に描画します。
ジオメトリー変換
メンバー関数の中にはコンテナー・ビューに適用するジオメトリー変換を処理するものがあります。これはビューに関連付けられた IlvTransformer オブジェクトを処理します。
getTransformer コンテナー・ビューに関連付けられたトランスフォーマーを返します。
0 が返される場合、このコンテナーにはトランスフォーマーがありません。つまり、オブジェクトとそのディスプレイが同一だということです。
addTransformer パラメーターとして与えられたトランスフォーマーで、現在のトランスフォーマーを設定して、結果的に得られたトランスフォーマーを、新たに現在のトランスフォーマーとして設定します。
fitToContents コンテナー・ビューをリサイズして、可視アトリビュートが
IlTrue にセットされているすべてのオブジェクトが、バウンディング・ボックスにぴったり収まるようにします。ビューの左上の座標は、同じ位置に留まります。このメソッドは一般的に、コンテナーがファイルから
IlvGraphic オブジェクト一式を読み込む場合に使用されます。オブジェクトの位置は事前に認識されません。
IlvRect size(0, 0, 300, 300); IlvContainer* cont = new IlvContainer(display, “Cont”, “My Window”, size, IlTrue, IlFalse); cont->readFile(“myfile.ilv”); cont->fitToContents(); |
static void ShowAllMap(IlvContainer* container) { container->fitTransformerToContents(IlTrue); } |
ダブル・バッファリングの管理
ダブル・バッファリング・モードではアニメーション表示や多数のオブジェクトをちらつきなく表示することが可能になります。このモードは、次のメンバー関数によって処理されます。
ディスクからオブジェクトを読み込む
オブジェクトをディスクから読み込むには、次の 2 つのメンバー関数を利用します。
readFile 名前がパラメーターとして指定されているファイルを読み込みます。
read パラメーターとして指定された入力ストリームから読み込みます。
これらのメンバーは両方とも、読み込みの結果を返します。問題なく読み込めた場合は IlTrue、エラーが発生した場合は IlFalse となります。
メモ: コンテナーはマネージャーと異なり、コンテンツを保存する write メンバー関数を備えていません。マネージャーの詳細については、『Manager』マニュアルを参照してください。 |
Version 6.0
Copyright © 2015, Rogue Wave Software, Inc. All Rights Reserved.