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.
4212 4213 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 |
# File 'ext/curses/curses.c', line 4212
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.
4294 4295 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 |
# File 'ext/curses/curses.c', line 4294
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.
4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 |
# File 'ext/curses/curses.c', line 4252
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.
4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 |
# File 'ext/curses/curses.c', line 4371
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.
4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 |
# File 'ext/curses/curses.c', line 4351
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.
4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 |
# File 'ext/curses/curses.c', line 4331
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.
4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 |
# File 'ext/curses/curses.c', line 4273
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;
}
|