コード生成オプション

このダイアログを使用して、リンク用コードの生成場所および生成するかどうかの制御、アプリケーション・クラス名の指定、各種リソースの生成場所の制御を行うことができます。以下で、それぞれのオプションを説明します。

アプリケーション・クラス名

アプリケーション・クラス名は、X リソースファイルを生成する際にリソース設定を識別するために使用されます。リソース値がシステム全体の X リソースと混同されないようにするため、デフォルトの「XApplication」以外の名前を割り当てます。

リンクのコード生成

「リンク」というラベルが付いたオプションメニューを使用すると、リンクを基本ソースファイルに生成する、スタブファイルに生成する、またはまったく生成しないのうちのいずれかを選択することができます。または、リンクコード宣言だけを生成するよう選択することもできます。

リンク関数の一部として生成されたコードは、汎用関数セット (各種リンク用) およびこれらの関数の宣言で構成されています。関数は常に同じなので、アプリケーション全体で 1 セットだけ関数を生成すれば十分です。複数のデザインからコードを生成し、各デザインにリンクが含まれている場合は、関数の生成は 1 度だけで十分ですが、宣言はデザインごとに生成する必要があります。宣言は常に基本ソースファイルに生成されます。

デフォルト記憶領域

デフォルトでは、X-Designer は各ウィジェットを、それが作成された関数内のローカルな変数として生成しますが、ウィジェットに名前を指定した場合、X-Designerはその変数を大域変数にします。名前付きウィジェットに対するこのデフォルトの処理は、「デフォルト記憶領域」オプションメニューを変更することにより「コードオプション」ダイアログで制御することができます。

ただし、ウィジェットがクラスに属している場合 (つまり、クラスを構成するウィジェットの子である場合) はそのクラスの変数のままで、「コードオプション」ダイアログで選択された記憶領域オプションは無視されます。

名前付きウィジェットのデフォルトの記憶領域は「大域」です。このデフォルトは、次のリソースを設定することで、変更できます。

XDesigner.defaultStorageType:static

このリソースには、次の値を使用できます。

default
global
static

コメントプレリュード

このオプションメニューは、生成されたコードの中でプレリュードを追加できる領域の周囲に記述される、特別なコメントを参照します。 プレリュードの追加については、「生成されたファイルのカスタマイズ: プレリュード」を参照してください。コメントの追加を「含む」(プレリュードが指定されているかどうかに関係なく)、「定義時にのみ含む」(すなわちプレリュードが指定された場合のみ)、「含まない」のうちのいずれで行うかを選択できます。デフォルトは「含まない」です。

以下の例は、シェルのマネージ前プレリュードのコメントを示しています。コメント内にプレリュードがないので、「含む」が選択されたオプションであると見なします。


	        /* XDesigner:prelude for shell1:pre-manage >>> */

	        /* <<< pre-manage ends. */ */
	        XtSetArg(al[ac], XmNallowShellResize, TRUE); ac++;
	        shell1 = XmCreateDialogShell ( parent, "shell1", al, ac );
	        ac = 0;
	        /* XDesigner:prelude for form1:pre-create >>> */

	        /* <<< pre-create ends. */ */
	        XtSetArg(al[ac], XmNautoUnmanage, FALSE); ac++;
	form1 = XmCreateForm ( shell1, "form1", al, ac );

Motif 様式

後方互換性のため、あるいはターゲットプラットフォームが Motif 2.1 ツールキットをサポートしていない場合には、Motif 1.2 と Motif 2.1 のどちらのバージョンのツールキットにでも対応するコードを生成することが可能です。

様式として Motif 1.2 が設定されている場合、コード生成では Motif 2.1 に固有なリソースが無視され、Motif 2.1 に固有なウィジェットクラスは妥当な代替クラスに後方マッピングされます。

様式として Motif 2.1 が設定されている場合、Motif 2.1 に固有なリソースはすべて生成され、互換でない Motif 1.2 コードは可能なかぎり新しいバージョンと置換されます。

