Symbolleiste selbst coden
Moderator: Moderatoren
Symbolleiste selbst coden
Hallo,
für eine ooCalc Applikation würde ich sehr gerne eine Menueleiste per Code selbst bauen. Bislang habe ich das mit Ansicht->Symbolleisten->Anpassen gemacht.
Wo kann ich etwas darüber nachlesen, mit welchen UnoServices man so etwas bauen kann? Gibt es irgendwo ein Code Beispiel?
Oder andere Frage: Wie kann man seinen mit Ansicht->Symbolleisten->Anpassen erstellten Menüpunkt Unterpunkte hinzufügen?
Google und mamma haben nicht die Informationen gebracht, die ich benötige. Auch unter api.oopenoffice.org konnte ich nicht so richtig fündig werden.
Gruß Gerd
für eine ooCalc Applikation würde ich sehr gerne eine Menueleiste per Code selbst bauen. Bislang habe ich das mit Ansicht->Symbolleisten->Anpassen gemacht.
Wo kann ich etwas darüber nachlesen, mit welchen UnoServices man so etwas bauen kann? Gibt es irgendwo ein Code Beispiel?
Oder andere Frage: Wie kann man seinen mit Ansicht->Symbolleisten->Anpassen erstellten Menüpunkt Unterpunkte hinzufügen?
Google und mamma haben nicht die Informationen gebracht, die ich benötige. Auch unter api.oopenoffice.org konnte ich nicht so richtig fündig werden.
Gruß Gerd
Hey Gerd,
also, die einfachst Variante, die ich bisher entdeckt habe, ist die Erstellung der passsenden xml-Datei und fertig
Wenn du bisher die Gui genutzt hast, so erstelle dir einfach eine Symbolleiste, schliesse OOo dann, und suche in Folgendem Pfad:
<Benutzerinstallation>\OpenOffice.org2\user\config\soffice.cfg\modules\swriter\toolbar\
oder eben für dein Modul passen
Dort ist dann deine neuen Symbolleiste zu finden - als xml_Dateii.
Achtung: Hier gab es irgendwann eine Änderung, mindestens ab Version 2.0.2 heissen alle benutzerdefinierten Symbolleisten "custom_toolbar_XX.xml", wobei "XX" für eine fortlaufende Nummer steht.
Öffne die Datei mit einem Texteditor - dann kannst du die Struktur ablesen, die Menüeinträge und die Befehle.
Und exakt so kannst du deine Symbolleiste bauen - und einfach in den Ordner kopieren. Pack dann noch die Symbole an die richtige Stelle, passe die sc_imagelist.xml an, fertig.
Beim nächsten Start von OOo ist die Sysmbolleiste da und funktioniert
Gruss
Thomas
also, die einfachst Variante, die ich bisher entdeckt habe, ist die Erstellung der passsenden xml-Datei und fertig

Wenn du bisher die Gui genutzt hast, so erstelle dir einfach eine Symbolleiste, schliesse OOo dann, und suche in Folgendem Pfad:
<Benutzerinstallation>\OpenOffice.org2\user\config\soffice.cfg\modules\swriter\toolbar\
oder eben für dein Modul passen

