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_menu(*args) click to toggle source
static VALUE rb_ext_Screen_WinMenu(VALUE self, VALUE args)
{
  char **cptr;
  char *title, *text, *button1, *button2;

  int len, i, listItem;
  int width, flexDown, flexUp, maxHeight;

  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]);
  maxHeight = NUM2INT(RARRAY_PTR(args)[5]);

  Check_Type(RARRAY_PTR(args)[6], T_ARRAY);

  len = RARRAY_LENINT(RARRAY_PTR(args)[6]);
  cptr = ALLOCA_N(char*, len + 1);
  for (i = 0; i < len; i++) {
    Check_Type(RARRAY_PTR(RARRAY_PTR(args)[6])[i], T_STRING);
    cptr[i] = StringValuePtr(RARRAY_PTR(RARRAY_PTR(args)[6])[i]);
  }
  cptr[len] = NULL;

  button1 = StringValuePtr(RARRAY_PTR(args)[7]);
  button2 = (len == 9) ? StringValuePtr(RARRAY_PTR(args)[8]) : NULL;

  newtWinMenu(title, text, width, flexDown, flexUp, maxHeight, cptr, &listItem, button1, button2, NULL);
  return INT2NUM(listItem);
}
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;
}