Optionen-OpenOffice.org: Ansicht Einstellungen auslesen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Optionen-OpenOffice.org: Ansicht Einstellungen auslesen

Beitrag von balu »

Hallo liebe Forengemeinde,

ich möchte gerne
-> Extras
-> Optionen
-> OpenOffice.org
==> Ansicht
den Status für die Skalierung und für die Systemschriftart auslesen (rote Umrandung), und dann auswerten aber nicht verändern.
Optionen-Ansicht2.png
Optionen-Ansicht2.png (35.34 KiB) 1481 mal betrachtet
Meine momentanigen recherchen hatten mich heute zum folgendem Thread geführt:
Programmoptionen per Makro ändern
Jedoch hilft er mir nicht wirklich weiter, da es dort um Calc aber nicht um die allgemeine Ansicht-Optionen geht. In dem Code von Winfried bin ich auf folgende Zeile gestoßen, die mich anfangs hoffen lies.

Code: Alles auswählen

[...]
GetRegistryKeyContent("org.openoffice.Office.Calc/Input", TRUE )
[...]
Erst dachte ich noch:
"Na Prima! Da muss ich doch wohl nur von der Optionenlisten-Hierachie(*) den passenden Eintrag für Ansicht finden."
Doch leider finde ich sie nicht. Also zu früh gefreut.

(*)
Damit meine ich im Optionenfenster die Linke Seite wo die einzelnen Kategorien stehen. Also
[+] OpenOffice.org
[+] Laden/Speichern
..... etc.

Mein Versuch den Code schrittweise mit xray zu untersuchen, bringt mich auch nicht sehr viel weiter.

Code: Alles auswählen

xray oRegistry_Calc_Input
Damit bekomme ich wohl nur Zugriff auf bestimmte Optionen für Calc. Und das ist in der Optionen-Hierachie für mich viel zu weit unten.

Und mit

Code: Alles auswählen

xray oRegistry_Calc_Input.getHierarchicalName
bekomme ich den Eintrag für "GetRegistryKeyContent", also /org.openoffice.Office.Calc/Input ausgegeben.


Hier meine Fragen.
- Kurz und gut, was muss ich bei GetRegistryKeyContent("...." , TRUE) eintragen, damit ich auf die gewünschten Optionen zugreifen kann?
- Besser noch, wegen dem Lerneffekt. Was muss ich bei xray angeben um selber den gesuchten Eintrag für GetRegistryKeyContent zu finden? Unter myDoc = ThisComponent find ich nichts, oder ich such verkehrt.


Um es noch mal zu betonen:
Mir geht es nicht darum die eingangs genannten und gezeigten Optionen zu verändern, sondern nur um das auslesen und auswerten.


Ich hoffe ihr könnt mir wieder auf die Sprünge helfen.

Für eure Bemühungen bedanke ich mich schon mal im voraus, und freue mich auf eure Antworten :D.


Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Optionen-OpenOffice.org: Ansicht Einstellungen auslesen

Beitrag von komma4 »

Mein Vorgehen, um sowas rauszufinden:


* ich ändere mit OOo eine Option
* nun suche ich in den Konfigurationsdateien, wo sich was geändert hat. Mit Linux bekomme ich im OOo-Benutzerverzeichnis mit dem Befehl

Code: Alles auswählen

find  -name '*' -mmin 1 
die Dateien, die in der letzten Minute geändert wurden.

Da wird mit dann angezeigt
./registry/data/org/openoffice/Office/Common.xcu

Schaue ich diese Datei in einem Texteditor an (und suche nach dem geänderten Wert, bspw. 120), so finde ich schnell die Stelle

Code: Alles auswählen

<node oor:name="View">
  <node oor:name="Dialog">
   <prop oor:name="MousePositioning" oor:type="xs:short">
    <value>0</value>
   </prop>
  </node>
  <prop oor:name="FontScaling" oor:type="xs:short">
   <value>120</value>
  </prop>
Aha: in der common.xcu im Zweig view

Nun ist es nicht mehr weit zum Code:

Code: Alles auswählen

Sub de48861
' 2011-06-13

GlobalScope.BasicLibraries.loadLibrary( "Tools" )


oRegistry_View = _
GetRegistryKeyContent("org.openoffice.Office.Common/View", FALSE )

xray oRegistry_View.getByName( "FontScaling" )

End Sub

Hilft Dir das weiter?



Korrektur: Du möchtest ja nur auslesen, deshalb Schalter "forUpdate" im Funktionsaufruf auf FALSE gesetzt
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Optionen-OpenOffice.org: Ansicht Einstellungen auslesen

Beitrag von balu »

Hallo Winfried,

ja, das Verfahren muss ich mir merken. Es bringt mich wirklich einen imens großen Schritt weiter.

Mir war mittlerweile nach so einigem suchen und testen bekannt, dass die gesuchten Optionen zu der Kategorie "View" gehören, nur wusste ich nicht was ich davor einsetzen musste.

Code: Alles auswählen

[...]
GetRegistryKeyContent("org.openoffice.Office.??????/View", TRUE )
[...]
Und das dies jetzt "Common" ist, wär ich nie drauf gekommen. Denn ich hatte gedacht das die englischen Namen für die Hierachie genommen werden, was natürlich nicht immer stimmt. Meine WWW recherche bezog sich deshalb auf "OpenOffice.org" so wie es auch dort steht.

Aha: in der common.xcu im Zweig view
Ja soll ich mich in ähnlichen Situationen an den Dateinamen orientieren, oder aber lieber was in der Datei steht. In diesem Falle gleich ganz am anfang.

Code: Alles auswählen

oor:name="Common"
Ich denk mir wohl an den Dateiinhalt.


Ferner hatte ich für die "Skalierung" nach "Scaling" gesucht, was mich aber auch nicht weiter brachte. Konnte ja nicht ahnen, dass man in OOo in den Optionen Skalierung/Scaling liest, aber in Basic das dann "FontScaling" heißt. Ist ein wenig verwirrend (nur als Bemerkung).


Ja und bei einem schnellen Blick in die common.xcu ist mir auch schon die zweite gesuchte Option aufgefallen.

Code: Alles auswählen

IsSystemFont
Die ist jetzt für mich aber sehr verständlich.

Korrektur: Du möchtest ja nur auslesen, deshalb Schalter "forUpdate" im Funktionsaufruf auf FALSE gesetzt
Ist gebongt.

Ich danke dir vielmals. Das bringt mich nicht nur bei meinem Projekt weiter, sondern auch beim Lernen :D.

Wünsch dir noch einen schönen abend.


Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Optionen-OpenOffice.org: Ansicht Einstellungen auslesen

Beitrag von balu »

Ergänzung.

Winfrieds Code zeigte die Lösung für Skalierung. Und der folgende zur Systemschriftart.

Code: Alles auswählen

Sub SysFont

GlobalScope.BasicLibraries.loadLibrary( "Tools" )

oRegistry_View_SysFont = GetRegistryKeyContent("org.openoffice.Office.Common/Accessibility", FALSE  )

xray oRegistry_View_SysFont.getByName( "IsSystemFont" )

End Sub
Obwohl sie in OOo unter Ansicht/View zu finden ist, wird sie aber in Basic unter "Accessibility" zugeordnet/abgefragt. Dank des beschriebenen Verfahrens war das nun ein Kinderspiel.


Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Antworten