Dort ist dann deine neuen Symbolleiste zu finden - als xml_Dateii.
Achtung: Hier gab es irgendwann eine Änderung, mindestens ab Version 2.0.2 heissen alle benutzerdefinierten Symbolleisten "custom_toolbar_XX.xml", wobei "XX" für eine fortlaufende Nummer steht.
Öffne die Datei mit einem Texteditor - dann kannst du die Struktur ablesen, die Menüeinträge und die Befehle.
Und exakt so kannst du deine Symbolleiste bauen - und einfach in den Ordner kopieren. Pack dann noch die Symbole an die richtige Stelle, passe die sc_imagelist.xml an, fertig.
Beim nächsten Start von OOo ist die Sysmbolleiste da und funktioniert

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Symbolleiste selbst coden
Moin Thomas,
danke für Deinen Tipp. Hab ich jetzt mal gemacht. Die Anwendung heist rechnung.ods. Jetzt gibt es eine Symbolleiste mit Namen Buchhaltung deren einziger Menupunkt ' Neuer Kunde' ist. Dem Punkt habe ich ein Makro und ein Symbol zugewiesen. Das Ganze funktioniert. Gespeichert ist diese Leiste in der Applikation. Dadurch ist sie nur sichtbar, wenn rechnung.ods geladen wird. Gut so.
Nun habe ich zwei Probleme: Zum einen: ich finde das xml File nicht.
Im Pfad \home\dev\OpenOffice.org2\user\config\soffice.cfg\modules\scalc\toolbar\ ist keine xml Datei abgelegt. Gar Keine. Ich hab mal unter /config/ alles abgesucht. in \home\dev\OpenOffice.org2\user\config\soffice.cfg\modules\scalc\menubar\ gibt es eine menubar.xml, deren Änderungsdatum mit meiner Änderung übereinstimmt. Nur taucht die neue Leiste dort nicht auf.
Zum Anderen:
Ich möchte diese Leiste ja gerne mit der Applikation weitergeben.
Wenn ich die Applikation weitergeben möchte, dann müsste ich, wenn vorhanden, das xml file mitgeben. Welcher User ist imstande, ohne Hilfe diese Datei zu installieren? Okay, ich könnte eine Script schreiben. Das würde ich für LINUX machen, und Windows User?
Ach ja: Ich benutze OpenOffice 2.0 auf fedora core 4.
Nun steh ich da ich armer Tor .....
Gruß Gerd
danke für Deinen Tipp. Hab ich jetzt mal gemacht. Die Anwendung heist rechnung.ods. Jetzt gibt es eine Symbolleiste mit Namen Buchhaltung deren einziger Menupunkt ' Neuer Kunde' ist. Dem Punkt habe ich ein Makro und ein Symbol zugewiesen. Das Ganze funktioniert. Gespeichert ist diese Leiste in der Applikation. Dadurch ist sie nur sichtbar, wenn rechnung.ods geladen wird. Gut so.
Nun habe ich zwei Probleme: Zum einen: ich finde das xml File nicht.
Im Pfad \home\dev\OpenOffice.org2\user\config\soffice.cfg\modules\scalc\toolbar\ ist keine xml Datei abgelegt. Gar Keine. Ich hab mal unter /config/ alles abgesucht. in \home\dev\OpenOffice.org2\user\config\soffice.cfg\modules\scalc\menubar\ gibt es eine menubar.xml, deren Änderungsdatum mit meiner Änderung übereinstimmt. Nur taucht die neue Leiste dort nicht auf.
Zum Anderen:
Ich möchte diese Leiste ja gerne mit der Applikation weitergeben.
Wenn ich die Applikation weitergeben möchte, dann müsste ich, wenn vorhanden, das xml file mitgeben. Welcher User ist imstande, ohne Hilfe diese Datei zu installieren? Okay, ich könnte eine Script schreiben. Das würde ich für LINUX machen, und Windows User?
Ach ja: Ich benutze OpenOffice 2.0 auf fedora core 4.
Nun steh ich da ich armer Tor .....
Gruß Gerd
Hey Gerd,
hmm, merkwürdig. Habe das gerade mal nachgestellt - die Datei ist da ("custom_toolbar_1.xml" ) im Verzeichnis scalc.
OK, mein System: OOo 2.1 auf Windows XP SP2.
Sicher, dass du eine 2.x Version hast und keine "verkappte" 1.9.xx Version? Die Linux-Distributoren haben da häufig ihre eigenen Süppchen gekocht....
Der Ordner "menubar" ubrigens beinhaltet nur die Menü-Einträge, nicht aber die frei verschiebbaren Symbolleisten. Ich denke, wir reden von Symbolleisten? Erreichbar über Extras - Anpassen - Symbolleisten?
Und was die Installation betrifft: Da nimmst du ein Skript (z.B. in Basic), dort kannst du die Umgebungsvaiablen auslesen (Installationspfad), dann kopierst du per Skript die Dateine in die gewünschten Ordner- fertig. Das passt unter allen Betriebssystemen
Gruss
Thomas
hmm, merkwürdig. Habe das gerade mal nachgestellt - die Datei ist da ("custom_toolbar_1.xml" ) im Verzeichnis scalc.
OK, mein System: OOo 2.1 auf Windows XP SP2.
Sicher, dass du eine 2.x Version hast und keine "verkappte" 1.9.xx Version? Die Linux-Distributoren haben da häufig ihre eigenen Süppchen gekocht....
Der Ordner "menubar" ubrigens beinhaltet nur die Menü-Einträge, nicht aber die frei verschiebbaren Symbolleisten. Ich denke, wir reden von Symbolleisten? Erreichbar über Extras - Anpassen - Symbolleisten?
Und was die Installation betrifft: Da nimmst du ein Skript (z.B. in Basic), dort kannst du die Umgebungsvaiablen auslesen (Installationspfad), dann kopierst du per Skript die Dateine in die gewünschten Ordner- fertig. Das passt unter allen Betriebssystemen

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hallo Thomas,
Gruß Gerd
Wie kann ich das feststellen?Sicher, dass du eine 2.x Version hast und keine "verkappte" 1.9.xx Version? Die Linux-Distributoren haben da häufig ihre eigenen Süppchen gekocht....
Ja, genau..Ich denke, wir reden von Symbolleisten? Erreichbar über Extras - Anpassen - Symbolleisten?
Das müsste dann beim ersten Start der App laufen. basic könnte ich ja nur ooBasic. Als Installations Script hätte ich sonst ein shell script gemacht. das Funktioniert aber unter Win... natürlich nicht. Mal gucken. Soweit bin ich noch nicht, auch wenn ich schon daran denke.Und was die Installation betrifft: Da nimmst du ein Skript (z.B. in Basic), dort kannst du die Umgebungsvaiablen auslesen (Installationspfad), dann kopierst du per Skript die Dateine in die gewünschten Ordner- fertig. Das passt unter allen Betriebssystemen
Gruß Gerd
Hey Gerd,
- und da kannst du natürlich genauso "scripten". Ein solches Skript bekommt die Erweiterung *.cmd und schon läuft es durch Doppelklick....
Na ja, aber das alles sind Details.
Drücke die Tasten "S" - "D" - "T" bei gedrückter "Strg" Taste, dann beginnt das Bild zu "laufen" und gibt die Namen aller Entwickler preis. In der ersten Zeile (schnell sein...!) steht die Build-Nr der Kompilation - und aus der geht klar hervor, wann der Code aus dem Stammcode genommen und kompiliert wurde.
Gruss
Thomas
Aber klar. Auch Windows besitzt eine shellAls Installations Script hätte ich sonst ein shell script gemacht. das Funktioniert aber unter Win... natürlich nicht.

