> matthiasm wrote:
>
> >Do you think you can minimize your code to a single
> >page or so that I can compile and run on my machine?
>
> Thanks for your help.
> Here's the code extremely minimized.
> Actually it's just a dragable box but the pb remains the same.
> You'll notice that when the right button is pressed while draging
> nothing happens, you just can keep drag the box. But when it's
> released draging stops.
> Anyway, I'd like to know how to completely skip the right mouse button events 
> in order it doesn't disturb the stream of the other events.
>
>
> #include <FL/Fl.H>
> #include <FL/Fl_Double_Window.H>
> #include <FL/Fl_Box.H>
> #include <FL/Fl_Group.H>
>
>
> class Toolbar : public Fl_Group
> {
>     int handle(int e);
>     int xOffPos, yOffPos, dx, dy; //offsets
>
>    public:
>
>     Toolbar(int x, int y, int w, int h, const char *l = 0):Fl_Group(x, y, w, 
> h, l)
>     {
>        color((Fl_Color) FL_GRAY);
>        box(FL_UP_BOX);
>     }
> };
>
>
> int Toolbar::handle(int e)
> {
>    static int xoff = 0, yoff = 0;
>
>    switch(e)
>    {
>      case FL_PUSH:
>
>        if(Fl::event_button() == FL_LEFT_MOUSE) //set the offsets
>        {
>         xoff = x() - Fl::event_x_root();
>         yoff = y() - Fl::event_y_root();
>        }
>        return 1;
>
>      case FL_RELEASE:
>
>         return 1;
>
>      case FL_DRAG:
>
>        if((Fl::event_state()&FL_BUTTON1) == FL_BUTTON1)
>        {
>           position(xoff + Fl::event_x_root(),
>                             yoff + Fl::event_y_root());
>           xOffPos = xoff + Fl::event_x_root();
>           yOffPos = yoff + Fl::event_y_root();
>           parent()->redraw();
>         }
>
>        return 1;
>
>        default:
>        return Fl_Group::handle(e);
>    }
>
>    return Fl_Group::handle(e);
> }
>
>
> class Application : public Fl_Double_Window
> {
>    Toolbar *toolbar;
>   public:
>       Application(int w, int h, const char *l, int argc, char *argv[]);
> };
>
>
> Application::Application(int w, int h, const char *l, int argc, char *argv[])
> : Fl_Double_Window(w, h, l)
> {
>   box(FL_DOWN_BOX);
>   color((Fl_Color) FL_WHITE);
>   toolbar = new Toolbar(10,10,200, 50);
>   resizable(this);
>   show(argc, argv);
> }
>
>
> int main (int argc, char **argv)
> {
>     Application myApp(500, 300, "Mouse Event Pb", argc, argv);
>     return Fl::run();
> }
>
>

I'm sorry to ask but have you found a solution for that issue ?
Do you think this pb can be solved ?

Thanks


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

Reply via email to