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