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.
4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 |
# File 'ext/curses/curses.c', line 4508 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.
4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 |
# File 'ext/curses/curses.c', line 4590 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.
4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 |
# File 'ext/curses/curses.c', line 4548 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.
4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 |
# File 'ext/curses/curses.c', line 4667 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.
4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 |
# File 'ext/curses/curses.c', line 4647 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.
4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 |
# File 'ext/curses/curses.c', line 4627 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.
4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 |
# File 'ext/curses/curses.c', line 4569 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; } |