AAC-Pvoice
view release on metacpan or search on metacpan
lib/AAC/Pvoice/EditableRow.pm view on Meta::CPAN
$sizer->Fit($self);
return $self;
}
1;
__END__
=head1 NAME
AAC::Pvoice::EditableRow - Draw a pVoice row where items can be edited directly
=head1 SYNOPSIS
use AAC::Pvoice::EditableRow
=head1 DESCRIPTION
This module is currently only useful for the pVoice application. It needs
to be refactored, maybe it'll disappear completely
lib/AAC/Pvoice/Panel.pm view on Meta::CPAN
$self->{rowcolumnscanning} = ($self->{input}->GetDevice ne 'mouse');
EVT_PAINT($self, \&OnPaint);
EVT_UPDATE_UI($self, $self, \&OnPaint);
return $self;
}
sub SetEditmode
{
my $self = shift;
$self->{editmode} = shift;
}
sub OnPaint
{
my ($self, $event) = @_;
$self->{setselection} = 1;
my $dc = Wx::PaintDC->new($self);
$self->SetBackgroundColour($self->{parent}->GetBackgroundColour);
$self->DrawBackground($dc);
if ($self->{rowcolumnscanning} && not $self->{editmode})
{
$dc = Wx::WindowDC->new($self->{selectedwindow}->GetParent);
$self->DrawBorder($dc);
}
$event->Skip;
}
sub DrawBorder
{
my $self = shift;
lib/AAC/Pvoice/Panel.pm view on Meta::CPAN
sub Append
{
my $self = shift;
my $row = shift;
my $unselectable = shift;
$self->{tls}->Add($row, # what to add
0, # unused
wxALIGN_CENTRE, # style
0); # padding
# setup the input event handling unless we're in editmode
unless ($self->{editmode})
{
$row->{input} = AAC::Pvoice::Input->newchild($row);
$row->{input}->Next( sub{$self->Next});
$row->{input}->Select(sub{$self->Select});
my $index=0;
foreach my $child ($row->GetChildren)
{
$child->{input} = AAC::Pvoice::Input->newchild($child);
$child->{input}->Next( sub{$self->Next});
$child->{input}->Select(sub{$self->Select});
lib/AAC/Pvoice/Panel.pm view on Meta::CPAN
$self->{text}->Refresh(); # Added to test it on the Mercury...added text
# isn't visible there...
}
$self->{title}->SetBackgroundColour($self->BackgroundColour) unless $self->{disabletitle};
$self->{tls}->AddGrowableCol(0);
$self->Layout;
# Select the first row
$self->{selectedrow} = 0;
$self->{selecteditem} = 0;
$self->SetSelectionBorder($self->{rows}->[$self->{selectedrow}]) if $self->{rowcolumnscanning} && not $self->{editmode};
$self->{rowselection} = 1;
$self->Refresh;
$self->Update();
$self->{unfinished} = 0;
}
sub Next
{
my $self = shift;
return if ($self->{editmode} || $self->{unfinished});
$self->{input}->QuitAutoscan;
if ($self->{rowselection})
{
$self->SetNormalBorder($self->{rows}->[$self->{selectedrow}]) if $self->{rowcolumnscanning};
if ($self->{selectedrow} < ($self->{totalrows}-1))
{
$self->{selectedrow}++;
}
else
{
$self->{selectedrow} = 0;
}
$self->SetSelectionBorder($self->{rows}->[$self->{selectedrow}]) if $self->{rowcolumnscanning};
}
else
{
$self->SetNormalBorder($self->{rows}->[$self->{selectedrow}]->{items}->[$self->{selecteditem}]) if $self->{rowcolumnscanning};
if ($self->{selecteditem} < ($self->{rows}->[$self->{selectedrow}]->{totalitems}-1))
{
$self->{selecteditem}++;
}
else
{
$self->{selecteditem} = 0;
}
$self->SetSelectionBorder($self->{rows}->[$self->{selectedrow}]->{items}->[$self->{selecteditem}]) if $self->{rowcolumnscanning};
}
$self->{input}->StartAutoscan;
}
sub Select
{
my $self = shift;
return if $self->{editmode};
$self->{input}->QuitAutoscan;
if (($self->{rowselection}) && (@{$self->{rows}->[$self->{selectedrow}]->{items}} == 1))
{
$self->{rowselection} = 0;
$self->{selecteditem} = 0;
}
if ($self->{rowselection})
{
$self->SetNormalBorder($self->{rows}->[$self->{selectedrow}]) if $self->{rowcolumnscanning};
$self->{rowselection} = 0;
$self->{selecteditem} = 0;
$self->SetSelectionBorder($self->{rows}->[$self->{selectedrow}]->{items}->[$self->{selecteditem}]) if $self->{rowcolumnscanning};
}
else
{
$self->SetNormalBorder($self->{rows}->[$self->{selectedrow}]->{items}->[$self->{selecteditem}]) if $self->{rowcolumnscanning};
$self->SetSelectionBorder($self->{rows}->[$self->{selectedrow}]) if $self->{rowcolumnscanning};
&{$self->{rows}->[$self->{selectedrow}]->{actions}->[$self->{selecteditem}]};
$self->{rowselection} = 1;
}
$self->{input}->StartAutoscan;
}
sub ToRowSelection
{
my $self = shift;
return if $self->{editmode};
$self->SetNormalBorder($self->{rows}->[$self->{selectedrow}]->{items}->[$self->{selecteditem}]) if $self->{rowcolumnscanning};
$self->SetSelectionBorder($self->{rows}->[$self->{selectedrow}]) if $self->{rowcolumnscanning};
$self->{rowselection} = 1;
}
sub DisplayAddText
{
my $self = shift;
push @{$self->{displaytextsave}}, $_[0];
$self->{text}->AppendText($_[0]);
$self->{text}->Refresh(); # Added to test it on the Mercury...added text
( run in 0.489 second using v1.01-cache-2.11-cpan-4505f990765 )