static VALUE rb_ext_Checkbox_new(VALUE self, VALUE left, VALUE top, VALUE text, VALUE defValue, VALUE seq) { newtComponent co; if (NIL_P(seq)) { co = newtCheckbox(NUM2INT(left), NUM2INT(top), StringValuePtr(text), StringValuePtr(defValue)[0], NULL, NULL); } else { co = newtCheckbox(NUM2INT(left), NUM2INT(top), StringValuePtr(text), StringValuePtr(defValue)[0], StringValuePtr(seq), NULL); } return Data_Wrap_Struct(self, 0, 0, co); }
static VALUE rb_ext_Checkbox_GetValue(VALUE self) { newtComponent co; char value[10]; Data_Get_Struct(self, struct newtComponent_struct, co); value[0] = newtCheckboxGetValue(co); value[1] = '\0'; return rb_str_new2(value); }
static VALUE rb_ext_Checkbox_SetValue(VALUE self, VALUE value) { newtComponent co; Data_Get_Struct(self, struct newtComponent_struct, co); if (RSTRING_LEN(value) > 0) { newtCheckboxSetValue(co, StringValuePtr(value)[0]); } return Qnil; }
static VALUE rb_ext_Checkbox_SetFlags(VALUE self, VALUE args) { newtComponent co; long len; len = RARRAY_LEN(args); if (len == 1) { Data_Get_Struct(self, struct newtComponent_struct, co); newtCheckboxSetFlags(co, NUM2INT(RARRAY_PTR(args)[0]), NEWT_FLAGS_SET); } else if (len == 2) { Data_Get_Struct(self, struct newtComponent_struct, co); newtCheckboxSetFlags(co, NUM2INT(RARRAY_PTR(args)[0]), NUM2INT(RARRAY_PTR(args)[1])); } else { rb_raise(rb_eArgError, "1 argument or 2 arguments required"); } return Qnil; }