class Newt::Screen
Public Class Methods
bell()
click to toggle source
static VALUE rb_ext_Screen_Bell(VALUE self)
{
INIT_GUARD();
newtBell();
return Qnil;
}
centered_window(p1, p2, p3)
click to toggle source
static VALUE rb_ext_Screen_CenteredWindow(VALUE self, VALUE width, VALUE height, VALUE title)
{
INIT_GUARD();
return INT2NUM(newtCenteredWindow(NUM2INT(width), NUM2INT(height), StringValuePtr(title)));
}
clear_keybuffer()
click to toggle source
static VALUE rb_ext_Screen_ClearKeyBuffer()
{
INIT_GUARD();
newtClearKeyBuffer();
return Qnil;
}
cls()
click to toggle source
static VALUE rb_ext_Screen_Cls()
{
INIT_GUARD();
newtCls();
return Qnil;
}
cursor_off()
click to toggle source
static VALUE rb_ext_Screen_CursorOff(VALUE self)
{
INIT_GUARD();
newtCursorOff();
return Qnil;
}
cursor_on()
click to toggle source
static VALUE rb_ext_Screen_CursorOn(VALUE self)
{
INIT_GUARD();
newtCursorOn();
return Qnil;
}
draw_roottext(p1, p2, p3)
click to toggle source
static VALUE rb_ext_Screen_DrawRootText(VALUE self, VALUE col, VALUE row, VALUE text)
{
INIT_GUARD();
newtDrawRootText(NUM2INT(col), NUM2INT(row), StringValuePtr(text));
return Qnil;
}
finish()
click to toggle source
static VALUE rb_ext_Screen_Finished()
{
newtFinished();
initialized = Qfalse;
return Qnil;
}
help_callback(p1)
click to toggle source
static VALUE rb_ext_Screen_HelpCallback(VALUE self, VALUE cb)
{
INIT_GUARD();
cb = rb_struct_new(rb_ext_sCallback, Qnil, rb_binding_new(), cb, Qnil, NULL);
rb_obj_freeze(cb);
rb_cvar_set(self, CVAR_HELP_CALLBACK, cb);
newtSetHelpCallback(rb_ext_Screen_help_callback_function);
return Qnil;
}
init()
click to toggle source
static VALUE rb_ext_Screen_Init()
{
if (initialized == Qtrue)
return Qnil;
newtInit();
memcpy(&newtColors, &newtDefaultColorPalette, sizeof(struct newtColors));
initialized = Qtrue;
return Qnil;
}
new()
click to toggle source
static VALUE rb_ext_Screen_new()
{
rb_ext_Screen_Init();
newtCls();
return Qnil;
}
open_window(p1, p2, p3, p4, p5)
click to toggle source
static VALUE rb_ext_Screen_OpenWindow(VALUE self, VALUE left, VALUE top,
VALUE width, VALUE height, VALUE title)
{
INIT_GUARD();
return INT2NUM(newtOpenWindow(NUM2INT(left), NUM2INT(top), NUM2INT(width),
NUM2INT(height), StringValuePtr(title)));
}
pop_helpline()
click to toggle source
static VALUE rb_ext_Screen_PopHelpLine(VALUE self)
{
INIT_GUARD();
newtPopHelpLine();
return Qnil;
}
pop_window()
click to toggle source
static VALUE rb_ext_Screen_PopWindow(VALUE self)
{
INIT_GUARD();
newtPopWindow();
return Qnil;
}
push_helpline(p1)
click to toggle source
static VALUE rb_ext_Screen_PushHelpLine(VALUE self, VALUE text)
{
INIT_GUARD();
newtPushHelpLine(StringValuePtr(text));
return Qnil;
}
redraw_helpline()
click to toggle source
static VALUE rb_ext_Screen_RedrawHelpLine(VALUE self)
{
INIT_GUARD();
newtRedrawHelpLine();
return Qnil;
}
refresh()
click to toggle source
static VALUE rb_ext_Screen_Refresh()
{
INIT_GUARD();
newtRefresh();
return Qnil;
}
resume()
click to toggle source
static VALUE rb_ext_Screen_Resume()
{
INIT_GUARD();
newtResume();
return Qnil;
}
set_color(p1, p2, p3)
click to toggle source
static VALUE rb_ext_Screen_SetColor(VALUE self, VALUE colorset, VALUE fg, VALUE bg)
{
INIT_GUARD();
newtSetColor(NUM2INT(colorset), StringValuePtr(fg), StringValuePtr(bg));
return Qnil;
}
set_colors(p1)
click to toggle source
static VALUE rb_ext_Screen_SetColors(VALUE self, VALUE colors)
{
Check_Type(colors, T_HASH);
rb_hash_foreach(colors, rb_ext_Colors_callback_function, (VALUE) &newtColors);
INIT_GUARD();
newtSetColors(newtColors);
return Qnil;
}
size()
click to toggle source
static VALUE rb_ext_Screen_Size(VALUE self)
{
int cols, rows;
INIT_GUARD();
newtGetScreenSize(&cols, &rows);
return rb_ary_new_from_args(2, INT2NUM(cols), INT2NUM(rows));
}
suspend()
click to toggle source
static VALUE rb_ext_Screen_Suspend()
{
INIT_GUARD();
newtSuspend();
return Qnil;
}
suspend_callback(*args)
click to toggle source
static VALUE rb_ext_Screen_SuspendCallback(int argc, VALUE *argv, VALUE self)
{
VALUE cb, data = Qnil;
if (argc < 1 || argc > 2)
ARG_ERROR(argc, "1 or 2");
INIT_GUARD();
if (argc == 2)
data = argv[1];
cb = rb_struct_new(rb_ext_sCallback, self, rb_binding_new(), argv[0], data, NULL);
rb_obj_freeze(cb);
rb_cvar_set(self, CVAR_SUSPEND_CALLBACK, cb);
newtSetSuspendCallback(rb_ext_Screen_suspend_callback_function, (void *) cb);
return Qnil;
}
wait_for_key()
click to toggle source
static VALUE rb_ext_Screen_WaitForKey()
{
INIT_GUARD();
newtWaitForKey();
return Qnil;
}
win_choice(p1, p2, p3, p4)
click to toggle source
static VALUE rb_ext_Screen_WinChoice(VALUE self, VALUE title, VALUE button1, VALUE button2, VALUE text)
{
int result;
INIT_GUARD();
result = newtWinChoice(StringValuePtr(title), StringValuePtr(button1),
StringValuePtr(button2), StringValuePtr(text));
return INT2NUM(result);
}
win_entries(*args)
click to toggle source
static VALUE rb_ext_Screen_WinEntries(VALUE self, VALUE args)
{
VALUE ary;
struct newtWinEntry *items;
char *title, *text, *button1, *button2;
int len, i;
int width, flexDown, flexUp, dataWidth;
char *entries[10];
len = RARRAY_LENINT(args);
if (len < 8 || len > 9)
ARG_ERROR(len, "8..9");
INIT_GUARD();
title = StringValuePtr(RARRAY_PTR(args)[0]);
text = StringValuePtr(RARRAY_PTR(args)[1]);
width = NUM2INT(RARRAY_PTR(args)[2]);
flexDown = NUM2INT(RARRAY_PTR(args)[3]);
flexUp = NUM2INT(RARRAY_PTR(args)[4]);
dataWidth = NUM2INT(RARRAY_PTR(args)[5]);
button1 = StringValuePtr(RARRAY_PTR(args)[7]);
button2 = (len == 9) ? StringValuePtr(RARRAY_PTR(args)[8]) : NULL;
Check_Type(RARRAY_PTR(args)[6], T_ARRAY);
len = RARRAY_LENINT(RARRAY_PTR(args)[6]);
if (len > 8) ARG_ERROR(len, "8 or less");
memset(entries, 0, sizeof(entries));
items = ALLOCA_N(struct newtWinEntry, len + 1);
for (i = 0; i < len; i++) {
Check_Type(RARRAY_PTR(RARRAY_PTR(args)[6])[i], T_STRING);
items[i].text = StringValuePtr(RARRAY_PTR(RARRAY_PTR(args)[6])[i]);
items[i].value = entries + i;
items[i].flags = 0;
}
items[len].text = NULL;
items[len].value = NULL;
items[len].flags = 0;
ary = rb_ary_new();
newtWinEntries(title, text, width, flexDown, flexUp, dataWidth, items, button1, button2, NULL);
for (i = 0; i < len; i++) { rb_ary_push(ary, rb_str_new2(entries[i])); }
return ary;
}
win_message(p1, p2, p3)
click to toggle source
static VALUE rb_ext_Screen_WinMessage(VALUE self, VALUE title, VALUE button, VALUE text)
{
INIT_GUARD();
newtWinMessage(StringValuePtr(title), StringValuePtr(button), StringValuePtr(text));
return Qnil;
}