Forums > Dev

attribute turns "none" how to?

December 28, 2010 | 3:39 pm

sorry if i just did not find it in the docs.

how can i define a (type double) attribute, that turns when the user deletes the value in the inspector?

same behaviour like in the number inspector at minimum and maximum.

i thought it would be a style of CLASS_ATTR_STYLE but obviously it is not..

thanks
klaus


December 28, 2010 | 5:05 pm

There’s no style for that. You need to set the attribute type to ATOM, and roll your own gettr/settr methods. That’s what we do for number e.g.


December 28, 2010 | 7:33 pm

ok,
thanks for the quick answer.

is there any chance to have a look into number.c ?

klaus


December 28, 2010 | 9:14 pm

It probably looks like something like this:

CLASS_ATTR_ATOM(c, "myattr", 0, t_myobject, myattr);
CLASS_ATTR_ACCESSORS(c, "myattr", (method)NULL, (method)myobject_setattr_myattr);
t_max_err myobjet_setattr_myattr(t_myobject *x, void *attr, long ac, t_atom *av)
{
    if (ac && av) {
        if (atom_gettype(av) == A_LONG || atom_gettype(av) == A_FLOAT) {
            x->myattr = *av;
        else
            atom_setsym(&x->myattr, gensym(""));
    } else
        atom_setsym(&x->myattr, gensym(""));

     return MAX_ERR_NONE;
}

forum coding.


December 28, 2010 | 11:23 pm

emmanuel, thanks again!
works like a charm

(there is a typo at:
"t_max_err myobjet_ser…" better is:
"t_max_err myobjet_set…


December 29, 2010 | 10:09 am

Glad it works, typo fixed.


Viewing 6 posts - 1 through 6 (of 6 total)