Tk::Derived - Classe de base pour les widgets dérivées d'autres widgets
package Tk::MyNewWidget;
use Tk::widgets qw/ BaseWidget, list of Tk widgets /; use base qw/ Tk::Derived Tk::BaseWidget /;
Construct Tk::Widget 'MyNewWidget';
sub ClassInit { my( $class, $mw ) = @_; #... mettre par exemple les liaisons de classe ici... $class->SUPER::ClassInit ( $mw ); }
sub Populate { my( $self, $args ) = @_;
my $flag = delete $args->{-flag}; if( defined $flag ) { # prendre en compte -flag => xxx ce qui ne # peut être fait qu'au moment de la création. # l'instruction delete ci-dessus assure que new() # ne tentera pas un $self->configure( -flag => xxx ); }
$self->SUPER::Populate( $args );
$self = $self->Component( ... );
$self->Delegates( ... );
$self->ConfigSpecs( '-cursor' => [ SELF, 'cursor', 'Cursor', undef ], '-something' => [ METHOD, dbName, dbClass, default ], '-text' => [ $label, dbName, dbClass, default ], '-heading' => [ {-text => $head}, heading, Heading, 'My Heading' ], ); }
sub something { my( $self, $value) = @_; if ( @_ > 1 ) { # l'initialiser } return # valeur courante }
Tk::Derived est utilisée avec l'héritage multiple de perl5 pour surcharger certaines méthodes normalement héritées de Tk::Widget.
Tk::Derived doit précéder tout widget Tk dans la définition de la classe de base des classes.
Le but principal de Tk::Derived est d'enrober les méthodes configure
et
cget
du widget afin de permettre au widget dérivé d'ajouter des options de
configuration au widget de base, ou de modifier leur comportement.
Normalement, la classe dérivée redéfinit la méthode Populate
fournie par
Tk::Derived, et appelle ConfigSpecs
pour déclarer les options de
configuration.
Méthodes publiques fournies par Tk::Derived :
->ConfigSpecs(-clé => [type, nom, Classe, défaut], ...)
Tk::ConfigSpecs Tk::mega Tk::composite
Jean-Pierre Vidal jeanpierre.vidal@free.fr
Pas de relecture pour le moment