XRT/table: 表、リスト、フォ-ムを作成する
XRT/table を使用すれば、Motif アプリケ-ション上にテ-ブルやフォ-ムを表示し、操作することも簡単に実行できます。 XRT/table のフレキシビリティと優れたパフォ-マンスは、リストやデ-タベ-スに保管されたテキストやイメ-ジ情報、スプレッドシ-トのデ-タ等を扱うアプリケ-ションには最適です。 また、各セルはウィジェットを表示することもできますので、使いやすく洗練されたインタ-フェ-スを作成することができます。 出力オプションとしては、EPS、JPG、PNG がサポ-トされ、デ-タの表示をコントロ-ルする150以上のリソ-スが備えられています。
テ-ブルのデ-タ
テ-ブルのデ-タは、ファイルからの読み込み、エンドユ-ザからの入力、プログラミングによる提供、とあらゆる方法でセットできます。 セル値には一般のテキスト・ストリングまたは Motif の複合ストリング、標準のウィジェット、pixmap デ-タ(XBM または XPM フォ-マット)がサポ-トされています。 リアルタイム・アプリケ-ションや大きなテ-ブルを扱うアプリケ-ションは、コ-ルバック・ル-チンを登録することにより、実行時に必要に応じてセルやラベルの値を提供できます。 各セル値のコピ-を必要としないため、大きなテ-ブルも効率的に処理し、メモリの可能範囲まで最大20億行x20億列のテ-ブルを処理できます。 XRT/graph や XRT/3d からデ-タを読み込み、テ-ブルにコピ-するル-チンも提供されています。
行と列
行と列は追加、削除、移動、フリ-ズ、表示・非表示が可能です。 エンドユ-ザはマウスを使用してこれらをリサイズすることができます。
セル
セル幅は文字数、セルの高さは行数、またはピクセルでそれぞれ指定できます。 セル値を隣のセルに跨って表示させたり、複数のセルを結合して大きなセルを作成することもできます。 罫線には影やエッチング等のスタイルがあり、セルにはトラバ-スや編集を可/不可に設定することが可能。 セルのサイズ、マ-ジン、ハイライト、フォント、行揃え、色等は全てコントロ-ルできます。
タイトル
テ-ブルのタイトルとして、あらゆるウィジェットを使用することができ、タイトルは幾つでもテ-ブルのどの側にでも表示できます。 また、タイトル用に、テキストの回転や PostScript 印刷をサポ-トするXrtLabel というウィジェットも提供されています。
ユ-ザ・インタラクション
ユ-ザは、ダイナミックに行や列のリサイズが行えます。 セルの値が全て表示されていない場合は、それを示すマ-クを表示させることができます。マウスを使用して各セル、セルのブロック、行や列全体、または連続していないセルを選択できます。 また、Motif 1.2のドラッグ&ロップ機能がサポ-トされていますので、セルを同一テ-ブル内や別のテ-ブル、他の Motif ウィジェットにカット/コピ-することができます。 XRT/table は、二つの XmScrollbar ウィジェットを管理し、テ-ブルが大きくなるとこれらを自動的に表示します。
コ-ルバック
セルの編集、検査、選択、トラバ-ス、リサイズ等のコ-ルバックが提供されています。
印刷機能
他の XRT ウィジェットと同様、テ-ブルは PostScript 出力できます。 また、XRT/table 固有の印刷オプションとして、ペ-ジ区切り、各ペ-ジへのラベル出力、印刷方向、スケ-リング、マ-ジン、色、範囲、フリ-ズされているセルの処理等がサポ-トされています。
グラフ・ウィジェットとの統合
XRT/table は、2Dグラフウィジェットの XRT/graph、3Dグラフウィジェットの XRT/3d と組み合わせて使用することができます。 ひとつのウィジェットに対するアップデ-トが別のウィジェットに反映されるデモ・プログラムが製品の一部として提供されていますので、 例えば、グラフのポイントがドラッグされるとそれに応じて値が変更する表、またはテ-ブルのセル値を変更してグラフをアップデ-トさせるといったインタラクティブなアプリケ-ションも簡単に作成できます。
インポ-ト・エクスポ-ト
テ-ブルのデ-タは、カンマで区切られた ASCII ファイルからインポ-トしたり、SYLK または ASCII フォ-マットに出力できます。
その他の機能
テ-ブルのアップデ-トのバッチ処理、ソ-ト機能、スプレッドシ-ト形式のラベル、セルのフラッシュ
リソ-スについて
Motif の柔軟性、優位性は、オブジェクト(ウィジェット)とその属性(リソ-ス)を定義する、オブジェクト指向の Xt Toolkit に大きく依存しています。 XRT/table の全ての属性も、リソ-スを使用してプログラミングできますので、リコンパイルせずに、テ-ブルの外観や動作をプロトタイプすることができます。
各セル、行、列、ラベルを自由自在にコントロ-ルできるよう、XRT/table は特別なContext リソ-スを定義しています。 テ-ブルの context は、ひとつのセル[3,4]、行ラベル全体、列全体、表全体というようにセットでき、背景色や行揃え、フォント等のリソ-スの設定または取得をこの context に対して行うことができます。
例えば、次の C コ-ドは、セル[3,4]の背景色を黄色、列ラベルを青、その他を全て赤にセットしています。
XtVaSetValues(mytable, XmNxrtTblContext, XrtTblSetContext(XRTTBL_ALL, XRTTBL_ALL), XmNxrtTblBackgroundContext, "red", NULL); XtVaSetValues(mytable, XmNxrtTblContext, XrtTblSetContext(XRTTBL_LABEL, XRTTBL_ALL), XmNxrtTblBackgroundContext, "blue", NULL); XtVaSetValues(mytable, XmNxrtTblContext, XrtTblSetContext(3, 4), XmNxrtTblBackgroundContext, "yellow", NULL);
または、XRT/table の C++API も使用できます。
table->setContext(XRTTBL_ALL, XRTTBL_ALL); table->setBackgroundContext("red"); table->setContext(XRTTBL_LABEL, XRTTBL_ALL); table->setBackgroundContext("blue"); table->setContext(3, 4); table->setBackgroundContext("yellow");
複数の context をセットするには、series リソ-スを使用できます。リソ-スファイルで次のように設定してください。
*.xrtTblBackgroundSeries: (ALL ALL red) (LABEL ALL blue) (3 4 yellow)
XRT/table ではあらゆる種類の表を作成することができます。ここをクリックすれば、その他の表の例を見ることができます。