--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uigraphics/AknIcon/group/IconLoads.pl Thu Dec 17 09:14:12 2009 +0200
@@ -0,0 +1,230 @@
+#
+# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+if ($#ARGV != 2)
+ {
+ die "usage: iconlist iconloads out-file\n";
+ }
+
+my %iconList = ReadIconList($ARGV[0]);
+my @iconLoads = ReadIconLoads($ARGV[1]);
+
+my @result;
+my $count = 0;
+open (OUTFILE, ">$ARGV[2]") || die "Couldn't open $ARGV[2] for output\n";
+for my $k (0 .. $#iconLoads)
+ {
+ my $name = $iconLoads[$k][0];
+ my $bitmapId = 16384+$iconLoads[$k][1];
+ my $maskId = 16384+$iconLoads[$k][2];
+
+ $result[$count][2] = $name;
+ $result[$count][3] = $bitmapId;
+ $result[$count][4] = $maskId;
+ $result[$count][5] = $iconLoads[$k][3];
+ $result[$count][6] = $iconLoads[$k][4];
+ $result[$count][7] = $iconLoads[$k][5];
+ $result[$count][8] = $iconLoads[$k][6];
+ $result[$count][9] = $iconLoads[$k][7];
+ if (exists $iconList{$name}{$bitmapId})
+ {
+ #print "$name,$bitmapId\n";
+ my $major = $iconList{$name}{$bitmapId}[1];
+ my $minor = $iconList{$name}{$bitmapId}[2];
+ $result[$count][0] = $major;
+ $result[$count][1] = $minor;
+ if ($name eq "series60skin")
+ {
+ #try to find out fallback file
+ my $mask = 0;
+ if ($result[$count][4] >= 0)
+ {
+ $mask = 1;
+ }
+ $result[$count][2] = "";
+ $result[$count][3] = -1;
+ $result[$count][4] = -1;
+ foreach my $f (keys %iconList)
+ {
+ if ($f eq "series60skin")
+ {
+ }
+ else
+ {
+ for my $id ( keys %{ $iconList{$f} } )
+ {
+ if (($iconList{$f}{$id}[1] eq $major) && ($iconList{$f}{$id}[2] eq $minor))
+ {
+ $result[$count][2] = $f;
+ $result[$count][3] = $id;
+ if ($mask)
+ {
+ $result[$count][4] = $id + 1;
+ }
+ }
+ }
+ }
+ }
+ }
+ $count += 1;
+ }
+ else
+ {
+ $result[$count][0] = -1;
+ $result[$count][1] = -1;
+ if ($name eq "series60skin")
+ {
+ print "skin ID not found from $name,$bitmapId, cannot store to precache\n";
+ }
+ else
+ {
+ print "skin ID not found from $name,$bitmapId\n";
+ $count += 1;
+ }
+ }
+ }
+
+for my $k (0 .. $#result)
+ {
+ if ($result[$count][8] == 0 && $result[$count][9] == 0) # rotation and color
+ {
+ if (length($result[$k][2]) > 0)
+ {
+ my $temp = $result[$k][2];
+ if ($temp eq "avkon")
+ {
+ $temp = "avkon2";
+ }
+ $result[$k][2] = "z:\\\\resource\\\\apps\\\\" . $temp . ".mif";
+ }
+ print OUTFILE "ICON2\n";
+ print OUTFILE " {\n";
+ print OUTFILE " skin_id_major = $result[$k][0];\n";
+ print OUTFILE " skin_id_minor = $result[$k][1];\n";
+ print OUTFILE " fallback_icon_file = \"$result[$k][2]\";\n";
+ print OUTFILE " fallback_icon_id = $result[$k][3];\n";
+ print OUTFILE " fallback_mask_id = $result[$k][4];\n";
+ print OUTFILE " icon_width = $result[$k][5];\n";
+ print OUTFILE " icon_height = $result[$k][6];\n";
+ print OUTFILE " icon_mode = $result[$k][7];\n";
+ print OUTFILE " },\n";
+ }
+ }
+
+close OUTFILE;
+exit(0);
+
+sub ReadIconList
+ {
+ my $file = shift;
+ my %iconList;
+ open (INFILE, "<$file") || die "Couldn't open $file for input\n";
+ my $line = <INFILE>; # ignore heading line
+ while ($line=<INFILE>)
+ {
+ chomp($line);
+ my @array = split(/,/,$line);
+ my $iconId = $array[0];
+ my $name = lc($array[1]);
+ if ($name =~ m/\Aseries60skin/)
+ {
+ $name = "series60skin";
+ }
+ else
+ {
+ if ($name =~ m/(\S+)\.(\S+)/) #remove extension
+ {
+ $name =$1;
+ }
+ }
+ $iconList{$name}{$iconId}[0] = $array[2]; # filename
+ $iconList{$name}{$iconId}[1] = $array[3]; # major id
+ $iconList{$name}{$iconId}[2] = $array[4]; # minor id
+ #print "add,$name,$iconId\n";
+ }
+ close INFILE;
+ return %iconList;
+ }
+
+sub ReadIconLoads
+ {
+ my $file = shift;
+ my @iconLoads;
+ open (INFILE, "<$file") || die "Couldn't open $file for input\n";
+ my $count = 0;
+ while ($line=<INFILE>)
+ {
+ $line =~ s/'//g;
+ if ($line =~ m/AKNICON load,(.*)/)
+ {
+ my @array = split(/,/,$1);
+ my $name = lc($array[0]);
+ ($name,my $path) = SplitPath($name);
+ if ($name =~ m/(\S+)\.(\S+)/) #remove extension
+ {
+ $name =$1;
+ }
+ if ($name eq "avkon2")
+ {
+ $name = "avkon";
+ }
+ $iconLoads[$count][0] = $name;
+ $iconLoads[$count][1] = $array[1];
+ $iconLoads[$count][2] = $array[2];
+ $iconLoads[$count][3] = $array[3]; #width
+ $iconLoads[$count][4] = $array[4]; #height
+ $iconLoads[$count][5] = $array[5];
+ $iconLoads[$count][6] = $array[6];
+ $iconLoads[$count][7] = $array[7];
+ $iconLoads[$count][8] = $array[8]; # DisableCompression
+
+ if ($iconLoads[$count][6] != 0)
+ {
+ print "cannot precache because rotation is not zero, rotation = $iconLoads[$count][6]\n";
+ }
+ elsif ($iconLoads[$count][7] != 0)
+ {
+ print "cannot precache because color is not zero, color = $iconLoads[$count][7]\n";
+ }
+ elsif ($iconLoads[$count][8])
+ {
+ print "cannot precache because compression is disabled, compression = $iconLoads[$count][8]\n";
+ }
+ elsif ($iconLoads[$count][3] == 0 || $iconLoads[$count][4] == 0)
+ {
+ print "cannot precache because icon size is zero, width = $iconLoads[$count][3], height = $iconLoads[$count][4]\n";
+ }
+ else
+ {
+ $count++;
+ }
+ }
+ }
+ close INFILE;
+ return @iconLoads;
+ }
+
+# take a full path name as input, return name and path
+sub SplitPath {
+ if ($_[0] =~ m/\\((\w|[.]|[-])+)(\z)/)
+ {
+ return $1,$`;
+ }
+ else
+ {
+ return $_[0];
+ }
+ }
\ No newline at end of file