Fixing SVG image stuff (icon/etc)

git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@3276 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2013-06-12 10:29:22 +00:00
parent f6c7711eb0
commit b0e3486e96
6 changed files with 36 additions and 18 deletions

View File

@ -975,7 +975,8 @@ FW_roomOverview($)
my $icoName = "ico$l1"; my $icoName = "ico$l1";
map { my ($n,$v) = split(":",$_); $icoName=$v if($l1 =~ m/$n/); } map { my ($n,$v) = split(":",$_); $icoName=$v if($l1 =~ m/$n/); }
split(" ", AttrVal($FW_wname, "roomIcons", "")); split(" ", AttrVal($FW_wname, "roomIcons", ""));
my $icon = FW_iconName($icoName) ? FW_makeImage($icoName)." " : ""; my $icon = FW_iconName($icoName) ?
FW_makeImage($icoName,$icoName,"icon")." " : "";
if($l2 =~ m/.html$/ || $l2 =~ m/^http/) { if($l2 =~ m/.html$/ || $l2 =~ m/^http/) {
FW_pO "$td<a href=\"$l2\">$icon$l1</a></td>"; FW_pO "$td<a href=\"$l2\">$icon$l1</a></td>";
@ -1063,7 +1064,7 @@ FW_showRoom()
FW_pF "\n<tr class=\"%s\">", ($row&1)?"odd":"even"; FW_pF "\n<tr class=\"%s\">", ($row&1)?"odd":"even";
my $devName = AttrVal($d, "alias", $d); my $devName = AttrVal($d, "alias", $d);
my $icon = AttrVal($d, "icon", ""); my $icon = AttrVal($d, "icon", "");
$icon = FW_makeImage($icon) . "&nbsp;" if($icon); $icon = FW_makeImage($icon,$icon,"icon") . "&nbsp;" if($icon);
if($FW_hiddenroom{detail}) { if($FW_hiddenroom{detail}) {
FW_pO "<td><div class=\"col1\">$icon$devName</div></td>"; FW_pO "<td><div class=\"col1\">$icon$devName</div></td>";
@ -1357,6 +1358,11 @@ FW_substcfg($$$$$$)
my $oll = $attr{global}{verbose}; my $oll = $attr{global}{verbose};
$attr{global}{verbose} = 0; # Else the filenames will be Log'ged $attr{global}{verbose} = 0; # Else the filenames will be Log'ged
if($file eq "CURRENT") {
my @a = split(":", $defs{$wl}{LINK});
$file = $defs{$a[0]}{currentlogfile};
$file =~ s+.*/++;
}
my $fileesc = $file; my $fileesc = $file;
$fileesc =~ s/\\/\\\\/g; # For Windows, by MarkusRR $fileesc =~ s/\\/\\\\/g; # For Windows, by MarkusRR
my $title = AttrVal($wl, "title", "\"$fileesc\""); my $title = AttrVal($wl, "title", "\"$fileesc\"");
@ -1917,15 +1923,15 @@ FW_style($$)
$ret = ""; $ret = "";
} elsif($a[1] eq "iconFor") { } elsif($a[1] eq "iconFor") {
FW_iconTable("iconFor", "^ico", "style setIF $a[2] %s", undef); FW_iconTable("iconFor", "icon", "style setIF $a[2] %s", undef);
} elsif($a[1] eq "setIF") { } elsif($a[1] eq "setIF") {
FW_fC("attr $a[2] icon $a[3]"); FW_fC("attr $a[2] icon $a[3]");
FW_doDetail($a[2]); FW_doDetail($a[2]);
} elsif($a[1] eq "showDSI") { } elsif($a[1] eq "showDSI") {
FW_iconTable("devStateIcon", '^((?!(weather|_big|fhemicon|darklogo)).)*$', FW_iconTable("devStateIcon", "",
"style addDSI $a[2] %s", "Enter value/regexp for STATE"); "style addDSI $a[2] %s", "Enter value/regexp for STATE");
} elsif($a[1] eq "addDSI") { } elsif($a[1] eq "addDSI") {
my $dsi = AttrVal($a[2], "devStateIcon", ""); my $dsi = AttrVal($a[2], "devStateIcon", "");
@ -1949,12 +1955,15 @@ FW_style($$)
sub sub
FW_iconTable($$$$) FW_iconTable($$$$)
{ {
my ($name, $re, $cmdFmt, $textfield) = @_; my ($name, $class, $cmdFmt, $textfield) = @_;
my %icoList = (); my %icoList = ();
foreach my $style (@FW_iconDirs) { foreach my $style (@FW_iconDirs) {
foreach my $imgName (sort grep {/^$re/} keys %{$FW_icons{$style}}) { foreach my $imgName (sort keys %{$FW_icons{$style}}) {
$imgName =~ s/\.[^.]*$//; # Cut extension $imgName =~ s/\.[^.]*$//; # Cut extension
next if(!$FW_icons{$style}{$imgName}); # Dont cut it twice: FS20.on.png next if(!$FW_icons{$style}{$imgName}); # Dont cut it twice: FS20.on.png
next if($FW_icons{$style}{$imgName} !~ m/$imgName/); # Skip alias
next if($imgName=~m+^(weather/|shutter.*big|fhemicon|favicon|darklogo)+);
$icoList{$imgName} = 1; $icoList{$imgName} = 1;
} }
} }
@ -1965,8 +1974,8 @@ FW_iconTable($$$$)
FW_pO "$textfield:&nbsp;".FW_textfieldv("data",20,"iconTable",".*")."<br>"; FW_pO "$textfield:&nbsp;".FW_textfieldv("data",20,"iconTable",".*")."<br>";
} }
foreach my $i (sort keys %icoList) { foreach my $i (sort keys %icoList) {
FW_pF "<button type='submit' class='dist' name='cmd' value='$cmdFmt'>%s". FW_pF "<button title='%s' type='submit' class='dist' name='cmd' ".
"</button>", $i, FW_makeImage($i); "value='$cmdFmt'>%s</button>", $i, $i, FW_makeImage($i,$i,$class);
} }
FW_pO "</form>"; FW_pO "</form>";
FW_pO "</div>"; FW_pO "</div>";
@ -2032,8 +2041,11 @@ FW_pHPlain(@)
sub sub
FW_makeImage(@) FW_makeImage(@)
{ {
my ($name, $txt)= @_; my ($name, $txt, $class)= @_;
$txt = $name if(!defined($txt)); $txt = $name if(!defined($txt));
$class = "" if(!$class);
my $p = FW_iconPath($name); my $p = FW_iconPath($name);
return $name if(!$p); return $name if(!$p);
if($p =~ m/\.svg$/i) { if($p =~ m/\.svg$/i) {
@ -2043,21 +2055,23 @@ FW_makeImage(@)
close(FH); close(FH);
$data =~ s/[\r\n]/ /g; $data =~ s/[\r\n]/ /g;
$data =~ s/ *$//g; $data =~ s/ *$//g;
$data =~ s/<svg/<svg class="$class $name"/;
$name =~ m/(@.*)$/; $name =~ m/(@.*)$/;
my $col = $1 if($1); my $col = $1 if($1);
if($col) { if($col) {
$col =~ s/@//; $col =~ s/@//;
$col = "#$col" if($col =~ m/^\d+$/); $col = "#$col" if($col =~ m/^\d+$/);
$data =~ s/fill="#000000"/class="$name" fill="$col"/ $data =~ s/fill="#000000"/fill="$col"/;
} else { } else {
$data =~ s/fill="#000000"/class="$name"/; # Default by style.css $data =~ s/fill="#000000"//;
} }
return $data; return $data;
} else { } else {
return $name; return $name;
} }
} else { } else {
return "<img src=\"$FW_ME/images/$p\" alt=\"$txt\" title=\"$txt\">"; $class = "class='$class'" if($class);
return "<img $class src=\"$FW_ME/images/$p\" alt=\"$txt\" title=\"$txt\">";
} }
} }

View File

@ -1,3 +1,5 @@
FS20.off light_light_dim_00.svg
FS20.on light_light_dim_100.svg
off light_light_dim_00.svg off light_light_dim_00.svg
on light_light_dim_100.svg on light_light_dim_100.svg
@ -9,6 +11,8 @@ Prev control_centr_arrow_left.svg
Zoom-out control_zoom_out.svg Zoom-out control_zoom_out.svg
Zoom-in control_zoom_in.svg Zoom-in control_zoom_in.svg
back control_centr_arrow_left.svg
dim06% light_light_dim_00.svg dim06% light_light_dim_00.svg
dim12% light_light_dim_10.svg dim12% light_light_dim_10.svg
dim18% light_light_dim_10.svg dim18% light_light_dim_10.svg

View File

@ -61,5 +61,5 @@ select { margin-left:5px; margin-right:5px; }
border:2px solid; color:white; text-align:center; } border:2px solid; color:white; text-align:center; }
.downText { margin-top:2px; } .downText { margin-top:2px; }
svg { max-height:32px; max-width:32px; fill:#fff; } svg { height:32px; width:32px; fill:#fff; }
g.on { fill:red; } g.on { fill:red; }

View File

@ -70,5 +70,5 @@ button.dist { margin:5px; background:transparent; border:0px; cursor:pointer; }
-webkit-user-select:none; -moz-user-select:none; -user-select:none; -webkit-user-select:none; -moz-user-select:none; -user-select:none;
border:3px solid; color:#278727; text-align:center; } border:3px solid; color:#278727; text-align:center; }
svg { max-height:32px; max-width:32px; fill:#278727; } svg { height:32px; width:32px; fill:#278727; }
g.on { fill:red; } g.on { fill:red; }

View File

@ -56,5 +56,5 @@ select { margin-left:5px; margin-right:5px; }
pre { white-space: pre-wrap; } pre { white-space: pre-wrap; }
svg { max-height:32px; max-width:32px; fill:#278727; } svg { height:32px; width:32px; fill:#278727; }
g.on { fill:red; } svg.on { fill:orange; }

View File

@ -45,5 +45,5 @@ select { margin-left:5px; margin-right:5px; }
border:3px solid; color:#278727; text-align:center; } border:3px solid; color:#278727; text-align:center; }
.downText { margin-top:2px; } .downText { margin-top:2px; }
svg { max-height:32px; max-width:32px; fill:#278727; } svg { height:32px; width:32px; fill:#278727; }
g.on { fill:red; } g.on { fill:red; }