> 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

Reply via email to