手順 1:プロトタイプのインスタンスを含むパネルの読み込み
step1/program.cpp ファイルには、すでにユーザーにはなじみのある Rogue Waveィ Views プログラムの基本キャンバスが含まれます。
プロトタイプ・ライブラリーを動作させるには、プロトタイプ・モジュール専用の次のファイルをインクルードする必要があります。
#include <ilviews/protos/proto.h>
#include <ilviews/protos/protogr.h>
#include <ilviews/protos/groupholder.h>
#include <ilviews/protos/allaccs.h>
メモ: マネージャーなど、Rogue Wave Views の他の機能を使用する場合は、他のインクルード・ファイルが必要になります。 |
必須ではありませんが、デフォルトのグラフィック・オブジェクトすべてをメイン・ファイルにインクルードしておくと便利です。これによって、個々のグラフィック・オブジェクトがインクルードされているかどうかそのたびに確認することなく、Rogue Wave Views Studio でプロトタイプを編集できます。プロトタイプの変更または拡張が終わったら、ランタイムのフットプリントを最適化するため、必要なオブジェクトだけを含めることができます。
#include <ilviews/graphics/all.h>
ここで扱う例では、IlvMessageLabel クラスを使用する display プロトタイプを読み込むために、次のファイルのインクルードも必要です。
#include <ilviews/gadgets/msglabel.h>
定義済みガジェットのすべてが含まれる Rogue Wave Views Controls をインストールしている場合は、プロトタイプでガジェットを使用できます。
#include <ilviews/gadgets/gadgets.h>
Prototype パッケージの呼び出しが含まれるプログラムの実行には、(少なくとも) プログラムを次に示すライブラリーにリンクさせる必要があります。すなわち、ilvproto、ilvgrapher、ilvmgr、views、ilog および使用プラットフォームの専用ライブラリーです。このうち、ilvproto ライブラリーだけが Prototype パッケージ専用です。
メモ: 提供される Makefile とプロジェクト・ファイルにはすでに、プログラムのコンパイル、リンク、実行に必要なすべてのライブラリーが指定されています。 |
サンプル・プログラムはまずディスプレイを開きます。次に、定義済みのプロトタイプが保持されるプロトタイプ・ライブラリー myLib.ipl の場所を示すため、ディスプレイ・パスに「..」を追加します。次に、プログラムはコンテナーを作成し、プロトタイプのインスタンスが含まれる myPanel.ilv ファイルを読み込みます。これらのインスタンスは自動的に読み込まれます。最後に、コンテナーを表示してから通常のすべての Rogue Wave Views プログラムと同様に、メイン・ループを開始します。
int
main(int argc, char* argv[])
{
// Connect to the display system.
IlvDisplay* display = new IlvDisplay("ViewsBGO", 0, argc, argv);
if (!display || display->isBad()) {
IlvFatalError("Couldn't open display");
return -1;
}
// Prepare a window and a manager to display a scene.
IlvManager* manager = new IlvManager(display);
IlvView* view = new IlvView(display, "BGO tutorial 1",
"BGO tutorial 1", IlvRect(0, 0, 400, 300));
manager->addView(view);
// Load a data file into the manager
// Add the samples data directory to the display path
// to be sure to find the proper file.
IlString buf (getenv("ILVHOME"));
buf+="/doc/tutorial2/step1";
display->appendToPath(buf);
display->appendToPath("..");
manager->read("myPanel.ilv");
// The prototype instances are automatically read.
// Then run the main loop.
manager->setDoubleBuffering(view, IlvTrue);
view->show();
IlvMainLoop();
return 0;
}
このプログラム (step1/program.cpp) をコンパイルしてリンクし、パネルが読み込まれたことを確認できます。以下に、パネル内の操作を示します。
次のセクションで、最初のチュートリアルのパネルで作成した (
Rogue Wave Views Studio でプロトタイプを作成するを参照) プロトタイプのインスタンス、
myThermometer を取得するためにコードを追加します。
Version 5.6
Copyright © 2012, Rogue Wave Software, Inc. All Rights Reserved.