|Subject:||Re: [PD] [PD-dev] canvas get method|
|From:||Patrice Colet (cole...@free.fr)|
|Date:||May 24, 2011 4:28:07 pm|
lol, it's fun, your file misses YZM's canvas_closebang and canvas_initbang, but
i could compile it by adding missing lines,
a diff file would be a great thing :D
I couldn't water parchy, maybe because I'm missing [expr] object?
expr $f1>68 && $f1<79 ... couldn't create expr $f1>457 && $f1<462 ... couldn't create args
----- "Jonathan Wilkes" <janc...@yahoo.com> a écrit :
Oh, and... I'm not sure if screenpos is totally accurate. I haven't tested it in different window managers.
--- On Tue, 5/24/11, Jonathan Wilkes <janc...@yahoo.com> wrote:
From: Jonathan Wilkes <janc...@yahoo.com> Subject: canvas get method To: Pd-...@iem.at Date: Tuesday, May 24, 2011, 6:30 PM Hi list, Here's my first attempt at some c code to create a "get" method to query the properties of a canvas. I included the entire g_canvas.c from 0.43 (haven't started using git and diff yet) and a demo patch with some helper abstractions. Some things that it does:
* [namecanvas] (and [sendcanvas]) are _actually_ obsolete * canvas environment variables available to the user (filename, dir, canvas-local paths, dollarzero) * parent attributes (like dollarzero) are gettable without having to give it as an argument to the abstraction * possible to find the toplevel canvas that contains "this"
abstraction (plus making all kinds of "canvas-abs" like the list-abs lib) * ability to get gop status, coords values, patch screen position, abstraction's position on parent, and other goodies that are currently scattered all around external libraries with various interfaces * abstraction can get a list of all attributes (like dollarzero) from all the abstraction instances that exist. (Probably should institute patch 1403917 to make this rock-solid.) * parent args are gettable!
Things seem to work alright so far, but I'm not sure how to handle reentrancy. Also, I'm currently replying to queries using the attribute as a selector. The only model I had-- the [cnv] get_pos-- just sends the data, but it seems cleaner to send to one receive-symbol and [route] accordingly. (I also much prefer one "get" method to separate ones to access each attribute.)
-- Patrice Colet