Drag and Drop

Devin Asay devin_asay at byu.edu
Thu May 9 10:03:01 CDT 2013


On May 9, 2013, at 6:15 AM, Ray Horsley wrote:

> I've never used this feature before and no matter how I set it up it seems kind of sporadic.  The goal is to drag an image file (jpg, jpeg, png, etc.) from the desktop onto a card, get the path to it and ultimately import it into the stack.  I've place an image control on the card which is the same dimensions as the stack itself and scripted the following:
> 
> on dragEnter
>   set the dragAction to "copy"      -- this is the sporadic part which only sometimes turns the cursor into a plus thus allowing dragDrop to catch the drop
>   pass dragEnter
> end dragEnter
> 
> on dragDrop
>   put the dragData into curFilePath
>   -- continue to import the file
> end dragDrop
> 
> This works 'some of the time' but I'm still often unable to drop what I'm dragging since the cursor doesn't always turn into the plus sign.  Each time this happens I try dragging the file again, immediately, and it suddenly works when I didn't change a thing.  What am I missing to get drag/drop working consistently?

Ray,

A while back I needed exactly this. I worked out a process that seems to work consistently. Here's what I did:

In the card script:

on dragStart
    set the allowableDragActions to "move,copy"
end dragStart


In the drop target object script (mine happened to be a group):

on dragEnter
    set the dragAction to "move"  # "copy" might work, too
    # these next 3 lines are just eye candy to tell the user that they hit a "hot spot"
    set the lineSize of grc "dropSpot" of me to 3
    set the backcolor of grc "dropSpot" of me to "gray"
    set the icon of btn "downArrowBtn" to "downarrow"
end dragEnter

on dragDrop
    put the dragData["files"] into fld "file path"

    # more eye candy
    set the backcolor of grc "dropSpot" of me to the startingBackColor of grc "dropSpot" of me
    set the icon of btn "downArrowBtn" to "downarrowlite"
end dragDrop


on dragLeave
    # yet more eye candy
    set the backcolor of grc "dropSpot" of me to the startingBackColor of grc "dropSpot" of me
    set the icon of btn "downArrowBtn" to "downarrowlite"
end dragLeave

As you can see the essential parts of the drag-drop operation are fairly minimal and straightforward.

HTH

Devin


Devin Asay
Office of Digital Humanities
Brigham Young University




More information about the use-livecode mailing list