"tkinter.dnd" --- Unterstützung für Drag-and-drop
*************************************************

**Quellcode:** Lib/tkinter/dnd.py

======================================================================

Bemerkung:

  Dies ist experimentell und wird abgekündigt, sobald es durch Tk DND
  ersetzt wird.

Das Modul "tkinter.dnd" stellt Drag-and-drop-Unterstützung für Objekte
innerhalb einer einzelnen Anwendung bereit, im selben Fenster oder
zwischen Fenstern. Damit ein Objekt gezogen werden kann, musst du
dafür eine Ereignisbindung erzeugen, die den Drag-and-drop-Vorgang
startet. Üblicherweise bindest du ein ButtonPress-Ereignis an eine
selbst geschriebene Callback-Funktion (siehe Bindungen und
Ereignisse). Die Funktion sollte "dnd_start()" aufrufen, wobei
*source* das zu ziehende Objekt ist und *event* das Ereignis, das den
Aufruf ausgelöst hat (das Argument deiner Callback-Funktion).

Die Auswahl eines Zielobjekts läuft folgendermaßen ab:

1. Der Bereich unter der Maus wird von oben nach unten nach einem
   Ziel-Widget durchsucht:

   * das Ziel-Widget sollte ein aufrufbares Attribut *dnd_accept*
     besitzen;

   * ist *dnd_accept* nicht vorhanden oder gibt es "None" zurück, wird
     die Suche beim übergeordneten Widget fortgesetzt;

   * wird kein Ziel-Widget gefunden, ist das Zielobjekt "None".

2. Aufruf von "<old_target>.dnd_leave(source, event)".

3. Aufruf von "<new_target>.dnd_enter(source, event)".

4. Aufruf von "<target>.dnd_commit(source, event)", um das Ablegen zu
   melden.

5. Aufruf von "<source>.dnd_end(target, event)", um das Ende von Drag-
   and-drop zu signalisieren.

class tkinter.dnd.DndHandler(source, event)

   Die Klasse *DndHandler* verarbeitet Drag-and-drop-Ereignisse und
   verfolgt dazu Motion- und ButtonRelease-Ereignisse auf dem Root-
   Fenster des Ereignis-Widgets.

   cancel(event=None)

      Bricht den Drag-and-drop-Vorgang ab.

   finish(event, commit=0)

      Führt die Funktionen zum Beenden von Drag-and-drop aus.

   on_motion(event)

      Untersucht während des Ziehens den Bereich unter der Maus auf
      Zielobjekte.

   on_release(event)

      Signalisiert das Ende des Ziehens, wenn das Muster zum Loslassen
      ausgelöst wird.

tkinter.dnd.dnd_start(source, event)

   Factory-Funktion für den Drag-and-drop-Vorgang. Gibt die
   "DndHandler"-Instanz zurück, die das Ziehen verwaltet, oder "None",
   wenn kein Ziehen gestartet werden konnte.

Siehe auch: Bindungen und Ereignisse