Na ja, aber das alles sind Details.
Rufe den Menübefehl "Hilfe" -"Über OpenOffice.org" auf. Dort sollte die Versionsnummer stehen. Die sagt aber noch nicht allzuviel aus, die kann man setzen. Wesentlicher ist die Built-Nr. Die erhälst du in dem Fenster wie folgt:Wie kann ich das feststellen?
Drücke die Tasten "S" - "D" - "T" bei gedrückter "Strg" Taste, dann beginnt das Bild zu "laufen" und gibt die Namen aller Entwickler preis. In der ersten Zeile (schnell sein...!) steht die Build-Nr der Kompilation - und aus der geht klar hervor, wann der Code aus dem Stammcode genommen und kompiliert wurde.
Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
und das ist für Deinen Zweck möglicherweise der einzige vernünftige Wegfür eine ooCalc Applikation würde ich sehr gerne eine Menueleiste per Code selbst bauen. Bislang habe ich das mit Ansicht->Symbolleisten->Anpassen gemacht.
"möglicherweise" deshalb weil mir nicht ganz klar ist wa du erreichen willst, mir scheint abe Deine Symbolleiste soll vorhanden sein wenn Du ein bestimmtes Dokument öffnest:
Die Anwendung heist rechnung.ods
und dann dürfte es kaum helfen das XML-File mit öffnen der Datei automatisch kopieren zu lassen, weil OOo das kopierte File erst berücksichtigen wird wenn Du ein neues Fenster öffnest.
Weiß nicht, zumindest war das bisher so und ich habe es aktuell nicht getestet.
Ich würde also wenn es um ein Dokument geh die Symbolleiste normal im Dokument speichern, das geht und ist unkompliziert.
Einen Basic-Code der die Leiste 'live' erzeugt habe ich noch nie programmiert, das ginge möglicherweise aber, nur das mit dem XML meines Erachtens nicht.
Rufe Hilfe-Über... auf, halte STRG gedrückt und drücke Tasten S D T, dann scrollt die genaue Version durchs Bild.Wie kann ich das feststellen?
Ob das überhaupt notwendig ist bin ich nicht sicher, es könnte aber sein das ohne STRG+S D T, die 'normalanzeige' für eine 1.9.x nur 2.0 ist.
Gruß
Stephan
Hallo alle,
Was mir dabei noch fehlt ist die Möglichkeit, ein Untermenu zu bauen. Will sagen: Es soll einen Punkt Kunden mit unterpunkten in Etwa so:Neu, suchen Liste; Menu Rechnung soll dann sowas wie Neu, suchen, buchen oder so bekommen. Das möchte ich nicht in einem Dialog oder womöglich mit ganz vielen Buttons im Sheet realisieren. Ich hab das gaaaanz früher mal mit MS Excel gemacht. Das war manuell gecodet.
Danke Gerd
So hab ich das jetzt mal gemacht. Und es funktioniert sehr schön. Hat nur einen Fehler: Ich stelle die Leiste auf Symbole und Text. Bei jedem Neustart steht die Leiste auf Nur Symbole. Das nervt ein bischen.Ich würde also wenn es um ein Dokument geh die Symbolleiste normal im Dokument speichern, das geht und ist unkompliziert.
Einen Basic-Code der die Leiste 'live' erzeugt habe ich noch nie programmiert, das ginge möglicherweise aber, nur das mit dem XML meines Erachtens nicht.
Was mir dabei noch fehlt ist die Möglichkeit, ein Untermenu zu bauen. Will sagen: Es soll einen Punkt Kunden mit unterpunkten in Etwa so:Neu, suchen Liste; Menu Rechnung soll dann sowas wie Neu, suchen, buchen oder so bekommen. Das möchte ich nicht in einem Dialog oder womöglich mit ganz vielen Buttons im Sheet realisieren. Ich hab das gaaaanz früher mal mit MS Excel gemacht. Das war manuell gecodet.
Danke Gerd