Drag and Drop example


#1

Hi There,
I’m trying to implement normal Drag and Drop behaviour by deriving my components from DragAndDropContainer and Component base classes.

The problem i encounter is that every time i call startDragging the following happends…
it fails while trying to cast itsself to a Component (see code snippet below).

does anyone has a clue what i’m doing wrong and or has an example of a working Drag and Drop application…
any help is greatly appreciated…

void DragAndDropContainer::startDragging (const String& sourceDescription,
Component* sourceComponent,
Image* im)
{
if (dragImageComponent != 0)
{
if (im != 0)
delete im;
}
else
{

	Component* const thisComp = dynamic_cast<Component*> (this);

#2

I’m a bit confused on the whole drag and drop operations myself. Is there any example code that uses the drag and drop functionality between two Juce dialogs? Cheers


#3

first derive your main window from DragAndDropContainer.
next add the following to the mouseDrag method of the component you want to drag:

DragAndDropContainer* dragC = DragAndDropContainer::findParentContainerFor(this); if (!dragC.isDragAndDropActive) { dragC.startDragging("description string",this); }
then derive any component that you want to be able to drop something on from DragAndDropTarget and implement all the required methods.


#4