Skip to content

Instantly share code, notes, and snippets.

@HenriAugusto
Last active August 24, 2019 17:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save HenriAugusto/e417c8f269ad10df2dc3359b907ea588 to your computer and use it in GitHub Desktop.
Save HenriAugusto/e417c8f269ad10df2dc3359b907ea588 to your computer and use it in GitHub Desktop.
/* method located in g_text.c */
void canvas_obj(t_glist *gl, t_symbol *s, int argc, t_atom *argv)
{
t_text *x;
if (argc >= 2)
{
t_binbuf *b = binbuf_new();
binbuf_restore(b, argc-2, argv+2);
canvas_objtext(gl, atom_getfloatarg(0, argc, argv),
atom_getfloatarg(1, argc, argv), 0, 0, b);
}
/* JMZ: don't go into interactive mode in a closed canvas */
else if (!glist_isvisible(gl))
post("unable to create stub object in closed canvas!");
else
{
/* interactively create new obect */
t_binbuf *b = binbuf_new();
int connectme, xpix, ypix, indx, nobj;
canvas_howputnew(gl, &connectme, &xpix, &ypix, &indx, &nobj);
pd_vmess(&gl->gl_pd, gensym("editmode"), "i", 1);
canvas_objtext(gl, xpix, ypix, 0, 1, b);
if (connectme){
#ifdef HAVE_KEYBOARDNAV
t_kbdnav *kbdnav = &gl->gl_editor->e_kbdnav;
if ( kbdnav->kn_state != KN_INACTIVE )
{
switch( kbdnav->kn_iotype )
{
case IO_INLET:
#endif
canvas_connect(gl, nobj, 0, indx, kbdnav->kn_ioindex);
#ifdef HAVE_KEYBOARDNAV
break;
case IO_OUTLET:
canvas_connect(gl, indx, kbdnav->kn_ioindex, nobj, 0);
break;
default:
bug("invalid iotype on function functionName()");
}
kbdnav_deactivate(gl);
canvas_redraw(gl);
} else {
canvas_connect(gl, indx, 0, nobj, 0);
}
#endif
}
else canvas_startmotion(glist_getcanvas(gl));
if (!canvas_undo_get(glist_getcanvas(gl))->u_doing)
canvas_undo_add(glist_getcanvas(gl), UNDO_CREATE, "create",
(void *)canvas_undo_set_create(glist_getcanvas(gl)));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment