手順 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 6.0
Copyright © 2015, Rogue Wave Software, Inc. All Rights Reserved.