Curses

 view release on metacpan or  search on metacpan

Curses.pm  view on Meta::CPAN

    flushinp newwin delwin mvwin subwin derwin mvderwin dupwin syncup
    syncok cursyncup syncdown getmouse ungetmouse mousemask enclose
    mouse_trafo mouseinterval BUTTON_RELEASE BUTTON_PRESS BUTTON_CLICK
    BUTTON_DOUBLE_CLICK BUTTON_TRIPLE_CLICK BUTTON_RESERVED_EVENT
    use_default_colors assume_default_colors define_key keybound keyok
    resizeterm resize getmaxy getmaxx flusok getcap touchoverlap new_panel
    bottom_panel top_panel show_panel update_panels hide_panel panel_window
    replace_panel move_panel panel_hidden panel_above panel_below
    set_panel_userptr panel_userptr del_panel set_menu_fore menu_fore
    set_menu_back menu_back set_menu_grey menu_grey set_menu_pad menu_pad
    pos_menu_cursor menu_driver set_menu_format menu_format set_menu_items
    menu_items item_count set_menu_mark menu_mark new_menu free_menu
    menu_opts set_menu_opts menu_opts_on menu_opts_off set_menu_pattern
    menu_pattern post_menu unpost_menu set_menu_userptr menu_userptr
    set_menu_win menu_win set_menu_sub menu_sub scale_menu set_current_item
    current_item set_top_row top_row item_index item_name item_description
    new_item free_item set_item_opts item_opts_on item_opts_off item_opts
    item_userptr set_item_userptr set_item_value item_value item_visible
    menu_request_name menu_request_by_name set_menu_spacing menu_spacing
    pos_form_cursor data_ahead data_behind form_driver set_form_fields
    form_fields field_count move_field new_form free_form set_new_page
    new_page set_form_opts form_opts_on form_opts_off form_opts
    set_current_field current_field set_form_page form_page field_index
    post_form unpost_form set_form_userptr form_userptr set_form_win
    form_win set_form_sub form_sub scale_form set_field_fore field_fore
    set_field_back field_back set_field_pad field_pad set_field_buffer
    field_buffer set_field_status field_status set_max_field field_info
    dynamic_field_info set_field_just field_just new_field dup_field
    link_field free_field set_field_opts field_opts_on field_opts_off
    field_opts set_field_userptr field_userptr field_arg form_request_name

Curses.pm  view on Meta::CPAN

invariably varies (:-) between different curses(3) libraries and
operating systems.  This document describes the interface itself, and
assumes that you already know how your system's curses(3) library
works.

=head2 Unified Functions

Many curses(3) functions have variants starting with the prefixes
I<w->, I<mv->, and/or I<wmv->.  These variants differ only in the
explicit addition of a window, or by the addition of two coordinates
that are used to move the cursor first.  For example, C<addch()> has
three other variants: C<waddch()>, C<mvaddch()>, and C<mvwaddch()>.
The variants aren't very interesting; in fact, we could roll all of
the variants into original function by allowing a variable number
of arguments and analyzing the argument list for which variant the
user wanted to call.

Unfortunately, curses(3) predates varargs(3), so in C we were stuck
with all the variants.  However, C<Curses> is a Perl interface, so we
are free to "unify" these variants into one function.  The section
L<"Available Functions"> below lists all curses(3) functions C<Curses>

Curses.pm  view on Meta::CPAN

is I<unified>.  If so, it takes a varying number of arguments as
follows:

=over 4

C<function( [win], [y, x], args );>

I<win> is an optional window argument, defaulting to C<stdscr> if not
specified.

I<y, x> is an optional coordinate pair used to move the cursor,
defaulting to no move if not specified.

I<args> are the required arguments of the function.  These are the
arguments you would specify if you were just calling the base function
and not any of the variants.

=back

This makes the variants obsolete, since their functionality has been
merged into a single function, so C<Curses> does not define them by

Curses.pm  view on Meta::CPAN


=over 4

	addstring("H∽ll‡, W‡rld") || die "addstring failed";

=back

=head3 C<instring>

