1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
#!/usr/local/bin/perl -w
use Tk;
{
# This could/should go in Tk/LEntry.pm
package Tk::LEntry;
require Tk::Entry;
use base qw(Tk::Derived Tk::Entry);
Construct Tk::Widget 'LEntry';
sub Populate
{
my ($w,$args) = @_;
$w->ConfigSpecs(-maxwidth => ['PASSIVE','maxWidth','MaxWidth',12]);
}
sub insert
{
my ($w,@args) = @_;
# Do the insert as Entry does it.
$w->SUPER::insert(@args);
# Now see if that is 'legal' ...
my $max = $w->cget('-maxwidth');
if (length($w->get) > $max)
{
$w->delete($max,'end');
$w->bell;
}
}
}
my $mw = MainWindow->new;
my $e = $mw->LEntry(-maxwidth => 5, -width => 5);
$e->pack;
MainLoop;
__END__
|