MODULE = Agar::Checkbox PACKAGE = Agar::Checkbox PREFIX = AG_ PROTOTYPES: ENABLE VERSIONCHECK: DISABLE Agar::Checkbox new(package, parent, label, ...) const char * package Agar::Widget parent const char * label PREINIT: Uint flags = 0, wflags = 0; CODE: if ((items == 4 && SvTYPE(SvRV(ST(3))) != SVt_PVHV) || items > 4) { Perl_croak(aTHX_ "Usage: Agar::Checkbox->new(parent,label,[{opts}])"); } if (items == 4) { AP_MapHashToFlags(SvRV(ST(3)), apCheckboxFlagNames, &flags); AP_MapHashToFlags(SvRV(ST(3)), apWidgetFlagNames, &wflags); } RETVAL = AG_CheckboxNewS(parent, flags, label); if (RETVAL) { AGWIDGET(RETVAL)->flags |= wflags; } OUTPUT: RETVAL void toggle(self) Agar::Checkbox self CODE: AG_CheckboxToggle(self); void setFlag(self, name) Agar::Checkbox self const char * name CODE: if (AP_SetNamedFlag(name, apCheckboxFlagNames, &(self->flags))) { AP_SetNamedFlag(name, apWidgetFlagNames, &(AGWIDGET(self)->flags)); } void unsetFlag(self, name) Agar::Checkbox self const char * name CODE: if (AP_UnsetNamedFlag(name, apCheckboxFlagNames, &(self->flags))) { AP_UnsetNamedFlag(name, apWidgetFlagNames, &(AGWIDGET(self)->flags)); } Uint getFlag(self, name) Agar::Checkbox self const char * name CODE: if (AP_GetNamedFlag(name, apCheckboxFlagNames, self->flags, &RETVAL)) { if (AP_GetNamedFlag(name, apWidgetFlagNames, AGWIDGET(self)->flags, &RETVAL)) { XSRETURN_UNDEF; } } OUTPUT: RETVAL