This returns a Perl string (or C<undef> on failure) holding the characters
from the current cursor position up to the end of the line.  It uses
C<winnwstr()> if available, and otherwise C<innstr()>.

=over 4

	my $s = instring();
	die "instring failed" unless defined $s;

=back

=head3 C<ungetchar>

Curses.pm  view on Meta::CPAN

    panel_userptr           No
    del_panel               No
    set_menu_fore           No
    menu_fore               No
    set_menu_back           No
    menu_back               No
    set_menu_grey           No
    menu_grey               No
    set_menu_pad            No
    menu_pad                No
    pos_menu_cursor         No
    menu_driver             No
    set_menu_format         No
    menu_format             No
    set_menu_items          No
    menu_items              No
    item_count              No
    set_menu_mark           No
    menu_mark               No
    new_menu                No
    free_menu               No

Curses.pm  view on Meta::CPAN

    item_opts               No
    item_userptr            No
    set_item_userptr        No
    set_item_value          No
    item_value              No
    item_visible            No
    menu_request_name       No
    menu_request_by_name    No
    set_menu_spacing        No
    menu_spacing            No
    pos_form_cursor         No
    data_ahead              No
    data_behind             No
    form_driver             No
    set_form_fields         No
    form_fields             No
    field_count             No
    move_field              No
    new_form                No
    free_form               No
    set_new_page            No

CursesBoot.c  view on Meta::CPAN

    C_NEWXS("Curses::panel_userptr",          XS_Curses_panel_userptr);
    C_NEWXS("Curses::del_panel",              XS_Curses_del_panel);
    C_NEWXS("Curses::set_menu_fore",          XS_Curses_set_menu_fore);
    C_NEWXS("Curses::menu_fore",              XS_Curses_menu_fore);
    C_NEWXS("Curses::set_menu_back",          XS_Curses_set_menu_back);
    C_NEWXS("Curses::menu_back",              XS_Curses_menu_back);
    C_NEWXS("Curses::set_menu_grey",          XS_Curses_set_menu_grey);
    C_NEWXS("Curses::menu_grey",              XS_Curses_menu_grey);
    C_NEWXS("Curses::set_menu_pad",           XS_Curses_set_menu_pad);
    C_NEWXS("Curses::menu_pad",               XS_Curses_menu_pad);
    C_NEWXS("Curses::pos_menu_cursor",        XS_Curses_pos_menu_cursor);
    C_NEWXS("Curses::menu_driver",            XS_Curses_menu_driver);
    C_NEWXS("Curses::set_menu_format",        XS_Curses_set_menu_format);
    C_NEWXS("Curses::menu_format",            XS_Curses_menu_format);
    C_NEWXS("Curses::set_menu_items",         XS_Curses_set_menu_items);
    C_NEWXS("Curses::menu_items",             XS_Curses_menu_items);
    C_NEWXS("Curses::item_count",             XS_Curses_item_count);
    C_NEWXS("Curses::set_menu_mark",          XS_Curses_set_menu_mark);
    C_NEWXS("Curses::menu_mark",              XS_Curses_menu_mark);
    C_NEWXS("Curses::new_menu",               XS_Curses_new_menu);
    C_NEWXS("Curses::free_menu",              XS_Curses_free_menu);

CursesBoot.c  view on Meta::CPAN

    C_NEWXS("Curses::item_opts",              XS_Curses_item_opts);
    C_NEWXS("Curses::item_userptr",           XS_Curses_item_userptr);
    C_NEWXS("Curses::set_item_userptr",       XS_Curses_set_item_userptr);
    C_NEWXS("Curses::set_item_value",         XS_Curses_set_item_value);
    C_NEWXS("Curses::item_value",             XS_Curses_item_value);
    C_NEWXS("Curses::item_visible",           XS_Curses_item_visible);
    C_NEWXS("Curses::menu_request_name",      XS_Curses_menu_request_name);
    C_NEWXS("Curses::menu_request_by_name",   XS_Curses_menu_request_by_name);
    C_NEWXS("Curses::set_menu_spacing",       XS_Curses_set_menu_spacing);
    C_NEWXS("Curses::menu_spacing",           XS_Curses_menu_spacing);
    C_NEWXS("Curses::pos_form_cursor",        XS_Curses_pos_form_cursor);
    C_NEWXS("Curses::data_ahead",             XS_Curses_data_ahead);
    C_NEWXS("Curses::data_behind",            XS_Curses_data_behind);
    C_NEWXS("Curses::form_driver",            XS_Curses_form_driver);
    C_NEWXS("Curses::set_form_fields",        XS_Curses_set_form_fields);
    C_NEWXS("Curses::form_fields",            XS_Curses_form_fields);
    C_NEWXS("Curses::field_count",            XS_Curses_field_count);
    C_NEWXS("Curses::move_field",             XS_Curses_move_field);
    C_NEWXS("Curses::new_form",               XS_Curses_new_form);
    C_NEWXS("Curses::free_form",              XS_Curses_free_form);
    C_NEWXS("Curses::set_new_page",           XS_Curses_set_new_page);

