class Newt::Screen

Public Class Methods

bell() click to toggle source
static VALUE rb_ext_Screen_Bell(VALUE self)
{
  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)
{
  return INT2NUM(newtCenteredWindow(NUM2INT(width), NUM2INT(height), StringValuePtr(title)));
}
clear_keybuffer() click to toggle source
static VALUE rb_ext_Screen_ClearKeyBuffer()
{
  newtClearKeyBuffer();

  return Qnil;
}
cls() click to toggle source
static VALUE rb_ext_Screen_Cls()
{
  newtCls();
  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)
{

  newtDrawRootText(NUM2INT(col), NUM2INT(row), StringValuePtr(text));
  return Qnil;
}
finish() click to toggle source
static VALUE rb_ext_Screen_Finished()
{
  newtFinished();

  return Qnil;
}
init() click to toggle source
static VALUE rb_ext_Screen_Init()
{
  newtInit();
  return Qnil;
}
new() click to toggle source
static VALUE rb_ext_Screen_new()
{
  newtInit();
  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)
{
  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)
{
  newtPopHelpLine();

  return Qnil;
}
pop_window() click to toggle source
static VALUE rb_ext_Screen_PopWindow(VALUE self)
{
  newtPopWindow();
  return Qnil;
}
push_helpline(p1) click to toggle source
static VALUE rb_ext_Screen_PushHelpLine(VALUE self, VALUE text)
{
  newtPushHelpLine(StringValuePtr(text));

  return Qnil;
}
redraw_helpline() click to toggle source
static VALUE rb_ext_Screen_RedrawHelpLine(VALUE self)
{
  newtRedrawHelpLine();

  return Qnil;
}
refresh() click to toggle source
static VALUE rb_ext_Screen_Refresh()
{
  newtRefresh();

  return Qnil;
}
resume() click to toggle source
static VALUE rb_ext_Screen_Resume()
{
  newtResume();

  return Qnil;
}
size() click to toggle source
static VALUE rb_ext_Screen_Size(VALUE self)
{
  int cols, rows;
  VALUE ary = rb_ary_new2(2);

  newtGetScreenSize(&cols, &rows);
  rb_ary_push(ary, INT2NUM(cols));
  rb_ary_push(ary, INT2NUM(rows));

  return ary;
}
suspend() click to toggle source
static VALUE rb_ext_Screen_Suspend()
{
  newtSuspend();

  return Qnil;
}
wait_for_key() click to toggle source
static VALUE rb_ext_Screen_WaitForKey()
{
  newtWaitForKey();

  return Qnil;
}
win_choice(*args) click to toggle source
static VALUE rb_ext_Screen_WinChoice(VALUE self, VALUE args)
{
  int result = 0;

  if (RARRAY_LEN(args) < 4) {
    rb_raise(rb_eArgError, "4 arguments required");
  } else {
    result = newtWinChoice(StringValuePtr(RARRAY_PTR(args)[0]), StringValuePtr(RARRAY_PTR(args)[1]),
        StringValuePtr(RARRAY_PTR(args)[2]), StringValuePtr(RARRAY_PTR(args)[3]));
  }

  return INT2NUM(result);
}
win_entries(*args) click to toggle source
static VALUE rb_ext_Screen_WinEntries(VALUE self, VALUE args)
{
  long len;
  int i;
  struct newtWinEntry *items;
  char * entries[10];
  VALUE ary;

  memset(entries, 0, sizeof(entries));
  ary = rb_ary_new();

  len = RARRAY_LEN(args);
  if (len == 8) {
    Check_Type(RARRAY_PTR(args)[6], T_ARRAY);

    len = RARRAY_LEN(RARRAY_PTR(args)[6]);
    if (len > 8) rb_raise(rb_eArgError, "8 or less arguments required");
    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;

    newtWinEntries(StringValuePtr(RARRAY_PTR(args)[0]), StringValuePtr(RARRAY_PTR(args)[1]),
        NUM2INT(RARRAY_PTR(args)[2]),
        NUM2INT(RARRAY_PTR(args)[3]), NUM2INT(RARRAY_PTR(args)[4]),
        NUM2INT(RARRAY_PTR(args)[5]),
        items, StringValuePtr(RARRAY_PTR(args)[7]), NULL);
    for (i = 0; i < len; i++) {
      rb_ary_push(ary, rb_str_new2(entries[i]));
    }
    return ary;
  } else if (len == 9) {
    Check_Type(RARRAY_PTR(args)[6], T_ARRAY);

    len = RARRAY_LEN(RARRAY_PTR(args)[6]);
    if (len > 8) rb_raise(rb_eArgError, "8 or less arguments required");
    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;

    newtWinEntries(StringValuePtr(RARRAY_PTR(args)[0]), StringValuePtr(RARRAY_PTR(args)[1]),
        NUM2INT(RARRAY_PTR(args)[2]),
        NUM2INT(RARRAY_PTR(args)[3]), NUM2INT(RARRAY_PTR(args)[4]),
        NUM2INT(RARRAY_PTR(args)[5]),
        items, StringValuePtr(RARRAY_PTR(args)[7]), StringValuePtr(RARRAY_PTR(args)[8]), NULL);
    for (i = 0; i < len; i++) {
      rb_ary_push(ary, rb_str_new2(entries[i]));
    }
    return ary;
  } else {
    rb_raise(rb_eArgError, "8 or 9 arguments required");
  }

  return Qnil;
}
win_menu(*args) click to toggle source
static VALUE rb_ext_Screen_WinMenu(VALUE self, VALUE args)
{
  long len;
  int i, listItem;
  char **cptr;

  len = RARRAY_LEN(args);
  if (len == 8) {
    Check_Type(RARRAY_PTR(args)[6], T_ARRAY);

    len = RARRAY_LEN(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;

    newtWinMenu(StringValuePtr(RARRAY_PTR(args)[0]), StringValuePtr(RARRAY_PTR(args)[1]),
        NUM2INT(RARRAY_PTR(args)[2]),
        NUM2INT(RARRAY_PTR(args)[3]), NUM2INT(RARRAY_PTR(args)[4]),
        NUM2INT(RARRAY_PTR(args)[5]),
        cptr, &listItem, StringValuePtr(RARRAY_PTR(args)[7]), NULL);
    return INT2NUM(listItem);
  } else if (len == 9) {
    Check_Type(RARRAY_PTR(args)[6], T_ARRAY);

    len = RARRAY_LEN(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;

    newtWinMenu(StringValuePtr(RARRAY_PTR(args)[0]), StringValuePtr(RARRAY_PTR(args)[1]),
        NUM2INT(RARRAY_PTR(args)[2]),
        NUM2INT(RARRAY_PTR(args)[3]), NUM2INT(RARRAY_PTR(args)[4]),
        NUM2INT(RARRAY_PTR(args)[5]),
        cptr, &listItem, StringValuePtr(RARRAY_PTR(args)[7]), StringValuePtr(RARRAY_PTR(args)[8]), NULL);
    return INT2NUM(listItem);
  } else {
    rb_raise(rb_eArgError, "8 or 9 arguments required");
  }

  return Qnil;
}
win_message(*args) click to toggle source
static VALUE rb_ext_Screen_WinMessage(VALUE self, VALUE args)
{
  if (RARRAY_LEN(args) < 3) {
    rb_raise(rb_eArgError, "3 arguments required");
  } else {

    newtWinMessage(StringValuePtr(RARRAY_PTR(args)[0]), StringValuePtr(RARRAY_PTR(args)[1]), StringValuePtr(RARRAY_PTR(args)[2]));
  }

  return Qnil;
}