Sub Snippet
Dim oCurrentController As Variant
Dim oComponentWindow As Variant
Dim oAccessibleContext As Variant
Dim sAccessibleName As String
Dim oAccessibleChild As Variant
Dim oAccessibleContext2 As Variant
Dim sAccessibleName2 As String
Dim oAccessibleChild2 As Variant
Dim oAccessibleContext3 As Variant
gefunden=false
oCurrentController = ThisComponent.getCurrentController()
oComponentWindow = oCurrentController.ComponentWindow
oAccessibleContext = oComponentWindow.getAccessibleContext()
for i=0 to oAccessibleContext.AccessibleChildCount-1
oAccessibleChild = oAccessibleContext.getAccessibleChild(i)
oAccessibleContext2 = oAccessibleChild.getAccessibleContext()
if oAccessibleContext2.accessiblerole=56 then
for k=0 to oAccessibleContext2.AccessibleChildCount-1
oAccessibleChild2 = oAccessibleContext2.getAccessibleChild(0)
oAccessibleContext3 = oAccessibleChild2.getAccessibleContext()
if oAccessibleContext3.getAccessibleName()="Gallery" then
if oAccessibleContext3.getAccessibleChild(1).AccessibleContext.AccessibleRole=51 then
gefunden=true
end if
end if
next
end if
next
if gefunden then
msgbox "Gallery offen"
else
msgbox "Gallery geschlossen"
end if
End Sub
Hallo Stephan,
unter AOO heißt die Gallery (zumindest in deutscher Oberfläche) "Galerie", sodass folgendes für die Seitenleiste und auch die alte Galerie zu funktionieren scheint.
Sub Snippet
Dim oCurrentController As Variant
Dim oComponentWindow As Variant
Dim oAccessibleContext As Variant
Dim sAccessibleName As String
Dim oAccessibleChild As Variant
Dim oAccessibleContext2 As Variant
Dim sAccessibleName2 As String
Dim oAccessibleChild2 As Variant
Dim oAccessibleContext3 As Variant
gefunden=false
oCurrentController = ThisComponent.getCurrentController()
oComponentWindow = oCurrentController.ComponentWindow
oAccessibleContext = oComponentWindow.getAccessibleContext()
for i=0 to oAccessibleContext.AccessibleChildCount-1
oAccessibleChild = oAccessibleContext.getAccessibleChild(i)
oAccessibleContext2 = oAccessibleChild.getAccessibleContext()
if oAccessibleContext2.accessiblerole=56 then
for k=0 to oAccessibleContext2.AccessibleChildCount-1
oAccessibleChild2 = oAccessibleContext2.getAccessibleChild(0)
oAccessibleContext3 = oAccessibleChild2.getAccessibleContext()
if oAccessibleContext3.getAccessibleName()="Gallery" or oAccessibleContext3.getAccessibleName()="Galerie" then
gefunden=true
end if
next
end if
next
if gefunden then
msgbox "Gallery offen"
else
msgbox "Gallery geschlossen"
end if
End Sub
sodass folgendes für die Seitenleiste und auch die alte Galerie zu funktionieren scheint.
Gemeinerweise nicht wenn die 'alte' Gallery nur minimiert und nicht geschblossen ist, denn dann wird die Gallery durch DEin Makro als geschlossen detektiert, was aktzeptabel wäre aus Sicht des Benutzers (denn sie ist ja nicht sichtbar), was nur aber aus Makro-Sicht nichts bringt, denn wenn die Gallery nur minimiert ist so schliesst:
Hallo Stephan,
irgendwo muss die Info ja versteckt sein ...
Die accessiblerole 56 scheint die Galerie (alt) bzw. die Sidebar zu meinen (aber eben auch die Datenquellen ) ... ist halt "nur" der grafische Container.
Wenn das Teil dann ein child-Objekt besitzt, wird auch wirklich etwas angezeigt(ist also nicht minimiert).
for i=0 to oAccessibleContext.AccessibleChildCount-1
oAccessibleChild = oAccessibleContext.getAccessibleChild(i)
oAccessibleContext2 = oAccessibleChild.getAccessibleContext()
if oAccessibleContext2.accessiblerole=56 then
msgbox "child " & i & " Nr. 56 ist da"
for k=0 to oAccessibleContext2.AccessibleChildCount-1