Einfügen von eigenen Grafiken in Symbolleiste
Moderator: Moderatoren
Einfügen von eigenen Grafiken in Symbolleiste
Hallo,
ich habe folgendes problem:
Es ist meine Aufgabe für eine Projekarbeit eine Erweiterung für OpenOffice draw zu erstellen, bei der ich eigene Grafiken in Syombolleisten einfügen muss und diese mittels Drag & Drop in das Document einzufügen.
Und hierbei stellt sich mir die Frage wie ich diese implementieren kann. Muss dazu der Sorce- Code verändert werden, oder funktioniert dies mittels eines Macros (habe in diesem Gebiet leider noch keine Erfahrung sammeln können)?
Grafiken sind wie bereits zuvor erwähnt vorhanden und sollen zu Beginn eine fixe Größe haben.
Hoffe auf Rückmeldung!
mfg kappl_sim
ich habe folgendes problem:
Es ist meine Aufgabe für eine Projekarbeit eine Erweiterung für OpenOffice draw zu erstellen, bei der ich eigene Grafiken in Syombolleisten einfügen muss und diese mittels Drag & Drop in das Document einzufügen.
Und hierbei stellt sich mir die Frage wie ich diese implementieren kann. Muss dazu der Sorce- Code verändert werden, oder funktioniert dies mittels eines Macros (habe in diesem Gebiet leider noch keine Erfahrung sammeln können)?
Grafiken sind wie bereits zuvor erwähnt vorhanden und sollen zu Beginn eine fixe Größe haben.
Hoffe auf Rückmeldung!
mfg kappl_sim
Verstehe ich ehrlich gesagt das Anliegen garnicht. In den Symbolleisten haben die Schaltflächen 'Bilder' im Sinne 16x16 Pixel großer Grafiken, diese sind natürlich nicht ins Dokument einzufügen sondern nur für die Schaltflächen gedacht.Es ist meine Aufgabe für eine Projekarbeit eine Erweiterung für OpenOffice draw zu erstellen, bei der ich eigene Grafiken in Syombolleisten einfügen muss und diese mittels Drag & Drop in das Document einzufügen.
Keine Ahnung, nur die Symbolleisten sind dafür garnicht gemacht.Und hierbei stellt sich mir die Frage wie ich diese implementieren kann.
Gruß
Stephan
Erstmal danke für deine Antwort, denke aber hab mich etwas umständlich ausgedrückt.Stephan hat geschrieben:Verstehe ich ehrlich gesagt das Anliegen garnicht. In den Symbolleisten haben die Schaltflächen 'Bilder' im Sinne 16x16 Pixel großer Grafiken, diese sind natürlich nicht ins Dokument einzufügen sondern nur für die Schaltflächen gedacht.Es ist meine Aufgabe für eine Projekarbeit eine Erweiterung für OpenOffice draw zu erstellen, bei der ich eigene Grafiken in Syombolleisten einfügen muss und diese mittels Drag & Drop in das Document einzufügen.
Keine Ahnung, nur die Symbolleisten sind dafür garnicht gemacht.Und hierbei stellt sich mir die Frage wie ich diese implementieren kann.
Gruß
Stephan

Also es wird eine zusätzliche Symbolleiste benötigt inklusive neuer Elemente (also anstatt dreiecken, rechteck, usw.) in meinem Fall wären das z.B. Roboter oder eine Spannvorrichtung (die Grafiken haben wir bereits).
Momentan werden diese Grafiken von einer Vorlagendatei mit Kopieren und Einfügen in das gerade zu bearbeitende Dokument eingefügt. Und meine Aufgabe besteht jetzt darin diese Elemente in OpenOffice Draw zu integrieren.
Hoffe du verstehst jetzt mein Anliegen, falls nicht versuche ich es gerne nochmal

