class Curses::Menu
Public Class Methods
new(name, description)
click to toggle source
Construct a new Curses::Menu.
static VALUE menu_initialize(VALUE obj, VALUE items) { struct menudata *menup; ITEM **menu_items; int i; Check_Type(items, T_ARRAY); curses_init_screen(); TypedData_Get_Struct(obj, struct menudata, &menudata_type, menup); if (menup->menu) { rb_raise(rb_eRuntimeError, "already initialized menu"); } menu_items = ALLOC_N(ITEM *, RARRAY_LEN(items) + 1); for (i = 0; i < RARRAY_LEN(items); i++) { struct itemdata *itemp; GetITEM(RARRAY_AREF(items, i), itemp); menu_items[i] = itemp->item; } menu_items[RARRAY_LEN(items)] = NULL; menup->menu = new_menu(menu_items); if (menup->menu == NULL) { check_curses_error(errno); } menup->items = rb_ary_dup(items); return obj; }
Public Instance Methods
back_pattern()
click to toggle source
# File lib/curses.rb, line 83 def back_pattern driver(Curses::REQ_BACK_PATTERN) end
clear_pattern()
click to toggle source
# File lib/curses.rb, line 79 def clear_pattern driver(Curses::REQ_CLEAR_PATTERN) end
current_item
click to toggle source
Returns the current item.
static VALUE menu_get_current_item(VALUE obj) { struct menudata *menup; ITEM *item; GetMENU(obj, menup); item = current_item(menup->menu); if (item == NULL) { return Qnil; } return item_new(item); }
current_item=(item)
click to toggle source
Sets the current item.
static VALUE menu_set_current_item(VALUE obj, VALUE item) { struct menudata *menup; struct itemdata *itemp; GetMENU(obj, menup); GetITEM(item, itemp); set_current_item(menup->menu, itemp->item); return item; }
down_item()
click to toggle source
# File lib/curses.rb, line 39 def down_item driver(Curses::REQ_DOWN_ITEM) end
driver(command)
click to toggle source
Perform the command on the menu.
static VALUE menu_driver_m(VALUE obj, VALUE command) { struct menudata *menup; int error; GetMENU(obj, menup); error = menu_driver(menup->menu, NUM2INT(command)); check_curses_error(error); return obj; }
first_item()
click to toggle source
# File lib/curses.rb, line 59 def first_item driver(Curses::REQ_FIRST_ITEM) end
item_count
click to toggle source
Returns the count of items in the menu.
static VALUE menu_item_count(VALUE obj) { struct menudata *menup; GetMENU(obj, menup); return INT2NUM(item_count(menup->menu)); }
items
click to toggle source
Returns the items of the menu.
static VALUE menu_get_items(VALUE obj) { struct menudata *menup; ITEM **items; int count, i; VALUE ary; GetMENU(obj, menup); items = menu_items(menup->menu); if (items == NULL) { return Qnil; } count = item_count(menup->menu); ary = rb_ary_new(); for (i = 0; i < count; i++) { rb_ary_push(ary, item_new(items[i])); } return ary; }
items=(items)
click to toggle source
Returns the items of the menu.
static VALUE menu_set_items(VALUE obj, VALUE items) { struct menudata *menup; ITEM **old_items, **new_items; int i, error; Check_Type(items, T_ARRAY); GetMENU(obj, menup); old_items = menu_items(menup->menu); new_items = ALLOC_N(ITEM*, RARRAY_LEN(items) + 1); for (i = 0; i < RARRAY_LEN(items); i++) { struct itemdata *itemp; GetITEM(RARRAY_AREF(items, i), itemp); new_items[i] = itemp->item; } new_items[RARRAY_LEN(items)] = NULL; error = set_menu_items(menup->menu, new_items); if (error != E_OK) { xfree(new_items); check_curses_error(error); return items; } xfree(old_items); menup->items = rb_ary_dup(items); return items; }
last_item()
click to toggle source
# File lib/curses.rb, line 63 def last_item driver(Curses::REQ_LAST_ITEM) end
left_item()
click to toggle source
# File lib/curses.rb, line 27 def left_item driver(Curses::REQ_LEFT_ITEM) end
next_item()
click to toggle source
# File lib/curses.rb, line 67 def next_item driver(Curses::REQ_NEXT_ITEM) end
next_match()
click to toggle source
# File lib/curses.rb, line 87 def next_match driver(Curses::REQ_NEXT_MATCH) end
post
click to toggle source
Post the menu.
static VALUE menu_post(VALUE obj) { struct menudata *menup; int error; GetMENU(obj, menup); error = post_menu(menup->menu); check_curses_error(error); return obj; }
prev_item()
click to toggle source
# File lib/curses.rb, line 71 def prev_item driver(Curses::REQ_PREV_ITEM) end
prev_match()
click to toggle source
# File lib/curses.rb, line 91 def prev_match driver(Curses::REQ_PREV_MATCH) end
right_item()
click to toggle source
# File lib/curses.rb, line 31 def right_item driver(Curses::REQ_RIGHT_ITEM) end
scroll_down_line()
click to toggle source
# File lib/curses.rb, line 47 def scroll_down_line driver(Curses::REQ_SCR_DLINE) end
scroll_down_page()
click to toggle source
# File lib/curses.rb, line 55 def scroll_down_page driver(Curses::REQ_SCR_DPAGE) end
scroll_up_line()
click to toggle source
# File lib/curses.rb, line 43 def scroll_up_line driver(Curses::REQ_SCR_ULINE) end
scroll_up_page()
click to toggle source
# File lib/curses.rb, line 51 def scroll_up_page driver(Curses::REQ_SCR_UPAGE) end
toggle_item()
click to toggle source
# File lib/curses.rb, line 75 def toggle_item driver(Curses::REQ_TOGGLE_ITEM) end
unpost
click to toggle source
Unpost the menu.
static VALUE menu_unpost(VALUE obj) { struct menudata *menup; int error; GetMENU(obj, menup); error = unpost_menu(menup->menu); check_curses_error(error); return obj; }
up_item()
click to toggle source
# File lib/curses.rb, line 35 def up_item driver(Curses::REQ_UP_ITEM) end