The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Curses::UI::Char - Create and manipulate character widgets.

CLASS HIERARCHY

Curses::UI::Widget
   |
   +----Curses::UI::Label
           |
           +----Curses::UI::Char

SYNOPSIS

use Curses::UI;

my $win = $cui->add('window_id', 'Window');
my $number = $win->add(
        'mynum', 'Curses::UI::Char',
        -char => 5,
);
$number->draw;

DESCRIPTION

Curses::UI::Number is a widget that shows a number in graphic form.

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.

REMOVED OPTIONS

-text.

WIDGET-SPECIFIC OPTIONS

  • -char < CHARACTER >

    Character..

    Default value is undef.

  • -fill < CHARACTER >

    Character for Curses::UI::Char drawing.

    Default value is '█'.

STANDARD METHODS

layout, draw, intellidraw, focus, onFocus, onBlur.

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

WIDGET-SPECIFIC METHODS

  • new(%parameters)

    Constructor.

    Create widget with volume in graphic form, defined by -volume number.

    Returns object.

  • char([$character])

    Get or set character.

    Returns character (A - Z).

EXAMPLE1

use strict;
use warnings;

use Curses::UI;

# Object.
my $cui = Curses::UI->new;

# Main window.
my $win = $cui->add('window_id', 'Window');

# Add volume.
$win->add(
        undef, 'Curses::UI::Char',
        '-char' => 'A',
);

# Binding for quit.
$win->set_binding(\&exit, "\cQ", "\cC");

# Loop.
$cui->mainloop;

# Output like:
#   ██
# ██  ██
# ██████
# ██  ██
# ██  ██

EXAMPLE2

use strict;
use warnings;

use Curses::UI;

# Object.
my $cui = Curses::UI->new(
        -color_support => 1,
);

# Main window.
my $win = $cui->add('window_id', 'Window');

# Add number.
my $char = $win->add(
        undef, 'Curses::UI::Char',
        '-border' => 1,
        '-char' => 'A',
);

# Binding for quit.
$win->set_binding(\&exit, "\cQ", "\cC");

# Time.
$cui->set_timer(
        'timer',
        sub {
                my $act = ord($char->char) - 65;
                $act += 1;
                if ($act > 25) {
                        $act = 0;
                }
                $char->char(chr($act + 65));

                return;
        },
        1,
);

# Loop.
$cui->mainloop;

# Output like:
# ┌──────┐
# │██████│
# │██  ██│
# │██  ██│
# │██  ██│
# │██████│
# └──────┘

DEPENDENCIES

Curses::UI::Common, Curses::UI::Label, Curses::UI::Widget, Unicode::UTF8.

SEE ALSO

Task::Curses::UI

Install the Curses::UI modules.

REPOSITORY

https://github.com/michal-josef-spacek/Curses-UI-Char

AUTHOR

Michal Josef Špaček mailto:skim@cpan.org

http://skim.cz

LICENSE AND COPYRIGHT

© 2015-2023 Michal Josef Špaček

BSD 2-Clause License

VERSION

0.02