Pues no, no conozco a nadie de forma directa. En este foro debe haber alguien más...
En cuanto a las filas del HList, una forma de hacerlo es usando el método info('children') que te devuelve las entradas superiores de la lista, pero luego deberás recorrer todas las entradas usando el mismo método, pero con info('next') e indicando como primer parámetro el nombre de la entrada raíz.
Supongamos que sea '/' la raíz de las entradas, luego con
Using perl Syntax Highlighting
my $h = '/'; print $h, "\n";
while ( $h = $hlist->info('next',$h) ) {
print $h, "\n";
}Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
pintaremos todas las entradas dependientes de la raíz. Con una variable podríamos contarlas, o meterlas en un array y, lo mismo, saber cuántas son.
Ejemplo:
Using perl Syntax Highlighting
#!/usr/bin/perl -l
use Tk
;
use Tk
::Label;
use Tk
::HList;
# Creamos el HList
my $mw = MainWindow
->new();
my $label = $mw->Label(-width
=>15
);
my $hlist = $mw->HList(
-itemtype
=> 'text',
-separator
=> '/',
-selectmode
=> 'single',
-browsecmd
=> sub {
my $file = shift;
$label->configure(-text
=>$file);
}
);
# Le asignamos información
foreach ( qw(/ /home
/home/ioi /home
/foo
/usr
/usr
/lib
) ) {
$hlist->add($_, -text
=>$_);
}
# Empaquetado
$hlist->pack;
$label->pack;
# Listado de entradas
foreach $raiz ( $hlist->info('children') ) {
print $raiz;
$hijo = $raiz;
while ( $hijo = $hlist->info('next',$hijo) ) {
print $hijo;
}
}
# Presentación
MainLoop
;Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4