CodeManager
view release on metacpan or search on metacpan
lib/Prima/CodeManager/Label.pm view on Meta::CPAN
}
}
$canvas-> color( $clr[0]);
for ( $i = 0; $i < scalar @{$ws}; $i++) {
my $x = 0;
if ( $ta == ta::Center) {
$x = ( $size[0] - $$wx[$i]) / 2;
} elsif ( $ta == ta::Right) {
$x = $size[0] - $$wx[$i];
}
$canvas-> text_out( $$ws[$i], $x, $y);
$y -= $fh;
}
if ( $paintLine) {
my $x = 0;
if ( $ta == ta::Center) { $x = ( $size[0] - $$wx[$tl]) / 2; }
elsif ( $ta == ta::Right) { $x = $size[0] - $$wx[$tl]; }
$canvas-> line(
$x + $self-> {tildeStart}, $starty - $fh * $tl,
$x + $self-> {tildeEnd}, $starty - $fh * $tl
);
}
}
sub text
{
return $_[0]-> SUPER::text unless $#_;
my $self = $_[0];
$self-> SUPER::text( $_[1]);
$self-> check_auto_size;
$self-> repaint;
}
sub on_translateaccel
{
my ( $self, $code, $key, $mod) = @_;
if (
!$self-> {showAccelChar} &&
defined $self-> {accel} &&
( $key == kb::NoKey) &&
lc chr $code eq $self-> { accel}
) {
$self-> clear_event;
$self-> notify( 'Click');
}
}
sub on_click
{
my ( $self, $f) = ( $_[0], $_[0]-> {focusLink});
$f-> select if defined $f && $f-> alive && $f-> enabled;
}
sub on_keydown
{
my ( $self, $code, $key, $mod) = @_;
if (
defined $self-> {accel} &&
( $key == kb::NoKey) &&
lc chr $code eq $self-> { accel}
) {
$self-> notify( 'Click');
$self-> clear_event;
}
}
sub on_mousedown
{
my $self = $_[0];
$self-> notify( 'Click');
$self-> clear_event;
}
sub on_fontchanged
{
$_[0]-> check_auto_size;
}
sub on_size
{
$_[0]-> reset_lines;
}
sub on_enable { $_[0]-> repaint } sub on_disable { $_[0]-> repaint }
sub set_alignment
{
$_[0]-> {alignment} = $_[1];
$_[0]-> repaint;
}
sub set_valignment
{
$_[0]-> {valignment} = $_[1];
$_[0]-> repaint;
}
sub reset_lines
{
my $self = $_[0];
my @res;
my $maxLines = int( $self-> height / ($self-> font-> height + $self->{lineSpace}));
$maxLines++ if $self-> {showPartial} and (($self-> height % ($self-> font-> height + $self->{lineSpace})) > 0);
my $opt = tw::NewLineBreak|tw::ReturnLines|tw::WordBreak|tw::CalcMnemonic|tw::ExpandTabs|tw::CalcTabs;
my $width = 1000000;
$opt |= tw::CollapseTilde unless $self-> {showAccelChar};
( run in 1.975 second using v1.01-cache-2.11-cpan-39bf76dae61 )