void *hoa_canvas_new(t_symbol *s, long argc, t_atom *argv) { t_atom av[3]; atom_setfloat(av, 0); t_hoa_canvas *x = (t_hoa_canvas *)pd_new(hoa_canvas_class); t_canvas* owner = canvas_getcurrent(); x->x_canvas = canvas_new(0, 0, 0, NULL); canvas_vis(x->x_canvas, 0); pd_typedmess((t_pd *)x->x_canvas, gensym("pop"), 1, av); canvas_setcurrent(owner); if(argc && atom_gettype(argv) == A_SYM) { atom_setfloat(av, 0); atom_setfloat(av+1, 20); atom_setsym(av+2, atom_getsym(argv)); pd_typedmess((t_pd *)x->x_canvas, gensym("obj"), 3, av); } canvas_loadbang(x->x_canvas); canvas_vis(x->x_canvas, 1); outlet_new((t_object *)x, &s_signal); return (x); }
static void does_click(t_does *does, t_float x, t_float y, t_float w, t_float h, t_float font) { //printf("click?\n"); //post("click!"); //printf("click! %X\n",(unsigned int)does_canvas_for_sym(does->sym_name)); canvas_vis(does_canvas_for_sym(does->sym_name), 1); //printf("vis!\n"); }