From 14b05069b61d8d86d52415acb1adea7a61547ac6 Mon Sep 17 00:00:00 2001 From: "N.N." Date: Mon, 29 Mar 2004 17:09:53 +0000 Subject: toxy alpha10 svn path=/trunk/externals/miXed/; revision=1502 --- shared/toxy/scriptlet.c | 47 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 8 deletions(-) (limited to 'shared/toxy/scriptlet.c') diff --git a/shared/toxy/scriptlet.c b/shared/toxy/scriptlet.c index f7ce800..a2f5ee0 100644 --- a/shared/toxy/scriptlet.c +++ b/shared/toxy/scriptlet.c @@ -200,30 +200,56 @@ static char *scriptlet_dedot(t_scriptlet *sp, char *ibuf, char *obuf, t_canvas *cv; if (cv = scriptlet_canvasvalidate(sp, 0)) { + t_glist *glist; if (!strncmp(&ibuf[1], "tag", 3)) { t_rtext *rt; - if (cv->gl_owner && glist_isvisible(cv->gl_owner) && - cv->gl_owner->gl_editor && - (rt = glist_findrtext(cv->gl_owner, (t_object *)cv))) + glist = cv->gl_owner; + if (glist && glist_isvisible(glist) && glist->gl_editor + && (rt = glist_findrtext(glist, (t_object *)cv))) sprintf(obuf, "%s", rtext_gettag(rt)); else obuf[0] = 0; len = 4; } - else if (!strncmp(&ibuf[1], "owner", 5)) + else if (!strncmp(&ibuf[1], "parent", 6)) { - if (cv->gl_owner && glist_isvisible(cv->gl_owner)) - sprintf(obuf, ".x%x", (int)cv->gl_owner); + glist = cv->gl_owner; + if (glist && glist_isvisible(glist)) + sprintf(obuf, ".x%x", (int)glist); else obuf[0] = 0; - len = 6; + len = 7; } else if (!strncmp(&ibuf[1], "root", 4)) { - sprintf(obuf, ".x%x", (int)canvas_getrootfor(cv)); + glist = canvas_getrootfor(cv); + if (glist && glist_isvisible(glist)) + sprintf(obuf, ".x%x", (int)glist); + else + obuf[0] = 0; len = 5; } + else if (!strncmp(&ibuf[1], "owner", 5)) + { + if (glist = canvas_getrootfor(cv)) + glist = glist->gl_owner; + if (glist && glist_isvisible(glist)) + sprintf(obuf, ".x%x", (int)glist); + else + obuf[0] = 0; + len = 6; + } + else if (!strncmp(&ibuf[1], "top", 3)) + { + glist = cv; + while (glist->gl_owner) glist = glist->gl_owner; + if (glist && glist_isvisible(glist)) + sprintf(obuf, ".x%x", (int)glist); + else + obuf[0] = 0; + len = 4; + } /* LATER find out when gl_ are updated, think how to better sync them to Tk. */ else if (!strncmp(&ibuf[1], "x1", 2)) @@ -256,6 +282,11 @@ static char *scriptlet_dedot(t_scriptlet *sp, char *ibuf, char *obuf, sprintf(obuf, "%d", glist_isgraph(cv)); len = 4; } + else if (!strncmp(&ibuf[1], "dir", 3)) + { + sprintf(obuf, "%s", canvas_getdir(cv)->s_name); + len = 4; + } else loud_error(sp->s_owner, "bad field '%s'", &ibuf[1]); } } -- cgit v1.2.1