(I got no answer before, so I'll try again)
So I am trying to write [cursor] starting from Günter's [gcanvas].
This is my understanding of what's going one: [gcanvas] uses a
t_widgetbehavior.w_clickfn function to get the mouse coords on click.
Then that t_clickfn registers a t_glistmotionfn so that it will
continue getting the mouse coords.
What I want to do is using the t_glistmotionfn but add it with a
[start( message. Why doesn't this work? This is what I am doing in
externals/ggee/gui/gcanvas.c:
static void cursor_motion(t_cursor *x, t_floatarg dx, t_floatarg dy)
{
x->x += dx;
x->y += dy;
outlet_float(x->out2,x->y);
outlet_float(x->x_obj.ob_outlet,x->x);
}
static void cursor_start(t_cursor *x)
{
glist_grab(x->x_glist, &x->x_obj.te_g, (t_glistmotionfn) cursor_motion,
(t_glistkeyfn) NULL, NULL, NULL);
}
class_addmethod(cursor_class,(t_method) cursor_start,gensym("start"),0);
________________________________________________________________________
____
If you are not part of the solution, you are part of the problem.
-
Eldridge Cleaver