Thank you a lot for that!
That code does indeed work great in fltk2!

I still have a problem though:

I copied that code into my main file and replaced the current main
with that main and I got the two windows which allowed me to drag and drop.

I replaced Receiver with my own Drag and Drop-receiving class and that worked 
great as well. BUT; my class still doesn't work in my actual application. 
Neither does Sender and Receiver.

Anyone have an idea why my application isn't allowing drag and drop (and as I 
said, my DND-class works if I plug it into the code below).

> Andreas schrieb:
> > Hi everyone!
> >
> > I've been trying to get drag and drop to work in my application, but 
> > without success.
>
> gregs example works also with fltk2:
>
> /*
> fltk2-config --compile dnd.cxx && ./dnd
> */
> #include "fltk/Box.h"
> #include "fltk/events.h"
> #include "fltk/Window.h"
> #include "fltk/run.h"
> #include <string.h>
> #include <stdio.h>
>
> using namespace fltk;
>
> class Sender : public Widget
>       {
>       int no;
>       int handle(int event)
>               {
>               switch (event)
>                       {
>               case PUSH:
>                       char buf[16];
>                       sprintf(buf,"message %d",no++);
>                       copy(buf,strlen(buf),0);
>                       dnd();
>                       return 0;
>                       }
>               return Widget::handle(event);
>               }
> public:
>       Sender(int x, int y, int w, int h)
>               : Widget(x, y, w, h, "drag source")
>               ,no(0)
>               {
>               box(UP_BOX);
>               }
>       };
>
> class Receiver : public Widget
>       {
>       int handle(int event)
>               {
>               switch (event)
>                       {
>               case DND_ENTER:
>               case DND_RELEASE:
>               case DND_DRAG:
>                       return 1;
>               case PASTE:
>                       //fprintf(stderr,"PASTE %s",event_text());
>                       label(event_text());
>                       redraw();
>                       return 1;
>                       }
>               return Widget::handle(event);
>               }
> public:
>       Receiver(int x, int y, int w, int h)
>               : Widget(x, y, w, h, "drag target")
>               {
>               box(DOWN_BOX);
>               }
>       };
>
> int main(int argc, char **argv) {
>       // Create sender window and widget
>       Window win_a(33,33,166,166,"Sender");
>       win_a.begin();
>       Sender a(33,33,100,100);
>       win_a.end();
>       win_a.show();
>       // Create receiver window and widget
>       Window win_b(433,33,166,166,"Receiver");
>       win_b.begin();
>       Receiver b(33,33,100,100);
>       win_b.end();
>       win_b.show();
>       return run();
>       }

_______________________________________________
fltk mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk

Reply via email to