Top > OOoBasic > Window > CreateDialog

ダイアログ作成その2 Edit

ダイアログの作成にはダイアログエディタを利用したり、ランタイムダイアログがあります。

XDialogProvider Edit

OOo Basic では Basic のライブラリと Dialog のライブラリが統合されているように見えるため、一緒に配布できて便利です。一方、それ以外の言語で作成したマクロなどでは Basic のコードがないのにダイアログのみを入れた Dialog ライブラリを入れることになるかもしれません。

拡張機能パッケージであれば、ダイアログファイルをそのまま (ダイアログライブラリとしてではなく) 入れておいて利用することができます。

com.sun.star.awt.DialogProvider サービスを利用してダイアログを作成します。戻るのはダイアログのコントローラオブジェクトです。

  0
  1
  2
  3
  4
def create_dialog_from_url(ctx,dlg_url):
    """Create dialog from URL."""
    dlgprov = ctx.ServiceManager.createInstanceWithContext(
        "com.sun.star.awt.DialogProvider", ctx )
    return dlgprov.createDialog(dlg_url)

URL には一般的な file:// または vnd.sun.star.script: などが利用できます。ダイアログの xdl ファイルを拡張機能に入れている場合には、ダイアログの URL を知るために拡張機能 ID を指定して拡張機能のインストールされているディレクトリを取得する必要があります。PackageInformationProvider

XDialogProvider2 Edit

Options ダイアログで利用されています。Option ダイアログを利用するときにこのインターフェースにより作成されたダイアログを受けとることになります。一方で、そのダイアログ用のハンドラをサービスに実装しておく必要がありますが。

XContainerWindowProvider Edit

WindowType が選択できるようになればダイアログ xdl ファイルからノンモダルダイアログなどが簡単に作成できるようになるかもしれません。


Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes