class Curses::Pad
Description¶ ↑
A Pad is like a Window but allows for scrolling of contents that cannot fit on the screen. Pads do not refresh automatically, use Pad#refresh or Pad#noutrefresh instead.
Public Class Methods
Construct a new Curses::Pad with constraints of height lines, width columns
static VALUE
pad_initialize(VALUE obj, VALUE h, VALUE w)
{
struct windata *padp;
WINDOW *window;
curses_init_screen(Qnil);
TypedData_Get_Struct(obj, struct windata, &windata_type, padp);
if (padp->window) delwin(padp->window);
window = newpad(NUM2INT(h), NUM2INT(w));
wclear(window);
padp->window = window;
return obj;
}
Public Instance Methods
Refreshes the pad. pad_minrow and pad_mincol+ define the upper-left corner of the rectangle to be displayed. screen_minrow, screen_mincol, screen_maxrow, screen_maxcol define the edges of the rectangle to be displayed on the screen.
static VALUE
pad_noutrefresh(VALUE obj, VALUE pminrow, VALUE pmincol, VALUE sminrow,
VALUE smincol, VALUE smaxrow, VALUE smaxcol)
{
struct windata *padp;
int pmr, pmc, smr, smc, sxr, sxc;
pmr = NUM2INT(pminrow);
pmc = NUM2INT(pmincol);
smr = NUM2INT(sminrow);
smc = NUM2INT(smincol);
sxr = NUM2INT(smaxrow);
sxc = NUM2INT(smaxcol);
GetWINDOW(obj, padp);
#ifdef HAVE_DOUPDATE
pnoutrefresh(padp->window, pmr, pmc, smr, smc, sxr, sxc);
#else
prefresh(padp->window, pmr, pmc, smr, smc, sxr, sxc);
#endif
return Qnil;
}
Refreshes the pad. pad_minrow and pad_mincol+ define the upper-left corner of the rectangle to be displayed. screen_minrow, screen_mincol, screen_maxrow, screen_maxcol define the edges of the rectangle to be displayed on the screen.
static VALUE
pad_refresh(VALUE obj, VALUE pminrow, VALUE pmincol, VALUE sminrow,
VALUE smincol, VALUE smaxrow, VALUE smaxcol)
{
struct windata *padp;
int pmr, pmc, smr, smc, sxr, sxc;
pmr = NUM2INT(pminrow);
pmc = NUM2INT(pmincol);
smr = NUM2INT(sminrow);
smc = NUM2INT(smincol);
sxr = NUM2INT(smaxrow);
sxc = NUM2INT(smaxcol);
GetWINDOW(obj, padp);
prefresh(padp->window, pmr, pmc, smr, smc, sxr, sxc);
return Qnil;
}
Construct a new subpad with constraints of height lines, width columns, begin at begin_x line, and begin_y columns on the pad.
static VALUE
pad_subpad(VALUE obj, VALUE height, VALUE width, VALUE begin_x, VALUE begin_y)
{
struct windata *padp;
WINDOW *sub_pad;
VALUE pad;
int h, w, x, y;
h = NUM2INT(height);
w = NUM2INT(width);
x = NUM2INT(begin_x);
y = NUM2INT(begin_y);
GetWINDOW(obj, padp);
sub_pad = subpad(padp->window, h, w, x, y);
pad = prep_window(rb_obj_class(obj), sub_pad);
return pad;
}