Class: Curses::Form
- Inherits:
-
Data
- Object
- Data
- 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.
4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 |
# File 'ext/curses/curses.c', line 4214
static VALUE
form_initialize(VALUE obj, VALUE fields)
{
struct formdata *formp;
FIELD **form_fields;
int i;
Check_Type(fields, T_ARRAY);
curses_init_screen();
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.
4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 |
# File 'ext/curses/curses.c', line 4296
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.
4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 |
# File 'ext/curses/curses.c', line 4254
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.
4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 |
# File 'ext/curses/curses.c', line 4373
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.
4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 |
# File 'ext/curses/curses.c', line 4353
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.
4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 |
# File 'ext/curses/curses.c', line 4333
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.
4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 |
# File 'ext/curses/curses.c', line 4275
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;
}
|