aboutsummaryrefslogtreecommitdiff
path: root/pd/src/g_template.c
diff options
context:
space:
mode:
authorMiller Puckette <millerpuckette@users.sourceforge.net>2005-07-29 19:01:22 +0000
committerMiller Puckette <millerpuckette@users.sourceforge.net>2005-07-29 19:01:22 +0000
commit18c47474a668d7bbbabd525686355c16a45f6ec4 (patch)
tree034625615da54aafc44661aabfcaf8f82578f007 /pd/src/g_template.c
parent819bc4309313e32809dff7cfd99df930c5055082 (diff)
Mac to work with tcl/tk 8.4.5; pd extension added automatically in saveas
bug fix writing aiff gfiles bug fix (tcl error messages when starting open dialogs) svn path=/trunk/; revision=3385
Diffstat (limited to 'pd/src/g_template.c')
-rw-r--r--pd/src/g_template.c27
1 files changed, 25 insertions, 2 deletions
diff --git a/pd/src/g_template.c b/pd/src/g_template.c
index ede0c11c..7a788933 100644
--- a/pd/src/g_template.c
+++ b/pd/src/g_template.c
@@ -801,6 +801,20 @@ static void fielddesc_setfloatarg(t_fielddesc *fd, int argc, t_atom *argv)
else fielddesc_setfloat_const(fd, argv->a_w.w_float);
}
+static void fielddesc_setsymbolarg(t_fielddesc *fd, int argc, t_atom *argv)
+{
+ if (argc <= 0) fielddesc_setsymbol_const(fd, &s_);
+ else if (argv->a_type == A_SYMBOL)
+ {
+ fd->fd_type = A_SYMBOL;
+ fd->fd_var = 1;
+ fd->fd_un.fd_varsym = argv->a_w.w_symbol;
+ fd->fd_v1 = fd->fd_v2 = fd->fd_screen1 = fd->fd_screen2 =
+ fd->fd_quantum = 0;
+ }
+ else fielddesc_setsymbol_const(fd, &s_);
+}
+
static void fielddesc_setarrayarg(t_fielddesc *fd, int argc, t_atom *argv)
{
if (argc <= 0) fielddesc_setfloat_const(fd, 0);
@@ -1902,8 +1916,17 @@ static void *drawnumber_new(t_symbol *classsym, t_int argc, t_atom *argv)
}
else break;
}
- if (argc) fielddesc_setfloatarg(&x->x_value, argc--, argv++);
- else fielddesc_setfloat_const(&x->x_value, 0);
+ if (flags & DRAW_SYMBOL)
+ {
+ if (argc) fielddesc_setsymbolarg(&x->x_value, argc--, argv++);
+ else fielddesc_setsymbol_const(&x->x_value, &s_);
+
+ }
+ else
+ {
+ if (argc) fielddesc_setfloatarg(&x->x_value, argc--, argv++);
+ else fielddesc_setfloat_const(&x->x_value, 0);
+ }
if (argc) fielddesc_setfloatarg(&x->x_xloc, argc--, argv++);
else fielddesc_setfloat_const(&x->x_xloc, 0);
if (argc) fielddesc_setfloatarg(&x->x_yloc, argc--, argv++);