Curses-UI
view release on metacpan or search on metacpan
lib/Curses/UI/Listbox.pm view on Meta::CPAN
}
}
sub option_uncheck()
{
my $this = shift;
if ($this->{-multi})
{
my $changed = ($this->{-selected}->{$this->{-ypos}} ? 1 : 0);
$this->{-selected}->{$this->{-ypos}} = 0;
$this->run_event('-onchange') if $changed;
$this->{-ypos}++;
} else {
$this->dobeep;
}
$this->schedule_draw(1);
return $this;
}
sub mouse_button1($$$;)
{
my $this = shift;
my $event = shift;
my $x = shift;
my $y = shift;
return unless $this->{-focusable};
$this->layout_content;
unless ($this->{-focus}) {
$this->focus;
}
my $newypos = $this->{-yscrpos} + $y;
if (@{$this->{-values}} and
$newypos >= 0 and $newypos < @{$this->{-values}}) {
$this->{-ypos} = $newypos;
$this->do_routine('option-select');
}
$this->schedule_draw(1);
}
sub get()
{
my $this = shift;
return unless defined $this->{-selected};
if ($this->{-multi}) {
my @values = ();
while (my ($id, $val) = each %{$this->{-selected}}) {
next unless $val;
push @values, $this->{-values}->[$id];
}
return @values;
} else {
return $this->{-values}->[$this->{-selected}];
}
}
sub id()
{
my $this = shift;
return unless defined $this->{-selected};
if ($this->{-multi}) {
my @values = ();
while (my ($id, $val) = each %{$this->{-selected}}) {
next unless $val;
push @values, $id;
}
return @values;
} else {
return $this->{-selected};
}
}
sub get_selectedlabel()
{
my $this = shift;
my $value = $this->get;
return unless defined $value;
my $label = $this->{-labels}->{$value};
return (defined $label ? $label : $value);
}
sub set_color_fg {
my $this = shift;
$this->{-fg} = shift;
$this->intellidraw;
}
sub set_color_bg {
my $this = shift;
$this->{-bg} = shift;
$this->intellidraw;
}
# ----------------------------------------------------------------------
# Routines for search support
# ----------------------------------------------------------------------
sub number_of_lines() { @{shift()->{-values}} }
sub getline_at_ypos($;) { shift()->getlabel(shift()) }
1;
=pod
=head1 NAME
Curses::UI::Listbox - Create and manipulate listbox widgets
=head1 CLASS HIERARCHY
Curses::UI::Widget
Curses::UI::Searchable
|
+----Curses::UI::Listbox
( run in 0.828 second using v1.01-cache-2.11-cpan-5b529ec07f3 )