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 )