Tk-YANoteBook
view release on metacpan or search on metacpan
lib/Tk/YANoteBook/NameTab.pm view on Meta::CPAN
package Tk::YANoteBook::NameTab;
use strict;
use warnings;
use vars qw($VERSION);
$VERSION = '0.10';
use Tk;
use base qw(Tk::Derived Tk::Frame);
Construct Tk::Widget 'NameTab';
sub Populate {
my ($self,$args) = @_;
my $closebutton = delete $args->{'-closebutton'};
$closebutton = 0 unless defined $closebutton;
my $padx = delete $args->{'-tpadx'};
$padx = 1 unless defined $padx;
my $pady = delete $args->{'-tpady'};
$pady = 1 unless defined $pady;
my $closeimage;
if ($closebutton) {
$closeimage = delete $args->{'-closeimage'};
$closeimage = $self->Pixmap(-file => Tk->findINC('close_icon.xpm')) unless defined $closeimage;
}
$self->SUPER::Populate($args);
my $l = $self->Label(
)->pack(
-side => 'left',
-expand => 1,
-fill => 'both',
-padx => $padx,
-pady => $pady,
);
$self->Advertise('Label' => $l);
my $i = $self->Label;
$self->Advertise('Indicator' => $i);
$self->bind('<Motion>', [$self, 'TabMotion', Ev('x'), Ev('y')]);
$l->bind('<Motion>', [$self, 'ItemMotion', $l, Ev('x'), Ev('y')]);
$i->bind('<Motion>', [$self, 'ItemMotion', $l, Ev('x'), Ev('y')]);
$self->bind('<Button-1>', [$self, 'OnClick']);
$l->bind('<Button-1>', [$self, 'OnClick']);
$i->bind('<Button-1>', [$self, 'OnClick']);
$self->bind('<ButtonRelease-1>', [$self, 'OnRelease']);
$l->bind('<ButtonRelease-1>', [$self, 'OnRelease']);
$i->bind('<ButtonRelease-1>', [$self, 'OnRelease']);
my $b;
if ($closebutton) {
$b = $self->Button(
-image => $closeimage,
-command => ['TabClose', $self],
-relief => 'flat',
-highlightthickness => 0,
)->pack(
-side => 'right',
-padx => 1,
-pady => 1,
);
$b->bind('<Motion>', [$self, 'ItemMotion', $b, Ev('x'), Ev('y')]);
}
( run in 0.613 second using v1.01-cache-2.11-cpan-364913b4093 )