EnableGadgetDrop()

Syntaxe

EnableGadgetDrop(#Gadget, Format, Actions [, TypeInterne])
Description
Permet à un gadget d'être la cible d'un 'Drag & Drop' d'un format spécifique. Quand l'utilisateur voudra déposer une donnée de ce format sur le gadget, le curseur sera modifié en conséquence, indiquant que l'action est possible.

Arguments

#Gadget Le numéro du gadget qui supportera le 'Drag & Drop'.
Format Indique quel type de donnée pourra être déposé sur le gadget.

Il peut prendre une des valeurs suivantes ou un identifiant de format système (voir DragOSFormats() pour plus d'informations).
  #PB_Drop_Text   : Accepte du texte sur ce gadget
  #PB_Drop_Image  : Accepte des images sur ce gadget
  #PB_Drop_Files  : Accepte des noms de fichiers sur ce gadget
  #PB_Drop_Private: Accepte un 'Drag & Drop' interne
Actions L'utilisateur peut décider de l'action à prendre en utilisant les touches Ctrl ou Shift. Les actions disponibles dépendent aussi du composant sur lequel le texte va être déposé.

Peut être une combinaison de:
  #PB_Drag_None: Le format de données ne sera pas accepté par ce gadget
  #PB_Drag_Copy: La donnée peut être copiée
  #PB_Drag_Move: La donnée peut être déplacée
  #PB_Drag_Link: La donnée peut être liée
TypeInterne (optionnel) Uniquement nécessaire quand #PB_Drop_Private est utilisé comme format.
Il indique le type du 'Drag & Drop' interne à accepter.
Voir DragPrivate() pour plus d'informations.
Ce paramètre est ignoré pour les autres formats.

Valeur de retour

Aucune.

Remarques

Plusieurs types de formats peuvent être acceptés par un même gadget. Si la source des données transférées a spécifié plusieurs formats qui sont pris en compte par le gadget, celui qui aura été activé en dernier sera accepté. Donc le format le plus approprié devra être activé en dernier.

Quand une donnée sera déposée sur le gadget, le programme recevra un évènement #PB_Event_GadgetDrop. EventGadget() indiquera le gadget concerné et les commandes 'Event' de cette bibliothèque permettront de récupérer la donnée déposée.

Exemple

  ; Faites un cliquer-glisser d'un fichier vers l'un des gadgets qui affichera alors le chemin du fichier
  ;
  If OpenWindow(0, 0, 0, 500, 200, "Drop File Here", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
    StringGadget(0, 10, 10, 500 - 20, 30, "")
    EditorGadget(1, 10, 50, 500 - 20, 140)
    
    EnableGadgetDrop(0, #PB_Drop_Files, #PB_Drag_Copy)
    EnableGadgetDrop(1, #PB_Drop_Files, #PB_Drag_Copy)
  
    Repeat
        Select WaitWindowEvent()
            Case #PB_Event_GadgetDrop
                Select EventGadget()
                    Case 0 ; gadgets ayant reçu l'évènement glisser-déposer de fichier/dossier
                        If Not FindString(EventDropFiles(), Chr(10))
                            SetGadgetText(0, EventDropFiles())
                        EndIf
                    Case 1
                        SetGadgetText(1, EventDropFiles())
                EndSelect
            Case #PB_Event_CloseWindow
                CloseWindow(0)
                End
        EndSelect
    ForEver
  EndIf

Voir aussi

EnableWindowDrop(), EventDropType(), EventDropAction(), SetDropCallback()

OS Supportés

Tous

<- DragText() - DragDrop Index - EnableWindowDrop() ->