Class: Curses::Form
- Inherits:
-
Object
- Object
- Curses::Form
- Defined in:
- ext/curses/curses.c
Instance Method Summary collapse
-
#driver(command) ⇒ Object
call-seq: driver(command).
-
#initialize(fields) ⇒ Object
constructor
call-seq: new(fields).
-
#post ⇒ Object
call-seq: post.
-
#scale ⇒ Object
call-seq: scale.
-
#set_sub(win) ⇒ Object
call-seq: set_sub=(win).
-
#set_win(win) ⇒ Object
call-seq: set_win=(win).
-
#unpost ⇒ Object
call-seq: unpost.
Constructor Details
#initialize(fields) ⇒ Object
call-seq:
new(fields)
Construct a new Curses::Form.
4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 |
# File 'ext/curses/curses.c', line 4232
static VALUE
form_initialize(VALUE obj, VALUE fields)
{
struct formdata *formp;
FIELD **form_fields;
int i;
Check_Type(fields, T_ARRAY);
curses_init_screen(Qnil);
TypedData_Get_Struct(obj, struct formdata, &formdata_type, formp);
if (formp->form) {
rb_raise(rb_eRuntimeError, "already initialized form");
}
formp->fields = rb_ary_new();
form_fields = ALLOC_N(FIELD *, RARRAY_LEN(fields) + 1);
for (i = 0; i < RARRAY_LEN(fields); i++) {
VALUE field = RARRAY_AREF(fields, i);
struct fielddata *fieldp;
GetFIELD(field, fieldp);
form_fields[i] = fieldp->field;
rb_ary_push(formp->fields, field);
}
form_fields[RARRAY_LEN(fields)] = NULL;
formp->form = new_form(form_fields);
if (formp->form == NULL) {
check_curses_error(errno);
}
return obj;
}
|
Instance Method Details
#driver(command) ⇒ Object
call-seq:
driver(command)
Perform the command on the form.
4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 |
# File 'ext/curses/curses.c', line 4314
static VALUE
form_driver_m(VALUE obj, VALUE command)
{
struct formdata *formp;
int error, c;
GetFORM(obj, formp);
if (FIXNUM_P(command)) {
c = NUM2INT(command);
}
else {
ID id_ord;
StringValue(command);
CONST_ID(id_ord, "ord");
c = NUM2INT(rb_funcall(command, id_ord, 0));
}
#ifdef HAVE_FORM_DRIVER_W
error = form_driver_w(formp->form,
FIXNUM_P(command) ? KEY_CODE_YES : OK,
c);
#else
error = form_driver(formp->form, c);
#endif
check_curses_error(error);
return obj;
}
|
#post ⇒ Object
call-seq:
post
Post the form.
4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 |
# File 'ext/curses/curses.c', line 4272
static VALUE
form_post(VALUE obj)
{
struct formdata *formp;
int error;
GetFORM(obj, formp);
error = post_form(formp->form);
check_curses_error(error);
return obj;
}
|
#scale ⇒ Object
call-seq:
scale
Return the minimum rows and columns required for the subwindow of the form.
4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 |
# File 'ext/curses/curses.c', line 4391
static VALUE
form_scale(VALUE obj)
{
struct formdata *formp;
int error, rows, columns;
GetFORM(obj, formp);
error = scale_form(formp->form, &rows, &columns);
check_curses_error(error);
return rb_assoc_new(INT2NUM(rows), INT2NUM(columns));
}
|
#set_sub(win) ⇒ Object
call-seq:
set_sub=(win)
Set the subwindow of the form.
4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 |
# File 'ext/curses/curses.c', line 4371
static VALUE
form_set_sub(VALUE obj, VALUE win)
{
struct formdata *formp;
struct windata *winp;
GetFORM(obj, formp);
GetWINDOW(win, winp);
set_form_sub(formp->form, winp->window);
return win;
}
|
#set_win(win) ⇒ Object
call-seq:
set_win=(win)
Set the window of the form.
4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 |
# File 'ext/curses/curses.c', line 4351
static VALUE
form_set_win(VALUE obj, VALUE win)
{
struct formdata *formp;
struct windata *winp;
GetFORM(obj, formp);
GetWINDOW(win, winp);
set_form_win(formp->form, winp->window);
return win;
}
|
#unpost ⇒ Object
call-seq:
unpost
Unpost the form.
4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 |
# File 'ext/curses/curses.c', line 4293
static VALUE
form_unpost(VALUE obj)
{
struct formdata *formp;
int error;
GetFORM(obj, formp);
error = unpost_form(formp->form);
check_curses_error(error);
return obj;
}
|