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 #refresh or #noutrefresh instead.
Public Class Methods
Contruct 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; rb_secure(4); curses_init_screen(); 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; }
Contruct 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 *subpad; VALUE pad; int h, w, x, y; h = NUM2INT(height); w = NUM2INT(width); x = NUM2INT(begin_x); y = NUM2INT(begin_y); GetWINDOW(obj, padp); subpad = subwin(padp->window, h, w, x, y); pad = prep_window(rb_obj_class(obj), subpad); return pad; }