From 654e5abd66032fb103c78f2836dfdf072219a507 Mon Sep 17 00:00:00 2001
From: betateilchen <>
Date: Thu, 12 Feb 2015 10:03:17 +0000
Subject: [PATCH] 55_InfoPanel.pm: updated - adjust turtle for new elements -
code cleanup
git-svn-id: https://svn.fhem.de/fhem/trunk@7947 2b470e98-0d58-463d-a4d8-8e2adae1ed80
---
fhem/FHEM/55_InfoPanel.pm | 172 +++++++++++++++++++-------------------
1 file changed, 87 insertions(+), 85 deletions(-)
diff --git a/fhem/FHEM/55_InfoPanel.pm b/fhem/FHEM/55_InfoPanel.pm
index 140592fa1..6f1f0370c 100644
--- a/fhem/FHEM/55_InfoPanel.pm
+++ b/fhem/FHEM/55_InfoPanel.pm
@@ -17,8 +17,6 @@ use feature qw/switch/;
use vars qw(%data);
use HttpUtils;
-my @cmd_halign= qw(thalign ihalign);
-my @cmd_valign= qw(tvalign ivalign);
my @valid_valign = qw(auto baseline middle center hanging);
my @valid_halign = qw(start middle end);
@@ -208,13 +206,10 @@ sub btIP_itemButton {
my $output = btIP_itemRect($id,$x1,$y1,$x2,$y2,$rx,$ry,1,0,$link,%params);
$params{rgb} = $oldrgb;
- my $oldhalign = $params{thalign};
- my $oldvalign = $params{tvalign};
- $params{thalign} = "middle";
- $params{tvalign} = "middle";
+ my ($oldhalign,$oldvalign) = ($params{thalign},$params{tvalign});
+ ($params{thalign},$params{tvalign}) = ("middle","middle");
my $textoutput .= btIP_itemText("${id}_text",($x1+$x2)/2,($y1+$y2)/2,$text,%params);
- $params{thalign} = $oldhalign;
- $params{tvalign} = $oldvalign;
+ ($params{thalign},$params{tvalign}) = ($oldhalign,$oldvalign);
$output =~ s/<\/a>/$textoutput<\/a>/;
return $output;
@@ -251,7 +246,7 @@ sub btIP_itemCircle {
sub btIP_itemCounter {
my ($id,$x,$y,%params)= @_;
$id = ($id eq '-') ? createUniqueId() : $id;
- return btIP_itemText($id,$x,$y,$defs{$params{name}}{fhem}{counter},%params);
+ return btIP_itemText($id,$x,$y,$params{counter},%params);
}
sub btIP_itemDate {
@@ -342,7 +337,7 @@ sub btIP_itemImg {
$output .= "\n";
$output .= "\n" if($link && length($link));
- return $output;
+ return ($output,$width,$height);
}
sub _btIP_imgData {
@@ -437,7 +432,7 @@ sub btIP_itemPlot {
$output .= "\n";
}
- return $output;
+ return ($output,$newWidth,$newHeight);
}
@@ -733,7 +728,7 @@ sub btIP_returnSVG {
my ($bgx,$bgy) = (0,0);
$bgx = ($width - $bgwidth/$u)/2 if AttrVal($name,'bgcenter',1);
$bgy = ($height - $bgheight/$u)/2 if AttrVal($name,'bgcenter',1);
- $output = btIP_itemImg('-',$bgx,$bgy,$scale,'file',$bgfile,undef);
+ ($output,undef,undef) = btIP_itemImg('bgImage',$bgx,$bgy,$scale,'file',$bgfile,undef);
my $opacity = AttrVal($name,'bgopacity',1);
$output =~ s/$line<";
+# Debug "$name: evaluating >$line<";
# split line into command and definition
my ($cmd, $def)= split("[ \t]+", $line, 2);
@@ -830,8 +826,8 @@ sub btIP_evalLayout {
($x1,$y1)= btIP_xy($x1,$y1,%params);
($x2,$y2)= btIP_xy($x2,$y2,%params);
$link = AnalyzePerlCommand(undef,$link);
- $params{xx} = $x;
- $params{yy} = $y;
+ $params{xx} = $x1;
+ $params{yy} = $y2;
$svg .= btIP_itemArea($id,$x1,$y1,$x2,$y2,$link,%params);
}
@@ -841,15 +837,16 @@ sub btIP_evalLayout {
}
when("button") {
- ($id,$x1,$y1,$x2,$y2,$r1,$r2,$link,$text)= split("[ \t]+", $def, 9);
+ ($id,$x1,$y1,$x2,$y2,$rx,$ry,$link,$text)= split("[ \t]+", $def, 9);
($x1,$y1)= btIP_xy($x1,$y1,%params);
($x2,$y2)= btIP_xy($x2,$y2,%params);
- $params{xx} = $x;
- $params{yy} = $y;
+ ($rx,$ry)= btIP_xy($rx,$ry,%params);
+ $params{xx} = $x1;
+ $params{yy} = $y2;
$link = AnalyzePerlCommand(undef,$link);
$link = (length($link)) ? $link : "-$params{name}.html";
$text = AnalyzePerlCommand(undef,$text);
- $svg .= btIP_itemButton($id,$x1,$y1,$x2,$y2,$r1,$r2,$link,$text,%params);
+ $svg .= btIP_itemButton($id,$x1,$y1,$x2,$y2,$rx,$ry,$link,$text,%params);
}
when("buttonpanel"){
@@ -859,12 +856,14 @@ sub btIP_evalLayout {
}
when("circle") {
- ($id,$x1,$y1,$r1,$filled,$stroked,$link)= split("[ \t]+", $def, 7);
+ ($id,$x1,$y1,$radius,$filled,$stroked,$link)= split("[ \t]+", $def, 7);
($x1,$y1)= btIP_xy($x1,$y1,%params);
+ $params{xx} = $x1;
+ $params{yy} = $y1+$radius;
$filled //= 0;
$stroked //= 0;
$link = AnalyzePerlCommand(undef,$link);
- $svg .= btIP_itemCircle($id,$x1,$y1,$r1,$filled,$stroked,$link,%params);
+ $svg .= btIP_itemCircle($id,$x1,$y1,$radius,$filled,$stroked,$link,%params);
}
when("counter") {
@@ -884,12 +883,15 @@ sub btIP_evalLayout {
}
when("ellipse") {
- ($id,$x1,$y1,$r1,$r2,$filled,$stroked,$link)= split("[ \t]+", $def, 8);
- ($x1,$y1)= btIP_xy($x1,$y1,%params);
+ ($id,$x1,$y1,$rx,$ry,$filled,$stroked,$link)= split("[ \t]+", $def, 8);
+ ($x1,$y1) = btIP_xy($x1,$y1,%params);
+ ($rx,$ry) = btIP_xy($rx,$ry,%params);
+ $params{xx} = $x1;
+ $params{yy} = $y1+$ry;
$filled //= 0;
$stroked //= 0;
$link = AnalyzePerlCommand(undef,$link);
- $svg .= btIP_itemEllipse($id,$x1,$y1,$r1,$r2,$filled,$stroked,$link,%params);
+ $svg .= btIP_itemEllipse($id,$x1,$y1,$rx,$ry,$filled,$stroked,$link,%params);
}
when("font") {
@@ -907,25 +909,28 @@ sub btIP_evalLayout {
}
when("img") {
- ($id,$x,$y,$scale,$srctype,$arg,$link)= split("[ \t]+", $def,7);
- ($x,$y)= btIP_xy($x,$y,%params);
+ ($id,$x,$y,$scale,$srctype,$arg,$link) = split("[ \t]+", $def,7);
+ ($x,$y) = btIP_xy($x,$y,%params);
$params{xx} = $x;
$params{yy} = $y;
$arg = AnalyzePerlCommand(undef, $arg);
- $link = AnalyzePerlCommand(undef,$link);
- $svg .= btIP_itemImg($id,$x,$y,$scale,$srctype,$arg,$link,%params);
+ $link = AnalyzePerlCommand(undef,$link);
+ my($output,$width,$height)= btIP_itemImg($id,$x,$y,$scale,$srctype,$arg,$link,%params);
+ $svg .= $output;
+ $params{xx} = $x;
+ $params{yy} = $y+$height;
}
when("line") {
- ($id,$x1,$y1,$x2,$y2,$format)= split("[ \t]+", $def, 6);
- ($x1,$y1)= btIP_xy($x1,$y1,%params);
- ($x2,$y2)= btIP_xy($x2,$y2,%params);
- $format //= 1; # set format to 1 as default thickness for the line
- $svg .= btIP_itemLine($id,$x1,$y1,$x2,$y2, $format,%params);
+ ($id,$x1,$y1,$x2,$y2,$format) = split("[ \t]+", $def, 6);
+ ($x1,$y1) = btIP_xy($x1,$y1,%params);
+ ($x2,$y2) = btIP_xy($x2,$y2,%params);
+ $format //= 1;
+ $svg .= btIP_itemLine($id,$x1,$y1,$x2,$y2,$format,%params);
}
when("moveby") {
- my ($byx,$byy)= split('[ \t]+', $def, 2);
+ my ($byx,$byy) = split('[ \t]+', $def, 2);
my ($x,$y)= btIP_xy($byx,$byy,%params);
$params{xx} += $x;
$params{yy} += $y;
@@ -945,10 +950,11 @@ sub btIP_evalLayout {
when("plot") {
($id,$x,$y,$scale,$inline,$arg)= split("[ \t]+", $def,6);
($x,$y)= btIP_xy($x,$y,%params);
+ $arg = AnalyzePerlCommand(undef, $arg);
+ my($output,$width,$height)= btIP_itemPlot($id,$x,$y,$scale,$inline,$arg,%params);
+ $svg .= $output;
$params{xx} = $x;
- $params{yy} = $y;
- my $arg = AnalyzePerlCommand(undef, $arg);
- $svg .= btIP_itemPlot($id,$x,$y,$scale,$inline,$arg,%params);
+ $params{yy} = $y+$height;
}
when("pop") {
@@ -978,15 +984,16 @@ sub btIP_evalLayout {
}
when("rect") {
- ($id,$x1,$y1,$x2,$y2,$r1,$r2,$filled,$stroked,$link)= split("[ \t]+", $def, 10);
+ ($id,$x1,$y1,$x2,$y2,$rx,$ry,$filled,$stroked,$link)= split("[ \t]+", $def, 10);
($x1,$y1)= btIP_xy($x1,$y1,%params);
($x2,$y2)= btIP_xy($x2,$y2,%params);
- $params{xx} = $x;
- $params{yy} = $y;
+ ($rx,$ry) = btIP_xy($rx,$ry,%params);
+ $params{xx} = $x1;
+ $params{yy} = $y2;
$filled //= 0; # set 0 as default (not filled)
$stroked //= 0; # set 0 as default (not stroked)
$link = AnalyzePerlCommand(undef,$link);
- $svg .= btIP_itemRect($id,$x1,$y1,$x2,$y2,$r1,$r2,$filled,$stroked,$link,%params);
+ $svg .= btIP_itemRect($id,$x1,$y1,$x2,$y2,$rx,$ry,$filled,$stroked,$link,%params);
}
when("rgb"){
@@ -1053,39 +1060,39 @@ sub btIP_evalLayout {
}
when("trash") {
- ($id,$x,$y,$scale,$r1,$r2,$link)= split("[ \t]+", $def,7);
+ ($id,$x,$y,$scale,$fgcolor,$bgcolor,$link)= split("[ \t]+", $def,7);
($x,$y)= btIP_xy($x,$y,%params);
+ $fgcolor = AnalyzePerlCommand(undef,$fgcolor);
+ $bgcolor = AnalyzePerlCommand(undef,$bgcolor);
+ $link = AnalyzePerlCommand(undef,$link);
+ $svg .= btIP_itemTrash($id,$x,$y,$scale,$fgcolor,$bgcolor,$link,%params);
$params{xx} = $x;
$params{yy} = $y;
- $r1 = AnalyzePerlCommand(undef,$r1);
- $r2 = AnalyzePerlCommand(undef,$r2);
- $link = AnalyzePerlCommand(undef,$link);
- $svg .= btIP_itemTrash($id,$x,$y,$scale,$r1,$r2,$link,%params);
}
-
+
+ when("thalign"){
+ my $d = AnalyzePerlCommand(undef, $def);
+ if($d ~~ @valid_halign) {
+ $params{thalign}= $d;
+ } else {
+ Log3($name, 2, "InfoPanel: $name Illegal horizontal alignment $d");
+ }
+ }
+
+ when("tvalign"){
+ my $d = AnalyzePerlCommand(undef, $def);
+ if($d ~~ @valid_valign) {
+ $params{tvalign}= $d;
+ } else {
+ Log3($name, 2, "InfoPanel: $name Illegal vertical alignment $d");
+ }
+ }
+
default {
- if($cmd ~~ @cmd_halign) {
- my $d = AnalyzePerlCommand(undef, $def);
- if($d ~~ @valid_halign) {
- $params{ihalign}= $d unless($cmd eq "thalign");
- $params{thalign}= $d unless($cmd eq "ihalign");
- } else {
- Log3($name, 2, "InfoPanel: $name Illegal horizontal alignment $d");
- }
- } elsif($cmd ~~ @cmd_valign) {
- my $d = AnalyzePerlCommand(undef, $def);
- if( $d ~~ @valid_valign) {
- $params{ivalign}= $d unless($cmd eq "tvalign");
- $params{tvalign}= $d unless($cmd eq "ivalign");
- } else {
- Log3($name, 2, "InfoPanel: $name: Illegal vertical alignment $d");
- }
- } else {
- Log3($name, 2, "InfoPanel $name: Illegal command $cmd in layout definition.");
- }
- } # default
+ Log3($name, 2, "InfoPanel $name: Illegal command $cmd in layout definition.");
+ } # default
} # given
- } # eval
+ } # eval
# Debug "after command $line: x= " . $params{xx} . ", y= " . $params{yy};
@@ -1176,20 +1183,15 @@ sub btIP_returnHTML {
sub btIP_HTMLHead {
my ($title,$refresh) = @_;
-
-# my $doctype= '';
-# my $xmlns= 'xmlns="http://www.w3.org/1999/xhtml"';
- my $doctype= ' '."\n".
- ''."\n";
- my $xmlns= "";
+ my $doctype = ' '."\n".
+ ''."\n";
+ my $xmlns = "";
- my $r= (defined($refresh) && $refresh) ? "\n" : "";
- # css and js header output should be coded only in one place
- my $css= "";
- my $scripts= btIP_getScript();
- my $meta = "\n";
- my $code= "$doctype\n\n\n$title\n$meta$r$css$scripts\n";
+ my $refresh = (defined($refresh) && $refresh) ? "\n" : "";
+ my $scripts = btIP_getScript();
+ my $meta = "\n";
+ my $code = "$doctype\n\n\n$title\n$meta$refresh$scripts\n";
return $code;
}