> the click message takes 5 arguments: x, y, shift, alt, double click. sorry, it's x, y, shift, ctrl, alt. mixed it up with text_click()
> Gesendet: Samstag, 29. Juli 2017 um 12:30 Uhr > Von: "Christof Ressi" <[email protected]> > An: "Roman Haefeli" <[email protected]> > Cc: Pd-List <[email protected]> > Betreff: Re: [PD] how to emulate mouse left-click to canvas? > > here's some more details: > > [mouse ...( and the corresponding [mouseup ...( are the mouse events that are > sent to a canvas. BTW, you can use [iemguts/receivecanvas] -> [print] to > check out all the messages the canvas receives. > > [mouse ...( needs four arguments: xpos, ypos, button, key modifier. button is > 1 for a leftclick and 3 for a rightlick (at least on Windows). key is 0 for > no modifier pressed, 1 for SHIFT and 2 for CTRL. > so as already explained, a leftclick message would be [mouse <x> <y> 1 0( > > [mouseup ...( needs three arguments: xpos, ypos, button. > > mouse events are processed by the editor in the function canvas_doclick > (g_editor.c). it checks which object you've clicked on *) and calls the > appropiate callback function in the classes's widget behaviour - which > happens to be text_click (g_text.c) - which finally sends a "click" message > to the object **). the click message takes 5 arguments: x, y, shift, alt, > double click. > > @Roman: you can send [click 0 0 0 0 0( directly to your symbol atom box and > it will be ready for input (if the canvas is in focus). this way you don't > have to care about the actual position. > > some confusion arises from the fact that the canvas class also registers a > 'click' method. but this is *not* the mouse event but the actual click event. > the only thing it does is 'vis 1'. > > > Christof > > *) there's one thing I've always found a bit odd in Pd: for mouse events the > linked list of gobjects is traversed from the beginning (i.e. in the order of > their creation), terminating when a click was successful. the consequence is > that for overlapping sections of GUI elements, the backmost object gets the > 'click' message. try to overlap two bang objects, click on them and you see > what I mean. > > **) actually, for gatoms text_click() directly calls gatom_click(), > circumventing the messaging system. the 'click' message is nevertheless > registered in the gatom class. > > > Gesendet: Samstag, 29. Juli 2017 um 02:00 Uhr > Von: "Dan Wilcox" <[email protected]> > An: "Roman Haefeli" <[email protected]> > Cc: Pd-List <[email protected]> > Betreff: Re: [PD] how to emulate mouse left-click to canvas? > > I don't think that does it as g_editor.c looks like the underlying logic for > editing a patch (add, remove, move, etc) and doesn't forward the mouse events > to the objects themselves. > > > On Jul 29, 2017, at 1:04 AM, Roman Haefeli > <[email protected][mailto:[email protected]]> wrote: > Yeah, I couldn't figure out what this function is useful for and > stopped digging further. But reading it made me confident that 'click' > might doesn't do what I want. In the meantime, Ingo mentioned 'mouse'. > I guess the corresponding code is found in g_editor.c: > > void canvas_mouse(t_canvas *x, t_floatarg xpos, t_floatarg ypos, > t_floatarg which, t_floatarg mod) > { > canvas_doclick(x, xpos, ypos, which, mod, 1); > } > > > Roman > > -------- > Dan Wilcox > @danomatika[http://twitter.com/danomatika] > danomatika.com[http://danomatika.com] > robotcowboy.com[http://robotcowboy.com] > _______________________________________________ [email protected] mailing > list UNSUBSCRIBE and account-management -> > https://lists.puredata.info/listinfo/pd-list[https://lists.puredata.info/listinfo/pd-list] > > _______________________________________________ > [email protected] mailing list > UNSUBSCRIBE and account-management -> > https://lists.puredata.info/listinfo/pd-list > _______________________________________________ [email protected] mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
