Class: Curses::Screen
- Inherits:
-
Object
- Object
- Curses::Screen
- Defined in:
- ext/curses/curses.c,
ext/curses/curses.c
Overview
Description
A Screen represents a terminal. A program that outputs to more than one terminal should create a Screen
for each terminal instead of calling Curses.init_screen.
Usage
require "curses"
screen = Screen.new(STDOUT, STDIN, "xterm")
screen.set_term
Curses.addstr("Hit any key")
Curses.refresh
Curses.getch
Curses.close_screen
Instance Method Summary collapse
-
#new(outf, inf, type = nil) ⇒ Object
constructor
Construct a new Curses::Screen.
-
#set_term ⇒ Object
Set the current terminal.
Constructor Details
#new(outf, inf, type = nil) ⇒ Object
Construct a new Curses::Screen.
1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 |
# File 'ext/curses/curses.c', line 1761
static VALUE
screen_initialize(int argc, VALUE *argv, VALUE obj)
{
VALUE outf, inf, type;
struct screendata *screenp;
rb_io_t *outfptr, *infptr;
rb_scan_args(argc, argv, "21", &outf, &inf, &type);
TypedData_Get_Struct(obj, struct screendata, &screendata_type, screenp);
if (screenp->screen) delscreen(screenp->screen);
Check_Type(outf, T_FILE);
RB_IO_POINTER(outf, outfptr);
rb_io_check_writable(outfptr);
Check_Type(inf, T_FILE);
RB_IO_POINTER(inf, infptr);
rb_io_check_readable(infptr);
screenp->screen = newterm(NIL_P(type) ? NULL : StringValueCStr(type),
rb_io_stdio_file(outfptr),
rb_io_stdio_file(infptr));
screenp->stdscr = Qnil;
return obj;
}
|
Instance Method Details
#set_term ⇒ Object
Set the current terminal.
1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 |
# File 'ext/curses/curses.c', line 1791
static VALUE
screen_set_term(VALUE obj)
{
struct screendata *screenp;
GetSCREEN(obj, screenp);
set_term(screenp->screen);
if (NIL_P(screenp->stdscr)) {
screenp->stdscr = prep_window(cWindow, stdscr, 1);
}
rb_stdscr = screenp->stdscr;
return Qnil;
}
|