適切な Motif 様式がデザインとともに保存されます。

リソースの操作

「オプション」ダイアログの中央のパネルには各リソース型が列挙されています。

Motif の定義しているリソース型を以下に示します。

各リソースが生成されるファイルを指定することができます。あるリソースがソースコードに生成された場合は、ソースコードにハードコードされるため、リソースファイルからは変更できません。通常は、ソースコードに生成されなかったリソースはすべて X リソースファイルに生成されます。 X リソースファイルは、アプリケーションのユーザーが編集することのできるファイルです。

「コールバック」とラベルのついたオプションメニューは、他のオプションメニューとは異なります。「コールバック」オプションは UIL に対してのみ使用します。 このオプションで、コールバックを UIL コードと C コードのどちらに登録するか選択することができます。デフォルトでは UIL に登録されます。ただしクライアントデータを使用している場合は、構造型が UIL では定義されていないため、コールバックを C コードに登録する必要があります。

リソースのマスク

リソースパネルには、各リソースの横にラベルの付いていないトグルがあります。

これらのトグルは、「コードオプション」ダイアログの「ウィジェットリソースをマスク」ラジオボタンおよび「大域リソースのみマスク」ラジオボタンとともに機能します。これらのトグルをすべて使用すると、個別にリソースの生成を制御することができます。

ウィジェットリソースのマスク

「ウィジェットリソースをマスク」を設定している場合は、以下の説明を参照してください。

個々のリソースがリソースパネルトグルを設定していない場合は、生成ダイアログ内の該当する種類のオプションメニューに従ってリソースが生成されます。 たとえば、「ラベル」のリソースパネルのトグルがオフに設定されている場合は、「文字列」というラベルが付いたオプションメニューで指定されたファイルに対して、ラベル文字列が生成されます。

個々のリソースがリソースパネルトグルを設定している場合は、リソースは生成ダイアログ内のオプションメニューによって該当する種類に指定されたファイルとは「反対の」ファイルに対してリソースが生成されます。 たとえば、リソースパネルトグルをオンにした状態で「整数」オプションメニューが「コード」に設定されている場合はリソースファイルに対して、また、オプションメニューが「リソースファイル」に設定されている場合はコードファイルに対して整数リソースが生成されます。 言い換えると、生成ダイアログのオプションメニューが規則を確立し、リソースパネルにあるトグルがこの規則の例外を識別します。

大域リソースのみマスク

「大域リソースのみマスク」を設定している場合は、以下の説明を参照してください。


生成ダイアログのオプションメニューは、この段階で大域オブジェクト (フォント、カラー、ピックスマップオブジェクト) にのみ適用します。これらのオブジェクト (のみ) は、すべてのリソースについて 「リソースのマスク」で記述したとおりに制御されます。

その他のすべてのリソースは、個々のリソースパネルトグルによってのみ制御されます。それらのリソースは、リソースパネルトグルがオフの場合はコードファイルに、リソースパネルトグルがオンの場合はリソースファイルに生成されます。

Windows モード

Windows モードでは、2 つのトグルが追加表示され、Windows MFC コード生成に関連付けられます。追加されるトグルは、次の 2 つです。

  1. リソースとして生成

     このオプションは、Windows のコンポーネントを Visual C++ で読み取り可能なリソースファイルに 生成します。リソーステンプレートを使用することにより、実際のダイアログベースのアプリケーションを作成できるようになりました。しかし、Windows 上でリソースファイルを操作すると、再生成を行なったときに、それまでの変更がすべて失われることになるため、インタフェースの変更は X-Designer を使用して行うのが最善の方法です。

  2. プロジェクトファイルを生成

    このトグルをオンにすると、Microsoft Visual C++ で使用するためのプロジェクトファイルが生成されます。これによって、デザイン用のコードを生成するたびにプロジェクトファイルを生成する必要がなくなります。このトグルは、デフォルトでオンに設定されています。

関連項目: