aboutsummaryrefslogtreecommitdiff
path: root/pd/src/x_gui.c
diff options
context:
space:
mode:
authorMiller Puckette <millerpuckette@users.sourceforge.net>2006-06-03 19:13:08 +0000
committerMiller Puckette <millerpuckette@users.sourceforge.net>2006-06-03 19:13:08 +0000
commitbeb2211b63b4b80ee07a807e5ffdd441aeea6354 (patch)
tree876eb052d5cec7755053328a470c75e0638b6b94 /pd/src/x_gui.c
parenteb976fa09171036cbaeaabf920708b2d39c49acc (diff)
FFT package selection
Zmoelnig's multi-'$' patch big-soundfile support Patch to set open directories (openpanel, savepanel) patch to allow funny characters in extern names fixed makefile.in to support intel mac svn path=/trunk/; revision=5164
Diffstat (limited to 'pd/src/x_gui.c')
-rw-r--r--pd/src/x_gui.c33
1 files changed, 25 insertions, 8 deletions
diff --git a/pd/src/x_gui.c b/pd/src/x_gui.c
index d2d47ae1..bcc6ec8b 100644
--- a/pd/src/x_gui.c
+++ b/pd/src/x_gui.c
@@ -182,7 +182,7 @@ typedef struct _openpanel
t_symbol *x_s;
} t_openpanel;
-static void *openpanel_new(void)
+static void *openpanel_new( void)
{
char buf[50];
t_openpanel *x = (t_openpanel *)pd_new(openpanel_class);
@@ -193,16 +193,23 @@ static void *openpanel_new(void)
return (x);
}
+static void openpanel_symbol(t_openpanel *x, t_symbol *s)
+{
+ char *path = (s && s->s_name) ? s->s_name : "\"\"";
+ sys_vgui("pdtk_openpanel {%s} {%s}\n", x->x_s->s_name, path);
+}
+
static void openpanel_bang(t_openpanel *x)
{
- sys_vgui("pdtk_openpanel %s\n", x->x_s->s_name);
+ openpanel_symbol(x, &s_);
}
-static void openpanel_symbol(t_openpanel *x, t_symbol *s)
+static void openpanel_callback(t_openpanel *x, t_symbol *s)
{
outlet_symbol(x->x_obj.ob_outlet, s);
}
+
static void openpanel_free(t_openpanel *x)
{
pd_unbind(&x->x_obj.ob_pd, x->x_s);
@@ -212,9 +219,11 @@ static void openpanel_setup(void)
{
openpanel_class = class_new(gensym("openpanel"),
(t_newmethod)openpanel_new, (t_method)openpanel_free,
- sizeof(t_openpanel), 0, A_DEFFLOAT, 0);
+ sizeof(t_openpanel), 0, 0);
class_addbang(openpanel_class, openpanel_bang);
class_addsymbol(openpanel_class, openpanel_symbol);
+ class_addmethod(openpanel_class, (t_method)openpanel_callback,
+ gensym("callback"), A_SYMBOL, 0);
}
/* -------------------------- savepanel ------------------------------ */
@@ -227,7 +236,7 @@ typedef struct _savepanel
t_symbol *x_s;
} t_savepanel;
-static void *savepanel_new(void)
+static void *savepanel_new( void)
{
char buf[50];
t_savepanel *x = (t_savepanel *)pd_new(savepanel_class);
@@ -238,12 +247,18 @@ static void *savepanel_new(void)
return (x);
}
+static void savepanel_symbol(t_savepanel *x, t_symbol *s)
+{
+ char *path = (s && s->s_name) ? s->s_name : "\"\"";
+ sys_vgui("pdtk_savepanel {%s} {%s}\n", x->x_s->s_name, path);
+}
+
static void savepanel_bang(t_savepanel *x)
{
- sys_vgui("pdtk_savepanel %s\n", x->x_s->s_name);
+ savepanel_symbol(x, &s_);
}
-static void savepanel_symbol(t_savepanel *x, t_symbol *s)
+static void savepanel_callback(t_savepanel *x, t_symbol *s)
{
outlet_symbol(x->x_obj.ob_outlet, s);
}
@@ -257,9 +272,11 @@ static void savepanel_setup(void)
{
savepanel_class = class_new(gensym("savepanel"),
(t_newmethod)savepanel_new, (t_method)savepanel_free,
- sizeof(t_savepanel), 0, A_DEFFLOAT, 0);
+ sizeof(t_savepanel), 0, 0);
class_addbang(savepanel_class, savepanel_bang);
class_addsymbol(savepanel_class, savepanel_symbol);
+ class_addmethod(savepanel_class, (t_method)savepanel_callback,
+ gensym("callback"), A_SYMBOL, 0);
}
/* ---------------------- key and its relatives ------------------ */