CursesFun.c  view on Meta::CPAN

    sv_setiv(ST(0), (IV)ret);
    }
    XSRETURN(1);
#else
    c_fun_not_there("menu_pad");
    XSRETURN(0);
#endif
}


/* menu_cursor */

XS(XS_Curses_pos_menu_cursor)
{
    dXSARGS;
#ifdef C_POS_MENU_CURSOR
    c_exactargs("pos_menu_cursor", items, 1);
    {
    MENU *  menu    = c_sv2menu(ST(0), 0);
    int ret = pos_menu_cursor(menu);

    ST(0) = sv_newmortal();
    sv_setiv(ST(0), (IV)ret);
    }
    XSRETURN(1);
#else
    c_fun_not_there("pos_menu_cursor");
    XSRETURN(0);
#endif
}


/* menu_driver */

XS(XS_Curses_menu_driver)
{
    dXSARGS;

CursesFun.c  view on Meta::CPAN

    XSRETURN(1);
#else
    c_fun_not_there("menu_spacing");
    XSRETURN(0);
#endif
}


/* Form functions */

/* form_cursor */

XS(XS_Curses_pos_form_cursor)
{
    dXSARGS;
#ifdef C_POS_FORM_CURSOR
    c_exactargs("pos_form_cursor", items, 1);
    {
    FORM *  form    = c_sv2form(ST(0), 0);
    int ret = pos_form_cursor(form);

    ST(0) = sv_newmortal();
    sv_setiv(ST(0), (IV)ret);
    }
    XSRETURN(1);
#else
    c_fun_not_there("pos_form_cursor");
    XSRETURN(0);
#endif
}


/* form_data */

XS(XS_Curses_data_ahead)
{
    dXSARGS;

list.syms  view on Meta::CPAN

E  panel_userptr(0)
E  del_panel(0)
E  set_menu_fore(0,0)
E  menu_fore(0)
E  set_menu_back(0,0)
E  menu_back(0)
E  set_menu_grey(0,0)
E  menu_grey(0)
E  set_menu_pad(0,0)
E  menu_pad(0)
E  pos_menu_cursor(0)
E  menu_driver(0,0)
E  set_menu_format(0,0,0)
E  menu_format(0,&LINES,&LINES)
E  set_menu_items(0,0)
E  menu_items(0)
E  item_count(0)
E  set_menu_mark(0,0)
E  menu_mark(0)
E  new_menu(0)
E  free_menu(0)

list.syms  view on Meta::CPAN

E  item_opts(0)
E  item_userptr(0)
E  set_item_userptr(0,0)
E  set_item_value(0,0)
E  item_value(0)
E  item_visible(0)
E  menu_request_name(0)
E  menu_request_by_name(0)
E  set_menu_spacing(0,0,0,0)
E  menu_spacing(0,&LINES,&LINES,&LINES)
E  pos_form_cursor(0)
E  data_ahead(0)
E  data_behind(0)
E  form_driver(0,0)
E  set_form_fields(0,0)
E  form_fields(0)
E  field_count(0)
E  move_field(0,0,0)
E  new_form(0)
E  free_form(0)
E  set_new_page(0,0)



( run in 0.367 second using v1.01-cache-2.11-cpan-4d50c553e7e )