mfg kappl_sim
ja, Du meinst solch ähnliche Dinge wie jetzt bereits in der Zeichen-Symbolleiste vorhanden sind.Hoffe du verstehst jetzt mein Anliegen
Dazu kann ich nichts sagen, mein Rat wäre höchstens beim Grafik-Projekt anzufragen, im Prinzip auf deren dev-mailingliste:
http://graphics.openoffice.org/servlets ... ngListList
Gruß
Stephan
Hey Kappl_sim,
ich kann dir zumindest ein paar Ratschläge geben:
eine eigene Sysmbolleiste greift auf die Grafiken zurück, die in folgenden Pfaden liegen:
<Benutzerinstallation>\Anwendungsdaten\OpenOffice.org\user\config\soffice.cfg\modules
Dort wählst du dann die Pfadkomponente deines Moduls, bei dir also wohl sdraw (Draw). Dort findest du jetzt die entsprechenden Unterordner:
\images -> dort git es die Datei sc_imagelist.xml, welche die Zuordnung zu den benutzerdefinierten Grafiken beinhaltet (Hast du allerdings noch keine, so muss die Datei neu erstellt werden!)
\images\Bitmaps\ -> dort hinein kommen dann deine Grafiken (Icons) in png Format - 16*16 Pixel. Auf diese Dateien referiert die sc_imagelist.xml
\toolbar\ -> dort kommt die eigene Sysmbolleite rein, ebenfalls eine xml-Datei.
Am einfachste erstellst du die Symboleiste zunächst über das Userinterface (Extras - Anpassen - Symbolleisten) und schaust dir dann die entstandenen xml-Dateien an. die kannst du ja beliebig editieren und anpassen.
Die Funktionalitäöt des "Drag&Drop" musst du allerdings per Makro programmieren und das Makro dann mit der Symbolleite verknüpfen - und hier dürfte die Hauptproblematik liegen
Viele Grüße
Thomas
ich kann dir zumindest ein paar Ratschläge geben:
eine eigene Sysmbolleiste greift auf die Grafiken zurück, die in folgenden Pfaden liegen:
<Benutzerinstallation>\Anwendungsdaten\OpenOffice.org\user\config\soffice.cfg\modules
Dort wählst du dann die Pfadkomponente deines Moduls, bei dir also wohl sdraw (Draw). Dort findest du jetzt die entsprechenden Unterordner:
\images -> dort git es die Datei sc_imagelist.xml, welche die Zuordnung zu den benutzerdefinierten Grafiken beinhaltet (Hast du allerdings noch keine, so muss die Datei neu erstellt werden!)
\images\Bitmaps\ -> dort hinein kommen dann deine Grafiken (Icons) in png Format - 16*16 Pixel. Auf diese Dateien referiert die sc_imagelist.xml
\toolbar\ -> dort kommt die eigene Sysmbolleite rein, ebenfalls eine xml-Datei.
Am einfachste erstellst du die Symboleiste zunächst über das Userinterface (Extras - Anpassen - Symbolleisten) und schaust dir dann die entstandenen xml-Dateien an. die kannst du ja beliebig editieren und anpassen.
Die Funktionalitäöt des "Drag&Drop" musst du allerdings per Makro programmieren und das Makro dann mit der Symbolleite verknüpfen - und hier dürfte die Hauptproblematik liegen

