Skip to content
hanya edited this page Jun 15, 2013 · 1 revision

生成されたコードはそのままでは実行できないことがあります。MRI は様々なところから実行できるため、場合によっては完全なコードを生成できません。

Table of Contents

Code メニュー

Tools メニューから Code メニューへアクセスできます。コードを表示するテキストフィールドを表示するにはメニューの Tools - Code - Code 項目にチェックを入れてください。 コードテキストフィールドは情報テキストフィールドの下に表示されます。枠線をドラッグしてサイズを調整できます。また、情報テキストフィールドの右下でマウスの右ボタンをダブルクリックしてください。または Ctrl + H キーを押します。

Code の種類

Tools - Code メニューで表示するコードの種類を選択できます。

Pseud Property

選択した言語のブリッジが Pseud プロパティをサポートしている場合にはコードが Pseud プロパティを利用するように生成されます。

注意

MRI は Type や XMethodIdl インターフェース、リフレクション API などを利用して型情報を取得しようとしますが、値の型が any のときには予期せぬ値の型になることがあります。たとえば、com.sun.star.beans.PropertyValue 構造体では Value 要素が any 型の値を保持していますが、その値の型の定義はそのオブジェクトから提供されません。大抵その情報は他のサービスにより定義されています。たとえば、com.sun.star.document.MediaDescriptor サービスなどです。any 型の値を取得した場合には値の型が正しくなっているか確認してください。 多くの場合、any 型として戻された数値型の値の型は間違ったものになっていることがあります。

新しいコードジェネレータの追加

新しい言語のコードジェネレータを追加できます。

拡張機能がインストールされているディレクトリへ移動して、pythonpath/mytools_Mri/generators ディレクトリを開いてください。新しいコードジェネレータを "code_generator.py" ファイルに従って作成、"generators.py" ファイルに新しいコードジェネレータの定義を書き込みます。

追加されたジェネレータは Tools - Code メニューに自動的に表示されます。

  • UNO と追加したい言語間の Type Mapping が必要です。
  • 追加したい言語での struct、enum、サービスなどの値の作成方法。
Clone this wiki locally