2 #include "../src/m_pd.h"
3 #include "g_canvas.h" /* for widgetbehaviour */
6 static t_class
*slider_class
;
8 static void slider_save(t_gobj
*z
, t_binbuf
*b
)
10 t_fatom
*x
= (t_fatom
*)z
;
12 binbuf_addv(b
, "ssiisiiisss", gensym("#X"),gensym("obj"),
13 x
->x_obj
.te_xpix
, x
->x_obj
.te_ypix
,
14 gensym("slider"),x
->x_max
,x
->x_min
,x
->x_width
,x
->x_send
,x
->x_color
,x
->x_bgcolor
);
19 static void *slider_new(t_symbol
* s
,t_int argc
, t_atom
* argv
)
21 t_fatom
*x
= (t_fatom
*)pd_new(slider_class
);
22 x
->x_type
= gensym("vslider");
23 return fatom_new(x
,argc
,argv
);
27 t_widgetbehavior slider_widgetbehavior
;
30 void slider_setup(void) {
31 slider_class
= class_new(gensym("slider"), (t_newmethod
)slider_new
, 0,
32 sizeof(t_fatom
),0,A_GIMME
,0);
34 slider_widgetbehavior
.w_getrectfn
= fatom_getrect
;
35 slider_widgetbehavior
.w_displacefn
= fatom_displace
;
36 slider_widgetbehavior
.w_selectfn
= fatom_select
;
37 slider_widgetbehavior
.w_activatefn
= fatom_activate
;
38 slider_widgetbehavior
.w_deletefn
= fatom_delete
;
39 slider_widgetbehavior
.w_visfn
= fatom_vis
;
40 slider_widgetbehavior
.w_clickfn
= NULL
;
42 fatom_setup_common(slider_class
);
43 class_setwidget(slider_class
,&slider_widgetbehavior
);
45 #if PD_MINOR_VERSION < 37
46 slider_widgetbehavior
.w_savefn
= slider_save
;
47 slider_widgetbehavior
.w_propertiesfn
= NULL
;
49 class_setsavefn(slider_class
,&slider_save
);
50 class_setpropertiesfn(slider_class
,&fatom_properties
);