Άνοιγμα διαλόγου με Python

Οι στατικοί διάλογοι του LibreOffice δημιουργούνται με τον Επεξεργαστή διαλόγων και αποθηκεύονται σε διάφορες θέσεις σύμφωνα με τη φύση των προσωπικών τους (Οι μακροεντολές μου), των κοινοχρήστων (Μακροεντολές του LibreOffice) ή των ενσωματωμένων στο έγγραφο. Αντίθετα, οι δυναμικοί διάλογοι κατασκευάζονται κατά τον χρόνο εκτέλεσης, από δέσμες ενεργειών της Basic ή του Python, ή χρησιμοποιώντας οποιαδήποτε άλλη υποστηριζόμενη γλώσσα του LibreOffice για αυτό το θέμα. Τα άνοιγμα στατικών διαλόγων με Python δείχνονται με το παρόν. Εξαίρεση ο χειρισμός και η διεθνοποίηση παραλείπονται για λόγους σαφήνειας.

Οι μακροεντολές μου ή διάλογοι μακροεντολών του LibreOffice

Τα παρακάτω παραδείγματα ανοίγουν την κονσόλα Access2Base Trace ή το εισαγόμενο παράθυρο διαλόγου TutorialsDialog με το μενού Εργαλεία - Μακροεντολές - Εκτέλεση μακροεντολής:


        # -*- 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)
    

Ενσωματωμένοι διάλογοι εγγράφου

Το παρακάτω παράδειγμα ανοίγει ένα νέο παράθυρο διαλόγου Dialog1 από ένα έγγραφο με μενού Εργαλεία - Μακροεντολές - Εκτέλεση μακροεντολής:


        # -*- coding: utf-8 -*-
        from __future__ import unicode_literals
            
        def docDialog():
            """ Εμφάνιση διαλόγου με βάση ένα έγγραφο """
            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,)
    

Δείτε το msgbox.py στον κατάλογο {installation}/program/ για παραδείγματα δυναμικών διαλόγων Python.

Παρακαλούμε, υποστηρίξτε μας!