Date: prev next · Thread: first prev next last
2021 Archives by date, by thread · List index


Hallo Robert,

das geht schon, aber du musst halt die URL auf dem Weg ermitteln, wie es Xray macht, damit du auch die URLs der Extensions und Addons erwischst. Im folgenden Makro schalte ich die LibreLogo-Leiste aus und nach zwei Sekunden wieder an:

SUB Test
    DIM oFrame AS OBJECT
    oFrame = StarDesktop.getCurrentFrame()
    oWin = oFrame.getContainerWindow()
    aElemente = oFrame.LayoutManager.getElements()
    FOR i = LBound(aElemente) TO UBound(aElemente)
        obj = aElemente(i)
        invoc =  CreateUnoService("com.sun.star.script.Invocation")
        invocCurrObj = invoc.createInstanceWithArguments(Array(obj))
        resourceURL= invocCurrObj.getValue("ResourceURL")
        if resourceURL= "private:resource/toolbar/addon_LibreLogo.OfficeToolBar" then
            oFrame.LayoutManager.hideElement(resourceURL)
            wait 2000
            oFrame.LayoutManager.showElement(resourceURL)
        end if
    next
end sub

Das Makro ist sicher noch nicht wasserdicht, aber das Prinzip ist klar.

Gruß
Gerhard

Am 13.06.2021 um 09:53 schrieb Robert Großkopf:
Hallo Gerhard,

Wenn du die Logik des Programms einsetzen willst, musst du eventuell
noch ein bisschen was abfragen, damit keine Fehler erzeugt werden;
vielleicht genügt es, wenn du abfragst, ob VARTYPE(vari) = 8, d.h.
"string" ist, du willst ja wohl die Namen der Symbolleisten abfragen.
Wichtig ist für mich lediglich, dass anschließend keine Symbolleisten
mehr zu sehen sind. Und das bekomme ich eben bei dieser Symbolleiste
nicht geregelt, da ich sie über die URL auf unsichtbar schalten will.
Ist aber in der Praxis erst einmal nicht so wild, weil die Zielgruppe
sowieso keine Erweiterungen und auch kein LibreLogo nutzen wird.

Ich mache das Ganze jetzt so:

SUB Symbolleisten_Ausblenden
        DIM oFrame AS OBJECT
        DIM oWin AS OBJECT
        DIM oLayoutMng AS OBJECT
        DIM aElemente()
        oFrame = StarDesktop.getCurrentFrame()
        oFrame.setTitle "Titel des Fensters"
        oWin = oFrame.getContainerWindow()
        oWin.IsMaximized = true
        oLayoutMng = oFrame.LayoutManager
        aElemente = oLayoutMng.getElements()
        FOR i = LBound(aElemente) TO UBound(aElemente)
                oLayoutMng.hideElement(aElemente(i).ResourceURL)
        NEXT
        ThisComponent.CurrentController.Sidebar.Visible = False
        ThisComponent.CurrentController.ViewSettings.ZoomValue = 200
        ThisComponent.CurrentController.ViewSettings.ShowRulers = False
        ThisComponent.CurrentController.ViewSettings.ShowParaBreaks = False
END SUB

SUB Symbolleisten_Einblenden
        DIM oFrame AS OBJECT
        DIM oLayoutMng AS OBJECT
        DIM aElemente()
        oFrame = StarDesktop.getCurrentFrame()
        oLayoutMng = oFrame.LayoutManager
        aElemente = oLayoutMng.getElements()
        FOR i = LBound(aElemente) TO UBound(aElemente)
                oLayoutMng.showElement(aElemente(i).ResourceURL)
        NEXT
        ThisComponent.CurrentController.Sidebar.Visible = True  
        ThisComponent.CurrentController.ViewSettings.ZoomValue = 100
        ThisComponent.CurrentController.ViewSettings.ShowRulers = True  
        ThisComponent.CurrentController.ViewSettings.ShowParaBreaks = True
END SUB

Für das Zeigen bzw. verstecken eines Elements ist nun einmal die
ResourceURL notwendig. Für das Handbuch wäre es natürlich schön, genauer
zu wissen, wie ich die anderen auch verstecken und wieder hervorholen
kann. Ich dachte eigentlich, dass der Verweis auf das Element reichen
müsste ( so wie "getByIndex").

Gruß

Robert


--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.