Curses::UI::Calendar

NAME

Curses::UI::Calendar − Create and manipulate calendar widgets

CLASS HIERARCHY

Curses::UI::Widget
|
+−−−−Curses::UI::Calendar

SYNOPSIS

use Curses::UI;
my $cui = new Curses::UI;
my $win = $cui−>add('window_id', 'Window');
my $calendar = $win−>add(
'mycalendar', 'Calendar',
−date => '2002−1−14'
);
$calendar−>focus();
my $date = $calendar−>get();

DESCRIPTION

Curses::UI::Calendar is a widget that can be used to create a calendar in which the user can select a date. The calendar widget looks like this:

+−−−−−−−−−−−−−−−−−−−−−−+
| mmm dd yyyy |
+−−−−−−−−−−−−−−−−−−−−−−+
| su mo tu we th fr sa |
| |
| 01 02 03 04 05 |
| 06 07 08 09 10 11 12 |
| 13 14 15 16 17 18 19 |
| 20 21 22 23 24 25 26 |
| 27 28 29 30 31 |
+−−−−−−−−−−−−−−−−−−−−−−+

See exampes/demo−Curses::UI::Calendar in the distribution for a short demo.

STANDARD OPTIONS

−parent, −x, −y, −width, −height, −pad, −padleft, −padright, −padtop, −padbottom, −ipad, −ipadleft, −ipadright, −ipadtop, −ipadbottom, −title, −titlefullwidth, −titlereverse, −onfocus, −onblur

For an explanation of these standard options, see Curses::UI::Widget.

Remark: −width and −height can be set, but this widget really want to have its content space at a minimum size. If your −width or −height is not large enough, the widget will automatically fix its value.

WIDGET-SPECIFIC OPTIONS

−date < DATE >

This option sets the date to start with. If you do not specify a date, today’s date will be used automatically. The format that you can use for this date is one of:

* YYYY-M-D (e.g. 2002−1−10 or 2002−01−10)

* YYYY/M/D (e.g. 2002/1/10 or 2002/01/10))

* YYYYMMDD (e.g. 20020110)

* D−M-YYYY (e.g. 10−1−2002 or 10/01/2002)

* D/M/YYYY (e.g. 10/1/2002 or 10/01/2002)

−onchange < CODEREF >

This sets the onChange event handler for the calendar widget. If a new date is selected, the code in CODEREF will be executed. It will get the widget reference as its argument.

−drawline < CODEREF >

This option specifies whether or not a line should be drawn under the calendar.

METHODS

new ( OPTIONS )

layout ( )

draw ( BOOLEAN )

focus ( )

onFocus ( CODEREF )

onBlur ( CODEREF )

intellidraw ( )

These are standard methods. See Curses::UI::Widget for an explanation of these.

get ( )

This method will return the currently selected date in the format ’ YYYY−MM−DD ’.

setdate ( DATE, [ BOOLEAN ] )

Set the selected date of the widget to DATE. See −date above for the possible formats. The widget will redraw itself, unless BOOLEAN has a true value.

onChange ( CODEREF )

This method can be used to set the −onchange event handler (see above) after initialization of the calendar.

DEFAULT BINDINGS

<tab>

Call the ’loose−focus’ routine. This will have the menubar loose its focus and return the value ’ LOOSE_FOCUS ’ to the calling routine.

<enter>, <space>

Call the ’date−select’ routine. This will select the date on which the cursor is.

<cursor-left>, <h>

Call the ’date−prevday’ routine. This will have the date cursor go back one day.

<cursor-right, <l>

Call the ’date−nextday’ routine. This will have the date cursor go forward one day.

<cursor-down>, <j>

Call the ’date−nextweek’ routine. This will have the date cursor go forward one week.

<cursor-up>, <k>

Call the ’date−prevweek’ routine. This will have the date cursor go back one week.

<page-up>, < SHIFT+K >

Call the ’date−prevmonth’ routine. This will have the date cursor go back one month.

<page-down>, < SHIFT+J >

Call the ’date−nextmonth’ routine. This will have the date cursor go forward one month.

<p>, < SHIFT+H >

Call the ’date−prevyear’ routine. This will have the date cursor go back one year.

<n>, < SHIFT+L >

Call the ’date−nextyear’ routine. This will have the date cursor go forward one year.

<home>, < CTRL+A >, <c>

Call the ’date−selected’ routine. This will have the date cursor go to the current selected date.

<t>

Call the ’date−today’ routine. This will have the date cursor go to today’s date.

SEE ALSO

Curses::UI, Curses::UI::Widget, Curses::UI::Common

AUTHOR

Copyright (c) 2001−2002 Maurice Makaay. All rights reserved.

Maintained by Marcus Thiesen (marcus@cpan.thiesenweb.de)

This package is free software and is provided "as is" without express or implied warranty. It may be used, redistributed and/or modified under the same terms as perl itself.