App-Widget
view release on metacpan or search on metacpan
cgi-bin/app-button view on Meta::CPAN
$r = $hexvalue{substr($r,0,1)} * 16 + $hexvalue{substr($r,1,1)};
$g = $hexvalue{substr($g,0,1)} * 16 + $hexvalue{substr($g,1,1)};
$b = $hexvalue{substr($b,0,1)} * 16 + $hexvalue{substr($b,1,1)};
$color = $im->colorAllocate($r,$g,$b);
$color{$colortext} = $color;
$current_color = $color;
$numcolors++;
}
}
elsif ($colortext =~ /^[0-9]+$/) { # a colormap index (i.e. 0)
$color = $color{$colortext};
if (! defined $color) {
$color = $current_color;
}
}
else { # a color name (i.e. "white")
$color = $color{$colortext};
if (! defined $color) {
if (defined $colorvalue{$colortext}) {
$color = &color($colorvalue{$colortext});
$color{$colortext} = $color;
}
else {
$color = $current_color;
}
}
}
if (! defined $color) {
if ($numcolors >= 2) {
$color = &color(1);
}
elsif ($numcolors == 1) {
$color = &color("#000000");
}
else {
$color = &color("#ffffff");
}
}
$color;
}
#########################################################
# COLORMAP INITIALIZATION
#########################################################
$colormap = $cgi->param("colormap");
$colormap = "" if (! defined $colormap);
if ($colormap eq "basic") {
foreach $colortext ("white", "black", "red", "green", "blue", "cyan", "magenta", "yellow") {
&color($colortext);
}
}
$bgcolor = $cgi->param("bgcolor");
$bgcolor = "#cccccc" if (!$bgcolor);
&color($bgcolor); # make sure the bgcolor is in the color map
#########################################################
# SET OPTIONAL ATTRIBUTES
#########################################################
$transparent = $cgi->param("transparent");
if (defined $transparent && $transparent ne "" && defined $color{$transparent}) {
$im->transparent($color{$transparent});
}
$interlaced = $cgi->param("interlaced");
if ($interlaced) {
$im->interlaced('true');
}
#########################################################
# DRAW LINES
#########################################################
$text = $cgi->param("text");
$text = "Submit" if (! defined $text);
$bevel = $cgi->param("bevel");
$bevel = "2" if (! defined $bevel);
$mode = $cgi->param("mode");
if (! defined $mode) {
$mode = $0;
$mode =~ s!.*/!!;
$mode =~ s!^app-!!;
}
$fontsize = $cgi->param("fontsize");
$fontsize = 8 if (! defined $fontsize);
$fontsize = 1 if ($fontsize <= 0);
$fontcolor = $cgi->param("fontcolor");
$fontcolor = "#000000" if (! defined $fontcolor);
$fontname = $cgi->param("fontname");
$fontname = "builtin" if (! defined $fontname);
@builtin_font = (
gdTinyFont, gdTinyFont, gdTinyFont, gdTinyFont, gdTinyFont, # 0- 4
gdSmallFont, gdSmallFont, gdSmallFont, gdSmallFont, # 5- 8
gdMediumBoldFont, gdMediumBoldFont, gdMediumBoldFont, gdMediumBoldFont, # 9-12
gdLargeFont, gdLargeFont, gdLargeFont, gdLargeFont, # 13-16
gdGiantFont, gdGiantFont, gdGiantFont, gdGiantFont, # 17-20
);
if ($mode eq "button") {
$im->fill(0,0,&color($bgcolor));
$im->line(0 ,0 ,$width-1,0 ,&color("#ffffff")); # top
$im->line(0 ,0 ,0 ,$height-1,&color("#ffffff")); # left
$im->line(0 ,$height-1,$width-1,$height-1,&color("#888888")); # bottom
$im->line($width-1,0 ,$width-1,$height-1,&color("#888888")); # right
if ($bevel > 1) {
$im->line(1 ,1 ,$width-2,1 ,&color("#dddddd")); # top
$im->line(1 ,1 ,1 ,$height-2,&color("#dddddd")); # left
$im->line(1 ,$height-2,$width-2,$height-2,&color("#aaaaaa")); # bottom
$im->line($width-2,1 ,$width-2,$height-2,&color("#aaaaaa")); # right
}
if (defined $fontname && $fontname ne "" && $fontname ne "builtin") {
$fontfile = lc($fontname);
$fontfile .= ".ttf" if ($fontfile !~ /\.ttf$/);
( run in 0.709 second using v1.01-cache-2.11-cpan-2398b32b56e )