GSM-Gnokii
view release on metacpan or search on metacpan
lib/GSM/Gnokii/Tk/GSMTree.pm view on Meta::CPAN
package GSM::Gnokii::Tk::GSMTree;
# Derived from DirTree.pm
use strict;
use warnings;
our $VERSION = "0.02";
use Carp;
use GSM::Gnokii;
use Tk;
use Tk::Widget;
use Tk::Derived;
use Tk::Tree;
use vars qw( @ISA );
@ISA = qw( Tk::Derived Tk::Tree );
Construct Tk::Widget "GSMTree";
use List::Util qw( first );
use Data::Peek;
my %def_conf = (
root => undef,
gsm => undef,
memtype => "ME",
);
sub Populate
{
my ($w, $args) = @_;
# print STDERR "Populate ...\n";
my $data = $w->privateData;
%$data = %def_conf;
if (ref $args eq "HASH") {
my %args = %$args;
foreach my $arg (keys %args) {
(my $attr = $arg) =~ s/^-//;
exists $data->{$attr} and $data->{$attr} = delete $args{$arg};
}
$args = { %args };
}
# DDumper { Data => $data, Args => $args };
$w->SUPER::Populate ($args);
$w->ConfigSpecs (
-dircmd => [qw( CALLBACK dirCmd DirCmd DirCmd )],
-showhidden => [qw( PASSIVE showHidden ShowHidden 0 )],
-image => [qw( PASSIVE image Image folder )],
-directory => [qw( SETMETHOD directory Directory . )],
-value => "-directory"
);
$w->configure (
-separator => "/",
-itemtype => "imagetext",
);
$data->{root} //= $w->add_to_tree ("/", $data->{memtype} // "ME");
} # Populate
sub configure
{
my ($w, %cnf) = @_;
# print STDERR "configure ...\n";
delete @cnf{map { ( $_, "-$_" ) } keys %{$w->privateData}};
$w->SUPER::configure (%cnf);
} # configure
my %mt = ( A => "ME", B => "SM" );
my %dt;
my %fi;
sub _cleanpath
( run in 2.918 seconds using v1.01-cache-2.11-cpan-364913b4093 )