Opening a Dialog with Python /text/sbasic/python/python_dialogs.xhp Python;dialogs dialog box;Python dialogs;Python

Opening a Dialog with Python

%PRODUCTNAME static dialogs are created with the Dialog editor and are stored in varying places according to their personal (My Macros), shared (%PRODUCTNAME Macros) or document-embedded nature. In reverse, dynamic dialogs are constructed at runtime, from Basic or Python scripts, or using any other %PRODUCTNAME supported language for that matter. Opening static dialogs with Python is illustrated herewith. Exception handling and internationalization are omitted for clarity.

My Macros or %PRODUCTNAME Macros dialogs

The examples below open Access2Base Trace console or the imported TutorialsDialog dialog with Tools - Macros - Run Macro menu: # -*- coding: utf-8 -*- from __future__ import unicode_literals def consoleDlg(): ctx =XSCRIPTCONTEXT.getComponentContext() smgr = ctx.getServiceManager() dp = smgr.createInstanceWithContext("com.sun.star.awt.DialogProvider", ctx) dlg = dp.createDialog( "vnd.sun.star.script:Access2Base.dlgTrace?location=application") dlg.execute() dlg.dispose() def tutorDialog(): ctx =XSCRIPTCONTEXT.getComponentContext() smgr = ctx.getServiceManager() dp = smgr.createInstanceWithContext("com.sun.star.awt.DialogProvider", ctx) dlg = dp.createDialog("vnd.sun.star.script:Standard.TutorialsDialog?location=application") dlg.execute() dlg.dispose() g_exportedScripts = (consoleDlg, tutorDialog)

Document embedded dialogs

The example below opens a newly edited Dialog1 dialog from a document with Tools - Macros - Run Macro menu: # -*- coding: utf-8 -*- from __future__ import unicode_literals def docDialog(): """ Display a doc-based dialog """ model = XSCRIPTCONTEXT.getDocument() smgr = XSCRIPTCONTEXT.getComponentContext().ServiceManager dp = smgr.createInstanceWithArguments( "com.sun.star.awt.DialogProvider", (model,)) dlg = dp.createDialog( "vnd.sun.star.script:Standard.Dialog1?location=document") dlg.execute() dlg.dispose() g_exportedScripts = (docDialog,) Refer to msgbox.py in {installation}/program/ directory for Python dynamic dialog examples.