---
name: "Curses::Widgets::TextMemo"
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::TextMemo"
---

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

Text Memo Widgets

## NAME

Curses::Widgets::TextMemo - Text Memo Widgets

## MODULE VERSION

`$Id:` TextMemo.pm,v 1.104 2002/11/14 01:27:31 corliss Exp corliss $

## SYNOPSIS

```
  use Curses::Widgets::TextMemo;
  $tm = Curses::Widgets::TextMemo->new({
    CAPTION       => 'Memo',
    CAPTIONCOL    => 'blue',
    COLUMNS       => 10,
    MAXLENGTH     => undef,
    LINES         => 3,
    MASK          => undef,
    VALUE         => '',
    INPUTFUNC     => \&scankey,
    FOREGROUND    => 'white',
    BACKGROUND    => 'black',
    BORDER        => 1,
    BORDERCOL     => 'red',
    FOCUSSWITCH   => "\t",
    CURSORPOS     => 0,
    TEXTSTART     => 0,
    PASSWORD      => 0,
    X             => 1,
    Y             => 1,
    READONLY      => 0,
    });
  $tm->draw($mwh, 1);
  See the Curses::Widgets pod for other methods.
```

## REQUIREMENTS

- Curses

  - Curses::Widgets

  ## DESCRIPTION

Curses::Widgets::TextMemo provides simplified OO access to Curses-based single line text fields.  Each object maintains its own state information.

## METHODS

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

```
  $tm = Curses::Widgets::TextMemo->new({
    CAPTION       => 'Memo',
    CAPTIONCOL    => 'blue',
    COLUMNS       => 10,
    MAXLENGTH     => undef,
    LINES         => 3,
    MASK          => undef,
    VALUE         => '',
    INPUTFUNC     => \&scankey,
    FOREGROUND    => 'white',
    BACKGROUND    => 'black',
    BORDER        => 1,
    BORDERCOL     => 'red',
    FOCUSSWITCH   => "\t",
    CURSORPOS     => 0,
    TEXTSTART     => 0,
    PASSWORD      => 0,
    X             => 1,
    Y             => 1,
    READONLY      => 0,
    });
```

The new method instantiates a new TextMemo 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
  COLUMNS            10   Number of columns displayed
  MAXLENGTH       undef   Maximum string length allowed
  LINES               3   Number of lines in the window
  VALUE              ''   Current field 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
  CURSORPOS           0   Starting position of the cursor
  TEXTSTART           0   Line number of string to start
                          displaying
  PASSWORD            0   Subsitutes '*' instead of characters
  READONLY            0   Prevents alteration to content
```

The **CAPTION** is only valid when the **BORDER** is enabled.  If the border is disabled, the field will be underlined, provided the terminal supports it. The **MAXLENGTH** has no effect if left undefined.

### draw

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

The draw method renders the text memo 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 field's text cursor to be rendered as well.

## HISTORY

- 1999/12/29 Ω- Original text field widget in functional model

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

  ## AUTHOR/COPYRIGHT

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