SetDropCallback()

Syntax

SetDropCallback(@DropCallback())
Beschreibung
Definiert eine Callback-Funktion, welche aufgerufen werden soll, wenn Daten über ein Gadget oder Fenster (was das Ablegen von Daten erlaubt) fallen gelassen werden (siehe EnableGadgetDrop() / EnableWindowDrop()). Der Callback ermöglicht die Modifikation des von PureBasic angebotenen Drag & Drop Prozesses, z.B. durch einen gesonderten visuellen Hinweis auf dem Ziel-Gadget oder Ziel-Fenster.

Parameter

@DropCallback() Die Adresse einer Funktion, welche während einer Drop-Operation (das Objekt wird "fallen gelassen") aufgerufen wird.

Der Callback wird aufgerufen, sobald die Maus das Ziel-Gadget oder Ziel-Fenster berührt, bewegt wird und verlässt. Er ermöglicht es, dem Anwender ein zusätzliches Feedback zu geben, z.B. durch Hervorheben des Ziel-Eintrags oder Ziel-Bereichs.

Weiterhin kann der Callback die gegenwärtig beabsichtigte Aktion unterbinden und damit genauer definieren, wo innerhalb eines Gadgets oder Fensters die Daten abgelegt werden können. Der Mauscursor sollte hier nicht verändert werden, da die Quelle für die Drag & Drop Operation dafür verantwortlich ist.

Die Form des Callbacks wird nachfolgend beschrieben:
  Procedure DropCallback(ZielHandle, Status, Format, Aktion, x, y)
  
    ProcedureReturn #True
  EndProcedure
Der erste Parameter spezifiziert das OS-spezifische Handle für das Ziel-Gadget oder das Ziel-Fenster. Auf Windows ist dies ein HWND-Wert, auf Linux ein GtkWidget-Pointer, und auf MacOSX ist es ein ControlRef- bzw. WindowRef-Wert. Dies sind die gleichen Werte wie sie von GadgetID() bzw. WindowID() für das Ziel-Gadget bzw. Ziel-Fenster zurückgegeben werden.

'Status' definiert den aktuellen Status der Drag & Drop Operation und ist einer der folgenden Werte:
  #PB_Drag_Enter : Die Maus erreichte das Gadget oder Fenster
  #PB_Drag_Update: Die Maus wurde innerhalb des Gadgets oder Fensters bewegt, oder die beabsichtigte Aktion hat sich verändert
  #PB_Drag_Leave : Die Maus hat das Gadget oder Fenster verlassen (Format, Aktion, x, y sind in diesem Fall 0)
  #PB_Drag_Finish: Das Drag & Drop ist abgeschlossen
'Format' gibt das Datenformat an und kann einer der folgenden Werte sein, oder eine OS-spezifische ID für ein besonderes Format (siehe DragOSFormats() für weitere Informationen).
  #PB_Drop_Text   : Akzeptiere Text auf diesem Gadget oder Fenster
  #PB_Drop_Image  : Akzeptiere Bilder auf diesem Gadget oder Fenster
  #PB_Drop_Files  : Akzeptiere Dateinamen auf diesem Gadget oder Fenster
  #PB_Drop_Private: Akzeptiere ein "privates" Drag & Drop auf diesem Gadget oder Fenster
'Aktion' definiert die Aktion, welche stattfinden soll, wenn der Anwender an dieser Stelle die Maus los lässt. Sie kann einer dieser Werte sein:
  #PB_Drag_None: Die Daten werden nicht akzeptiert, wenn sie hier abgelegt werden
  #PB_Drag_Copy: Die Daten werden kopiert
  #PB_Drag_Move: Die Daten werden verschoben
  #PB_Drag_Link: Die Daten werden verlinkt
Durch die Rückgabe von #True erlaubt der Callback, dass die Aktion an diesem Punkt stattfindet. Durch die Rückgabe von #False unterbindet der Callback die Aktion (der Mauscursor wird durch die "Drag"-Quelle in einen "Verboten"-Cursor geändert). Insbesondere wenn 'Status' gleich #PB_Drag_Finish ist, wird das Zurückgeben von #False die gesamte Drag & Drop Operation fehlschlagen lassen.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Siehe auch

SetDragCallback()

Unterstützte OS

Alle

<- SetDragCallback() - DragDrop Inhaltsverzeichnis