DragOSFormats()

Syntax

Ergebnis = DragOSFormats(Formate(), Anzahl [, Aktionen])
Beschreibung
Startet eine Drag & Drop Operation mit einer Liste vorgegebener Daten-Formate. Die verfügbaren Format-Typen und die Art und Weise, wie diese dargestellt werden, hängt vom Betriebssystem ab. Diese Funktion bietet die Möglichkeit zum Arbeiten mit Formaten, welche nicht nativ von PureBasic unterstützt werden, während trotzdem die von dieser Befehls-Bibliothek angebotenen einfachen Mechanismen zum Ausführen einer Drag & Drop Operation genutzt werden können.

Drag & Drop kann grundsätzlich jederzeit gestartet werden, aber die linke Maustaste sollte aktuell gedrückt sein, da andernfalls die Operation umgehend und ohne Erfolg beendet wird. Der übliche Zeitpunkt zum Starten einer Drag & Drop Operation ist, wenn ein Gadget über EventType() ein Ereignis vom Typ #PB_EventType_DragStart zurückmeldet.

Parameter

Formate() sollte ein Array von DragDataFormat Strukturen sein, welches ein oder mehrere "Drag"-Formate enthält.
'Anzahl' gibt die Anzahl der im Array enthaltenen Formate an.
Die Struktur hat die folgende Form:
  Structure DragDataFormat
    Format.l    ; Die OS-spezifische ID für das "zu verschiebende" Format (siehe unten für weitere Informationen)
    *Buffer     ; Der Speicherpuffer, welche die Daten in diesem Format enthält
    Size.l      ; Die Größe der Daten im Puffer
  EndStructure
Windows:
Auf Windows gibt das 'Format'-Feld einen CLIPBOARDFORMAT Wert an. Es kann jedes standardmäßige Clipboard (Zwischenablage) Format sein (zu finden im Windows SDK) oder ein mit dem API-Befehl RegisterClipboardFormat_() registriertes Format.
Linux:
Auf Linux gibt das 'Format'-Feld einen GdkAtom Wert an. Dieser kann mit der gdk Funkion gdk_atom_intern_() erstellt werden. Häufig verstandene Atome sind die gemeinsamen Mime-Typen (z.B. "text/html" für Html-Daten). Das Atom kann auch mit jedem String, welcher von der Ziel-Applikation verstanden wird, erstellt werden.
Wenn mehrere Formate "verschoben" werden, wird das Ziel das erste - welches es erkennt - akzeptieren. Daher sollte das Format, welches die meisten Informationen enthält (d.h. die genauesten Daten darstellt), das erste im Array sein, während die üblichen aber weniger inhaltsreichen Formate später folgen. Auf diesem Weg wird jede Applikation die beste Darstellung von Daten erhalten, welche sie versteht.

Aktionen kann eine Kombination der Drag & Drop Aktionen sein, welche für die Daten erlaubt sein sollen. Wenn der Parameter nicht angegeben wird, wird #PB_Drag_Copy die einzige erlaubte Aktion sein. Mögliche Aktionen sind: (sie können mittels '|' kombiniert werden)
  #PB_Drag_Copy: Die Daten können kopiert werden
  #PB_Drag_Move: Die Daten können verschoben werden
  #PB_Drag_Link: Die Daten können verlinkt werden
Der Anwender kann durch Drücken der Zusatztasten wie 'Strg' oder 'Shift' entscheiden, welche dieser Aktionen verwendet werden soll. Die Aktionen, welche tatsächlich stattfinden können, richten sich auch nach den vom Zielobjekt erlaubten Aktionen.

Rückgabewert

Gibt eine der oben genannten Drag & Drop Aktion-Werte zurück, welche die vom Anwender genutzte Aktion anzeigen, oder #PB_Drag_None wenn der Anwender die Drag & Drop Operation abgebrochen hat.

Bitte beachten Sie, dass es bei Rückgabe von #PB_Drag_Move in Ihrer Verantwortung liegt, die verschobenen Daten von Ihrer Applikation zu entfernen.

Unterstützte OS

Alle

<- DragImage() - DragDrop Inhaltsverzeichnis - DragPrivate() ->