Viele Grüße
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 zusammen,
ich glaube das Einfügen über eine Symbolleiste ist hier nicht der richtige Weg.
Ich würde den Weg über die Gallery gehen. Einfach ein neues Thema in der Gallery anlegen und mit den Symbolen füllen. Diese können dann ganz einfach über Drag&Drop in das Dokument eingefügt werden.
Viele Grüße
FranzX
-----------------------------------------------------------------
TIPP: Writer-Tuning; 194 clevere Tips und Tricks für OpenOffice.org 2 und StarOffice 8.
ich glaube das Einfügen über eine Symbolleiste ist hier nicht der richtige Weg.
Ich würde den Weg über die Gallery gehen. Einfach ein neues Thema in der Gallery anlegen und mit den Symbolen füllen. Diese können dann ganz einfach über Drag&Drop in das Dokument eingefügt werden.
Viele Grüße
FranzX
-----------------------------------------------------------------
TIPP: Writer-Tuning; 194 clevere Tips und Tricks für OpenOffice.org 2 und StarOffice 8.
Hallo nochmal,
Danke für eure Hilfe und Tipps! Ich habe das Problem (fast) mittels der Anleitung von Toxitom gelöst!
Jedoch ist nun folgendes aufgetreten:
Wenn ich mein Makro in OpenOffice Writer ausführe, wird eine Grafik in das Dokument eingefügt, jedoch bei OpenOffice Draw, wo ich die Grafiken später brauche, wird beim Ausführen des selben Makrkos der Dateiexplorer zum Auswählen der gewünschten Grafik aufgerufen, was wiederum nicht erwünscht ist.
Ich poste euch mal mein Makro, vllt könnt ihr mich ja auf meinen Fehler aufmerksam machen.
Viele Grüße
kappl_sim
Danke für eure Hilfe und Tipps! Ich habe das Problem (fast) mittels der Anleitung von Toxitom gelöst!
Jedoch ist nun folgendes aufgetreten:
Wenn ich mein Makro in OpenOffice Writer ausführe, wird eine Grafik in das Dokument eingefügt, jedoch bei OpenOffice Draw, wo ich die Grafiken später brauche, wird beim Ausführen des selben Makrkos der Dateiexplorer zum Auswählen der gewünschten Grafik aufgerufen, was wiederum nicht erwünscht ist.
Ich poste euch mal mein Makro, vllt könnt ihr mich ja auf meinen Fehler aufmerksam machen.
Code: Alles auswählen
REM ***** BASIC *****
sub vorrichtung_10_g
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(3) as new com.sun.star.beans.PropertyValue
args1(0).Name = "FileName"
args1(0).Value = "file:///C:/Dokumente%20und%20Einstellungen/Michael/Eigene%20Dateien/Schule/Schule/5BHD/TMS%20-%20Diplomarbeit/Symbole/100/10/Vorrichtung_11_g.wmf"
args1(1).Name = "FilterName"
args1(1).Value = "<Alle Formate>"
args1(2).Name = "AsLink"
args1(2).Value = false
args1(3).Name = "Style"
args1(3).Value = "Grafik"
dispatcher.executeDispatch(document, ".uno:InsertGraphic", "", 0, args1())
end sub
kappl_sim
Habe es jetzt geschafft die Grafiken mithilfe eines Makros einzufügen.
Hier der code:
Das wäre nun der erste Teil meiner Aufgabe 
Wenn mir jetzt noch jemand erklären könnte wie man bei einer Symobolleiste Drop down Menüs erstellen kann wäre ich euch sehr dankbar. Denn mithilfe dieser verliert man bei 100 Elementen nicht so schnell den Überblick.
Hoffe mir kann jemand bei meinem Problem helfen.
Viele Grüße
kappl_sim
Hier der code:
Code: Alles auswählen
Sub Main
Dim sURL$
sURL = ConvertToURL(„C:\Dokumente und Einstellungen\a.wmf“)
InsertGraphicObjectShape(ThisComponent, sURL)
End Sub
Sub InsertGraphicObjectShape(oDoc, sURL$)
Dim oSize As New com.sun.star.awt.Size
Dim oPos As New com.sun.star.awt.Point
Dim oGraph
oGraph = oDoc.createInstance(“com.sun.star.drawing.GraphicObjectShape”)
Größe und Position der Grafik wird zugewiesen
oSize.width=200
oSize.height=300
oGraph.setSize(oSize)
oPos.X = 2540
oPos.Y = 2540
oGraph.setposition(oPos)
oDoc.getDrawPages().getByIndex(0).add(oGraph)
REM Set URL to the graphic.
oGraph.GraphicURL = sURL
End Sub
Function ChooseAFile$(sFilters(), bOpen As Boolean, Optional sInPath$)
Dim oDialog As Object
Dim sPath As String
Dim oSFA As Object
Dim s As String
Dim I As Integer
oDialog = CreateUnoService(“com.sun.star.ui.dialogs.FilePicker”)
oSFA = createUnoService(“com.sun.star.ucb.SimpleFileAccess”)
If bOpen Then
I = com.sun.star.ui.dialogs.TemplateDescription.FILEOPEN_SIMPLE
Else
I = com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_SIMPLE
End If
oDialog.initialize(Array(i))
If IsMissing(sInPath) Then
oDialog.setDisplayDirectory(GetWorkDir())
ElseIf oSFA.Exists(sInPath) Then
oDialog.setDisplayDirectory(sInPath)
Else
s = “Directory ‘” & sInPath & “’ Does not exist”
If MsgBox(s, 33, “Error”) = 2 Then Exit Function
End If
For I = Lbound(sFilters()) To Ubound(sFilters()) Step 2
Dim sFilterName$
Dim sFilterValue$
sFilterValue = sFilters(i+1)
sFilterName = sFilterValue & “ – “ & sFilters(i)
oDialog.appendFilter(sFilterName, sFilterValue)
Next
If oDialog.Execute() = 1 Then
sPath = oDialog.Files(0)
ChooseAFile() = sPath
End If
End Function
Function GraphicFilters()
GraphicFilters() = Array(“All Files”, “*.*”, _
„Graphic Interchange Format“, „*.gif“, _
„Joint Photographic Experts Group“, „*.jpg“, _
„Tag Image File Format“, „*.tif“, _
“Windows Bit Map”, “*.bmp”, _
“Gimp Files”, “*.xcf”, _
“Portable Network Graphics”, “*.png”)
End Function
Function GetWorkDir() As String
Dim oPathSettings
oPathSettings = CreateUnoService(“com.sun.star.util.PathSettings”)
GetWorkDir() = oPathSettings.Work
End Function

Wenn mir jetzt noch jemand erklären könnte wie man bei einer Symobolleiste Drop down Menüs erstellen kann wäre ich euch sehr dankbar. Denn mithilfe dieser verliert man bei 100 Elementen nicht so schnell den Überblick.

Hoffe mir kann jemand bei meinem Problem helfen.
Viele Grüße
kappl_sim