#!/usr/bin/perl -w
use lib qw(lib);
use HTML::Menu::TreeView qw(Tree css jscript Style documentRoot size clasic preload);
use CGI qw(-compile :all -private_tempfiles);
use strict;
my $htpath = documentRoot();
my $size = defined param('size') ? param('size') : 16;
$size = ($size == 22 or $size == 32 or $size == 48 or $size == 64 or $size == 128) ? $size : 16;
my @tree;
opendir(DIR, "$htpath/style/Crystal/$size/mimetypes") or die ":$htpath/style/Crystal/$size/mimetypes $/ $! $/";
my @lines = readdir(DIR);
closedir(DIR);
open(IN, "$htpath/style/Crystal/$size/html-menu-treeview/Crystal.css") or die ": $!";
while (my $line = <IN>) {
if ($line =~ /td\.(folder.+)Closed/) {
my $classname = $1;
my $img = shift @lines;
$img = shift @lines while ($img =~ /^\..*/);
push @tree,
{
text => $classname,
folderclass => $classname,
subtree => [
{
text => $img,
image => $img
},
],
};
next;
}
}
close(IN);
for (my $i = 0; $i < $#lines; ++$i) {
my $img = shift @lines;
unless ($img =~ /^\..*$/) {
push @tree,
{
text => $img,
image => $img,
};
}
}
documentRoot($htpath);
Style('Crystal');
size($size);
clasic(1) if (defined param('clasic'));
my $zoom = div(
{style => "font-size:$size" . "px;"},
a(
{
-href => './crystal.pl?style=Crystal&size=16',
-class => "treeviewLink$size"
},
'16'
)
. ' | '
. a(
{
-href => './crystal.pl?style=Crystal&size=22',
-class => "treeviewLink$size"
},
'22'
)
. ' | '
. a(
{
-href => './crystal.pl?style=Crystal&size=32',
-class => "treeviewLink$size"
},
'32'
)
. ' | '
. a(
{
-href => './crystal.pl?style=Crystal&size=48',
-class => "treeviewLink$size"
},
'48'
)
. ' | '
. a(
{
-href => './crystal.pl?style=Crystal&size=64',
-class => "treeviewLink$size"
},
'64'
)
. ' | '
. a(
{
-href => './crystal.pl?style=Crystal&size=128',
-class => "treeviewLink$size"
},
'128'
)
);
print(
header(),
start_html(
-title => 'Crystal',
-script => jscript() . preload(),
-style => {-code => css()}
),
div({align => 'center'}, $zoom . br() . Tree(\@tree)),
end_html
);