---
name: "Curses::Widgets::Calendar"
section: "3pm"
platform: "linux"
package: "libcurses-widgets-perl"
version: "1.997-8"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Curses::Widgets::Calendar"
---

# Curses::Widgets::Calendar(3pm)

Calendar Widgets

## NAME

Curses::Widgets::Calendar - Calendar Widgets

## MODULE VERSION

`$Id:` Calendar.pm,v 1.103 2002/11/03 23:33:05 corliss Exp corliss $

## SYNOPSIS

```
  use Curses::Widgets::Calendar;
  $cal = Curses::Widgets::Calendar->({
    CAPTION     => 'Appointments',
    CAPTIONCOL  => 'yellow',
    INPUTFUNC   => \&scankey,
    FOREGROUND  => undef,
    BACKGROUND  => 'black',
    BORDER      => 1,
    BORDERCOL   => 'red',
    FOCUSSWITCH => "\t",
    X           => 1,
    Y           => 1,
    HIGHLIGHT   => [12, 17, 25],
    HIGHLIGHTCOL=> 'green',
    MONTH       => '11/2001',
    ONYEAR      => \&yearly,
    ONMONTH     => \&monthly,
    ONDAY       => \&daily,
    });
  $cal->draw($mwh, 1);
  See the Curses::Widgets pod for other methods.
```

## REQUIREMENTS

- Curses

  - Curses::Widgets

  ## DESCRIPTION

Curses::Widgets::Calendar provides simplified OO access to Curses-based calendars.  Each object maintains it's own state information.

## METHODS

### new (inherited from Curses::Widgets)

```
  $cal = Curses::Widgets::Calendar->({
    CAPTION     => 'Appointments',
    CAPTIONCOL  => 'yellow',
    INPUTFUNC   => \&scankey,
    FOREGROUND  => undef,
    BACKGROUND  => 'black',
    BORDER      => 1,
    BORDERCOL   => 'red',
    FOCUSSWITCH => "\t",
    X           => 1,
    Y           => 1,
    HIGHLIGHT   => [12, 17, 25],
    HIGHLIGHTCOL=> 'green',
    MONTH       => '11/2001',
    ONYEAR      => \&yearly,
    ONMONTH     => \&monthly,
    ONDAY       => \&daily,
    });
```

The new method instantiates a new Calendar object.  The only mandatory key/value pairs in the configuration hash are **X** and **Y**.  All others have the following defaults:

```
  Key         Default   Description
  ============================================================
  CAPTION       undef   Caption superimposed on border
  CAPTIONCOL    undef   Foreground colour for caption text
  INPUTFUNC \&scankey   Function to use to scan for keystrokes
  FOREGROUND    undef   Default foreground colour
  BACKGROUND    undef   Default background colour
  BORDER            1   Display a border around the field
  BORDERCOL     undef   Foreground colour for border
  FOCUSSWITCH    "\t"   Characters which signify end of input
  HIGHLIGHT        []   Days to highlight
  HIGHLIGHTCOL  undef   Default highlighted data colour
  HEADERCOL     undef   Default calendar header colour
  MONTH     (current)   Month to display
  VALUE             1   Day of the month where the cursor is
  ONYEAR        undef   Callback function triggered by year
  ONMONTH       undef   Callback function triggered by month
  ONDAY         undef   Callback function triggered by day
```

Each of the ON\* callback functions expect a subroutine reference that excepts one argument: a handle to the calendar object itself.  If more than one trigger is called, it will be called in the order of day, month, and then year.

### draw

```
  $cal->draw($mwh, 1);
```

The draw method renders the calendar in its current state.  This requires a valid handle to a curses window in which it will render itself.  The optional second argument, if true, will cause the calendar's selected day to be rendered in standout mode (inverse video).

## HISTORY

- 1999/12/29 Ω- Original calendar widget in functional model

  - 2001/07/05 Ω- First incarnation in OO architecture

  ## AUTHOR/COPYRIGHT

(c) 2001 Arthur Corliss (corliss@digitalmages.com)
