--- a/idlehomescreen/data/common/view_200286ed/conf/view200286ed.confml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/common/view_200286ed/conf/view200286ed.confml Wed Sep 15 12:00:00 2010 +0300
@@ -1,6 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration xmlns="http://www.s60.com/xml/confml/2" name="Banko Homescreen" version="1">
<feature ref="BlankoHomescreenPlugins" name="Blanko Homescreen Widgets">
+ <setting ref="SupportQhd" name="Qhd Support" type="boolean">
+ <desc>The Qhd touch is a supported display type of the xuikon homescreen</desc>
+ </setting>
+ <setting ref="SupportVga" name="Vga Support" type="boolean">
+ <desc>The Vga touch is a supported display type of the xuikon homescreen</desc>
+ </setting>
<setting ref="Plugins" name="Widgets" type="sequence">
<desc>Widgets on Blanko Homescreen</desc>
<setting ref="Uid" name="Widget" type="string">
@@ -84,13 +90,8 @@
</setting>
</feature>
<data>
- <!-- <BlankoHomescreenPlugins>
- <Plugins extensionPolicy="replace"><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
- <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
- <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
- <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
- <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
- <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
- </BlankoHomescreenPlugins> -->
+ <SupportQhd>true</SupportQhd>
+ <SupportVga>true</SupportVga>
+
</data>
</configuration>
\ No newline at end of file
Binary file idlehomescreen/data/common/view_200286ed/conf/view200286edmanifest.confml has changed
Binary file idlehomescreen/data/common/view_200286ed/conf/view200286edxuikon.confml has changed
--- a/idlehomescreen/data/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/group/bld.inf Wed Sep 15 12:00:00 2010 +0300
@@ -17,7 +17,7 @@
#include "../common/group/bld.inf"
-// #include "../vga_tch/group/bld.inf" // Buzzidle
+#include "../vga_tch/group/bld.inf" // Buzzidle
#include "../qhd_tch/group/bld.inf" // Flashidle
PRJ_PLATFORMS
Binary file idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.confml has changed
--- a/idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.gcfml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.gcfml Wed Sep 15 12:00:00 2010 +0300
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1" condition="${HSViews.SupportQhd}">
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: ltr;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
@@ -23,7 +25,7 @@
margin-bottom: 4px;
margin-right: 5px;
margin-left: 5px;
-
+
_s60-longtap: true;
nav-index: appearance;
@@ -48,7 +50,7 @@
{
_s60-longtap: true;
_s60-aspect-ratio: preserve;
-}
+}
softkey#msk_ltr
{
@@ -59,3 +61,4 @@
{
display: none;
}
+
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/37/templateview.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/37/templateview.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: rtl;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
@@ -23,7 +25,7 @@
margin-bottom: 4px;
margin-right: 5px;
margin-left: 5px;
-
+
_s60-longtap: true;
nav-index: appearance;
@@ -48,7 +50,7 @@
{
_s60-longtap: true;
_s60-aspect-ratio: preserve;
-}
+}
softkey#msk_ltr
{
@@ -59,3 +61,4 @@
{
display: block;
}
+
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/50/templateview.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/50/templateview.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: rtl;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
@@ -23,7 +25,7 @@
margin-bottom: 4px;
margin-right: 5px;
margin-left: 5px;
-
+
_s60-longtap: true;
nav-index: appearance;
@@ -48,7 +50,7 @@
{
_s60-longtap: true;
_s60-aspect-ratio: preserve;
-}
+}
softkey#msk_ltr
{
@@ -59,3 +61,4 @@
{
display: block;
}
+
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/57/templateview.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/57/templateview.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: rtl;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
@@ -23,7 +25,7 @@
margin-bottom: 4px;
margin-right: 5px;
margin-left: 5px;
-
+
_s60-longtap: true;
nav-index: appearance;
@@ -48,7 +50,7 @@
{
_s60-longtap: true;
_s60-aspect-ratio: preserve;
-}
+}
softkey#msk_ltr
{
@@ -59,3 +61,4 @@
{
display: block;
}
+
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/94/templateview.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/94/templateview.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: rtl;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
@@ -23,7 +25,7 @@
margin-bottom: 4px;
margin-right: 5px;
margin-left: 5px;
-
+
_s60-longtap: true;
nav-index: appearance;
@@ -48,7 +50,7 @@
{
_s60-longtap: true;
_s60-aspect-ratio: preserve;
-}
+}
softkey#msk_ltr
{
@@ -59,3 +61,4 @@
{
display: block;
}
+
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.confml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.confml Wed Sep 15 12:00:00 2010 +0300
@@ -1,6 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration name="Homescreen 1" version="1" xmlns="http://www.s60.com/xml/confml/2" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<feature name="Homescreen 1 widgets" ref="HomescreenPlugins_1">
+ <setting ref="SupportQhd" name="Qhd Support" type="boolean">
+ <desc>The Qhd touch is a supported display type of the xuikon homescreen</desc>
+ </setting>
+ <setting ref="SupportVga" name="Vga Support" type="boolean">
+ <desc>The Vga touch is a supported display type of the xuikon homescreen</desc>
+ </setting>
<setting name="Max Widgets" ref="MaxWidgets" type="string">
<desc>Maximum widget amount in Homescreen 1 page. Customizable</desc>
</setting>
@@ -26,7 +32,6 @@
<desc>Widgets in the Homescreen 1</desc>
<setting name="Widget" ref="Uid" type="string">
<desc>Widget name</desc>
- <!--<option map="DFSFeatures/HomescreenWidgets" />-->
<option name="Empty" value="0x2001f47f" />
<option name="PhoneSetup" value="0x20021195" />
<option name="ContactsBar" value="0x20022eba" />
@@ -248,6 +253,8 @@
</feature>
<data>
<HomescreenPlugins_1>
+ <SupportQhd>true</SupportQhd>
+ <SupportVga>true</SupportVga>
<MaxWidgets>6</MaxWidgets>
<UseEmptyWidgets>true</UseEmptyWidgets>
<ItemIdEmptyWidgets>hs_qhd_tch_view</ItemIdEmptyWidgets>
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.gcfml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.gcfml Wed Sep 15 12:00:00 2010 +0300
@@ -1,10 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1" condition="${HomescreenPlugins_1.SupportQhd}">
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
<phase name='post'/> <!-- post phase for making sure that data for all homescreen widgets is available in sequence -->
-
<file xmlns="http://www.s60.com/xml/genconfml/1" name="viewconfiguration.xml" target="\private\200159c0\install\view_2001f48b\hsps\00\">
<setting ref="HomescreenPlugins_1/MaxWidgets"/>
<setting ref="HomescreenPlugins_1/UseEmptyWidgets"/>
Binary file idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bmanifest.confml has changed
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bmanifest.gcfml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bmanifest.gcfml Wed Sep 15 12:00:00 2010 +0300
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1" condition="${Homescreen1manifest.SupportQhd}">
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
Binary file idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bxuikon.confml has changed
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bxuikon.gcfml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bxuikon.gcfml Wed Sep 15 12:00:00 2010 +0300
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1" condition="${Homescreen1XuikonFolder.SupportQhd}">
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: ltr;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/37/View.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/37/View.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: rtl;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/50/View.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/50/View.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: rtl;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/57/View.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/57/View.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: rtl;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/94/View.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/94/View.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: rtl;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
--- a/idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0.confml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0.confml Wed Sep 15 12:00:00 2010 +0300
@@ -1,6 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration name="Homescreen 4" version="1" xmlns="http://www.s60.com/xml/confml/2" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<feature name="Homescreen 4 widgets" ref="HomescreenPlugins_4">
+ <setting ref="SupportQhd" name="Qhd Support" type="boolean">
+ <desc>The Qhd touch is a supported display type of the xuikon homescreen</desc>
+ </setting>
+ <setting ref="SupportVga" name="Vga Support" type="boolean">
+ <desc>The Vga touch is a supported display type of the xuikon homescreen</desc>
+ </setting>
<setting name="Max Widgets" ref="MaxWidgets" type="string">
<desc>Maximum widget amount in Homescreen 4 page. Customizable</desc>
</setting>
@@ -247,6 +253,8 @@
</feature>
<data>
<HomescreenPlugins_4>
+ <SupportQhd>true</SupportQhd>
+ <SupportVga>true</SupportVga>
<MaxWidgets>6</MaxWidgets>
<UseEmptyWidgets>true</UseEmptyWidgets>
<ItemIdEmptyWidgets>hs_qhd_tch_view</ItemIdEmptyWidgets>
--- a/idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0.gcfml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0.gcfml Wed Sep 15 12:00:00 2010 +0300
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1" condition="${HomescreenPlugins_4.SupportQhd}">
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
--- a/idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0manifest.confml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0manifest.confml Wed Sep 15 12:00:00 2010 +0300
@@ -1,6 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
-<configuration xmlns="http://www.s60.com/xml/confml/1" name="Home screen 4 manifest" version="1">
+<configuration xmlns="http://www.s60.com/xml/confml/2" name="Home screen 4 manifest" version="1">
<feature ref="Homescreen4manifest" name="Homescreen4 manifest">
+ <setting ref="SupportQhd" name="Qhd Support" type="boolean">
+ <desc>The Qhd touch is a supported display type of the xuikon homescreen</desc>
+ </setting>
+ <setting ref="SupportVga" name="Vga Support" type="boolean">
+ <desc>The Vga touch is a supported display type of the xuikon homescreen</desc>
+ </setting>
<setting ref="PackageVersion" name="Configuration package type version" type="selection">
<option name="NotDefined" value="0"/>
<option name="2.0" value="2.0"/>
@@ -28,6 +34,8 @@
</feature>
<data>
<Homescreen4manifest>
+ <SupportQhd>true</SupportQhd>
+ <SupportVga>true</SupportVga>
<PackageVersion>2.0</PackageVersion>
<DeviceFamily>qhd_tch</DeviceFamily>
<ConfigurationType>view</ConfigurationType>
--- a/idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0manifest.gcfml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0manifest.gcfml Wed Sep 15 12:00:00 2010 +0300
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1" condition="${Homescreen4manifest.SupportQhd}">
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
--- a/idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0xuikon.confml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0xuikon.confml Wed Sep 15 12:00:00 2010 +0300
@@ -1,9 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
<configuration name="Home screen 4 Xuikon Folder generation " version="1" xmlns="http://www.s60.com/xml/confml/2" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<feature name="Homescreen4 Xuikon Folder generation" ref="Homescreen4XuikonFolder">
+ <setting ref="SupportQhd" name="Qhd Support" type="boolean">
+ <desc>The Qhd touch is a supported display type of the xuikon homescreen</desc>
+ </setting>
+ <setting ref="SupportVga" name="Vga Support" type="boolean">
+ <desc>The Vga touch is a supported display type of the xuikon homescreen</desc>
+ </setting>
<setting name="hard coded version" readOnly="true" ref="FolderCFG" type="string" />
</feature>
-<data>
+ <data>
<Homescreen4XuikonFolder>
+ <SupportQhd>true</SupportQhd>
+ <SupportVga>true</SupportVga>
<FolderCFG>foo</FolderCFG>
</Homescreen4XuikonFolder>
</data>
--- a/idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0xuikon.gcfml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_20022fe0/conf/view20022fe0xuikon.gcfml Wed Sep 15 12:00:00 2010 +0300
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1" condition="${Homescreen4XuikonFolder.SupportQhd}">
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
--- a/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/00/View.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/00/View.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: ltr;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
@@ -29,11 +31,6 @@
nav-index: appearance;
}
-plugin:edit
-{
- background-color:"SKIN(270501603 8582)";
-}
-
trigger#hs_popup_open_hold:edit
{
display: none;
--- a/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/37/View.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/37/View.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: rtl;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
@@ -23,13 +25,10 @@
margin-bottom: 4px;
margin-right: 5px;
margin-left: 5px;
+
_s60-longtap: true;
- nav-index: appearance;
-}
-plugin:edit
-{
- background-color:"SKIN(270501603 8582)";
+ nav-index: appearance;
}
trigger#hs_popup_open_hold:edit
--- a/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/50/View.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/50/View.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: rtl;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
@@ -23,13 +25,10 @@
margin-bottom: 4px;
margin-right: 5px;
margin-left: 5px;
+
_s60-longtap: true;
- nav-index: appearance;
-}
-plugin:edit
-{
- background-color:"SKIN(270501603 8582)";
+ nav-index: appearance;
}
trigger#hs_popup_open_hold:edit
--- a/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/57/View.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/57/View.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: rtl;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
@@ -23,13 +25,10 @@
margin-bottom: 4px;
margin-right: 5px;
margin-left: 5px;
+
_s60-longtap: true;
- nav-index: appearance;
-}
-plugin:edit
-{
- background-color:"SKIN(270501603 8582)";
+ nav-index: appearance;
}
trigger#hs_popup_open_hold:edit
--- a/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/94/View.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/94/View.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: rtl;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
@@ -23,13 +25,10 @@
margin-bottom: 4px;
margin-right: 5px;
margin-left: 5px;
+
_s60-longtap: true;
- nav-index: appearance;
-}
-plugin:edit
-{
- background-color:"SKIN(270501603 8582)";
+ nav-index: appearance;
}
trigger#hs_popup_open_hold:edit
--- a/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.confml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.confml Wed Sep 15 12:00:00 2010 +0300
@@ -1,6 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration name="Homescreen 2" version="1" xmlns="http://www.s60.com/xml/confml/2" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<feature name="Homescreen 2 widgets" ref="HomescreenPlugins_2">
+ <setting ref="SupportQhd" name="Qhd Support" type="boolean">
+ <desc>The Qhd touch is a supported display type of the xuikon homescreen</desc>
+ </setting>
+ <setting ref="SupportVga" name="Vga Support" type="boolean">
+ <desc>The Vga touch is a supported display type of the xuikon homescreen</desc>
+ </setting>
<setting name="Max Widgets" ref="MaxWidgets" type="string">
<desc>Maximum widget amount in Homescreen 2 page. Customizable</desc>
</setting>
@@ -26,7 +32,6 @@
<desc>Widgets in the Homescreen 2</desc>
<setting name="Widget" ref="Uid" type="string">
<desc>Widget name</desc>
- <!--<option map="DFSFeatures/HomescreenWidgets" />-->
<option name="Empty" value="0x2001f47f" />
<option name="PhoneSetup" value="0x20021195" />
<option name="ContactsBar" value="0x20022eba" />
@@ -248,6 +253,8 @@
</feature>
<data>
<HomescreenPlugins_2>
+ <SupportQhd>true</SupportQhd>
+ <SupportVga>true</SupportVga>
<MaxWidgets>6</MaxWidgets>
<UseEmptyWidgets>true</UseEmptyWidgets>
<ItemIdEmptyWidgets>hs_qhd_tch_view</ItemIdEmptyWidgets>
--- a/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.gcfml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.gcfml Wed Sep 15 12:00:00 2010 +0300
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1" condition="${HomescreenPlugins_2.SupportQhd}">
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
Binary file idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4manifest.confml has changed
--- a/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4manifest.gcfml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4manifest.gcfml Wed Sep 15 12:00:00 2010 +0300
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1" condition="${Homescreen2manifest.SupportQhd}">
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
Binary file idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4xuikon.confml has changed
--- a/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4xuikon.gcfml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4xuikon.gcfml Wed Sep 15 12:00:00 2010 +0300
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1" condition="${Homescreen2XuikonFolder.SupportQhd}">
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
--- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: ltr;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
@@ -29,11 +31,6 @@
nav-index: appearance;
}
-plugin:edit
-{
- background-color:"SKIN(270501603 8582)";
-}
-
trigger#hs_popup_open_hold:edit
{
display: none;
--- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/37/View.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/37/View.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: rtl;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
@@ -23,13 +25,10 @@
margin-bottom: 4px;
margin-right: 5px;
margin-left: 5px;
+
_s60-longtap: true;
- nav-index: appearance;
-}
-plugin:edit
-{
- background-color:"SKIN(270501603 8582)";
+ nav-index: appearance;
}
trigger#hs_popup_open_hold:edit
--- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/50/View.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/50/View.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: rtl;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
@@ -23,13 +25,10 @@
margin-bottom: 4px;
margin-right: 5px;
margin-left: 5px;
+
_s60-longtap: true;
- nav-index: appearance;
-}
-plugin:edit
-{
- background-color:"SKIN(270501603 8582)";
+ nav-index: appearance;
}
trigger#hs_popup_open_hold:edit
--- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/57/View.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/57/View.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: rtl;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
@@ -23,13 +25,10 @@
margin-bottom: 4px;
margin-right: 5px;
margin-left: 5px;
+
_s60-longtap: true;
- nav-index: appearance;
-}
-plugin:edit
-{
- background-color:"SKIN(270501603 8582)";
+ nav-index: appearance;
}
trigger#hs_popup_open_hold:edit
--- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/94/View.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/94/View.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: rtl;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
@@ -23,13 +25,10 @@
margin-bottom: 4px;
margin-right: 5px;
margin-left: 5px;
+
_s60-longtap: true;
- nav-index: appearance;
-}
-plugin:edit
-{
- background-color:"SKIN(270501603 8582)";
+ nav-index: appearance;
}
trigger#hs_popup_open_hold:edit
--- a/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.confml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.confml Wed Sep 15 12:00:00 2010 +0300
@@ -1,6 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration name="Homescreen 3" version="1" xmlns="http://www.s60.com/xml/confml/2" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<feature name="Homescreen 3 widgets" ref="HomescreenPlugins_3">
+ <setting ref="SupportQhd" name="Qhd Support" type="boolean">
+ <desc>The Qhd touch is a supported display type of the xuikon homescreen</desc>
+ </setting>
+ <setting ref="SupportVga" name="Vga Support" type="boolean">
+ <desc>The Vga touch is a supported display type of the xuikon homescreen</desc>
+ </setting>
<setting name="Max Widgets" ref="MaxWidgets" type="string">
<desc>Maximum widget amount in Homescreen 3 page. Customizable</desc>
</setting>
@@ -26,7 +32,6 @@
<desc>Widgets in the Homescreen 3</desc>
<setting name="Widget" ref="Uid" type="string">
<desc>Widget name</desc>
- <!--<option map="DFSFeatures/HomescreenWidgets" />-->
<option name="Empty" value="0x2001f47f" />
<option name="PhoneSetup" value="0x20021195" />
<option name="ContactsBar" value="0x20022eba" />
@@ -248,6 +253,8 @@
</feature>
<data>
<HomescreenPlugins_3>
+ <SupportQhd>true</SupportQhd>
+ <SupportVga>true</SupportVga>
<MaxWidgets>6</MaxWidgets>
<UseEmptyWidgets>true</UseEmptyWidgets>
<ItemIdEmptyWidgets>hs_qhd_tch_view</ItemIdEmptyWidgets>
--- a/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.gcfml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.gcfml Wed Sep 15 12:00:00 2010 +0300
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1" condition="${HomescreenPlugins_3.SupportQhd}">
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
Binary file idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5manifest.confml has changed
--- a/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5manifest.gcfml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5manifest.gcfml Wed Sep 15 12:00:00 2010 +0300
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1" condition="${Homescreen3manifest.SupportQhd}">
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
Binary file idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5xuikon.confml has changed
--- a/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5xuikon.gcfml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5xuikon.gcfml Wed Sep 15 12:00:00 2010 +0300
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1" condition="${Homescreen3XuikonFolder.SupportQhd}">
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
--- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: ltr;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
@@ -29,11 +31,6 @@
nav-index: appearance;
}
-plugin:edit
-{
- background-color:"SKIN(270501603 8582)";
-}
-
trigger#hs_popup_open_hold:edit
{
display: none;
--- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/37/View.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/37/View.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: rtl;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
@@ -23,13 +25,10 @@
margin-bottom: 4px;
margin-right: 5px;
margin-left: 5px;
+
_s60-longtap: true;
- nav-index: appearance;
-}
-plugin:edit
-{
- background-color:"SKIN(270501603 8582)";
+ nav-index: appearance;
}
trigger#hs_popup_open_hold:edit
--- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/50/View.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/50/View.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: rtl;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
@@ -23,13 +25,10 @@
margin-bottom: 4px;
margin-right: 5px;
margin-left: 5px;
+
_s60-longtap: true;
- nav-index: appearance;
-}
-plugin:edit
-{
- background-color:"SKIN(270501603 8582)";
+ nav-index: appearance;
}
trigger#hs_popup_open_hold:edit
--- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/57/View.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/57/View.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: rtl;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
@@ -23,13 +25,10 @@
margin-bottom: 4px;
margin-right: 5px;
margin-left: 5px;
+
_s60-longtap: true;
- nav-index: appearance;
-}
-plugin:edit
-{
- background-color:"SKIN(270501603 8582)";
+ nav-index: appearance;
}
trigger#hs_popup_open_hold:edit
--- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/94/View.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/94/View.css Wed Sep 15 12:00:00 2010 +0300
@@ -13,6 +13,8 @@
direction: rtl;
block-progression: rl;
padding-top: 3px;
+ padding-left: 17px;
+ padding-right: 17px;
}
plugin.plugins
@@ -23,13 +25,10 @@
margin-bottom: 4px;
margin-right: 5px;
margin-left: 5px;
+
_s60-longtap: true;
- nav-index: appearance;
-}
-plugin:edit
-{
- background-color:"SKIN(270501603 8582)";
+ nav-index: appearance;
}
trigger#hs_popup_open_hold:edit
--- a/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.css Wed Sep 15 12:00:00 2010 +0300
@@ -4,7 +4,6 @@
height: 115px;
_s60-font-size: 48px;
color: "SKIN(268458534 13056 74)";
- background-color: "SKIN(268458534 9916)";
nav-index: appearance;
}
@@ -16,6 +15,7 @@
width: 102px;
height: 59px;
text-align: right;
+ font-family: EAknLogicalFontPrimaryFont;
}
ampm
@@ -27,6 +27,7 @@
left: 124px;
text-align: left;
_s60-font-size: 28px;
+ font-family: EAknLogicalFontSecondaryFont;
}
face24
@@ -35,6 +36,7 @@
top: 14px;
width: auto;
height: 59px;
+ font-family: EAknLogicalFontPrimaryFont;
}
date
@@ -44,14 +46,26 @@
width: auto;
height: 28px;
_s60-font-size: 26px;
+ font-family: EAknLogicalFontSecondaryFont;
+}
+
+day
+{
+ position: absolute;
+ top: 44px;
+ left: 117px;
+ width: 32px;
+ height: 28px;
+ _s60-font-size: 28px;
+ font-family: EAknLogicalFontSecondaryFont;
}
face
{
- width: auto;
- height: auto;
-
- margin-left: 6px;
- margin-right: 6px;
- margin-bottom: 5px;
+ margin-left: 4px;
+ margin-right: 4px;
+ margin-top: 4px;
+ margin-bottom: 4px;
+
+ face-adjustment-value: 20;
}
--- a/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.xml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.xml Wed Sep 15 12:00:00 2010 +0300
@@ -10,6 +10,7 @@
</digital>
<analog>
<face/>
+ <day/>
</analog>
<actions>
<action>
--- a/idlehomescreen/data/vga_tch/desktop_20018eee/hsps/00/manifest.dat Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/desktop_20018eee/hsps/00/manifest.dat Wed Sep 15 12:00:00 2010 +0300
@@ -23,7 +23,7 @@
<filexml>widgetconfiguration.xml</filexml>
<!-- Locale independent/common resources -->
-
+ <multiinstance>unlimited</multiinstance>
<!-- Locale specific resources -->
<localization>
--- a/idlehomescreen/data/vga_tch/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/group/bld.inf Wed Sep 15 12:00:00 2010 +0300
@@ -30,6 +30,11 @@
#include "../view3_200286eb/group/bld.inf"
#include "../templateview_200286ec/group/bld.inf"
#include "../wideimage_10009dff/group/bld.inf"
+#include "../onerow_200315c2/group/bld.inf"
+#include "../tworows_200315c3/group/bld.inf"
+#include "../threerows_200315c4/group/bld.inf"
+#include "../threetextrows_200315c5/group/bld.inf"
+#include "../posterwideimage_200315c6/group/bld.inf"
PRJ_PLATFORMS
DEFAULT
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/onerow_200315c2/group/bld.inf Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,67 @@
+/*
+* Copyright (c) 2002-2008 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:
+* The information required for building
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+// Support for productization and Carbide.Ui customization
+//********************************************************
+../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/onerow_200315c2/hsps/manifest.dat
+../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/onerow_200315c2/hsps/widgetconfiguration.xml
+../xuikon/00/onerow.dat /epoc32/data/Z/resource/homescreen/onerow_200315c2/xuikon/onerow_200315c2.dat
+../xuikon/00/onerow.css /epoc32/data/Z/resource/homescreen/onerow_200315c2/xuikon/onerow.css
+../xuikon/00/onerow.xml /epoc32/data/Z/resource/homescreen/onerow_200315c2/xuikon/onerow.xml
+
+// Arabic languages
+//*****************
+../xuikon/37/onerow.css /epoc32/data/Z/resource/homescreen/onerow_200315c2/xuikon/37/onerow.css
+../xuikon/50/onerow.css /epoc32/data/Z/resource/homescreen/onerow_200315c2/xuikon/50/onerow.css
+../xuikon/57/onerow.css /epoc32/data/Z/resource/homescreen/onerow_200315c2/xuikon/57/onerow.css
+../xuikon/94/onerow.css /epoc32/data/Z/resource/homescreen/onerow_200315c2/xuikon/94/onerow.css
+
+
+// Support for S60 builds
+//***********************
+// export iby files
+../rom/onerow_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(onerow_200315c2_resources.iby)
+../rom/onerow_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(onerow_200315c2_customer.iby)
+../rom/onerow_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(onerow_200315c2_variant.iby)
+../rom/onerow.iby CORE_APP_LAYER_IBY_EXPORT_PATH(onerow_200315c2.iby)
+
+// Dtd-localization
+//*****************
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME onerow_200315c2
+OPTION DTD_TYPE widget
+OPTION LOC_FOLDERS yes
+END
+
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+
+// End of File
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/onerow_200315c2/hsps/00/manifest.dat Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+
+<package version="2.0">
+
+
+
+ <family>vga_tch</family>
+
+
+
+ <type>template</type>
+
+
+
+ <!-- interface uid -->
+
+ <interfaceuid>0x2001f48a</interfaceuid>
+
+
+
+ <!-- vendor uid -->
+
+ <provideruid>0x101fb657</provideruid>
+
+
+
+ <!-- uid -->
+
+ <configurationuid>0x200315c2</configurationuid>
+
+
+
+ <!-- description -->
+
+ <fullname>onerow</fullname>
+
+ <shortname>oner</shortname>
+
+ <version>1.0</version>
+
+
+
+ <!-- configuration -->
+
+ <filexml>widgetconfiguration.xml</filexml>
+
+
+
+ <!-- Locale independent/common resources -->
+
+
+
+ <!-- Locale specific resources -->
+
+ <localization>
+
+ <fileresource>onerow.o0000</fileresource>
+
+ </localization>
+
+
+
+</package>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/onerow_200315c2/hsps/00/widgetconfiguration.xml Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,34 @@
+<configuration>
+ <control>
+ <settings>
+ <item id="onerow_plugin" name="ContentSource">
+ <property name="name" value=""/>
+ </item>
+ <!--Def value "Test_Publisher"-->
+ <item id="pub_id" name="publisher">
+ <property name="value" value=""/>
+ </item>
+
+ <!-- Template designer choice -->
+ <item id="prop1" name="contentdata">
+ <property name="class" value="image1"/>
+ </item>
+ <!-- Template designer choice -->
+ <item id="p1trigger" name="trigger">
+ <property name="name" value="image1"/>
+ </item>
+
+ <!-- next content -->
+ <!-- Template designer choice -->
+ <item id="prop2" name="contentdata">
+ <property name="class" value="text1"/>
+ </item>
+ <!-- Template designer choice -->
+ <item id="p2trigger" name="trigger">
+ <property name="name" value="text1"/>
+ </item>
+
+
+ </settings>
+ </control>
+</configuration>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/onerow_200315c2/rom/onerow.iby Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 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:
+* Onerow widget HSPS-plugin IBY file.
+*
+*/
+
+#ifndef __ONEROW_200315C2_IBY__
+#define __ONEROW_200315C2_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools
+data=ZPRIVATE\200159c0\install\onerow_200315c2\hsps\00\manifest.dat \private\200159c0\install\onerow_200315c2\hsps\00\manifest.dat
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __ONEROW_200315C2_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/onerow_200315c2/rom/onerow_customer.iby Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 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:
+* Onerow widget HSPS-plugin language specific IBY file.
+*
+*/
+
+#ifndef __ONEROW_200315C2_CUSTOMER_IBY__
+#define __ONEROW_200315C2_CUSTOMER_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\onerow_200315c2\xuikon\00\onerow.o0000 \private\200159c0\install\onerow_200315c2\xuikon\00\onerow.o0000
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __ONEROW_200315C2_CUSTOMER_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/onerow_200315c2/rom/onerow_resources.iby Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,40 @@
+/*
+* Copyright (c) 2005-2007 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:
+* Onerow widget HSPS-plugin language specific IBY file.
+*
+*/
+
+#ifndef __ONEROW_200315C2_RESOURCES_IBY__
+#define __ONEROW_200315C2_RESOURCES_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools, language specific
+#if defined (__LOCALES_37_IBY__)
+data=ZPRIVATE\200159c0\install\onerow_200315c2\xuikon\37\onerow.o0037 \private\200159c0\install\onerow_200315c2\xuikon\37\onerow.o0037
+#endif
+#if defined (__LOCALES_50_IBY__)
+data=ZPRIVATE\200159c0\install\onerow_200315c2\xuikon\50\onerow.o0050 \private\200159c0\install\onerow_200315c2\xuikon\50\onerow.o0050
+#endif
+#if defined (__LOCALES_57_IBY__)
+data=ZPRIVATE\200159c0\install\onerow_200315c2\xuikon\57\onerow.o0057 \private\200159c0\install\onerow_200315c2\xuikon\57\onerow.o0057
+#endif
+#if defined (__LOCALES_94_IBY__)
+data=ZPRIVATE\200159c0\install\onerow_200315c2\xuikon\94\onerow.o0094 \private\200159c0\install\onerow_200315c2\xuikon\94\onerow.o0094
+#endif
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __ONEROW_200315C2_RESOURCES_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/onerow_200315c2/rom/onerow_variant.iby Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 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:
+* Onerow widget HSPS-plugin variant specific IBY file.
+*
+*/
+
+#ifndef __ONEROW_200315C2_VARIANT_IBY__
+#define __ONEROW_200315C2_VARIANT_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by variation tools, variant specific
+data=ZPRIVATE\200159c0\install\onerow_200315c2\hsps\00\widgetconfiguration.xml \private\200159c0\install\onerow_200315c2\hsps\00\widgetconfiguration.xml
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __ONEROW_200315C2_VARIANT_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/onerow_200315c2/xuikon/00/onerow.css Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,40 @@
+widget#onerow_template
+{
+ block-progression:rl;
+
+}
+
+image#image_container
+{
+ height: 95px;
+ width: 95px;
+ margin-top:5px;
+ margin-bottom:5px;
+ margin-left:5px;
+ margin-right:4px;
+ padding-top:5px;
+ padding-bottom:5px;
+ padding-left:5px;
+ padding-right:5px;
+ nav-index:appearance;
+ _s60-aspect-ratio:preserve;
+}
+
+text
+{
+ font-size:3.5u;
+ margin-left:3px;
+ margin-right:5px;
+ margin-top:5px;
+ margin-bottom:5px;
+ padding-top:5px;
+ padding-bottom:5px;
+ padding-left:5px;
+ padding-right:5px;
+ text-align:center;
+ text-overflow-mode: wrap;
+ max-line-amount: 2;
+ font-family: EAknLogicalFontSecondaryFont;
+ color: "SKIN(268458534 13056 74)";
+ nav-index:appearance;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/onerow_200315c2/xuikon/00/onerow.dat Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<data>
+ <AppUid>2001CB4F</AppUid>
+ <Provideruid>101FB657</Provideruid>
+ <ThemeUid>110012F6</ThemeUid>
+ <ThemeFullName>onerow</ThemeFullName>
+ <ThemeShortName>onerow</ThemeShortName>
+ <ThemeVersion>1.0</ThemeVersion>
+ <FileXML>onerow.xml</FileXML>
+ <FileCSS>onerow.css</FileCSS>
+
+</data>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/onerow_200315c2/xuikon/00/onerow.xml Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- <!DOCTYPE xmluiml SYSTEM "AI3_Demo.dtd"> -->
+<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
+
+ <widget id="onerow_template">
+
+ <!-- Data plugin in this widget -->
+ <contentsource id="onerow_plugin" name="" value="0x20019594" />
+
+ <configuration name="service" value="Service.ContentPublishing"/>
+ <configuration name="interface" value="IContentPublishing"/>
+ <configuration name="command" value="GetList"/>
+ <configuration id="pub_id" name="publisher" value=""/>
+
+ <image id="image_container" focusable="true" _s60-initial-focus="1">
+ <!-- Template designer choice -->
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event id="p1trigger" name="" />
+ </action>
+ </actions>
+ <configuration name="content_type" value="image1"/>
+ <property id="prop1" class=""/>
+ </image>
+
+ <box id="text_container">
+ <text id="row1" focusable="true">
+ <!-- Template designer choice -->
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event id="p2trigger" name="" />
+ </action>
+ </actions>
+ <configuration name="content_type" value="text1"/>
+ <property id="prop2" class=""/>
+ </text>
+ </box>
+ <menuextension>
+ <!-- dynmenuitems are mapped to HS view.xml menu based on target attribute.
+ HS view.xml provides localisation for predined items: "settings" and "refresh". -->
+ <dynmenuitem type="widgetsettings" target="hs_widget_menuitem_settings">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="menuitem(widgetsettings)" destination="onerow_plugin"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ <dynmenuitem type="refresh" target="hs_widget_menuitem_refresh">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="menuitem(refresh)" destination="onerow_plugin"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ </menuextension>
+ </widget>
+</xmluiml>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/onerow_200315c2/xuikon/37/onerow.css Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,41 @@
+widget#onerow_template
+{
+ direction: rtl;
+ block-progression:rl;
+}
+
+image#image_container
+{
+ height: 95px;
+ width: 95px;
+ margin-top:5px;
+ margin-bottom:5px;
+ margin-left:5px;
+ margin-right:4px;
+ padding-top:5px;
+ padding-bottom:5px;
+ padding-left:5px;
+ padding-right:5px;
+ nav-index:appearance;
+ _s60-aspect-ratio:preserve;
+}
+
+text
+{
+ font-size:3.5u;
+ margin-left:3px;
+ margin-right:5px;
+ margin-top:5px;
+ margin-bottom:5px;
+ padding-top:5px;
+ padding-bottom:5px;
+ padding-left:5px;
+ padding-right:5px;
+ direction: ltr;
+ text-align:center;
+ text-overflow-mode: wrap;
+ max-line-amount: 2;
+ font-family: EAknLogicalFontSecondaryFont;
+ color: "SKIN(268458534 13056 74)";
+ nav-index:appearance;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/onerow_200315c2/xuikon/50/onerow.css Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,41 @@
+widget#onerow_template
+{
+ direction: rtl;
+ block-progression:rl;
+}
+
+image#image_container
+{
+ height: 95px;
+ width: 95px;
+ margin-top:5px;
+ margin-bottom:5px;
+ margin-left:5px;
+ margin-right:4px;
+ padding-top:5px;
+ padding-bottom:5px;
+ padding-left:5px;
+ padding-right:5px;
+ nav-index:appearance;
+ _s60-aspect-ratio:preserve;
+}
+
+text
+{
+ font-size:3.5u;
+ margin-left:3px;
+ margin-right:5px;
+ margin-top:5px;
+ margin-bottom:5px;
+ padding-top:5px;
+ padding-bottom:5px;
+ padding-left:5px;
+ padding-right:5px;
+ direction: ltr;
+ text-align:center;
+ text-overflow-mode: wrap;
+ max-line-amount: 2;
+ font-family: EAknLogicalFontSecondaryFont;
+ color: "SKIN(268458534 13056 74)";
+ nav-index:appearance;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/onerow_200315c2/xuikon/57/onerow.css Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,41 @@
+widget#onerow_template
+{
+ direction: rtl;
+ block-progression:rl;
+}
+
+image#image_container
+{
+ height: 95px;
+ width: 95px;
+ margin-top:5px;
+ margin-bottom:5px;
+ margin-left:5px;
+ margin-right:4px;
+ padding-top:5px;
+ padding-bottom:5px;
+ padding-left:5px;
+ padding-right:5px;
+ nav-index:appearance;
+ _s60-aspect-ratio:preserve;
+}
+
+text
+{
+ font-size:3.5u;
+ margin-left:3px;
+ margin-right:5px;
+ margin-top:5px;
+ margin-bottom:5px;
+ padding-top:5px;
+ padding-bottom:5px;
+ padding-left:5px;
+ padding-right:5px;
+ direction: ltr;
+ text-align:center;
+ text-overflow-mode: wrap;
+ max-line-amount: 2;
+ font-family: EAknLogicalFontSecondaryFont;
+ color: "SKIN(268458534 13056 74)";
+ nav-index:appearance;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/onerow_200315c2/xuikon/94/onerow.css Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,41 @@
+widget#onerow_template
+{
+ direction: rtl;
+ block-progression:rl;
+}
+
+image#image_container
+{
+ height: 95px;
+ width: 95px;
+ margin-top:5px;
+ margin-bottom:5px;
+ margin-left:5px;
+ margin-right:4px;
+ padding-top:5px;
+ padding-bottom:5px;
+ padding-left:5px;
+ padding-right:5px;
+ nav-index:appearance;
+ _s60-aspect-ratio:preserve;
+}
+
+text
+{
+ font-size:3.5u;
+ margin-left:3px;
+ margin-right:5px;
+ margin-top:5px;
+ margin-bottom:5px;
+ padding-top:5px;
+ padding-bottom:5px;
+ padding-left:5px;
+ padding-right:5px;
+ direction: ltr;
+ text-align:center;
+ text-overflow-mode: wrap;
+ max-line-amount: 2;
+ font-family: EAknLogicalFontSecondaryFont;
+ color: "SKIN(268458534 13056 74)";
+ nav-index:appearance;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/posterwideimage_200315c6/group/bld.inf Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,64 @@
+/*
+* Copyright (c) 2002-2008 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:
+* The information required for building
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+// Support for productization and Carbide.Ui customization
+//********************************************************
+../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/posterwideimage_200315c6/hsps/manifest.dat
+../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/posterwideimage_200315c6/hsps/widgetconfiguration.xml
+../xuikon/00/posterwideimage.dat /epoc32/data/Z/resource/homescreen/posterwideimage_200315c6/xuikon/posterwideimage_200315c6.dat
+../xuikon/00/posterwideimage.css /epoc32/data/Z/resource/homescreen/posterwideimage_200315c6/xuikon/posterwideimage.css
+../xuikon/00/posterwideimage.xml /epoc32/data/Z/resource/homescreen/posterwideimage_200315c6/xuikon/posterwideimage.xml
+../xuikon/00/wideimage.dtd /epoc32/data/Z/resource/homescreen/posterwideimage_200315c6/xuikon/wideimage.dtd
+
+// Support for S60 builds
+//***********************
+../rom/posterwideimage.iby CORE_APP_LAYER_IBY_EXPORT_PATH(posterwideimage_200315c6.iby)
+../rom/posterwideimage_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(posterwideimage_200315c6_resources.iby)
+../rom/posterwideimage_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(posterwideimage_200315c6_customer.iby)
+../rom/posterwideimage_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(posterwideimage_200315c6_variant.iby)
+
+// Support for S60 localization
+//*****************************
+// export localizable loc files (engineering versions)
+../loc/wideimage.loc APP_LAYER_LOC_EXPORT_PATH(wideimage.loc)
+
+// Dtd-localization
+//*****************
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME posterwideimage_200315c6
+OPTION DTD_TYPE widget
+OPTION LOC_FOLDERS yes
+END
+
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+
+// End of File
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/posterwideimage_200315c6/hsps/00/manifest.dat Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+
+<package version="2.0">
+
+
+
+ <family>vga_tch</family>
+
+
+
+ <type>template</type>
+
+
+
+ <!-- interface uid -->
+
+ <interfaceuid>0x2001f48a</interfaceuid>
+
+
+
+ <!-- vendor uid -->
+
+ <provideruid>0x101fb657</provideruid>
+
+
+
+ <!-- uid -->
+
+ <configurationuid>0x200315c6</configurationuid>
+
+
+
+ <!-- description -->
+
+ <fullname>posterwideimage</fullname>
+
+ <shortname>posterwide</shortname>
+
+ <version>1.0</version>
+
+
+
+ <!-- configuration -->
+
+ <filexml>widgetconfiguration.xml</filexml>
+
+
+
+ <!-- Locale specific resources -->
+<localization>
+ <fileresource>posterwideimage.o0000</fileresource>
+</localization>
+
+
+</package>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/posterwideimage_200315c6/hsps/00/widgetconfiguration.xml Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,21 @@
+<configuration>
+ <control>
+ <settings>
+ <item id="posterwideimage_plugin" name="ContentSource" >
+ <property name="name" value=""/>
+ </item>
+ <!--Def value "Test_Publisher"-->
+ <item id="pub_id" name="publisher">
+ <property name="value" value=""/>
+ </item>
+ <!-- Template designer choice -->
+ <item id="prop1" name="contentdata" >
+ <property name="class" value="image1"/>
+ </item>
+ <!-- Template designer choice -->
+ <item id="p_trigger" name="pubtrigger" >
+ <property name="name" value="selected"/>
+ </item>
+ </settings>
+ </control>
+</configuration>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/posterwideimage_200315c6/loc/wideimage.loc Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,22 @@
+/*
+* Copyright (c) 2005-2006 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: Localization strings for PosterWideImage widget (Xuikon)
+*
+*/
+
+// d: Loading content
+// l: ai_gene_pane_1_t1/opt4
+// w:
+// r: TB9.2
+#define qtn_ai_loading_content "Loading content..."
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/posterwideimage_200315c6/rom/posterwideimage.iby Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2005-2007 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:
+* PosterWideImage widget HSPS-plugin IBY file.
+*
+*/
+
+#ifndef __POSTERWIDEIMAGE_200315C6_IBY__
+#define __POSTERWIDEIMAGE_200315C6_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools
+
+data=ZPRIVATE\200159c0\install\posterwideimage_200315c6\hsps\00\manifest.dat \private\200159c0\install\posterwideimage_200315c6\hsps\00\manifest.dat
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __POSTERWIDEIMAGE_200315C6_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/posterwideimage_200315c6/rom/posterwideimage_customer.iby Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 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:
+* Posterwideimage widget HSPS-plugin language specific IBY file.
+*
+*/
+
+#ifndef __POSTERWIDEIMAGE_200315C6_CUSTOMER_IBY__
+#define __POSTERWIDEIMAGE_200315C6_CUSTOMER_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\posterwideimage_200315c6\xuikon\00\posterwideimage.o0000 \private\200159c0\install\posterwideimage_200315c6\xuikon\00\posterwideimage.o0000
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __POSTERWIDEIMAGE_200315C6_CUSTOMER_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/posterwideimage_200315c6/rom/posterwideimage_resources.iby Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 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:
+* Posterwideimage widget HSPS-plugin language specific IBY file.
+*
+*/
+
+#ifndef __POSTERWIDEIMAGE_200315C6_RESOURCES_IBY__
+#define __POSTERWIDEIMAGE_200315C6_RESOURCES_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\posterwideimage_200315c6\xuikon\00\posterwideimage.o0000 \private\200159c0\install\posterwideimage_200315c6\xuikon\00\posterwideimage.o0000
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __POSTERWIDEIMAGE_200315C6_RESOURCES_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/posterwideimage_200315c6/rom/posterwideimage_variant.iby Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 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:
+* PosterWideImage widget HSPS-plugin variant specific IBY file.
+*
+*/
+
+#ifndef __POSTERWIDEIMAGE_200315C6_VARIANT_IBY__
+#define __POSTERWIDEIMAGE_200315C6_VARIANT_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by variation tools, variant specific
+data=ZPRIVATE\200159c0\install\posterwideimage_200315c6\hsps\00\widgetconfiguration.xml \private\200159c0\install\posterwideimage_200315c6\hsps\00\widgetconfiguration.xml
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __POSTERWIDEIMAGE_200315C6_VARIANT_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/posterwideimage_200315c6/xuikon/00/posterwideimage.css Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,25 @@
+widget#posterwideimage_template
+{
+ padding-top: 5px;
+ padding-left: 14px;
+ padding-right: 14px;
+ padding-bottom: 7px;
+ nav-index:appearance;
+ background-color: none;
+}
+
+image#wide_image
+{
+ display: none;
+}
+
+text#wide_text
+{
+ padding-left: 7px;
+ text-align: center;
+ font-family: EAknLogicalFontSecondaryFont;
+ font-size: 32px;
+ color: "SKIN(268458534 13056 74)";
+}
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/posterwideimage_200315c6/xuikon/00/posterwideimage.dat Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<data>
+ <AppUid>2001CB4F</AppUid>
+ <Provideruid>101FB657</Provideruid>
+ <ThemeUid>110012F5</ThemeUid>
+ <ThemeFullName>posterwideimage</ThemeFullName>
+ <ThemeShortName>posterwideimage</ThemeShortName>
+ <ThemeVersion>1.0</ThemeVersion>
+ <FileXML>posterwideimage.xml</FileXML>
+ <FileCSS>posterwideimage.css</FileCSS>
+ <FileDTD>wideimage.dtd</FileDTD>
+</data>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/posterwideimage_200315c6/xuikon/00/posterwideimage.xml Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE xmluiml SYSTEM "wideimage.dtd">
+<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
+
+ <widget id="posterwideimage_template" focusable="true" _s60-initial-focus="1">
+ <!-- Data plugin in this widget -->
+ <contentsource id="posterwideimage_plugin" name="" value="0x20019594" />
+
+ <configuration name="service" value="Service.ContentPublishing"/>
+ <configuration name="interface" value="IContentPublishing"/>
+ <configuration name="command" value="GetList"/>
+ <configuration id="pub_id" name="publisher" value=""/>
+
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event id="p_trigger" name="selected" />
+ </action>
+ </actions>
+ <box id="image_container" sizeaware="true" >
+ <actions>
+ <action>
+ <trigger name="sizechanged"/>
+ <event name="ui/setelementsizetocps(image_container)"/>
+ </action>
+ </actions>
+ <image id="wide_image">
+ <configuration name="content_type" value="image1"/>
+ <property id="prop1" class=""/>
+ <property class="policy/emptyContent" name="wide_image" value="display: none;"/>
+ <property class="policy/Content" name="wide_image" value="display: block;"/>
+ <property class="policy/emptyContent" name="wide_text" value="display: block;"/>
+ <property class="policy/Content" name="wide_text" value="display: none;"/>
+ </image>
+ <text id="wide_text">&qtn_ai_loading_content;</text>
+ </box>
+ <menuextension>
+ <!-- dynmenuitems are mapped to HS view.xml menu based on target attribute.
+ HS view.xml provides localisation for predined items: "settings" and "refresh". -->
+ <dynmenuitem type="widgetsettings" target="hs_widget_menuitem_settings">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="menuitem(widgetsettings)" destination="posterwideimage_plugin"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ <dynmenuitem type="refresh" target="hs_widget_menuitem_refresh">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="menuitem(refresh)" destination="posterwideimage_plugin"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ </menuextension>
+ </widget>
+</xmluiml>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/posterwideimage_200315c6/xuikon/00/wideimage.dtd Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+============================================================================
+<FileName: "wideimage.dtd">
+<PartOf : "AI3">
+
+<FileDescription: "Localization strings for AI3">
+<FileVersion : >
+
+<Copyright:
+"Copyright © 2005 Nokia Corporation.
+This material, including documentation and any related
+computer programs, is protected by copyright controlled by
+Nokia Corporation. All rights are reserved. Copying,
+including reproducing, storing, adapting or translating, any
+or all of this material requires the prior written consent of
+Nokia Corporation. This material also contains confidential
+information which may not be disclosed to others without the
+prior written consent of Nokia Corporation.">
+============================================================================
+-->
+
+
+<!--
+qtn_ai_loading_content.attributes
+qtn_ai_loading_content.layout "ai_gene_pane_1_t1/opt4"
+qtn_ai_loading_content.release "5.0"
+qtn_ai_loading_content.description "Shows information text for slow loading widgets"
+qtn_ai_loading_content.parents "ai_gene_pane_1"
+-->
+<!ENTITY qtn_ai_loading_content "Loading content...">
+
+
+
+
+
Binary file idlehomescreen/data/vga_tch/root_2001f48f/conf/root2001f48f.confml has changed
--- a/idlehomescreen/data/vga_tch/root_2001f48f/conf/root2001f48f.gcfml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/root_2001f48f/conf/root2001f48f.gcfml Wed Sep 15 12:00:00 2010 +0300
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1" condition="${VGA_HSViews.SupportVga}">
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
--- a/idlehomescreen/data/vga_tch/templateview_200286ec/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/group/bld.inf Wed Sep 15 12:00:00 2010 +0300
@@ -48,10 +48,10 @@
//../loc/viewconfiguration.loc APP_LAYER_LOC_EXPORT_PATH(viewconfiguration.loc)
//#endif // __VIEWCONFIGURATION_LOC__
-#ifndef __VIEW_LOC__
-#define __VIEW_LOC__
-../loc/view.loc APP_LAYER_LOC_EXPORT_PATH(view.loc)
-#endif // __VIEW_LOC__
+#ifndef __TEMPLATEVIEW_LOC__
+#define __TEMPLATEVIEW_LOC__
+../loc/templateview.loc APP_LAYER_LOC_EXPORT_PATH(templateview.loc)
+#endif // __TEMPLATEVIEW_LOC__
// Support for S60 builds
//***********************
--- a/idlehomescreen/data/vga_tch/templateview_200286ec/hsps/00/viewconfiguration.xml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/hsps/00/viewconfiguration.xml Wed Sep 15 12:00:00 2010 +0300
@@ -13,7 +13,7 @@
<plugins>
<plugin uid="0x200286e6" bundle_id="0" template_id="0" locking_status="permanent"/>
<plugin uid="0x200286e7" bundle_id="0" template_id="0" locking_status="permanent"/>
- <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="permanent"/>
+ <plugin uid="0x200255b6" bundle_id="0" template_id="0" locking_status="permanent"/>
<plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
<plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
<plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/loc/templateview.loc Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,322 @@
+/*
+* Copyright (c) 2005-2006 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: Localization strings for project Active Idle 3
+*
+*/
+
+// d: Help
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_options_help "Help"
+
+// d: Open
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define qtn_msk_open "Open"
+
+// d: Done
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_done "Done"
+
+// d: Open
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_options_open "Open"
+
+// d: Back
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_back "Back"
+
+// d: Empty string
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define shortcut_emptycaption " "
+
+// d: Add page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_add_page "Add page"
+
+// d: Select
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_options_select_widget "Select"
+
+// d: Add content
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_add_widget "Add content"
+
+// d: Access the widget catalog
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_widget_catalog "Widget catalog"
+
+// d: Search
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_search "Search"
+
+// d: Options
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_options "Options"
+
+// d: Refresh
+// l: list_single_pane_t1_cp2/opt3
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_widget "Refresh"
+
+// d: Focused widget
+// l: list_single_popup_submenu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_one_widget "One"
+
+// d: All widgets
+// l: list_single_popup_submenu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_all_widgets "All"
+
+// d: Remove content
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_remove_widget "Remove content"
+
+// d: Hide the content
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_hide_widgets "Hide the content"
+
+// d: Edit contents
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_edit_content "Edit content"
+
+// d: Change Wallpaper
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_wallpaper "Change Wallpaper"
+
+// d: Change Shortcut Settings
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_shortcut_settings "Change Shortcut Settings"
+
+// d: Widget settings
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_widget_settings "Widget settings"
+
+// d: Show widgets
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_show_widgets "Show the content"
+
+// d: Change Home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_page "Change Home screen page"
+
+// d: Change
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define qtn_msk_change "Change"
+
+// d: Show all profiles in Profiles widget
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_show_profiles "Show all profiles"
+
+// d: Right selection key
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_set_right_idle_softkey "Right selection key"
+
+// d: Select
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_select "Select"
+
+// d: Cancel
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_cancel "Cancel"
+
+// d: Options menu item which switches home to online. Web widgets get updates from network.
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_online "Switch Home to online"
+
+// d: Options menu item which switches home to offline. Web widgets are not updated
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_offline "Switch Home to offline"
+
+// d: String which is shown in long tap menu of Home screen if tapped widget has settings
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_settings "Settings"
+
+// d: String which is shown in long tap menu of Home screen if tapped some widget which is removable
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_remove_element "Remove"
+
+// d: String which is shown in long tap menu of Home screen if tapped empty space in home screen
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_add "Add content"
+
+// d: String which is shown in long tap menu of Home screen
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_change_longtap_wallpaper "Change wallpaper"
+
+// d: User can download new HS widgets. String is visible in add content list query
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_download_new_widgets "Download"
+
+// d: Changes focused widget
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_edit_replace "Replace"
+
+// d: deletes current home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_options_delete "Delete page"
+
+// d: creates new home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_options_new "New page"
+
+// d: view title in editing mode
+// l: title_pane_t2
+// w:
+// r: TB9.2
+#define qtn_hs_title_editing_view "Editing view"
+
+// d: Call
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_call "Call"
+
+// d: Added new option menu item to Edit mode for opening the widget catalog,
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_edit_widget_catalog "Widget Catalog"
+
+// d: Deletes the current Home screen page and focus goes to the next available Home screen page in Edit mode
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_edit_options_delete "Delete page"
+
+// d: Done
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_done "Done"
+
+// d: Search
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_search "Search"
+
+// d: Options
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_options "Options"
+
+// d: Back
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_back "Back"
+
+// d: Select
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_select "Select"
+
+// d: Cancel
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_cancel "Cancel"
+
+// d: Call
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_call "Call"
+
+// d: Lock keypad
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_lock_keypad "Lock keypad"
+
+// d: Menu
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_apps_menu_skey "Menu"
--- a/idlehomescreen/data/vga_tch/templateview_200286ec/loc/view.loc Tue Sep 14 20:58:58 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,322 +0,0 @@
-/*
-* Copyright (c) 2005-2006 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: Localization strings for project Active Idle 3
-*
-*/
-
-// d: Help
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-#define qtn_options_help "Help"
-
-// d: Open
-// l: control_pane_t1/opt7
-// w:
-// r: TB9.2
-#define qtn_msk_open "Open"
-
-// d: Done
-// l: nhd_control_pane_t2/opt7
-// w:
-// r: TB9.2
-#define text_softkey_done "Done"
-
-// d: Open
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-#define qtn_options_open "Open"
-
-// d: Back
-// l: nhd_control_pane_t2/opt7
-// w:
-// r: TB9.2
-#define text_softkey_back "Back"
-
-// d: Empty string
-// l: control_pane_t1/opt7
-// w:
-// r: TB9.2
-#define shortcut_emptycaption " "
-
-// d: Add page
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-#define qtn_hs_add_page "Add page"
-
-// d: Select
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-#define qtn_options_select_widget "Select"
-
-// d: Add content
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-#define qtn_hs_add_widget "Add content"
-
-// d: Access the widget catalog
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-#define qtn_hs_widget_catalog "Widget catalog"
-
-// d: Search
-// l: nhd_control_pane_t2/opt7
-// w:
-// r: TB9.2
-#define text_softkey_search "Search"
-
-// d: Options
-// l: nhd_control_pane_t2/opt7
-// w:
-// r: TB9.2
-#define text_softkey_options "Options"
-
-// d: Refresh
-// l: list_single_pane_t1_cp2/opt3
-// w:
-// r: TB9.2
-#define qtn_hs_refresh_widget "Refresh"
-
-// d: Focused widget
-// l: list_single_popup_submenu_pane_t1
-// w:
-// r: TB9.2
-#define qtn_hs_refresh_one_widget "One"
-
-// d: All widgets
-// l: list_single_popup_submenu_pane_t1
-// w:
-// r: TB9.2
-#define qtn_hs_refresh_all_widgets "All"
-
-// d: Remove content
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-#define qtn_hs_remove_widget "Remove content"
-
-// d: Hide the content
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-#define qtn_hs_hide_widgets "Hide the content"
-
-// d: Edit contents
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-#define qtn_hs_edit_content "Edit content"
-
-// d: Change Wallpaper
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-#define qtn_hs_change_wallpaper "Change Wallpaper"
-
-// d: Change Shortcut Settings
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-#define qtn_hs_change_shortcut_settings "Change Shortcut Settings"
-
-// d: Widget settings
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-#define qtn_hs_widget_settings "Widget settings"
-
-// d: Show widgets
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-#define qtn_hs_show_widgets "Show the content"
-
-// d: Change Home screen page
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-#define qtn_hs_change_page "Change Home screen page"
-
-// d: Change
-// l: control_pane_t1/opt7
-// w:
-// r: TB9.2
-#define qtn_msk_change "Change"
-
-// d: Show all profiles in Profiles widget
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-#define qtn_hs_show_profiles "Show all profiles"
-
-// d: Right selection key
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-#define qtn_set_right_idle_softkey "Right selection key"
-
-// d: Select
-// l: nhd_control_pane_t2/opt7
-// w:
-// r: TB9.2
-#define text_softkey_select "Select"
-
-// d: Cancel
-// l: nhd_control_pane_t2/opt7
-// w:
-// r: TB9.2
-#define text_softkey_cancel "Cancel"
-
-// d: Options menu item which switches home to online. Web widgets get updates from network.
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-#define qtn_hs_online "Switch Home to online"
-
-// d: Options menu item which switches home to offline. Web widgets are not updated
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-#define qtn_hs_offline "Switch Home to offline"
-
-// d: String which is shown in long tap menu of Home screen if tapped widget has settings
-// l: list_single_touch_menu_pane_t1
-// w:
-// r: TB9.2
-#define qtn_hs_longtap_settings "Settings"
-
-// d: String which is shown in long tap menu of Home screen if tapped some widget which is removable
-// l: list_single_touch_menu_pane_t1
-// w:
-// r: TB9.2
-#define qtn_hs_longtap_remove_element "Remove"
-
-// d: String which is shown in long tap menu of Home screen if tapped empty space in home screen
-// l: list_single_touch_menu_pane_t1
-// w:
-// r: TB9.2
-#define qtn_hs_longtap_add "Add content"
-
-// d: String which is shown in long tap menu of Home screen
-// l: list_single_touch_menu_pane_t1
-// w:
-// r: TB9.2
-#define qtn_hs_change_longtap_wallpaper "Change wallpaper"
-
-// d: User can download new HS widgets. String is visible in add content list query
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-#define qtn_hs_download_new_widgets "Download"
-
-// d: Changes focused widget
-// l: list_single_touch_menu_pane_t1
-// w:
-// r: TB9.2
-#define qtn_hs_edit_replace "Replace"
-
-// d: deletes current home screen page
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-#define qtn_hs_page_options_delete "Delete page"
-
-// d: creates new home screen page
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-#define qtn_hs_page_options_new "New page"
-
-// d: view title in editing mode
-// l: title_pane_t2
-// w:
-// r: TB9.2
-#define qtn_hs_title_editing_view "Editing view"
-
-// d: Call
-// l: nhd_control_pane_t2/opt7
-// w:
-// r: TB9.2
-#define text_softkey_call "Call"
-
-// d: Added new option menu item to Edit mode for opening the widget catalog,
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-#define qtn_hs_edit_widget_catalog "Widget Catalog"
-
-// d: Deletes the current Home screen page and focus goes to the next available Home screen page in Edit mode
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-#define qtn_hs_page_edit_options_delete "Delete page"
-
-// d: Done
-// l: nhd_control_pane_t2/opt7
-// w:
-// r: TB9.2
-#define qtn_hs_text_softkey_done "Done"
-
-// d: Search
-// l: nhd_control_pane_t2/opt7
-// w:
-// r: TB9.2
-#define qtn_hs_text_softkey_search "Search"
-
-// d: Options
-// l: nhd_control_pane_t2/opt7
-// w:
-// r: TB9.2
-#define qtn_hs_text_softkey_options "Options"
-
-// d: Back
-// l: nhd_control_pane_t2/opt7
-// w:
-// r: TB9.2
-#define qtn_hs_text_softkey_back "Back"
-
-// d: Select
-// l: nhd_control_pane_t2/opt7
-// w:
-// r: TB9.2
-#define qtn_hs_text_softkey_select "Select"
-
-// d: Cancel
-// l: nhd_control_pane_t2/opt7
-// w:
-// r: TB9.2
-#define qtn_hs_text_softkey_cancel "Cancel"
-
-// d: Call
-// l: nhd_control_pane_t2/opt7
-// w:
-// r: TB9.2
-#define qtn_hs_text_softkey_call "Call"
-
-// d: Lock keypad
-// l: list_single_pane_t1_cp2
-// w:
-// r: TB9.2
-#define qtn_hs_lock_keypad "Lock keypad"
-
-// d: Menu
-// l: nhd_control_pane_t2/opt7
-// w:
-// r: TB9.2
-#define qtn_hs_apps_menu_skey "Menu"
--- a/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/37/view.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/37/view.css Wed Sep 15 12:00:00 2010 +0300
@@ -63,11 +63,12 @@
softkey#msk_ltr
{
- display: block;
+ display: none;
}
softkey#msk_rtl
{
- display: none;
+ display: block;
}
+
--- a/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/50/view.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/50/view.css Wed Sep 15 12:00:00 2010 +0300
@@ -63,11 +63,11 @@
softkey#msk_ltr
{
- display: block;
+ display: none;
}
softkey#msk_rtl
{
- display: none;
+ display: block;
}
--- a/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/57/view.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/57/view.css Wed Sep 15 12:00:00 2010 +0300
@@ -63,11 +63,11 @@
softkey#msk_ltr
{
- display: block;
+ display: none;
}
softkey#msk_rtl
{
- display: none;
+ display: block;
}
--- a/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/94/view.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/94/view.css Wed Sep 15 12:00:00 2010 +0300
@@ -63,11 +63,12 @@
softkey#msk_ltr
{
- display: block;
+ display: none;
}
softkey#msk_rtl
{
- display: none;
+ display: block;
}
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threerows_200315c4/group/bld.inf Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,66 @@
+/*
+* Copyright (c) 2002-2008 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:
+* The information required for building
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+// Support for productization and Carbide.Ui customization
+//********************************************************
+../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/threerows_200315c4/hsps/manifest.dat
+../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/threerows_200315c4/hsps/widgetconfiguration.xml
+../xuikon/00/threerows.dat /epoc32/data/Z/resource/homescreen/threerows_200315c4/xuikon/threerows_200315c4.dat
+../xuikon/00/threerows.css /epoc32/data/Z/resource/homescreen/threerows_200315c4/xuikon/threerows.css
+../xuikon/00/threerows.xml /epoc32/data/Z/resource/homescreen/threerows_200315c4/xuikon/threerows.xml
+
+// Arabic languages
+//*****************
+../xuikon/37/threerows.css /epoc32/data/Z/resource/homescreen/threerows_200315c4/xuikon/37/threerows.css
+../xuikon/50/threerows.css /epoc32/data/Z/resource/homescreen/threerows_200315c4/xuikon/50/threerows.css
+../xuikon/57/threerows.css /epoc32/data/Z/resource/homescreen/threerows_200315c4/xuikon/57/threerows.css
+../xuikon/94/threerows.css /epoc32/data/Z/resource/homescreen/threerows_200315c4/xuikon/94/threerows.css
+
+
+// Support for S60 builds
+//***********************
+../rom/threerows_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(threerows_200315c4_resources.iby)
+../rom/threerows_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(threerows_200315c4_customer.iby)
+../rom/threerows_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(threerows_200315c4_variant.iby)
+../rom/threerows.iby CORE_APP_LAYER_IBY_EXPORT_PATH(threerows_200315c4.iby)
+
+// Dtd-localization
+//*****************
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME threerows_200315c4
+OPTION DTD_TYPE widget
+OPTION LOC_FOLDERS yes
+END
+
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+
+// End of File
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threerows_200315c4/hsps/00/manifest.dat Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+
+<package version="2.0">
+
+
+
+ <family>vga_tch</family>
+
+
+
+ <type>template</type>
+
+
+
+ <!-- interface uid -->
+
+ <interfaceuid>0x2001f48a</interfaceuid>
+
+
+
+ <!-- vendor uid -->
+
+ <provideruid>0x101fb657</provideruid>
+
+
+
+ <!-- uid -->
+
+ <configurationuid>0x200315c4</configurationuid>
+
+
+
+ <!-- description -->
+
+ <fullname>threerows</fullname>
+
+ <shortname>thrs</shortname>
+
+ <version>1.0</version>
+
+
+
+ <!-- configuration -->
+
+ <filexml>widgetconfiguration.xml</filexml>
+
+
+
+ <!-- Locale independent/common resources -->
+
+
+
+ <!-- Locale specific resources -->
+
+ <localization>
+
+ <fileresource>threerows.o0000</fileresource>
+
+ </localization>
+
+
+
+</package>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threerows_200315c4/hsps/00/widgetconfiguration.xml Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,50 @@
+<configuration>
+ <control>
+ <settings>
+ <item id="threerows_plugin" name="ContentSource">
+ <property name="name" value=""/>
+ </item>
+ <!--Def value "Test_Publisher"-->
+ <item id="pub_id" name="publisher">
+ <property name="value" value=""/>
+ </item>
+
+ <!-- Template designer choice -->
+ <item id="prop1" name="contentdata">
+ <property name="class" value="image1"/>
+ </item>
+ <!-- Template designer choice -->
+ <item id="p1trigger" name="trigger" >
+ <property name="name" value="image1"/>
+ </item>
+
+ <!-- Template designer choice -->
+ <item id="prop2" name="contentdata">
+ <property name="class" value="text1"/>
+ </item>
+ <!-- Template designer choice -->
+ <item id="p2trigger" name="trigger" >
+ <property name="name" value="text1"/>
+ </item>
+
+ <!-- Template designer choice -->
+ <item id="prop3" name="contentdata">
+ <property name="class" value="text2"/>
+ </item>
+ <!-- Template designer choice -->
+ <item id="p3trigger" name="trigger" >
+ <property name="name" value="text2"/>
+ </item>
+
+ <!-- Template designer choice -->
+ <item id="prop4" name="contentdata">
+ <property name="class" value="text3"/>
+ </item>
+ <!-- Template designer choice -->
+ <item id="p4trigger" name="trigger" >
+ <property name="name" value="text3"/>
+ </item>
+
+ </settings>
+ </control>
+</configuration>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threerows_200315c4/rom/threerows.iby Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 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:
+* threerows widget HSPS-plugin IBY file.
+*
+*/
+
+#ifndef __THREEROWS_200315C4_IBY__
+#define __THREEROWS_200315C4_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools
+data=ZPRIVATE\200159c0\install\threerows_200315c4\hsps\00\manifest.dat \private\200159c0\install\threerows_200315c4\hsps\00\manifest.dat
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __THREEROWS_200315C4_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threerows_200315c4/rom/threerows_customer.iby Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 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:
+* threerows widget HSPS-plugin language specific IBY file.
+*
+*/
+
+#ifndef __THREEROWS_200315C4_CUSTOMER_IBY__
+#define __THREEROWS_200315C4_CUSTOMER_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\threerows_200315c4\xuikon\00\threerows.o0000 \private\200159c0\install\threerows_200315c4\xuikon\00\threerows.o0000
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __THREEROWS_200315C4_CUSTOMER_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threerows_200315c4/rom/threerows_resources.iby Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,40 @@
+/*
+* Copyright (c) 2005-2007 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:
+* threerows widget HSPS-plugin language specific IBY file.
+*
+*/
+
+#ifndef __THREEROWS_200315C4_RESOURCES_IBY__
+#define __THREEROWS_200315C4_RESOURCES_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools, language specific
+#if defined (__LOCALES_37_IBY__)
+data=ZPRIVATE\200159c0\install\threerows_200315c4\xuikon\37\threerows.o0037 \private\200159c0\install\threerows_200315c4\xuikon\37\threerows.o0037
+#endif
+#if defined (__LOCALES_50_IBY__)
+data=ZPRIVATE\200159c0\install\threerows_200315c4\xuikon\50\threerows.o0050 \private\200159c0\install\threerows_200315c4\xuikon\50\threerows.o0050
+#endif
+#if defined (__LOCALES_57_IBY__)
+data=ZPRIVATE\200159c0\install\threerows_200315c4\xuikon\57\threerows.o0057 \private\200159c0\install\threerows_200315c4\xuikon\57\threerows.o0057
+#endif
+#if defined (__LOCALES_94_IBY__)
+data=ZPRIVATE\200159c0\install\threerows_200315c4\xuikon\94\threerows.o0094 \private\200159c0\install\threerows_200315c4\xuikon\94\threerows.o0094
+#endif
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __THREEROWS_200315C4_RESOURCES_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threerows_200315c4/rom/threerows_variant.iby Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 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:
+* threerows widget HSPS-plugin variant specific IBY file.
+*
+*/
+
+#ifndef __THREEROWS_200315C4_VARIANT_IBY__
+#define __THREEROWS_200315C4_VARIANT_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by variation tools, variant specific
+data=ZPRIVATE\200159c0\install\threerows_200315c4\hsps\00\widgetconfiguration.xml \private\200159c0\install\threerows_200315c4\hsps\00\widgetconfiguration.xml
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __SHORTCUT_200315C4_VARIANT_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threerows_200315c4/xuikon/00/threerows.css Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,42 @@
+widget#threerows_template
+{
+ block-progression:rl;
+}
+
+image#image_container
+{
+ height: 95px;
+ width: 95px;
+ margin-top:5px;
+ margin-bottom:5px;
+ margin-left:5px;
+ margin-right:4px;
+ padding-top:5px;
+ padding-bottom:5px;
+ padding-left:5px;
+ padding-right:5px;
+ nav-index:appearance;
+ _s60-aspect-ratio:preserve;
+}
+
+box#text_container
+{
+ direction: ltr;
+ block-progression:tb;
+ margin-left:3px;
+ margin-right:5px;
+}
+
+text.text_box
+{
+ padding-right:5px;
+ padding-left:5px;
+ padding-top:2px;
+ padding-bottom:2px;
+ font-family: EAknLogicalFontSecondaryFont;
+ font-size: 3.5u;
+ height:35px;
+ color:"SKIN(268458534 13056 74)";
+ nav-index:appearance;
+ _s60-text-valign: top;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threerows_200315c4/xuikon/00/threerows.dat Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<data>
+ <AppUid>2001CB4F</AppUid>
+ <Provideruid>101FB657</Provideruid>
+ <ThemeUid>110012F8</ThemeUid>
+ <ThemeFullName>threerows</ThemeFullName>
+ <ThemeShortName>threerows</ThemeShortName>
+ <ThemeVersion>1.0</ThemeVersion>
+ <FileXML>threerows.xml</FileXML>
+ <FileCSS>threerows.css</FileCSS>
+
+</data>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threerows_200315c4/xuikon/00/threerows.xml Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- <!DOCTYPE xmluiml SYSTEM "AI3_Demo.dtd"> -->
+<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
+
+ <widget id="threerows_template">
+ <!-- Data plugin in this widget -->
+ <contentsource id="threerows_plugin" name="" value="0x20019594" />
+
+ <configuration name="service" value="Service.ContentPublishing"/>
+ <configuration name="interface" value="IContentPublishing"/>
+ <configuration name="command" value="GetList"/>
+ <configuration id="pub_id" name="publisher" value=""/>
+
+ <image id="image_container" focusable="true" _s60-initial-focus="1">
+ <!-- Template designer choice -->
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event id="p1trigger" name=""/>
+ </action>
+ </actions>
+ <configuration name="content_type" value="image1"/>
+ <property id="prop1" class=""/>
+ </image>
+
+ <box id="text_container">
+ <text id="row1" class="text_box" focusable="true" >
+ <!-- Template designer choice -->
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event id="p2trigger" name=""/>
+ </action>
+ </actions>
+ <configuration name="content_type" value="text1"/>
+ <property id="prop2" class=""/>
+ </text>
+
+ <text id="row2" class="text_box" focusable="true" >
+ <!-- Template designer choice -->
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event id="p3trigger" name=""/>
+ </action>
+ </actions>
+ <configuration name="content_type" value="text2"/>
+ <property id="prop3" class=""/>
+ </text>
+
+ <text id="row3" class="text_box" focusable="true" >
+ <!-- Template designer choice -->
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event id="p4trigger" name=""/>
+ </action>
+ </actions>
+ <configuration name="content_type" value="text3"/>
+ <property id="prop4" class=""/>
+ </text>
+ </box>
+ <menuextension>
+ <!-- dynmenuitems are mapped to HS view.xml menu based on target attribute.
+ HS view.xml provides localisation for predined items: "settings" and "refresh". -->
+ <dynmenuitem type="widgetsettings" target="hs_widget_menuitem_settings">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="menuitem(widgetsettings)" destination="threerows_plugin"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ <dynmenuitem type="refresh" target="hs_widget_menuitem_refresh">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="menuitem(refresh)" destination="threerows_plugin"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ </menuextension>
+ </widget>
+</xmluiml>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threerows_200315c4/xuikon/37/threerows.css Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,45 @@
+widget#threerows_template
+{
+ direction: rtl;
+ block-progression:rl;
+}
+
+image#image_container
+{
+ height: 95px;
+ width: 95px;
+ margin-top:5px;
+ margin-bottom:5px;
+ margin-left:5px;
+ margin-right:4px;
+ padding-top:5px;
+ padding-bottom:5px;
+ padding-left:5px;
+ padding-right:5px;
+ nav-index:appearance;
+ _s60-aspect-ratio:preserve;
+}
+
+box#text_container
+{
+ direction: ltr;
+ block-progression:tb;
+ margin-left:3px;
+ margin-right:5px;
+}
+
+text.text_box
+{
+ padding-right:5px;
+ padding-left:5px;
+ padding-top:2px;
+ padding-bottom:2px;
+ direction: ltr;
+ text-align: right;
+ font-family: EAknLogicalFontSecondaryFont;
+ font-size: 3.5u;
+ height:35px;
+ color:"SKIN(268458534 13056 74)";
+ nav-index:appearance;
+ _s60-text-valign: top;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threerows_200315c4/xuikon/50/threerows.css Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,45 @@
+widget#threerows_template
+{
+ direction: rtl;
+ block-progression:rl;
+}
+
+image#image_container
+{
+ height: 95px;
+ width: 95px;
+ margin-top:5px;
+ margin-bottom:5px;
+ margin-left:5px;
+ margin-right:4px;
+ padding-top:5px;
+ padding-bottom:5px;
+ padding-left:5px;
+ padding-right:5px;
+ nav-index:appearance;
+ _s60-aspect-ratio:preserve;
+}
+
+box#text_container
+{
+ direction: ltr;
+ block-progression:tb;
+ margin-left:3px;
+ margin-right:5px;
+}
+
+text.text_box
+{
+ padding-right:5px;
+ padding-left:5px;
+ padding-top:2px;
+ padding-bottom:2px;
+ direction: ltr;
+ text-align: right;
+ font-family: EAknLogicalFontSecondaryFont;
+ font-size: 3.5u;
+ height:35px;
+ color:"SKIN(268458534 13056 74)";
+ nav-index:appearance;
+ _s60-text-valign: top;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threerows_200315c4/xuikon/57/threerows.css Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,45 @@
+widget#threerows_template
+{
+ direction: rtl;
+ block-progression:rl;
+}
+
+image#image_container
+{
+ height: 95px;
+ width: 95px;
+ margin-top:5px;
+ margin-bottom:5px;
+ margin-left:5px;
+ margin-right:4px;
+ padding-top:5px;
+ padding-bottom:5px;
+ padding-left:5px;
+ padding-right:5px;
+ nav-index:appearance;
+ _s60-aspect-ratio:preserve;
+}
+
+box#text_container
+{
+ direction: ltr;
+ block-progression:tb;
+ margin-left:3px;
+ margin-right:5px;
+}
+
+text.text_box
+{
+ padding-right:5px;
+ padding-left:5px;
+ padding-top:2px;
+ padding-bottom:2px;
+ direction: ltr;
+ text-align: right;
+ font-family: EAknLogicalFontSecondaryFont;
+ font-size: 3.5u;
+ height:35px;
+ color:"SKIN(268458534 13056 74)";
+ nav-index:appearance;
+ _s60-text-valign: top;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threerows_200315c4/xuikon/94/threerows.css Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,45 @@
+widget#threerows_template
+{
+ direction: rtl;
+ block-progression:rl;
+}
+
+image#image_container
+{
+ height: 95px;
+ width: 95px;
+ margin-top:5px;
+ margin-bottom:5px;
+ margin-left:5px;
+ margin-right:4px;
+ padding-top:5px;
+ padding-bottom:5px;
+ padding-left:5px;
+ padding-right:5px;
+ nav-index:appearance;
+ _s60-aspect-ratio:preserve;
+}
+
+box#text_container
+{
+ direction: ltr;
+ block-progression:tb;
+ margin-left:3px;
+ margin-right:5px;
+}
+
+text.text_box
+{
+ padding-right:5px;
+ padding-left:5px;
+ padding-top:2px;
+ padding-bottom:2px;
+ direction: ltr;
+ text-align: right;
+ font-family: EAknLogicalFontSecondaryFont;
+ font-size: 3.5u;
+ height:35px;
+ color:"SKIN(268458534 13056 74)";
+ nav-index:appearance;
+ _s60-text-valign: top;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/group/bld.inf Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,68 @@
+/*
+* Copyright (c) 2002-2008 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:
+* The information required for building
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+// Support for productization and Carbide.Ui customization
+//********************************************************
+../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/threetextrows_200315c5/hsps/manifest.dat
+../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/threetextrows_200315c5/hsps/widgetconfiguration.xml
+../xuikon/00/threetextrows.dat /epoc32/data/Z/resource/homescreen/threetextrows_200315c5/xuikon/threetextrows_200315c5.dat
+../xuikon/00/threetextrows.css /epoc32/data/Z/resource/homescreen/threetextrows_200315c5/xuikon/threetextrows.css
+../xuikon/00/threetextrows.xml /epoc32/data/Z/resource/homescreen/threetextrows_200315c5/xuikon/threetextrows.xml
+
+// Arabic languages
+//*****************
+../xuikon/37/threetextrows.css /epoc32/data/Z/resource/homescreen/threetextrows_200315c5/xuikon/37/threetextrows.css
+../xuikon/50/threetextrows.css /epoc32/data/Z/resource/homescreen/threetextrows_200315c5/xuikon/50/threetextrows.css
+../xuikon/57/threetextrows.css /epoc32/data/Z/resource/homescreen/threetextrows_200315c5/xuikon/57/threetextrows.css
+../xuikon/94/threetextrows.css /epoc32/data/Z/resource/homescreen/threetextrows_200315c5/xuikon/94/threetextrows.css
+
+
+// Support for S60 builds
+//***********************
+../rom/threetextrows_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(threetextrows_200315c5_resources.iby)
+../rom/threetextrows_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(threetextrows_200315c5_customer.iby)
+../rom/threetextrows_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(threetextrows_200315c5_variant.iby)
+../rom/threetextrows.iby CORE_APP_LAYER_IBY_EXPORT_PATH(threetextrows_200315c5.iby)
+
+// Dtd-localization
+//*****************
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME threetextrows_200315c5
+OPTION DTD_TYPE widget
+OPTION LOC_FOLDERS yes
+END
+
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+
+//#endif
+
+// End of File
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/hsps/00/manifest.dat Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,65 @@
+<?xml version="1.0"?>
+
+<package version="2.0">
+
+
+
+ <family>vga_tch</family>
+
+
+
+ <type>template</type>
+
+
+
+ <!-- interface uid -->
+
+ <interfaceuid>0x2001f48a</interfaceuid>
+
+
+
+ <!-- vendor uid -->
+
+ <provideruid>0x101fb657</provideruid>
+
+
+
+ <!-- uid -->
+
+ <configurationuid>0x200315c5</configurationuid>
+
+
+
+ <!-- description -->
+
+ <fullname>threetextrows</fullname>
+
+ <shortname>thtxtrs</shortname>
+
+ <version>1.0</version>
+
+
+
+ <!-- configuration -->
+
+ <filexml>widgetconfiguration.xml</filexml>
+
+
+
+ <!-- Locale independent/common resources -->
+
+
+
+
+
+ <!-- Locale specific resources -->
+
+ <localization>
+
+ <fileresource>threetextrows.o0000</fileresource>
+
+ </localization>
+
+
+
+</package>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/hsps/00/widgetconfiguration.xml Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,41 @@
+<configuration>
+ <control>
+ <settings>
+ <item id="threetextrows_plugin" name="ContentSource">
+ <property name="name" value=""/>
+ </item>
+ <!--Def value "Test_Publisher"-->
+ <item id="pub_id" name="publisher">
+ <property name="value" value=""/>
+ </item>
+
+ <!-- Template designer choice -->
+ <item id="prop1" name="contentdata">
+ <property name="class" value="text1"/>
+ </item>
+ <!-- Template designer choice -->
+ <item id="p1trigger" name="trigger" >
+ <property name="name" value="text1"/>
+ </item>
+
+ <!-- Template designer choice -->
+ <item id="prop2" name="contentdata">
+ <property name="class" value="text2"/>
+ </item>
+ <!-- Template designer choice -->
+ <item id="p2trigger" name="trigger" >
+ <property name="name" value="text2"/>
+ </item>
+
+ <!-- Template designer choice -->
+ <item id="prop3" name="contentdata">
+ <property name="class" value="text3"/>
+ </item>
+ <!-- Template designer choice -->
+ <item id="p3trigger" name="trigger">
+ <property name="name" value="text3"/>
+ </item>
+
+ </settings>
+ </control>
+</configuration>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/rom/threetextrows.iby Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 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:
+* threetextrows widget HSPS-plugin IBY file.
+*
+*/
+
+#ifndef __THREETEXTROWS_200315C5_IBY__
+#define __THREETEXTROWS_200315C5_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools
+data=ZPRIVATE\200159c0\install\threetextrows_200315c5\hsps\00\manifest.dat \private\200159c0\install\threetextrows_200315c5\hsps\00\manifest.dat
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __THREETEXTROWS_200315C5_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/rom/threetextrows_customer.iby Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 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:
+* threetextrows widget HSPS-plugin language specific IBY file.
+*
+*/
+
+#ifndef __THREETEXTROWS_200315C5_CUSTOMER_IBY__
+#define __THREETEXTROWS_200315C5_CUSTOMER_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\threetextrows_200315c5\xuikon\00\threetextrows.o0000 \private\200159c0\install\threetextrows_200315c5\xuikon\00\threetextrows.o0000
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __THREETEXTROWS_200315C5_CUSTOMER_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/rom/threetextrows_resources.iby Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,40 @@
+/*
+* Copyright (c) 2005-2007 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:
+* threetextrows widget HSPS-plugin language specific IBY file.
+*
+*/
+
+#ifndef __THREETEXTROWS_200315C5_RESOURCES_IBY__
+#define __THREETEXTROWS_200315C5_RESOURCES_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools, language specific
+#if defined (__LOCALES_37_IBY__)
+data=ZPRIVATE\200159c0\install\threetextrows_200315c5\xuikon\37\threetextrows.o0037 \private\200159c0\install\threetextrows_200315c5\xuikon\37\threetextrows.o0037
+#endif
+#if defined (__LOCALES_50_IBY__)
+data=ZPRIVATE\200159c0\install\threetextrows_200315c5\xuikon\50\threetextrows.o0050 \private\200159c0\install\threetextrows_200315c5\xuikon\50\threetextrows.o0050
+#endif
+#if defined (__LOCALES_57_IBY__)
+data=ZPRIVATE\200159c0\install\threetextrows_200315c5\xuikon\57\threetextrows.o0057 \private\200159c0\install\threetextrows_200315c5\xuikon\57\threetextrows.o0057
+#endif
+#if defined (__LOCALES_94_IBY__)
+data=ZPRIVATE\200159c0\install\threetextrows_200315c5\xuikon\94\threetextrows.o0094 \private\200159c0\install\threetextrows_200315c5\xuikon\94\threetextrows.o0094
+#endif
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __THREETEXTROWS_200315C5_RESOURCES_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/rom/threetextrows_variant.iby Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 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:
+* threetextrows widget HSPS-plugin variant specific IBY file.
+*
+*/
+
+#ifndef __THREETEXTROWS_200315C5_VARIANT_IBY__
+#define __THREETEXTROWS_200315C5_VARIANT_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by variation tools, variant specific
+data=ZPRIVATE\200159c0\install\threetextrows_200315c5\hsps\00\widgetconfiguration.xml \private\200159c0\install\threetextrows_200315c5\hsps\00\widgetconfiguration.xml
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __THREETEXTROWS_200315C5_VARIANT_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/xuikon/00/threetextrows.css Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,11 @@
+text.text_box
+{
+ padding-left:11px;
+ padding-right:11px;
+ text-align:left;
+ font-family: EAknLogicalFontSecondaryFont;
+ font-size: 30px;
+ color: "SKIN(268458534 13056 74)";
+ nav-index:appearance;
+ _s60-text-valign: top;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/xuikon/00/threetextrows.dat Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<data>
+ <AppUid>2001CB4F</AppUid>
+ <Provideruid>101FB657</Provideruid>
+ <ThemeUid>110012F9</ThemeUid>
+ <ThemeFullName>threetextrows</ThemeFullName>
+ <ThemeShortName>threetextrows</ThemeShortName>
+ <ThemeVersion>1.0</ThemeVersion>
+ <FileXML>threetextrows.xml</FileXML>
+ <FileCSS>threetextrows.css</FileCSS>
+
+</data>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/xuikon/00/threetextrows.xml Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- <!DOCTYPE xmluiml SYSTEM "AI3_Demo.dtd"> -->
+<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
+
+ <widget id="threetextrows_template">
+ <!-- Data plugin in this widget -->
+ <contentsource id="threetextrows_plugin" name="" value="0x20019594" />
+
+ <configuration name="service" value="Service.ContentPublishing"/>
+ <configuration name="interface" value="IContentPublishing"/>
+ <configuration name="command" value="GetList"/>
+ <configuration id="pub_id" name="publisher" value=""/>
+
+ <box id="text_container">
+ <text id="row1" class="text_box" focusable="true" _s60-initial-focus="1">
+ <!-- Template designer choice -->
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event id="p1trigger" name=""/>
+ </action>
+ </actions>
+ <configuration name="content_type" value="text1"/>
+ <property id="prop1" class=""/>
+ </text>
+
+ <text id="row2" class="text_box" focusable="true" >
+ <!-- Template designer choice -->
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event id="p2trigger" name=""/>
+ </action>
+ </actions>
+ <configuration name="content_type" value="text2"/>
+ <property id="prop2" class=""/>
+ </text>
+
+ <text id="row3" class="text_box" focusable="true" >
+ <!-- Template designer choice -->
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event id="p3trigger" name=""/>
+ </action>
+ </actions>
+ <configuration name="content_type" value="text3"/>
+ <property id="prop3" class=""/>
+ </text>
+ </box>
+ <menuextension>
+ <!-- dynmenuitems are mapped to HS view.xml menu based on target attribute.
+ HS view.xml provides localisation for predined items: "settings" and "refresh". -->
+ <dynmenuitem type="widgetsettings" target="hs_widget_menuitem_settings">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="menuitem(widgetsettings)" destination="threetextrows_plugin"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ <dynmenuitem type="refresh" target="hs_widget_menuitem_refresh">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="menuitem(refresh)" destination="threetextrows_plugin"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ </menuextension>
+ </widget>
+</xmluiml>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/xuikon/37/threetextrows.css Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,12 @@
+text.text_box
+{
+ padding-left:11px;
+ padding-right:11px;
+ direction: ltr;
+ text-align: right;
+ font-family: EAknLogicalFontSecondaryFont;
+ font-size: 30px;
+ color: "SKIN(268458534 13056 74)";
+ nav-index:appearance;
+ _s60-text-valign: top;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/xuikon/50/threetextrows.css Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,12 @@
+text.text_box
+{
+ padding-left:11px;
+ padding-right:11px;
+ direction: ltr;
+ text-align: right;
+ font-family: EAknLogicalFontSecondaryFont;
+ font-size: 30px;
+ color: "SKIN(268458534 13056 74)";
+ nav-index:appearance;
+ _s60-text-valign: top;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/xuikon/57/threetextrows.css Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,12 @@
+text.text_box
+{
+ padding-left:11px;
+ padding-right:11px;
+ direction: ltr;
+ text-align: right;
+ font-family: EAknLogicalFontSecondaryFont;
+ font-size: 30px;
+ color: "SKIN(268458534 13056 74)";
+ nav-index:appearance;
+ _s60-text-valign: top;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/threetextrows_200315c5/xuikon/94/threetextrows.css Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,12 @@
+text.text_box
+{
+ padding-left:11px;
+ padding-right:11px;
+ direction: ltr;
+ text-align: right;
+ font-family: EAknLogicalFontSecondaryFont;
+ font-size: 30px;
+ color: "SKIN(268458534 13056 74)";
+ nav-index:appearance;
+ _s60-text-valign: top;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/tworows_200315c3/group/bld.inf Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,66 @@
+/*
+* Copyright (c) 2002-2008 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:
+* The information required for building
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+// Support for productization and Carbide.Ui customization
+//********************************************************
+../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/tworows_200315c3/hsps/manifest.dat
+../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/tworows_200315c3/hsps/widgetconfiguration.xml
+../xuikon/00/tworows.dat /epoc32/data/Z/resource/homescreen/tworows_200315c3/xuikon/tworows_200315c3.dat
+../xuikon/00/tworows.css /epoc32/data/Z/resource/homescreen/tworows_200315c3/xuikon/tworows.css
+../xuikon/00/tworows.xml /epoc32/data/Z/resource/homescreen/tworows_200315c3/xuikon/tworows.xml
+
+// Arabic languages
+//*****************
+../xuikon/37/tworows.css /epoc32/data/Z/resource/homescreen/tworows_200315c3/xuikon/37/tworows.css
+../xuikon/50/tworows.css /epoc32/data/Z/resource/homescreen/tworows_200315c3/xuikon/50/tworows.css
+../xuikon/57/tworows.css /epoc32/data/Z/resource/homescreen/tworows_200315c3/xuikon/57/tworows.css
+../xuikon/94/tworows.css /epoc32/data/Z/resource/homescreen/tworows_200315c3/xuikon/94/tworows.css
+
+
+// Support for S60 builds
+//***********************
+../rom/tworows_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(tworows_200315c3_resources.iby)
+../rom/tworows_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(tworows_200315c3_customer.iby)
+../rom/tworows_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(tworows_200315c3_variant.iby)
+../rom/tworows.iby CORE_APP_LAYER_IBY_EXPORT_PATH(tworows_200315c3.iby)
+
+// Dtd-localization
+//*****************
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME tworows_200315c3
+OPTION DTD_TYPE widget
+OPTION LOC_FOLDERS yes
+END
+
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+
+// End of File
+
+
+
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/tworows_200315c3/hsps/00/manifest.dat Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+
+<package version="2.0">
+
+
+
+ <family>vga_tch</family>
+
+
+
+ <type>template</type>
+
+
+
+ <!-- interface uid -->
+
+ <interfaceuid>0x2001f48a</interfaceuid>
+
+
+
+ <!-- vendor uid -->
+
+ <provideruid>0x101fb657</provideruid>
+
+
+
+ <!-- uid -->
+
+ <configurationuid>0x200315c3</configurationuid>
+
+
+
+ <!-- description -->
+
+ <fullname>tworows</fullname>
+
+ <shortname>twrs</shortname>
+
+ <version>1.0</version>
+
+
+
+ <!-- configuration -->
+
+ <filexml>widgetconfiguration.xml</filexml>
+
+
+
+ <!-- Locale independent/common resources -->
+
+
+
+ <!-- Locale specific resources -->
+
+ <localization>
+
+ <fileresource>tworows.o0000</fileresource>
+
+ </localization>
+
+
+
+</package>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/tworows_200315c3/hsps/00/widgetconfiguration.xml Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,41 @@
+<configuration>
+ <control>
+ <settings>
+ <item id="tworows_plugin" name="ContentSource">
+ <property name="name" value=""/>
+ </item>
+ <!--Def value "Test_Publisher"-->
+ <item id="pub_id" name="publisher">
+ <property name="value" value=""/>
+ </item>
+
+ <!--Template designer choice-->
+ <item id="prop1" name="contentdata">
+ <property name="class" value="image1"/>
+ </item>
+ <!--Template designer choice-->
+ <item id="p1trigger" name="trigger">
+ <property name="name" value="image1"/>
+ </item>
+
+ <!--Template designer choice-->
+ <item id="prop2" name="contentdata">
+ <property name="class" value="text1"/>
+ </item>
+ <!--Template designer choice-->
+ <item id="p2trigger" name="trigger" >
+ <property name="name" value="text1"/>
+ </item>
+
+ <!--Template designer choice-->
+ <item id="prop3" name="contentdata">
+ <property name="class" value="text2"/>
+ </item>
+ <!--Template designer choice-->
+ <item id="p3trigger" name="trigger" >
+ <property name="name" value="text2"/>
+ </item>
+
+ </settings>
+ </control>
+</configuration>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/tworows_200315c3/rom/tworows.iby Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 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:
+* tworows widget HSPS-plugin IBY file.
+*
+*/
+
+#ifndef __TWOROWS_200315C3_IBY__
+#define __TWOROWS_200315C3_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools
+data=ZPRIVATE\200159c0\install\tworows_200315c3\hsps\00\manifest.dat \private\200159c0\install\tworows_200315c3\hsps\00\manifest.dat
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __TWOROWS_200315C3_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/tworows_200315c3/rom/tworows_customer.iby Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 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:
+* tworows widget HSPS-plugin language specific IBY file.
+*
+*/
+
+#ifndef __TWOROWS_200315C3_CUSTOMER_IBY__
+#define __TWOROWS_200315C3_CUSTOMER_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\tworows_200315c3\xuikon\00\tworows.o0000 \private\200159c0\install\tworows_200315c3\xuikon\00\tworows.o0000
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __TWOROWS_200315C3_CUSTOMER_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/tworows_200315c3/rom/tworows_resources.iby Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,40 @@
+/*
+* Copyright (c) 2005-2007 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:
+* tworows widget HSPS-plugin language specific IBY file.
+*
+*/
+
+#ifndef __TWOROWS_200315C3_RESOURCES_IBY__
+#define __TWOROWS_200315C3_RESOURCES_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools, language specific
+#if defined (__LOCALES_37_IBY__)
+data=ZPRIVATE\200159c0\install\tworows_200315c3\xuikon\37\tworows.o0037 \private\200159c0\install\tworows_200315c3\xuikon\37\tworows.o0037
+#endif
+#if defined (__LOCALES_50_IBY__)
+data=ZPRIVATE\200159c0\install\tworows_200315c3\xuikon\50\tworows.o0050 \private\200159c0\install\tworows_200315c3\xuikon\50\tworows.o0050
+#endif
+#if defined (__LOCALES_57_IBY__)
+data=ZPRIVATE\200159c0\install\tworows_200315c3\xuikon\57\tworows.o0057 \private\200159c0\install\tworows_200315c3\xuikon\57\tworows.o0057
+#endif
+#if defined (__LOCALES_94_IBY__)
+data=ZPRIVATE\200159c0\install\tworows_200315c3\xuikon\94\tworows.o0094 \private\200159c0\install\tworows_200315c3\xuikon\94\tworows.o0094
+#endif
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __TWOROWS_200315C3_RESOURCES_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/tworows_200315c3/rom/tworows_variant.iby Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 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:
+* tworows widget HSPS-plugin variant specific IBY file.
+*
+*/
+
+#ifndef __TWOROWS_200315C3_VARIANT_IBY__
+#define __TWOROWS_200315C3_VARIANT_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by variation tools, variant specific
+data=ZPRIVATE\200159c0\install\tworows_200315c3\hsps\00\widgetconfiguration.xml \private\200159c0\install\tworows_200315c3\hsps\00\widgetconfiguration.xml
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __TWOROWS_200315C3_VARIANT_IBY__
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/tworows_200315c3/xuikon/00/tworows.css Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,43 @@
+widget#tworows_template
+{
+ block-progression:rl;
+}
+
+image#image_container
+{
+ height: 95px;
+ width: 95px;
+ margin-top:5px;
+ margin-bottom:5px;
+ margin-left:5px;
+ margin-right:4px;
+ padding-top:5px;
+ padding-bottom:5px;
+ padding-left:5px;
+ padding-right:5px;
+ nav-index:appearance;
+ _s60-aspect-ratio:preserve;
+}
+
+box#text_container
+{
+ direction: ltr;
+ block-progression:tb;
+ margin-left:3px;
+ margin-right:5px;
+ margin-top:14px;
+}
+
+text.text_box
+{
+ padding-right:5px;
+ padding-left:5px;
+ padding-top:5px;
+ padding-bottom:5px;
+ font-family: EAknLogicalFontSecondaryFont;
+ font-size: 3.5u;
+ height:30px;
+ color:"SKIN(268458534 13056 74)";
+ nav-index:appearance;
+ _s60-text-valign: top;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/tworows_200315c3/xuikon/00/tworows.dat Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<data>
+ <AppUid>2001CB4F</AppUid>
+ <Provideruid>101FB657</Provideruid>
+ <ThemeUid>110012F7</ThemeUid>
+ <ThemeFullName>tworows</ThemeFullName>
+ <ThemeShortName>tworows</ThemeShortName>
+ <ThemeVersion>1.0</ThemeVersion>
+ <FileXML>tworows.xml</FileXML>
+ <FileCSS>tworows.css</FileCSS>
+
+</data>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/tworows_200315c3/xuikon/00/tworows.xml Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- <!DOCTYPE xmluiml SYSTEM "AI3_Demo.dtd"> -->
+<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
+
+ <widget id="tworows_template">
+ <!-- Data plugin in this widget -->
+ <contentsource id="tworows_plugin" name="" value="0x20019594" />
+
+ <configuration name="service" value="Service.ContentPublishing"/>
+ <configuration name="interface" value="IContentPublishing"/>
+ <configuration name="command" value="GetList"/>
+ <configuration id="pub_id" name="publisher" value=""/>
+
+ <image id="image_container" focusable="true" _s60-initial-focus="1">
+ <!-- Template designer choice -->
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event id="p1trigger" name=""/>
+ </action>
+ </actions>
+ <configuration name="content_type" value="image1"/>
+ <property id="prop1" class=""/>
+ </image>
+
+ <box id="text_container">
+ <text id="row1" class="text_box" focusable="true" >
+ <!-- Template designer choice -->
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event id="p2trigger" name=""/>
+ </action>
+ </actions>
+ <configuration name="content_type" value="text1"/>
+ <property id="prop2" class=""/>
+ </text>
+
+ <text id="row2" class="text_box" focusable="true" >
+ <!-- Template designer choice -->
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event id="p3trigger" name=""/>
+ </action>
+ </actions>
+ <configuration name="content_type" value="text2"/>
+ <property id="prop3" class=""/>
+ </text>
+ </box>
+ <menuextension>
+ <!-- dynmenuitems are mapped to HS view.xml menu based on target attribute.
+ HS view.xml provides localisation for predined items: "settings" and "refresh". -->
+ <dynmenuitem type="widgetsettings" target="hs_widget_menuitem_settings">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="menuitem(widgetsettings)" destination="tworows_plugin"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ <dynmenuitem type="refresh" target="hs_widget_menuitem_refresh">
+ <actions>
+ <action>
+ <trigger name="activate"/>
+ <event name="menuitem(refresh)" destination="tworows_plugin"/>
+ </action>
+ </actions>
+ </dynmenuitem>
+ </menuextension>
+ </widget>
+</xmluiml>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/tworows_200315c3/xuikon/37/tworows.css Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,45 @@
+widget#tworows_template
+{
+ direction: rtl;
+ block-progression:rl;
+}
+
+image#image_container
+{
+ height: 70px;
+ width: 70px;
+ margin-top:3px;
+ margin-bottom:3px;
+ margin-left:3px;
+ margin-right:2px;
+ padding-top:3px;
+ padding-bottom:3px;
+ padding-left:3px;
+ padding-right:3px;
+ nav-index:appearance;
+ _s60-aspect-ratio:preserve;
+}
+
+box#text_container
+{
+ block-progression:tb;
+ margin-left:2px;
+ margin-right:3px;
+ margin-top:10px;
+}
+
+text.text_box
+{
+ padding-right:3px;
+ padding-left:3px;
+ padding-top:3px;
+ padding-bottom:3px;
+ direction: ltr;
+ text-align: right;
+ font-family: EAknLogicalFontSecondaryFont;
+ font-size: 3.5u;
+ height:25px;
+ color:"SKIN(268458534 13056 74)";
+ nav-index:appearance;
+ _s60-text-valign: top;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/tworows_200315c3/xuikon/50/tworows.css Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,45 @@
+widget#tworows_template
+{
+ direction: rtl;
+ block-progression:rl;
+}
+
+image#image_container
+{
+ height: 70px;
+ width: 70px;
+ margin-top:3px;
+ margin-bottom:3px;
+ margin-left:3px;
+ margin-right:2px;
+ padding-top:3px;
+ padding-bottom:3px;
+ padding-left:3px;
+ padding-right:3px;
+ nav-index:appearance;
+ _s60-aspect-ratio:preserve;
+}
+
+box#text_container
+{
+ block-progression:tb;
+ margin-left:2px;
+ margin-right:3px;
+ margin-top:10px;
+}
+
+text.text_box
+{
+ padding-right:3px;
+ padding-left:3px;
+ padding-top:3px;
+ padding-bottom:3px;
+ direction: ltr;
+ text-align: right;
+ font-family: EAknLogicalFontSecondaryFont;
+ font-size: 3.5u;
+ height:25px;
+ color:"SKIN(268458534 13056 74)";
+ nav-index:appearance;
+ _s60-text-valign: top;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/tworows_200315c3/xuikon/57/tworows.css Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,45 @@
+widget#tworows_template
+{
+ direction: rtl;
+ block-progression:rl;
+}
+
+image#image_container
+{
+ height: 70px;
+ width: 70px;
+ margin-top:3px;
+ margin-bottom:3px;
+ margin-left:3px;
+ margin-right:2px;
+ padding-top:3px;
+ padding-bottom:3px;
+ padding-left:3px;
+ padding-right:3px;
+ nav-index:appearance;
+ _s60-aspect-ratio:preserve;
+}
+
+box#text_container
+{
+ block-progression:tb;
+ margin-left:2px;
+ margin-right:3px;
+ margin-top:10px;
+}
+
+text.text_box
+{
+ padding-right:3px;
+ padding-left:3px;
+ padding-top:3px;
+ padding-bottom:3px;
+ direction: ltr;
+ text-align: right;
+ font-family: EAknLogicalFontSecondaryFont;
+ font-size: 3.5u;
+ height:25px;
+ color:"SKIN(268458534 13056 74)";
+ nav-index:appearance;
+ _s60-text-valign: top;
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/tworows_200315c3/xuikon/94/tworows.css Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,45 @@
+widget#tworows_template
+{
+ direction: rtl;
+ block-progression:rl;
+}
+
+image#image_container
+{
+ height: 70px;
+ width: 70px;
+ margin-top:3px;
+ margin-bottom:3px;
+ margin-left:3px;
+ margin-right:2px;
+ padding-top:3px;
+ padding-bottom:3px;
+ padding-left:3px;
+ padding-right:3px;
+ nav-index:appearance;
+ _s60-aspect-ratio:preserve;
+}
+
+box#text_container
+{
+ block-progression:tb;
+ margin-left:2px;
+ margin-right:3px;
+ margin-top:10px;
+}
+
+text.text_box
+{
+ padding-right:3px;
+ padding-left:3px;
+ padding-top:3px;
+ padding-bottom:3px;
+ direction: ltr;
+ text-align: right;
+ font-family: EAknLogicalFontSecondaryFont;
+ font-size: 3.5u;
+ height:25px;
+ color:"SKIN(268458534 13056 74)";
+ nav-index:appearance;
+ _s60-text-valign: top;
+}
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9.confml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9.confml Wed Sep 15 12:00:00 2010 +0300
@@ -1,6 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration name="VGA Homescreen 1" version="1" xmlns="http://www.s60.com/xml/confml/2" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<feature name="VGA Homescreen 1 widgets" ref="VGA_HomescreenPlugins_1">
+ <setting ref="SupportQhd" name="Qhd Support" type="boolean">
+ <desc>The Qhd touch is a supported display type of the xuikon homescreen</desc>
+ </setting>
+ <setting ref="SupportVga" name="Vga Support" type="boolean">
+ <desc>The Vga touch is a supported display type of the xuikon homescreen</desc>
+ </setting>
<setting name="Max Widgets" ref="MaxWidgets" type="string">
<desc>Maximum widget amount in Homescreen 1 page. Customizable</desc>
</setting>
@@ -29,7 +35,7 @@
<option name="Empty" value="0x2001F47F" />
<option name="ClockDate" value="0x200286E6" />
<option name="Desktop" value="0x20018EEE" />
- <option name="Profilemode" value="0x200286e7" />
+ <option name="Profilemode" value="0x200286E7" />
<option name="wrtplugin_1" value="0x20022FD4"/>
<option name="wrtplugin_2" value="0x20022FD5"/>
<option name="wrtplugin_3" value="0x20022FD6"/>
@@ -237,6 +243,8 @@
</feature>
<data>
<VGA_HomescreenPlugins_1>
+ <SupportQhd>true</SupportQhd>
+ <SupportVga>true</SupportVga>
<MaxWidgets>6</MaxWidgets>
<UseEmptyWidgets>true</UseEmptyWidgets>
<ItemIdEmptyWidgets>hs_vga_tch_view</ItemIdEmptyWidgets>
@@ -323,7 +331,7 @@
<ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
</Plugins>
<Plugins>
- <Uid>0x2001f47f</Uid>
+ <Uid>0x200255b6</Uid>
<BundleIdentifier>0</BundleIdentifier>
<TemplateIdentifier>0</TemplateIdentifier>
<LockingStatus>permanent</LockingStatus>
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9.gcfml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9.gcfml Wed Sep 15 12:00:00 2010 +0300
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1" condition="${VGA_HomescreenPlugins_1.SupportVga}">
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
Binary file idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9manifest.confml has changed
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9manifest.gcfml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9manifest.gcfml Wed Sep 15 12:00:00 2010 +0300
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1" condition="${VGAHomescreen1manifest.SupportVga}">
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
Binary file idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9xuikon.confml has changed
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9xuikon.gcfml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9xuikon.gcfml Wed Sep 15 12:00:00 2010 +0300
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1" condition="${VGAHomescreen1XuikonFolder.SupportVga}">
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/group/bld.inf Wed Sep 15 12:00:00 2010 +0300
@@ -66,7 +66,7 @@
//***********************
../rom/view_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9_resources.iby)
../rom/view_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9_customer.iby)
-../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9_variant.iby)
+//../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9_variant.iby)
//../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9.iby)
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/hsps/00/viewconfiguration.xml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/hsps/00/viewconfiguration.xml Wed Sep 15 12:00:00 2010 +0300
@@ -13,7 +13,7 @@
<plugins>
<plugin uid="0x200286e6" bundle_id="0" template_id="0" locking_status="permanent"/>
<plugin uid="0x200286e7" bundle_id="0" template_id="0" locking_status="permanent"/>
- <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="permanent"/>
+ <plugin uid="0x200255b6" bundle_id="0" template_id="0" locking_status="permanent"/>
<plugin uid="0x20018eee" bundle_id="0" template_id="0" locking_status="none">
<initial_settings>
<settings>
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/37/view.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/37/view.css Wed Sep 15 12:00:00 2010 +0300
@@ -63,11 +63,12 @@
softkey#msk_ltr
{
- display: block;
+ display: none;
}
softkey#msk_rtl
{
- display: none;
+ display: block;
}
+
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/50/view.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/50/view.css Wed Sep 15 12:00:00 2010 +0300
@@ -63,11 +63,11 @@
softkey#msk_ltr
{
- display: block;
+ display: none;
}
softkey#msk_rtl
{
- display: none;
+ display: block;
}
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/57/view.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/57/view.css Wed Sep 15 12:00:00 2010 +0300
@@ -63,11 +63,11 @@
softkey#msk_ltr
{
- display: block;
+ display: none;
}
softkey#msk_rtl
{
- display: none;
+ display: block;
}
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/94/view.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/94/view.css Wed Sep 15 12:00:00 2010 +0300
@@ -63,11 +63,12 @@
softkey#msk_ltr
{
- display: block;
+ display: none;
}
softkey#msk_rtl
{
- display: none;
+ display: block;
}
+
--- a/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286ea.confml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286ea.confml Wed Sep 15 12:00:00 2010 +0300
@@ -1,6 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration name="VGA Homescreen 2" version="1" xmlns="http://www.s60.com/xml/confml/2" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<feature name="VGA Homescreen 2 widgets" ref="VGA_HomescreenPlugins_2">
+ <setting ref="SupportQhd" name="Qhd Support" type="boolean">
+ <desc>The Qhd touch is a supported display type of the xuikon homescreen</desc>
+ </setting>
+ <setting ref="SupportVga" name="Vga Support" type="boolean">
+ <desc>The Vga touch is a supported display type of the xuikon homescreen</desc>
+ </setting>
<setting name="Max Widgets" ref="MaxWidgets" type="string">
<desc>Maximum widget amount in Homescreen 2 page. Customizable</desc>
</setting>
@@ -237,6 +243,8 @@
</feature>
<data>
<VGA_HomescreenPlugins_2>
+ <SupportQhd>true</SupportQhd>
+ <SupportVga>true</SupportVga>
<MaxWidgets>6</MaxWidgets>
<UseEmptyWidgets>true</UseEmptyWidgets>
<ItemIdEmptyWidgets>hs_vga_tch_view</ItemIdEmptyWidgets>
@@ -323,85 +331,7 @@
<ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
</Plugins>
<Plugins>
- <Uid>0x2001f47f</Uid>
- <BundleIdentifier>0</BundleIdentifier>
- <TemplateIdentifier>0</TemplateIdentifier>
- <LockingStatus>permanent</LockingStatus>
- <ShortcutWidget>0</ShortcutWidget>
- <Customize1Shortcut>0</Customize1Shortcut>
- <Shortcut1Type />
- <Shortcut1Uid />
- <Shortcut1View />
- <Shortcut1Param />
- <Customize2Shortcut />
- <Shortcut2Type />
- <Shortcut2Uid />
- <Shortcut2View />
- <Shortcut2Param />
- <Customize3Shortcut />
- <Shortcut3Type />
- <Shortcut3Uid />
- <Shortcut3View />
- <Shortcut3Param />
- <Customize4Shortcut />
- <Shortcut4Type />
- <Shortcut4Uid />
- <Shortcut4View />
- <Shortcut4Param />
- <Shortcut1ItemId>first</Shortcut1ItemId>
- <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
- <Shortcut2ItemId>second</Shortcut2ItemId>
- <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
- <Shortcut3ItemId>third</Shortcut3ItemId>
- <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
- <Shortcut4ItemId>fourth</Shortcut4ItemId>
- <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
- <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
- <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
- <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
- <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
- </Plugins>
- <Plugins>
- <Uid>0x2001f47f</Uid>
- <BundleIdentifier>0</BundleIdentifier>
- <TemplateIdentifier>0</TemplateIdentifier>
- <LockingStatus>permanent</LockingStatus>
- <ShortcutWidget>0</ShortcutWidget>
- <Customize1Shortcut>0</Customize1Shortcut>
- <Shortcut1Type />
- <Shortcut1Uid />
- <Shortcut1View />
- <Shortcut1Param />
- <Customize2Shortcut />
- <Shortcut2Type />
- <Shortcut2Uid />
- <Shortcut2View />
- <Shortcut2Param />
- <Customize3Shortcut />
- <Shortcut3Type />
- <Shortcut3Uid />
- <Shortcut3View />
- <Shortcut3Param />
- <Customize4Shortcut />
- <Shortcut4Type />
- <Shortcut4Uid />
- <Shortcut4View />
- <Shortcut4Param />
- <Shortcut1ItemId>first</Shortcut1ItemId>
- <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
- <Shortcut2ItemId>second</Shortcut2ItemId>
- <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
- <Shortcut3ItemId>third</Shortcut3ItemId>
- <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
- <Shortcut4ItemId>fourth</Shortcut4ItemId>
- <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
- <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
- <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
- <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
- <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
- </Plugins>
- <Plugins>
- <Uid>0x2001f47f</Uid>
+ <Uid>0x200255b6</Uid>
<BundleIdentifier>0</BundleIdentifier>
<TemplateIdentifier>0</TemplateIdentifier>
<LockingStatus>permanent</LockingStatus>
@@ -478,6 +408,84 @@
<ShortcutPropertyNameView>view</ShortcutPropertyNameView>
<ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
</Plugins>
+ <Plugins>
+ <Uid>0x2001f47f</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>none</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ <Plugins>
+ <Uid>0x2001f47f</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>none</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut>0</Customize1Shortcut>
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
</VGA_HomescreenPlugins_2>
</data>
</configuration>
\ No newline at end of file
--- a/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286ea.gcfml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286ea.gcfml Wed Sep 15 12:00:00 2010 +0300
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1" condition="${VGA_HomescreenPlugins_2.SupportVga}">
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
Binary file idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eamanifest.confml has changed
--- a/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eamanifest.gcfml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eamanifest.gcfml Wed Sep 15 12:00:00 2010 +0300
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1" condition="${VGAHomescreen2manifest.SupportVga}">
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
Binary file idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eaxuikon.confml has changed
--- a/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eaxuikon.gcfml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eaxuikon.gcfml Wed Sep 15 12:00:00 2010 +0300
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1" condition="${VGAHomescreen2XuikonFolder.SupportVga}">
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
--- a/idlehomescreen/data/vga_tch/view2_200286ea/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/group/bld.inf Wed Sep 15 12:00:00 2010 +0300
@@ -66,7 +66,7 @@
//***********************
../rom/view_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(view2_200286ea_resources.iby)
../rom/view_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view2_200286ea_customer.iby)
-../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view2_200286ea_variant.iby)
+//../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view2_200286ea_variant.iby)
//../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view2_200286ea.iby)
--- a/idlehomescreen/data/vga_tch/view2_200286ea/hsps/00/viewconfiguration.xml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/hsps/00/viewconfiguration.xml Wed Sep 15 12:00:00 2010 +0300
@@ -13,7 +13,7 @@
<plugins>
<plugin uid="0x200286e6" bundle_id="0" template_id="0" locking_status="permanent"/>
<plugin uid="0x200286e7" bundle_id="0" template_id="0" locking_status="permanent"/>
- <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="permanent"/>
+ <plugin uid="0x200255b6" bundle_id="0" template_id="0" locking_status="permanent"/>
<plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
<plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
<plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
--- a/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/37/view.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/37/view.css Wed Sep 15 12:00:00 2010 +0300
@@ -63,11 +63,12 @@
softkey#msk_ltr
{
- display: block;
+ display: none;
}
softkey#msk_rtl
{
- display: none;
+ display: block;
}
+
--- a/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/50/view.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/50/view.css Wed Sep 15 12:00:00 2010 +0300
@@ -63,11 +63,11 @@
softkey#msk_ltr
{
- display: block;
+ display: none;
}
softkey#msk_rtl
{
- display: none;
+ display: block;
}
--- a/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/57/view.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/57/view.css Wed Sep 15 12:00:00 2010 +0300
@@ -63,11 +63,11 @@
softkey#msk_ltr
{
- display: block;
+ display: none;
}
softkey#msk_rtl
{
- display: none;
+ display: block;
}
--- a/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/94/view.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/94/view.css Wed Sep 15 12:00:00 2010 +0300
@@ -63,11 +63,11 @@
softkey#msk_ltr
{
- display: block;
+ display: none;
}
softkey#msk_rtl
{
- display: none;
+ display: block;
}
--- a/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286eb.confml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286eb.confml Wed Sep 15 12:00:00 2010 +0300
@@ -1,6 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration name="Homescreen 3" version="1" xmlns="http://www.s60.com/xml/confml/2" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<feature name="VGA Homescreen 3 widgets" ref="VGA_HomescreenPlugins_3">
+ <setting ref="SupportQhd" name="Qhd Support" type="boolean">
+ <desc>The Qhd touch is a supported display type of the xuikon homescreen</desc>
+ </setting>
+ <setting ref="SupportVga" name="Vga Support" type="boolean">
+ <desc>The Vga touch is a supported display type of the xuikon homescreen</desc>
+ </setting>
<setting name="Max Widgets" ref="MaxWidgets" type="string">
<desc>Maximum widget amount in Homescreen 3 page. Customizable</desc>
</setting>
@@ -25,11 +31,11 @@
<setting name="Widgets" ref="Plugins" type="sequence">
<desc>Widgets in the Homescreen 3</desc>
<setting name="Widget" ref="Uid" type="string">
- <desc>Widget name</desc>
- <option name="Empty" value="0x2001f47f" />
+ <desc>Widget name</desc>
+ <option name="Empty" value="0x2001F47F" />
<option name="ClockDate" value="0x200286E6" />
<option name="Desktop" value="0x20018EEE" />
- <option name="Profilemode" value="0x200286e7" />
+ <option name="Profilemode" value="0x200286E7" />
<option name="wrtplugin_1" value="0x20022FD4"/>
<option name="wrtplugin_2" value="0x20022FD5"/>
<option name="wrtplugin_3" value="0x20022FD6"/>
@@ -237,6 +243,8 @@
</feature>
<data>
<VGA_HomescreenPlugins_3>
+ <SupportQhd>true</SupportQhd>
+ <SupportVga>true</SupportVga>
<MaxWidgets>6</MaxWidgets>
<UseEmptyWidgets>true</UseEmptyWidgets>
<ItemIdEmptyWidgets>hs_vga_tch_view</ItemIdEmptyWidgets>
@@ -245,7 +253,46 @@
<WallpaperPropertyName>path</WallpaperPropertyName>
<BackGroundPath />
<Plugins extensionPolicy="replace">
- <Uid>0x2001f47f</Uid>
+ <Uid>0x200286e6</Uid>
+ <BundleIdentifier>0</BundleIdentifier>
+ <TemplateIdentifier>0</TemplateIdentifier>
+ <LockingStatus>permanent</LockingStatus>
+ <ShortcutWidget>0</ShortcutWidget>
+ <Customize1Shortcut />
+ <Shortcut1Type />
+ <Shortcut1Uid />
+ <Shortcut1View />
+ <Shortcut1Param />
+ <Customize2Shortcut />
+ <Shortcut2Type />
+ <Shortcut2Uid />
+ <Shortcut2View />
+ <Shortcut2Param />
+ <Customize3Shortcut />
+ <Shortcut3Type />
+ <Shortcut3Uid />
+ <Shortcut3View />
+ <Shortcut3Param />
+ <Customize4Shortcut />
+ <Shortcut4Type />
+ <Shortcut4Uid />
+ <Shortcut4View />
+ <Shortcut4Param />
+ <Shortcut1ItemId>first</Shortcut1ItemId>
+ <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+ <Shortcut2ItemId>second</Shortcut2ItemId>
+ <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+ <Shortcut3ItemId>third</Shortcut3ItemId>
+ <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+ <Shortcut4ItemId>fourth</Shortcut4ItemId>
+ <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+ <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+ <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+ <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+ <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+ </Plugins>
+ <Plugins>
+ <Uid>0x200286e7</Uid>
<BundleIdentifier>0</BundleIdentifier>
<TemplateIdentifier>0</TemplateIdentifier>
<LockingStatus>permanent</LockingStatus>
@@ -284,7 +331,7 @@
<ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
</Plugins>
<Plugins>
- <Uid>0x2001f47f</Uid>
+ <Uid>0x200255b6</Uid>
<BundleIdentifier>0</BundleIdentifier>
<TemplateIdentifier>0</TemplateIdentifier>
<LockingStatus>permanent</LockingStatus>
@@ -326,46 +373,7 @@
<Uid>0x2001f47f</Uid>
<BundleIdentifier>0</BundleIdentifier>
<TemplateIdentifier>0</TemplateIdentifier>
- <LockingStatus>permanent</LockingStatus>
- <ShortcutWidget>0</ShortcutWidget>
- <Customize1Shortcut>0</Customize1Shortcut>
- <Shortcut1Type />
- <Shortcut1Uid />
- <Shortcut1View />
- <Shortcut1Param />
- <Customize2Shortcut />
- <Shortcut2Type />
- <Shortcut2Uid />
- <Shortcut2View />
- <Shortcut2Param />
- <Customize3Shortcut />
- <Shortcut3Type />
- <Shortcut3Uid />
- <Shortcut3View />
- <Shortcut3Param />
- <Customize4Shortcut />
- <Shortcut4Type />
- <Shortcut4Uid />
- <Shortcut4View />
- <Shortcut4Param />
- <Shortcut1ItemId>first</Shortcut1ItemId>
- <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
- <Shortcut2ItemId>second</Shortcut2ItemId>
- <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
- <Shortcut3ItemId>third</Shortcut3ItemId>
- <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
- <Shortcut4ItemId>fourth</Shortcut4ItemId>
- <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
- <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
- <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
- <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
- <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
- </Plugins>
- <Plugins>
- <Uid>0x2001f47f</Uid>
- <BundleIdentifier>0</BundleIdentifier>
- <TemplateIdentifier>0</TemplateIdentifier>
- <LockingStatus>permanent</LockingStatus>
+ <LockingStatus>none</LockingStatus>
<ShortcutWidget>0</ShortcutWidget>
<Customize1Shortcut>0</Customize1Shortcut>
<Shortcut1Type />
@@ -404,7 +412,7 @@
<Uid>0x2001f47f</Uid>
<BundleIdentifier>0</BundleIdentifier>
<TemplateIdentifier>0</TemplateIdentifier>
- <LockingStatus>permanent</LockingStatus>
+ <LockingStatus>none</LockingStatus>
<ShortcutWidget>0</ShortcutWidget>
<Customize1Shortcut>0</Customize1Shortcut>
<Shortcut1Type />
@@ -443,7 +451,7 @@
<Uid>0x2001f47f</Uid>
<BundleIdentifier>0</BundleIdentifier>
<TemplateIdentifier>0</TemplateIdentifier>
- <LockingStatus>permanent</LockingStatus>
+ <LockingStatus>none</LockingStatus>
<ShortcutWidget>0</ShortcutWidget>
<Customize1Shortcut>0</Customize1Shortcut>
<Shortcut1Type />
--- a/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286eb.gcfml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286eb.gcfml Wed Sep 15 12:00:00 2010 +0300
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1" condition="${VGA_HomescreenPlugins_3.SupportVga}">
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
Binary file idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebmanifest.confml has changed
--- a/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebmanifest.gcfml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebmanifest.gcfml Wed Sep 15 12:00:00 2010 +0300
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1" condition="${VGAHomescreen3manifest.SupportVga}">
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
Binary file idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebxuikon.confml has changed
--- a/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebxuikon.gcfml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebxuikon.gcfml Wed Sep 15 12:00:00 2010 +0300
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1" condition="${VGAHomescreen3XuikonFolder.SupportVga}">
<tag name="target" value="core"/>
<tag name="target" value="rofs2"/>
<tag name="target" value="rofs3"/>
--- a/idlehomescreen/data/vga_tch/view3_200286eb/group/bld.inf Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/group/bld.inf Wed Sep 15 12:00:00 2010 +0300
@@ -65,7 +65,7 @@
//***********************
../rom/view_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(view3_200286eb_resources.iby)
../rom/view_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view3_200286eb_customer.iby)
-../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view3_200286eb_variant.iby)
+//../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view3_200286eb_variant.iby)
//../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view3_200286eb.iby)
--- a/idlehomescreen/data/vga_tch/view3_200286eb/hsps/00/viewconfiguration.xml Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/hsps/00/viewconfiguration.xml Wed Sep 15 12:00:00 2010 +0300
@@ -13,7 +13,7 @@
<plugins>
<plugin uid="0x200286e6" bundle_id="0" template_id="0" locking_status="permanent"/>
<plugin uid="0x200286e7" bundle_id="0" template_id="0" locking_status="permanent"/>
- <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="permanent"/>
+ <plugin uid="0x200255b6" bundle_id="0" template_id="0" locking_status="permanent"/>
<plugin uid="0x20018eee" bundle_id="0" template_id="0" locking_status="none"/>
<plugin uid="0x20018eee" bundle_id="0" template_id="0" locking_status="none"/>
<plugin uid="0x20018eee" bundle_id="0" template_id="0" locking_status="none"/>
--- a/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/37/view.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/37/view.css Wed Sep 15 12:00:00 2010 +0300
@@ -63,11 +63,11 @@
softkey#msk_ltr
{
- display: block;
+ display: none;
}
softkey#msk_rtl
{
- display: none;
+ display: block;
}
--- a/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/50/view.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/50/view.css Wed Sep 15 12:00:00 2010 +0300
@@ -63,11 +63,11 @@
softkey#msk_ltr
{
- display: block;
+ display: none;
}
softkey#msk_rtl
{
- display: none;
+ display: block;
}
--- a/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/57/view.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/57/view.css Wed Sep 15 12:00:00 2010 +0300
@@ -63,11 +63,11 @@
softkey#msk_ltr
{
- display: block;
+ display: none;
}
softkey#msk_rtl
{
- display: none;
+ display: block;
}
--- a/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/94/view.css Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/94/view.css Wed Sep 15 12:00:00 2010 +0300
@@ -63,11 +63,11 @@
softkey#msk_ltr
{
- display: block;
+ display: none;
}
softkey#msk_rtl
{
- display: none;
+ display: block;
}
--- a/idlehomescreen/inc/xnproperty.h Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/inc/xnproperty.h Wed Sep 15 12:00:00 2010 +0300
@@ -182,6 +182,7 @@
_LIT8( KDate, "date" );
_LIT8( KDay, "day" );
_LIT8( KAmpm, "ampm" );
+ _LIT8( KFaceAdjustmentValue, "face-adjustment-value" );
}
namespace volumecontrol
{
--- a/idlehomescreen/inc/xnuiengine.h Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/inc/xnuiengine.h Wed Sep 15 12:00:00 2010 +0300
@@ -82,18 +82,6 @@
void RenderUIL( CXnNode* aNode = NULL );
/**
- * Calculates the layout of the UI and renders it.
- * This generates full re-layout starting from the given node,
- * regardless of the current dirty set or the active view.
- * I.e. this can be used to layout an inactive view.
- *
- * @since Series 60 5.2
- * @param aNode Starting point for the layout
- * @exception KXnErrLoadLayoutFileFailed Loading the layout file failed.
- */
- void RenderFromNodeL( CXnNode& aNode );
-
- /**
* Calculates the layout of the UI.
*
* @since Series 60 3.1
@@ -102,17 +90,6 @@
void LayoutUIL( CXnNode* aNode = NULL );
/**
- * Calculates the layout of the UI.
- * This generates full re-layout starting from the given node,
- * regardless of the current dirty set or the active view.
- * I.e. this can be used to layout an inactive view.
- *
- * @since Series 60 5.2
- * @param aNode Starting point for the layout
- */
- void LayoutFromNodeL( CXnNode& aNode );
-
- /**
* Gets the root node of the UI. Ownership is not transferred.
*
* @since Series 60 3.1
--- a/idlehomescreen/inc/xnviewswitcher.h Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/inc/xnviewswitcher.h Wed Sep 15 12:00:00 2010 +0300
@@ -98,7 +98,11 @@
*/
void SizeChanged( TRect aRect );
-
+ /**
+ * Stop view switch
+ */
+ void StopViewSwitchL();
+
private: // constructors
/**
Binary file idlehomescreen/widgetmanager/conf/widgetmanager.confml has changed
Binary file idlehomescreen/widgetmanager/conf/widgetmanager_20026F53.crml has changed
--- a/idlehomescreen/widgetmanager/data/widgetmanagerview.rss Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/widgetmanager/data/widgetmanagerview.rss Wed Sep 15 12:00:00 2010 +0300
@@ -41,7 +41,7 @@
RESOURCE AVKON_VIEW r_wm_main_container_view
{
- cba = R_AVKON_SOFTKEYS_OPTIONS_BACK;
+ cba = r_wm_softkeys_options_back__store;
menubar = r_wm_main_container_options_menu;
toolbar = 0;
}
@@ -51,6 +51,28 @@
txt = qtn_wm_title_text;
}
+RESOURCE CBA r_wm_softkeys_options_back__store
+ {
+ flags = EEikButtonGroupAddToStack | EEikCbaFlagAppMskIcon;
+ buttons =
+ {
+ CBA_BUTTON {id=EAknSoftkeyOptions; txt = text_softkey_option;},
+ CBA_BUTTON {id=EAknSoftkeyBack; txt = text_softkey_back; },
+ AVKON_CBA_BUTTON{id=EWmStoreCommand; longpressid=0; txt= ""; }
+ };
+ }
+
+RESOURCE CBA r_wm_softkeys_options_cancel__store
+ {
+ flags = EEikButtonGroupAddToStack | EEikCbaFlagAppMskIcon;
+ buttons =
+ {
+ CBA_BUTTON {id=EAknSoftkeyOptions; txt = text_softkey_option;},
+ CBA_BUTTON {id=EAknSoftkeyCancel; txt = text_softkey_cancel; },
+ AVKON_CBA_BUTTON{id=EWmStoreCommand; longpressid=0; txt= ""; }
+ };
+ }
+
// ----------------------------------------------------
// MENU
// ----------------------------------------------------
@@ -72,12 +94,6 @@
{
MENU_ITEM
{
- command = EWmMainContainerViewOpenPortalMenuItemCommand;
- txt = qtn_options_wm_open;
- flags = EEikMenuItemAction;
- },
- MENU_ITEM
- {
command = EWmMainContainerViewAddMenuItemCommand;
txt = qtn_options_wm_add;
flags = EEikMenuItemAction;
@@ -124,25 +140,21 @@
}
// ----------------------------------------------------
-// OVI STORE BUTTON
+// Ovi store related
// ----------------------------------------------------
-
-RESOURCE AVKON_BUTTON r_wm_portal_button
+RESOURCE TBUF r_qtn_wm_ovi_store_title
{
- flags = 0;
- states =
- {
- AVKON_BUTTON_STATE
- {
- flags = 0;
- txt = qtn_wm_ovi_store_title;
- }
- };
+ buf = qtn_wm_ovi_store_title;
}
-RESOURCE TBUF r_qtn_wm_go_to_ovi_store
+RESOURCE TBUF r_qtn_wm_ovi_store_desc
{
- buf = qtn_wm_ovi_store_title;
+ buf = qtn_wm_ovi_store_desc;
+ }
+
+RESOURCE TBUF r_qtn_wm_storelist_title
+ {
+ buf = qtn_wm_storelist_title;
}
// ----------------------------------------------------
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/gfx/qgn_menu_shopping.svg Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="27px" version="1.1" viewBox="-0.004 -0.003 27 27" width="27px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<path d="M26.492,1.494c0-0.552-0.448-1-1-1h-4c-1.154,0-1.08,1.55-1.273,2H3.992c-0.413,0-0.79,0.172-1.036,0.472 c-0.245,0.3-0.339,0.703-0.258,1.106c0,0-0.051,0.748,0,1l1.607,8.04c0.156,0.774,0.896,1.382,1.687,1.382h12.423l1.058,5H5.492 c-0.552,0-1,0.448-1,1c0,0.187,0,0.813,0,1c0,0.33,0.171,0.608,0.418,0.791c-0.259,0.337-0.418,0.753-0.418,1.209 c0,0.174,0,0.826,0,1c0,1.103,0.897,2,2,2s2-0.897,2-2c0-0.174,0-0.826,0-1c0-0.366-0.105-0.705-0.278-1h9.537 c-0.173,0.295-0.278,0.634-0.278,1c0,0.174,0,0.826,0,1c0,1.103,0.897,2,2,2s2-0.897,2-2c0-0.174,0-0.826,0-1 c0-0.386-0.115-0.743-0.306-1.05c0.891-0.042,0.86-1.306,0.697-2.284l-1.479-7.365l1.875-9.301h3.232c0.552,0,1-0.448,1-1 C26.492,2.308,26.492,1.681,26.492,1.494z" fill-opacity="0.25" stroke-opacity="0.25"/>
+<path d="M6.492,22.994c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S7.32,22.994,6.492,22.994z M19.473,22.994c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S20.301,22.994,19.473,22.994z M25.492,1.994h-4 c-0.232,0-0.864,2-0.864,2H3.992c-0.55,0-0.912,0.441-0.804,0.98l1.607,8.039c0.108,0.539,0.646,0.98,1.196,0.98H18.82l1.48,7H5.492 c-0.275,0-0.5,0.225-0.5,0.5s0.225,0.5,0.5,0.5h15.43c0.275,0,0.5-0.225,0.5-0.5c0-0.069-1.647-8.2-1.647-8.2l2.076-10.3h3.642 c0.275,0,0.5-0.225,0.5-0.5S25.768,1.994,25.492,1.994z M12.992,4.994h3.798l-0.404,2h-3.394V4.994z M4.612,6.994l-0.4-2h2.876 l0.293,2H4.612z M5.212,9.994l-0.4-2h2.716l0.293,2H5.212z M5.776,12.816l-0.364-1.822h2.555l0.294,2 C8.261,12.994,5.791,12.89,5.776,12.816z M11.992,12.994H9.27l-0.293-2h3.016V12.994z M11.992,9.994H8.83l-0.293-2h3.455V9.994z M11.992,6.994H8.391l-0.294-2h3.896V6.994z M15.174,12.994h-2.182v-2h2.586L15.174,12.994z M15.78,9.994h-2.788v-2h3.191 L15.78,9.994z M18.814,12.994h-2.62l0.404-2h2.619L18.814,12.994z M19.496,9.61l-0.077,0.384h-2.618l0.403-2h2.618L19.496,9.61z M20.023,6.994h-2.617l0.404-2h2.616L20.023,6.994z" fill-opacity="0.5" stroke-opacity="0.5"/>
+<path d="M6.492,21.994c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S7.32,21.994,6.492,21.994z M19.473,21.994c-0.828,0-1.5,0.672-1.5,1.5s0.672,1.5,1.5,1.5s1.5-0.672,1.5-1.5S20.301,21.994,19.473,21.994z" fill="#E6E6E6"/>
+<rect fill="none" height="26.994" width="26.992"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="6.4351" x2="6.4351" y1="24.3105" y2="21.9602">
+<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<path d="M7.419,22.885c0.157,0,0.311,0.013,0.459,0.036c-0.226-0.544-0.761-0.927-1.386-0.927 c-0.828,0-1.5,0.672-1.5,1.5c0,0.27,0.077,0.519,0.201,0.736C5.454,23.458,6.348,22.885,7.419,22.885z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="19.416" x2="19.416" y1="24.3105" y2="21.9602">
+<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<path d="M20.399,22.885c0.157,0,0.311,0.013,0.459,0.036c-0.226-0.544-0.761-0.927-1.386-0.927 c-0.828,0-1.5,0.672-1.5,1.5c0,0.27,0.077,0.519,0.201,0.736C18.435,23.458,19.328,22.885,20.399,22.885z" fill="url(#SVGID_2_)"/>
+<path d="M6.492,22.994c-0.276,0-0.5,0.224-0.5,0.5s0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5S6.769,22.994,6.492,22.994z M19.473,22.994c-0.276,0-0.5,0.224-0.5,0.5s0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5S19.749,22.994,19.473,22.994z" fill-opacity="0.5" stroke-opacity="0.5"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="14.5811" x2="14.5811" y1="4.3652" y2="36.1848">
+<stop offset="0" style="stop-color:#E6E6E6"/>
+<stop offset="1" style="stop-color:#B2B2B2"/>
+</linearGradient>
+<path d="M25.492,0.994h-4c-0.292,0-0.52,0.285-0.579,0.589l-0.285,1.411H3.992 c-0.55,0-0.912,0.441-0.804,0.98l1.607,8.039c0.108,0.539,0.646,0.98,1.196,0.98H18.82l1.48,7H5.492c-0.275,0-0.5,0.225-0.5,0.5 s0.225,0.5,0.5,0.5h15.43c0.506,0,0.55-0.486,0.461-0.694l-1.608-8.006l2.076-10.3h3.642c0.275,0,0.5-0.225,0.5-0.5 S25.768,0.994,25.492,0.994z M17.811,3.994h2.616l-0.403,2h-2.617L17.811,3.994z M17.204,6.994h2.618l-0.403,2h-2.618L17.204,6.994z M12.992,3.994h3.798l-0.404,2h-3.394V3.994z M4.612,5.994l-0.4-2h2.876l0.293,2H4.612z M5.212,8.994l-0.4-2h2.716l0.293,2H5.212z M5.992,11.994c-0.074,0-0.201-0.104-0.216-0.178L5.412,9.994h2.555l0.294,2H5.992z M11.992,11.994H9.27l-0.293-2h3.016V11.994z M11.992,8.994H8.83l-0.293-2h3.455V8.994z M11.992,5.994H8.391l-0.294-2h3.896V5.994z M15.174,11.994h-2.182v-2h2.586 L15.174,11.994z M15.78,8.994h-2.788v-2h3.191L15.78,8.994z M16.194,11.994l0.404-2h2.619l-0.403,2H16.194z" fill="url(#SVGID_3_)"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_4_" x1="14.918" x2="14.5508" y1="9.8672" y2="2.0019">
+<stop offset="0" style="stop-color:#FFFFFF;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#FFFFFF"/>
+</linearGradient>
+<path d="M5.941,8.994H5.212l-0.4-2h2.716l0.139,0.947c0.308-0.169,0.615-0.338,0.938-0.494L8.537,6.994h1.089 c1.063-0.452,2.188-0.836,3.366-1.145V3.994h3.798l-0.238,1.179c0.346-0.042,0.691-0.083,1.043-0.112l0.216-1.066h2.616 l-0.195,0.967c0.341,0.004,0.677,0.021,1.014,0.036l0.605-3.003h3.642c0.275,0,0.5-0.225,0.5-0.5s-0.225-0.5-0.5-0.5h-4 c-0.235,0-0.506,0.216-0.579,0.589l-0.285,1.411H3.992c-0.55,0-0.912,0.441-0.804,0.98l1.236,6.184 C4.898,9.75,5.406,9.363,5.941,8.994z M11.992,3.994v2H8.391l-0.294-2H11.992z M7.088,3.994l0.293,2H4.612l-0.4-2H7.088z" fill="url(#SVGID_4_)"/>
+</svg>
--- a/idlehomescreen/widgetmanager/group/widgetmanager.mmp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/widgetmanager/group/widgetmanager.mmp Wed Sep 15 12:00:00 2010 +0300
@@ -48,7 +48,7 @@
SOURCE wmpersistentwidgetorder.cpp
SOURCE wmeffectmanager.cpp
SOURCE wmdetailsdlg.cpp
-SOURCE wmportalbutton.cpp
+SOURCE wmstore.cpp
SOURCE wmwidgetloaderao.cpp
SOURCE wmconfiguration.cpp
SOURCE wminstaller.cpp
--- a/idlehomescreen/widgetmanager/group/wmicons.txt Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/widgetmanager/group/wmicons.txt Wed Sep 15 12:00:00 2010 +0300
@@ -1,2 +1,3 @@
-c32,8 qgn_menu_hswidget
-c32,8 qgn_menu_ovistore.svg
+-c32,8 qgn_menu_shopping.svg
\ No newline at end of file
--- a/idlehomescreen/widgetmanager/inc/widgetmanager.hrh Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/widgetmanager/inc/widgetmanager.hrh Wed Sep 15 12:00:00 2010 +0300
@@ -32,9 +32,9 @@
EWmMainContainerViewSortAlphaMenuItemCommand,
EWmMainContainerViewUninstallMenuItemCommand,
EWmMainContainerViewHelpMenuItemCommand,
- EWmMainContainerViewOpenPortalMenuItemCommand,
EWmMainContainerViewBackMenuItemCommand,
- EWmMainContainerViewWiddetDetailsMenuItemCommand
+ EWmMainContainerViewWiddetDetailsMenuItemCommand,
+ EWmStoreCommand
};
enum TWmMenuCmdIDs
--- a/idlehomescreen/widgetmanager/inc/wmcommon.h Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/widgetmanager/inc/wmcommon.h Wed Sep 15 12:00:00 2010 +0300
@@ -35,12 +35,9 @@
// UI component ID's
enum TWmUiControlIds
{
- EPortalOne = 0x1,
- EPortalTwo,
- ELastPortal,
- EWidgetsList,
+ EWidgetsList = 0x1,
EFindBox,
- EMaximumWidgets = 0xC8
+ ELastCtrl
};
#endif //WMCOMMON_H
--- a/idlehomescreen/widgetmanager/inc/wmconfiguration.h Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/widgetmanager/inc/wmconfiguration.h Wed Sep 15 12:00:00 2010 +0300
@@ -21,6 +21,7 @@
// INCLUDE FILES
#include <e32base.h>
+#include "wmstore.h"
// FORWARD DECLARATIONS
class CRepository;
@@ -36,10 +37,11 @@
public: // constructors and destructor
- /** Operator Application type */
- enum TOpAppType
+ /** Store's Application type */
+ enum TStoreAppType
{
EUnknown,
+ EOviCwrt,
ES60,
ECwrt,
EWrt,
@@ -64,70 +66,22 @@
void ConstructL();
public: // API
-
- /**
- * Number of portal buttons (1 or more)
- */
- TInt PortalButtonCount();
-
- /**
- * Label text to be displayed on a portal button
- * @param aIndex index of the button, starting at 0
- */
- const TDesC& PortalButtonText( TInt aIndex );
-
+
/**
- * Icon to be displayed on a portal button
- * Logo syntax follows the widget icon syntax in CWmImageConverter
- * @param aIndex index of the button, starting at 0
+ * Number of Stores
*/
- const TDesC& PortalButtonIcon( TInt aIndex );
-
- /**
- * Returns url to for browser by button index
- * @param aIndex index of the button, starting at 0
- */
- const TDesC& PortalButtonBrowserUrl( TInt aIndex );
-
- /**
- * Returns client uid by button index
- * @param aIndex index of the button, starting at 0
- */
- TUid PortalButtonClientUid( TInt aIndex );
+ TInt StoreCount();
/**
- * Returns client parameter by button index
- * @param aIndex index of the button, starting at 0
+ * Returns Store configuration array ref
*/
- const TDesC& PortalButtonClientParam( TInt aIndex );
-
- /**
- * Returns bool if buttons are mirrored.
- * @return true when operator button on left on portraid and
- * on top on landscape.
- */
- TBool PortalButtonsMirrored();
+ const RPointerArray<CWmConfItem>& StoreConfArray();
/**
- * Returns application type by button index
- * @param aIndex button index
- * @return application type
- */
- TOpAppType PortalButtonApplicationType( TInt aIndex );
-
- /**
- * Returns application id as string
- * @param aIndex button index
- * @param aOperatorAppId string to get app id
- */
- void PortalButtonApplicationId( TInt aIndex, TDes& aOperatorAppId );
-
- /**
- * Returns application id as uid
- * @param aIndex button index
- * @param aOperatorAppId uid to get app id
- */
- void PortalButtonApplicationId( TInt aIndex, TUid& aOperatorAppId );
+ * To compare orders
+ */
+ static TInt CompareStoreOrder(
+ const CWmConfItem& aItemOne, const CWmConfItem& aItemTwo );
private: // New functions
@@ -137,15 +91,15 @@
void ReadInt32Parameter( TInt aKey, TInt32& aValue );
void ReadIntParameter( TInt aKey, TInt& aValue );
HBufC* ReadLocalisedParameterL( TInt aOffset );
- void ReadOperatorApplicationInfoL();
+ void ReadApplicationInfoL( TInt aKey, CWmConfItem& aConfItem );
TUid StringToUid( const TDesC& aStr );
/** Returns uid of the widget with a particular bundle identifier. */
TUid FetchWidgetUidFromRegistryL( const TDesC& aBundleId );
- /** sets operator icon to button if not already defined */
- void SetOperatorIconL( TUid aUid );
-
+ /** sets Store icon to if not already defined */
+ void SetStoreIconL( CWmConfItem& aConfItem );
+
private:
/**
@@ -163,73 +117,123 @@
* system language
*/
TInt iLanguageIndex;
-
- /**
- * OVI store button text
- */
- HBufC* iOviButtonTitle;
-
- /**
- * OVI store button icon
- */
- HBufC* iOviButtonIcon;
/**
- * OVI store button widget client param
+ * Array of configuration items. Array is in order as they should appear in UI
+ */
+ RPointerArray<CWmConfItem> iConfItems;
+ };
+
+
+/**
+ * Configuration item class for Widget Manager
+ *
+ * @class CWmConfiguration
+ */
+NONSHARABLE_CLASS( CWmConfItem ) : public CBase
+ {
+ public: // constructors and destructor
+
+ /** Two-phased constructors. */
+ static CWmConfItem* NewL();
+
+ static CWmConfItem* NewLC();
+
+ /** Destructor */
+ ~CWmConfItem();
+
+ private:
+ /** constructor */
+ CWmConfItem();
+
+ /** 2nd phase constructor */
+ void ConstructL();
+
+public: // API
+ /**
+ * Returns Store id
*/
- HBufC* iOviStoreClientParam;
+ CWmStore::TStoreId Id();
/**
- * OVI store laucher uid
+ * Returns Label text to be displayed on a Store
*/
- TUid iOviStoreUid;
+ const TDesC& Title();
/**
- * OPERATOR button text
+ * Returns Icon to be displayed on a Store
+ * Logo syntax follows the widget icon syntax in CWmImageConverter
*/
- HBufC* iOperatorButtonTitle;
-
+ const TDesC& Icon();
+
/**
- * OPERATOR store icon
+ * Returns Order of Store
*/
- HBufC* iOperatorButtonIcon;
+ TInt Order();
/**
- * OPERATOR store button browser Url
+ * Returns url to for browser
+ */
+ const TDesC& BrowserUrl();
+
+ /**
+ * Returns application type
*/
- HBufC* iOperatorButtonUrl;
+ CWmConfiguration::TStoreAppType AppType();
+
+ /**
+ * Returns application uid
+ */
+ TUid AppUid();
/**
- * OPERATOR store button application parameter
+ * Returns application parameter by index
*/
- HBufC* iOperatorParam;
+ const TDesC& AppParam();
+
+private:
+ /**
+ * Store Id
+ */
+ CWmStore::TStoreId iId;
/**
- * OPERATOR store application id as string. Used for java
+ * Store text
*/
- HBufC* iOperatorAppIdStr;
+ HBufC* iTitle;
/**
- * OPERATOR store application id as uid.
+ * Store icon
*/
- TUid iOperatorAppIdUid;
-
+ HBufC* iIcon;
+
/**
- * OPERATOR store application type
+ * Store order
*/
- TOpAppType iOperatorAppType;
-
+ TInt iOrder;
+
+ /**
+ * Store browser Url
+ */
+ HBufC* iUrl;
+
/**
- * Tells if operator button is enabled.
+ * Application type
*/
- TBool iOperatorButtonEnabled;
-
+ CWmConfiguration::TStoreAppType iAppType;
+
/**
- * Tells if buttons need to be mirrored for operator.
+ * Application uid
*/
- TBool iButtonsMirrored;
- };
-
+ TUid iAppUid;
+
+ /**
+ * Application parameter
+ */
+ HBufC* iAppParam;
+
+ friend class CWmConfiguration;
+ };
#endif // WMCONFIGURATION_H
// End of File
--- a/idlehomescreen/widgetmanager/inc/wmcrkeys.h Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/widgetmanager/inc/wmcrkeys.h Wed Sep 15 12:00:00 2010 +0300
@@ -20,60 +20,62 @@
#define __WMCRKEYS_H__
// WidgetManager CR key
-const TUint32 KCrWidgetManagerm = 0x20026F53;
+const TUint32 KCrWidgetManager = 0x20026F53;
+
+// ************************************************************
+// NON-LOCALISED parameters
+// ************************************************************
+
+/** */
+const TUint32 KOviStoreEnabled = 0x1;
+
+/** */
+const TUint32 KOviOrder = 0x2;
+/** */
+const TUint32 KOviUid = 0x3;
+/** */
+const TUint32 KOviAppParam = 0x4;
+
+/** */
+const TUint32 KStoreEnabled = 0x5;
+
+/** */
+const TUint32 KOrder = 0x6;
// ************************************************************
// LOCALISED parameters start here
-// Key Id's from 0x1 to 0x1E are reserved for languages.
-// LangId_0 0x1
-// OperatorUrl_0 0x2
-// OperatorButtonText_0 0x3
+// KLangId_0 0x7
+// KUrl_0 0x8
+// KTitle_0 0x9
// ...
-// LangId_1 0x4
+// KLangId_1 0xA
// ...
-// LangId_9 0x1C
-// OperatorUrl_9 0x1D
-// OperatorButtonText_9 0x1E
+// KLangId_9 0x22
+// KUrl_9 0x23
+// KTitle_9 0x24
// ************************************************************
/** localised set #0, language ID */
-const TUint32 KLangId0 = 0x1;
-/** localised set #0, Operator button URL */
-const TUint32 KOperatorButtonUrl0 = 0x2;
-/** localised set #0, Operator button text */
-const TUint32 KOperatorButtonText0 = 0x3;
+const TUint32 KLangId_0 = 0x7;
+/** localised set #0, store URL */
+const TUint32 KUrl_0 = 0x8;
+/** localised set #0, store text */
+const TUint32 KTitle_0 = 0x9;
/** localised set #1, language ID */
-const TUint32 KLangId1 = 0x4;
+const TUint32 KLangId_1 = 0xA;
/** localised set #9, language ID */
-const TUint32 KLangId9 = 0x1C;
-
+const TUint32 KLangId_9 = 0x22;
// ************************************************************
-// NON-LOCALISED OVI parameters
+// NON-LOCALISED parameters
// ************************************************************
-/** Key to Ovi Store Client param */
-const TUint32 KOviStoreClientParam = 0x1F;
-
-/** Key to Ovi Store client Uid */
-const TUint32 KOviStoreUid = 0x20;
-
-// ************************************************************
-// NON-LOCALISED Operator parameters
-// ************************************************************
-
-/** Key to Operator button icon */
-const TUint32 KOperatorButtonEnabled = 0x21;
-
-/** Key to Operator button icon */
-const TUint32 KOperatorButtonIcon = 0x22;
-
/**
- * Key to Operator application type and id.
+ * Key to Store application type and id.
* Give ':' as separator between type and id.
* Type can be s60, cwrt, wrt, java, qt
* Examples:
@@ -83,16 +85,13 @@
* java:c:/sys/bin/javastore.jar full path for java app
* qt:0x2001A9CA Application Uid as id
*/
-const TUint32 KOperatorAppTypeAndId = 0x23;
-
-/** Key to Operator application param */
-const TUint32 KOperatorParam = 0x24;
+const TUint32 KAppTypeAndId = 0x25;
-/**
- * Key to define if operator button needs to be placed to left in landscape and
- * top on portraid. By default it's right and bottom.
- */
-const TUint32 KOperatorButtonHigherPriority = 0x25;
+/** */
+const TUint32 KAppParam = 0x26;
+
+/** Key to Store icon */
+const TUint32 KIcon = 0x27;
#endif // __WMCRKEYS_H__
--- a/idlehomescreen/widgetmanager/inc/wmimageconverter.h Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/widgetmanager/inc/wmimageconverter.h Wed Sep 15 12:00:00 2010 +0300
@@ -57,6 +57,7 @@
* @param aIconStr str containing logo icon
* @param aBitmap bitmap to create. Empty if fails
* @param aMask mask to create. Empty if fails
+ * @param aForceScale force scaling for non-scalable icons.
* Supported values:
* - skin(<major id> <minor id>):mif(<path> <bitmapid> <maskid>)
* - mif(<path> <bitmapid> <maskid>)
@@ -69,7 +70,8 @@
const TSize& aIconSize,
const TDesC& aIconStr,
CFbsBitmap*& aBitmap,
- CFbsBitmap*& aMask );
+ CFbsBitmap*& aMask,
+ TBool aForceScale = EFalse );
/**
* Parses icon string and resizes given bitmaps if needed.
@@ -85,6 +87,25 @@
const TDesC& aIconStr,
CFbsBitmap& aBitmap,
CFbsBitmap& aMask );
+
+ /**
+ * Parses icon string.
+ *
+ * @param aIconStr icon string to be parsed
+ * @param aItemId fetched skin id
+ * @param aBitmapId fetched bitmap id
+ * @param aMaskId fetched mask id
+ * @param aFileName fetched file name
+ *
+ * @return ETrue if success with parsing.
+ */
+
+ TBool ParseIconString(
+ const TDesC& aIconStr,
+ TAknsItemID& aItemId,
+ TInt& aBitmapId,
+ TInt& aMaskId,
+ TDes& aFileName );
private:
CWmImageConverter();
@@ -92,20 +113,23 @@
private:
void CheckSvgErrorL( MSvgError* aError );
- void HandleIconStringL( const TSize& aIconSize, const TDesC& aIconStr );
+ void HandleIconStringL(
+ const TSize& aIconSize,
+ const TDesC& aIconStr,
+ TBool aForceScale );
- void CreateIconFromUidL( const TUid& aUid );
+ void CreateIconFromUidL( const TUid& aUid, TBool aForceScale );
void CreateIconFromSvgL( const TDesC& aFileName );
- void CreateIconFromOtherL( const TDesC& aFileName );
+ void CreateIconFromOtherL( const TDesC& aFileName, TBool aForceScale );
void CreateSkinOrMifIconL(
const TAknsItemID& aItemId, TInt aBitmapId,
TInt aMaskId, const TDesC& aFileName );
// resolvers
- TBool ResolveUid( const TDesC& aPath, TUid& aUid );
- TBool ResolveSkinId( const TDesC& aPath, TAknsItemID& aItemId );
- TBool ResolveMifId( const TDesC& aPath, TInt& aBitmapId,
+ TBool ResolveUid( const TDesC& aStr, TUid& aUid );
+ TBool ResolveSkinId( const TDesC& aStr, TAknsItemID& aItemId );
+ TBool ResolveMifId( const TDesC& aStr, TInt& aBitmapId,
TInt& aMaskId, TDes& aFileName );
- TBool ResolveSkinIdAndMifId( const TDesC& aPath, TAknsItemID& aItemId,
+ TBool ResolveSkinIdAndMifId( const TDesC& aStr, TAknsItemID& aItemId,
TInt& aBitmapId, TInt& aMaskId, TDes& aFileName );
TBool EndsWith( const TDesC& aString, const TDesC& aPattern );
--- a/idlehomescreen/widgetmanager/inc/wmmaincontainer.h Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/widgetmanager/inc/wmmaincontainer.h Wed Sep 15 12:00:00 2010 +0300
@@ -38,7 +38,7 @@
class CAknSearchField;
class CCoeControl;
class CAknSearchField;
-class CWmPortalButton;
+class CWmStore;
class CWmMainContainerView;
class CWmConfiguration;
@@ -94,11 +94,6 @@
TBool IsLoadingWidgets();
/**
- * @return true, if portal button is currently selected
- */
- TBool PortalSelected();
-
- /**
* @return true, if a widget in list is currently selected
*/
TBool WidgetSelected();
@@ -174,14 +169,9 @@
void UninstallWidgetL();
/**
- * opens currently selected portal
+ * Store menu command.
*/
- void OpenPortalL();
-
- /**
- * Selection key (middle soft key)
- */
- void SelectL();
+ void HandleStoreCommandL();
/**
* Show widget manager help
@@ -226,12 +216,6 @@
* @see CCoeControl::HandlePointerEventL
*/
void HandlePointerEventL( const TPointerEvent& aPointerEvent );
-
- /**
- * Moves focus to the OVI button
- * @param aIndex 0=first button, 1=second (if it exists)
- */
- void SetFocusToPortalButton( TInt aIndex );
/**
* Moves focus to the widgets list, alternatively also setting the currently
@@ -252,17 +236,6 @@
* To set iClosingDown. See above.
*/
void SetClosingDown( TBool aClosingDown );
-
- /**
- * access to WM configuration
- */
- CWmConfiguration& Configuration();
-
- /**
- * Process foregound events.
- * @param aForeground ETrue indicates foreground
- */
- void ProcessForegroundEvent( TBool aForeground );
/**
* access to WM list
@@ -314,28 +287,22 @@
private: // New functions
+ void DisplayAndLaunchStoresL();
+ static void CleanupIconArray( TAny* aIconArray );
+
void AddControlL( CCoeControl* aControl, TInt aControlId );
void InitializeControlsL( const TRect& aRect );
void LayoutControls();
void StartLoadingWidgetsL();
void RemoveCtrlsFromStack();
- void UpdateFocusMode();
- void ResetFocus( TDrawNow aDrawNow = ENoDrawNow );
CCoeControl* FindChildControlByPoint( const TPoint& aPoint );
void HandleFindSizeChanged();
- TKeyResponse MoveFocusByKeys(
- const TKeyEvent& aKeyEvent,
- TEventCode aType );
- TKeyResponse HandleButtonKeyEventL(
- const TKeyEvent& aKeyEvent,
- TEventCode aType );
TKeyResponse HandleListKeyEventL(
const TKeyEvent& aKeyEvent,
TEventCode aType );
TKeyResponse HandleSearchKeyEventL(
const TKeyEvent& aKeyEvent,
TEventCode aType );
- TInt OperatorButtonHigherPriority( TInt aIndex );
public: // from MWmWidgetloaderObserver
void LoadDoneL( TBool aWidgetListChanged );
@@ -366,55 +333,23 @@
* background
*/
CAknsBasicBackgroundControlContext* iBgContext;
-
- /**
- * portal button
- * (if there is only one button, this is it)
- */
- CWmPortalButton* iPortalButtonOne;
/**
- * portal button
- * (if there is only one button, this is NULL)
- */
- CWmPortalButton* iPortalButtonTwo;
-
- /** whether we are orientated in landscape */
- TBool iLandscape;
-
- /** whether we have mirrored layout */
- TBool iMirrored;
-
- /** focus modes */
- enum TWmFocusMode
- {
- ENowhere,
- EPortal,
- EList,
- EFind
- };
-
- /**
- * current widget manager focus mode
- */
- TWmFocusMode iFocusMode;
-
- /**
* AO for loading widgets into the list UI
*/
CWmWidgetLoaderAo* iWidgetLoader;
-
+
+ /**
+ * Currectly selected store.
+ */
+ CWmStore* iSelectedStore;
+
/**
* If this is set to ETrue it means wmview is closing and all user inputs
* should be ignored.
*/
TBool iClosingDown;
- /**
- * The configuration
- */
- CWmConfiguration* iConfiguration;
-
#ifdef _WM_UNIT_TEST
friend class CWmUnitTest;
#endif
--- a/idlehomescreen/widgetmanager/inc/wmmaincontainerview.h Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/widgetmanager/inc/wmmaincontainerview.h Wed Sep 15 12:00:00 2010 +0300
@@ -79,15 +79,7 @@
* @see CAknView::DoActivateL
*/
void DoDeactivate();
-
-public: // from MeikMenuObserver
-
- /**
- * Foreground event handling function.
- * @param aForeground Indicates the required focus state of the control.
- */
- void HandleForegroundEventL( TBool aForeground );
-
+
private:
CWmMainContainerView( CWmPlugin& aWmPlugin );
void ConstructL();
@@ -114,7 +106,6 @@
private:
/** menu commands */
- TBool HandleOpenMenuItemSelectedL();
TBool HandleAddMenuItemSelectedL();
TBool HandleLaunchMenuItemSelectedL();
TBool HandleSearchMenuItemSelectedL();
@@ -125,6 +116,8 @@
TBool HandleDeactivateFindPaneL();
/** setup title in status pane */
void SetTitleL();
+ /** setup msk icon */
+ void UpdateMSKIconL();
private:
/**
@@ -141,7 +134,6 @@
* the plugin root (not owned)
*/
CWmPlugin& iWmPlugin;
-
};
#endif // WMMAINCONTAINERVIEW_H
--- a/idlehomescreen/widgetmanager/inc/wmplugin.h Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/widgetmanager/inc/wmplugin.h Wed Sep 15 12:00:00 2010 +0300
@@ -33,6 +33,7 @@
class CWmEffectManager;
class CWmWidgetData;
class CWmInstaller;
+class CWmConfiguration;
/**
* CWmPlugin
@@ -167,6 +168,11 @@
CWmInstaller& WmInstaller();
/**
+ * reference to iWmConfiguration
+ */
+ CWmConfiguration& Configuration();
+
+ /**
* Get widget by Uid. Used for getting widget details
* when error has occured during uninstallation.
* @param aUid Uid of widget
@@ -251,6 +257,11 @@
*/
TInt iExecutionCount;
+ /**
+ * The configuration
+ */
+ CWmConfiguration* iConfiguration;
+
#ifdef _WM_UNIT_TEST
friend class CWmUnitTest;
#endif
--- a/idlehomescreen/widgetmanager/inc/wmportalbutton.h Tue Sep 14 20:58:58 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,173 +0,0 @@
-/*
-* 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:
-* Declares portal button for WidgetManager
-*
-*/
-
-#ifndef ___WMPORTALBUTTON_H__
-#define ___WMPORTALBUTTON_H__
-
-#include <aknbutton.h> // CAknButton
-#include <AknServerApp.h> //MAknServerAppExitObserver
-
-#include "wmcommon.h"
-
-// FORWARD DECLARATIONS
-class CWmMainContainer;
-class CFbsBitmap;
-class CWmConfiguration;
-class CWmProcessMonitor;
-class CBrowserLauncher;
-class CWmImageConverter;
-
-/**
- * Portal button ( ovi, operator ) class for Wm
- *
- * @class CWmPortalButton wmportalbutton.h
- */
-NONSHARABLE_CLASS( CWmPortalButton ) : public CAknButton,
- public MCoeControlObserver,
- public MAknServerAppExitObserver
- {
-public:
- /*
- * Two-phased constructor.
- *
- * @param aParent button title text
- * @param aPortalButtonIndex index of this button (0 or 1)
- */
- static CWmPortalButton* NewL(
- const CCoeControl* aParent,
- TInt aPortalButtonIndex = 0 );
-
- /** Destructor */
- virtual ~CWmPortalButton();
-
-public: // Functions from base class
-
- /*
- * Draws the control.
- *
- * @see CCoeControl::Draw
- */
- void Draw( const TRect& /*aRect*/ ) const;
-
- /**
- * Sets the control's extent, specifying a rectangle.
- *
- * @see CCoeControl::SizeChanged
- */
- void SizeChanged();
-
- /**
- * Executes action for button pressed
- */
- void ExecuteL();
-
-protected: // from MCoeControlObserver
-
- /** Observes the button's own activity */
- void HandleControlEventL( CCoeControl* aControl, TCoeEvent aEventType );
-
-protected: // from MAknServerAppExitObserver
-
- /** Observes when browser is exited */
- void HandleServerAppExit( TInt aReason );
-
-protected: // from CCoeControl
-
- /** Handles pointer events. */
- void HandlePointerEventL( const TPointerEvent& aPointerEvent );
-
-protected: // Constructors
-
- /** Constructor for performing 1st stage construction */
- CWmPortalButton( const TInt aFlags,
- TInt aPortalButtonIndex );
-
- /** 2nd phase constructor */
- void ConstructL(
- CWmMainContainer* aParent,
- const TDesC& aText = KNullDesC,
- const TDesC& aIcon = KNullDesC );
-
-private:
-
- /** size of button icon, defined in the layout */
- TSize LayoutIconSize() const;
-
- /** Draws text over button */
- void DrawText( CWindowGc& aGc,
- const TDesC& aText,
- TAknTextComponentLayout& aLayout,
- TInt aMargin ) const;
-
- /** Runs ovi store launcher */
- void RunOviL( CWmConfiguration& aConf );
-
- /** Starts browser */
- void StartBrowserL( const TDesC& aUrl );
-
- /** Starts operator application */
- void RunOperatorApplicationL( CWmConfiguration& aConf );
-
- /** Starts rprocess by given values */
- void StartProcessL( TUid aUid, const TDesC& aParam );
-
- /**
- * Opens cwrt/wrt widget to fullscreen.
- * @param aAppUid Uid of the widget
- * @param aParams Optional parameters
- * */
- void StartWidgetL( TUid aAppUid, const TDesC& aParams );
-
-private: //data members
-
- /**
- * the image converter utility
- */
- CWmImageConverter* iImageConverter;
-
- /**
- * Parent control
- */
- CWmMainContainer* iWmMainContainer;
-
- /**
- * Button index
- */
- TInt iPortalButtonIndex;
-
- /** icon */
- CFbsBitmap* iButtonIcon;
-
- /** icon mask */
- CFbsBitmap* iButtonIconMask;
-
- /**
- * Monitors process
- */
- CWmProcessMonitor* iProcessMonitor;
-
- /**
- * Broswer launcher.
- */
- CBrowserLauncher* iBrowserLauncher;
-
- };
-
-#endif //___WMPORTALBUTTON_H__
-
-// End of File
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/inc/wmstore.h Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,169 @@
+/*
+* 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:
+* Declares Store for WidgetManager
+*
+*/
+
+#ifndef ___WMSTORE_H__
+#define ___WMSTORE_H__
+
+#include <AknServerApp.h> //MAknServerAppExitObserver
+
+#include "wmcommon.h"
+
+// FORWARD DECLARATIONS
+class CWmMainContainer;
+class CFbsBitmap;
+class CWmConfiguration;
+class CWmConfItem;
+class CWmProcessMonitor;
+class CBrowserLauncher;
+class CWmImageConverter;
+class CWmResourceLoader;
+
+/**
+ * Store ( ovi, operator ) class for Wm
+ *
+ * @class CWmStore wmStore.h
+ */
+NONSHARABLE_CLASS( CWmStore ) : public CBase,
+ public MAknServerAppExitObserver
+ {
+public:
+ /** Store Id */
+ enum TStoreId
+ {
+ EUnknown = 0,
+ EOvi,
+ EStore1,
+ EStore2, // for future use. Can be extented
+ ELastItem // do not use as store id
+ };
+
+ /*
+ * Two-phased constructor.
+ *
+ * @param aStoreIndex index of this Store (0 or 1)
+ * @param aWmConfiguration Store config
+ * @param aResourceLoader wm resource loader
+ */
+ static CWmStore* NewL( CWmConfItem& aWmConfItem,
+ CWmResourceLoader& aResourceLoader );
+
+ /** Destructor */
+ virtual ~CWmStore();
+
+public: // New Functions
+
+ /**
+ * Executes action for store
+ */
+ void ExecuteL();
+
+ /**
+ * Icon of store
+ *
+ * @return icon of Store ( ownership not transfered )
+ */
+ CFbsBitmap* StoreIcon();
+
+ /**
+ * Mask for icon of store.
+ *
+ * @return mask of Store icon ( ownership not transfered )
+ */
+ CFbsBitmap* StoreMask();
+
+ /**
+ * Heading of store
+ *
+ * @return heading of store.
+ */
+ const TDesC& Heading();
+
+ /**
+ * Order of store
+ *
+ * @return order of store.
+ */
+ TInt Order() const;
+
+protected: // from MAknServerAppExitObserver
+
+ /** Observes when browser is exited */
+ void HandleServerAppExit( TInt aReason );
+
+protected: // Constructors
+
+ /** Constructor for performing 1st stage construction */
+ CWmStore( CWmConfItem& aWmConfItem );
+
+ /** 2nd phase constructor */
+ void ConstructL( CWmResourceLoader& aResourceLoader );
+
+private:
+
+ /** Runs ovi store launcher */
+ void RunOviL();
+
+ /** Starts browser */
+ void StartBrowserL( const TDesC& aUrl );
+
+ /** Starts application */
+ void RunApplicationL();
+
+ /** Starts rprocess by given values */
+ void StartProcessL( TUid aUid, const TDesC& aParam );
+
+ /**
+ * Opens cwrt/wrt widget to fullscreen.
+ * @param aAppUid Uid of the widget
+ * @param aParams Optional parameters
+ * */
+ void StartWidgetL( TUid aAppUid, const TDesC& aParams );
+
+private: //data members
+
+ /**
+ * the image converter utility
+ */
+ CWmImageConverter* iImageConverter;
+
+ /**
+ * Configuration item for store data
+ */
+ CWmConfItem& iWmConfItem;
+
+ /** icon */
+ CFbsBitmap* iIcon;
+
+ /** icon mask */
+ CFbsBitmap* iMask;
+
+ /**
+ * Monitors process
+ */
+ CWmProcessMonitor* iProcessMonitor;
+
+ /**
+ * Broswer launcher.
+ */
+ CBrowserLauncher* iBrowserLauncher;
+
+ };
+
+#endif //___WMSTORE_H__
+
+// End of File
--- a/idlehomescreen/widgetmanager/loc/widgetmanagerview.loc Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/widgetmanager/loc/widgetmanagerview.loc Wed Sep 15 12:00:00 2010 +0300
@@ -96,16 +96,34 @@
// MISC
-
-// d: Text displayed on OVI Store button
+// d: Name of Ovi Store in storelist
// d:
// d:
-// l: wgtman_btn_pane_t1
+// l: list_double_large_graphic_pane_t1
// w:
// r: TB9.2
//
#define qtn_wm_ovi_store_title "Get more"
+// d: Description of Ovi Store in storelist
+// d:
+// d:
+// l: list_double_large_graphic_pane_t2
+// w:
+// r: TB9.2
+//
+#define qtn_wm_ovi_store_desc "Nokia"
+
+// d: Title of the popup storelist
+// d:
+// d:
+// l: heading_pane_t1
+// w:
+// r: TB9.2
+//
+#define qtn_wm_storelist_title "Select"
+
+
// d: Info popup to indicate that an item can not be added to home screen
// d: because current view is full
// d:
--- a/idlehomescreen/widgetmanager/src/wmconfiguration.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/widgetmanager/src/wmconfiguration.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -27,14 +27,15 @@
#include "wmconfiguration.h"
#include "wmresourceloader.h"
#include "wmcrkeys.h"
+#include "wmstore.h"
// some constants regarging the central repository localised section.
// these will ensure CR localisation section compatibility even if
// new strings are added
-const TInt KLangOffsetOperatorUrl = KOperatorButtonUrl0 - KLangId0;
-const TInt KLangOffsetOperatorText = KOperatorButtonText0 - KLangId0;
-const TInt KLangGroupSize = KLangId1 - KLangId0;
-const TUint32 KLastLangId = KLangId9;
+const TInt KLangOffsetStoreUrl = KUrl_0 - KLangId_0;
+const TInt KLangOffsetStoreText = KTitle_0 - KLangId_0;
+const TInt KLangGroupSize = KLangId_1 - KLangId_0;
+const TUint32 KLastLangId = KLangId_9;
_LIT( KOpAppTypeS60, "s60" );
_LIT( KOpAppTypeCwrt, "cwrt" );
@@ -42,7 +43,7 @@
_LIT( KOpAppTypeJava, "java" );
_LIT( KOpAppTypeQt, "qt" );
_LIT( KSeparator, ":" );
-_LIT( KOperatorIcon, "uid(%d)");
+_LIT( KStoreIconFormat, "uid(%d)");
_LIT( KHexPrefix, "0x" );
// ---------------------------------------------------------
@@ -67,15 +68,7 @@
CWmResourceLoader& aResourceLoader )
: iResourceLoader( aResourceLoader )
{
-
- // ovi
- iOviStoreUid = KNullUid;
-
- // operator
- iOperatorAppIdUid = KNullUid;
- iOperatorAppType = EUnknown;
- iOperatorButtonEnabled = EFalse;
- iButtonsMirrored = EFalse;
+
}
// ---------------------------------------------------------
@@ -84,17 +77,8 @@
//
CWmConfiguration::~CWmConfiguration()
{
- delete iRepository;
- // ovi
- delete iOviStoreClientParam;
- delete iOviButtonTitle;
- delete iOviButtonIcon;
- // operator
- delete iOperatorButtonTitle;
- delete iOperatorButtonIcon;
- delete iOperatorButtonUrl;
- delete iOperatorParam;
- delete iOperatorAppIdStr;
+ delete iRepository;
+ iConfItems.ResetAndDestroy();
}
// ---------------------------------------------------------
@@ -103,24 +87,8 @@
//
void CWmConfiguration::ConstructL()
{
- // localised ovistore button text
- iOviButtonTitle = StringLoader::LoadL( R_QTN_WM_GO_TO_OVI_STORE );
-
- // ovistore icon descriptor. It will look something like this:
- // skin( 0x101f86e3 0x23f6 ):mif( z:\resource\apps\widgetmanager.mif 16388 16389 )
- _LIT( KSkinMifIconFormat, "skin( 0x%x 0x%x ):mif( %S %d %d )");
- const TInt KMaxIconDescriptorLength = 256;
- TBuf<KMaxIconDescriptorLength> buf;
- buf.Format( KSkinMifIconFormat(),
- EAknsMajorGeneric, EAknsMinorGenericQgnMenuOviStore,
- &iResourceLoader.IconFilePath(),
- EMbmWidgetmanagerQgn_menu_ovistore,
- EMbmWidgetmanagerQgn_menu_ovistore_mask );
- iOviButtonIcon = buf.AllocL();
-
// read data from repository
TRAP_IGNORE( LoadConfigurationL(); );
-
}
// ---------------------------------------------------------
@@ -130,25 +98,75 @@
void CWmConfiguration::LoadConfigurationL()
{
iRepository = CRepository::NewL(
- TUid::Uid( KCrWidgetManagerm ) );
+ TUid::Uid( KCrWidgetManager ) );
+
+ TLinearOrder<CWmConfItem> order
+ = CWmConfiguration::CompareStoreOrder;
// read Ovi parameters
- ReadInt32Parameter( KOviStoreUid, iOviStoreUid.iUid );
- iOviStoreClientParam = ReadDescParameterL( KOviStoreClientParam );
-
- // read operator parameters if operator button enabled
- ReadIntParameter( KOperatorButtonEnabled, iOperatorButtonEnabled );
- if ( iOperatorButtonEnabled )
+ TInt oviEnabled;
+ ReadIntParameter( KOviStoreEnabled, oviEnabled );
+ if ( oviEnabled )
{
- // determine language and read localised parameters
+ CWmConfItem* ovi = CWmConfItem::NewLC();
+ ovi->iId = CWmStore::EOvi;
+
+ // localised ovistore text
+ _LIT( KFormatStr, "%S\t%S");
+ HBufC* title = StringLoader::LoadLC( R_QTN_WM_OVI_STORE_TITLE );
+ HBufC* desc = StringLoader::LoadLC( R_QTN_WM_OVI_STORE_DESC );
+
+ ovi->iTitle = HBufC::NewL( title->Des().Length() +
+ desc->Des().Length() +
+ KFormatStr().Length() );
+
+ ovi->iTitle->Des().Format( KFormatStr(), title, desc );
+
+ CleanupStack::PopAndDestroy( desc );
+ CleanupStack::PopAndDestroy( title );
+
+ // ovistore icon descriptor. It will look something like this:
+ // skin( 0x101f86e3 0x23f6 ):mif( z:\resource\apps\widgetmanager.mif 16388 16389 )
+ _LIT( KSkinMifIconFormat, "skin( 0x%x 0x%x ):mif( %S %d %d )");
+ const TInt KMaxIconDescriptorLength = 256;
+ TBuf<KMaxIconDescriptorLength> buf;
+ buf.Format( KSkinMifIconFormat(),
+ EAknsMajorGeneric, EAknsMinorGenericQgnMenuOviStore,
+ &iResourceLoader.IconFilePath(),
+ EMbmWidgetmanagerQgn_menu_ovistore,
+ EMbmWidgetmanagerQgn_menu_ovistore_mask );
+ ovi->iIcon = buf.AllocL();
+
+ ReadIntParameter( KOviOrder, ovi->iOrder );
+ ReadInt32Parameter( KOviUid, ovi->iAppUid.iUid );
+ ovi->iAppParam = ReadDescParameterL( KOviAppParam );
+
+ // Item to Array
+ iConfItems.InsertInOrderL( ovi, order );
+ CleanupStack::Pop( ovi );
+ }
+
+ // read Store parameters if Store enabled
+ TInt storeEnabled = 0;
+ ReadIntParameter( KStoreEnabled, storeEnabled );
+ if ( storeEnabled )
+ {
iLanguageIndex = FindCorrectLanguageId();
- iOperatorButtonTitle = ReadLocalisedParameterL( KLangOffsetOperatorText );
- iOperatorButtonUrl = ReadLocalisedParameterL( KLangOffsetOperatorUrl );
+
+ CWmConfItem* op = CWmConfItem::NewLC();
+ op->iId = CWmStore::EStore1;
+
+ op->iTitle = ReadLocalisedParameterL( KLangOffsetStoreText );
+ op->iUrl = ReadLocalisedParameterL( KLangOffsetStoreUrl );
// read non-localised parameters
- iOperatorButtonIcon = ReadDescParameterL( KOperatorButtonIcon );
- ReadOperatorApplicationInfoL();
- iOperatorParam = ReadDescParameterL( KOperatorParam );
- ReadIntParameter( KOperatorButtonHigherPriority, iButtonsMirrored );
+ op->iIcon = ReadDescParameterL( KIcon );
+ ReadApplicationInfoL( KAppTypeAndId, *op );
+ op->iAppParam = ReadDescParameterL( KAppParam );
+ ReadIntParameter( KOrder, op->iOrder );
+
+ // Item to Array
+ iConfItems.InsertInOrderL( op, order );
+ CleanupStack::Pop( op );
}
delete iRepository;
@@ -167,7 +185,7 @@
TLanguage sysLang = User::Language();
//read language id's from cenrep, find a match
- for( TUint32 i=KLangId0; i<=KLastLangId && languageIndex<0; i+=KLangGroupSize )
+ for( TUint32 i=KLangId_0; i<=KLastLangId && languageIndex<0; i+=KLangGroupSize )
{
TInt crLang = 0;
if ( iRepository->Get( i, crLang ) == KErrNone )
@@ -246,7 +264,7 @@
if ( err != KErrNone || buf.Length() == 0 )
{
// This language is empty. Try default language (index 0)
- err = iRepository->Get( KLangId0 + aOffset, buf );
+ err = iRepository->Get( KLangId_0 + aOffset, buf );
}
// construct string in heap
@@ -259,12 +277,13 @@
}
// ---------------------------------------------------------
-// CWmConfiguration::ReadOperatorApplicationInfoL
+// CWmConfiguration::ReadApplicationInfoL
// ---------------------------------------------------------
//
-void CWmConfiguration::ReadOperatorApplicationInfoL()
+void CWmConfiguration::ReadApplicationInfoL(
+ TInt aKey, CWmConfItem& aConfItem )
{
- HBufC* applicationInfo = ReadDescParameterL( KOperatorAppTypeAndId );
+ HBufC* applicationInfo = ReadDescParameterL( aKey );
if ( applicationInfo && applicationInfo->Des().Length() > 0 )
{
CleanupStack::PushL( applicationInfo );
@@ -280,34 +299,32 @@
if ( !type.Compare( KOpAppTypeS60 ) )
{
- iOperatorAppType = ES60;
- iOperatorAppIdUid = StringToUid( appId );
- SetOperatorIconL( iOperatorAppIdUid );
+ aConfItem.iAppType = ES60;
+ aConfItem.iAppUid = StringToUid( appId );
+ SetStoreIconL( aConfItem );
}
else if ( !type.Compare( KOpAppTypeCwrt ) )
{
- iOperatorAppType = ECwrt;
- iOperatorAppIdUid = FetchWidgetUidFromRegistryL( appId );
- SetOperatorIconL( iOperatorAppIdUid );
+ aConfItem.iAppType = ECwrt;
+ aConfItem.iAppUid = FetchWidgetUidFromRegistryL( appId );
+ SetStoreIconL( aConfItem );
}
else if ( !type.Compare( KOpAppTypeWrt ) )
{
- iOperatorAppType = EWrt;
- iOperatorAppIdUid = FetchWidgetUidFromRegistryL( appId );
- SetOperatorIconL( iOperatorAppIdUid );
+ aConfItem.iAppType = EWrt;
+ aConfItem.iAppUid = FetchWidgetUidFromRegistryL( appId );
+ SetStoreIconL( aConfItem );
}
else if ( !type.Compare( KOpAppTypeJava ) )
{
- //TODO: java support is not fully implemented
+ // java support is not fully implemented
User::Leave( KErrGeneral );
- iOperatorAppType = EJava;
- iOperatorAppIdStr = appId.AllocL();
}
else if ( !type.Compare( KOpAppTypeQt ) )
{
- iOperatorAppType = EQt;
- iOperatorAppIdUid = StringToUid( appId );
- SetOperatorIconL( iOperatorAppIdUid );
+ aConfItem.iAppType = EQt;
+ aConfItem.iAppUid = StringToUid( appId );
+ SetStoreIconL( aConfItem );
}
}
CleanupStack::PopAndDestroy( applicationInfo );
@@ -315,20 +332,21 @@
}
// ---------------------------------------------------------
-// CWmConfiguration::SetOperatorIcon
+// CWmConfiguration::SetStoreIcon
// ---------------------------------------------------------
//
-void CWmConfiguration::SetOperatorIconL( TUid aUid )
+void CWmConfiguration::SetStoreIconL( CWmConfItem& aConfItem )
{
- if ( iOperatorButtonIcon &&
- !iOperatorButtonIcon->Des().Length() )
+ if ( aConfItem.iIcon &&
+ !aConfItem.iIcon->Des().Length() )
{
- delete iOperatorButtonIcon;
- iOperatorButtonIcon = NULL;
- iOperatorButtonIcon = HBufC::NewL(
- KMaxUidName + KOperatorIcon().Length() );
- iOperatorButtonIcon->Des().Format(
- KOperatorIcon(), aUid );
+ delete aConfItem.iIcon;
+ aConfItem.iIcon = NULL;
+
+ aConfItem.iIcon = HBufC::NewL(
+ KMaxUidName + KStoreIconFormat().Length() );
+ aConfItem.iIcon->Des().Format(
+ KStoreIconFormat(), aConfItem.iAppUid );
}
}
@@ -347,137 +365,6 @@
CleanupStack::PopAndDestroy( &clientSession );
return TUid::Uid( ret );
}
-
-// ---------------------------------------------------------
-// CWmConfiguration::PortalButtonCount
-// ---------------------------------------------------------
-//
-TInt CWmConfiguration::PortalButtonCount()
- {
- return ( iOperatorButtonEnabled ? 2 : 1 );
- }
-
-// ---------------------------------------------------------
-// CWmConfiguration::PortalButtonText
-// ---------------------------------------------------------
-//
-const TDesC& CWmConfiguration::PortalButtonText( TInt aIndex )
- {
- if ( aIndex == 0 && iOviButtonTitle )
- return *iOviButtonTitle;
- if ( aIndex == 1 && iOperatorButtonTitle && iOperatorButtonEnabled )
- return *iOperatorButtonTitle;
- return KNullDesC;
- }
-
-// ---------------------------------------------------------
-// CWmConfiguration::PortalButtonIcon
-// ---------------------------------------------------------
-//
-const TDesC& CWmConfiguration::PortalButtonIcon( TInt aIndex )
- {
- if ( aIndex == 0 && iOviButtonIcon )
- return *iOviButtonIcon;
- if ( aIndex == 1 && iOperatorButtonIcon && iOperatorButtonEnabled )
- return *iOperatorButtonIcon;
- return KNullDesC;
- }
-
-// ---------------------------------------------------------
-// CWmConfiguration::PortalButtonBrowserUrl
-// ---------------------------------------------------------
-//
-const TDesC& CWmConfiguration::PortalButtonBrowserUrl( TInt aIndex )
- {
- // No support for ovi here
- if ( aIndex == 1 && iOperatorButtonUrl && iOperatorButtonEnabled )
- return *iOperatorButtonUrl;
- return KNullDesC;
- }
-
-// ---------------------------------------------------------
-// CWmConfiguration::PortalButtonClientUid
-// ---------------------------------------------------------
-//
-TUid CWmConfiguration::PortalButtonClientUid( TInt aIndex )
- {
- if ( aIndex == 0 )
- {
- return iOviStoreUid;
- }
- // operator not supported. Get operator data using
- // PortalButtonApplicationInfoL
- return KNullUid;
- }
-
-// ---------------------------------------------------------
-// CWmConfiguration::PortalButtonClientParam
-// ---------------------------------------------------------
-//
-const TDesC& CWmConfiguration::PortalButtonClientParam( TInt aIndex )
- {
- if ( aIndex == 0 && iOviStoreClientParam )
- {
- return *iOviStoreClientParam;
- }
- if ( aIndex == 1 && iOperatorParam && iOperatorButtonEnabled )
- {
- return *iOperatorParam;
- }
- return KNullDesC;
- }
-
-// ---------------------------------------------------------
-// CWmConfiguration::PortalButtonsMirrored
-// ---------------------------------------------------------
-//
-TBool CWmConfiguration::PortalButtonsMirrored()
- {
- return iButtonsMirrored;
- }
-
-// ---------------------------------------------------------
-// CWmConfiguration::PortalButtonApplicationType
-// ---------------------------------------------------------
-//
-CWmConfiguration::TOpAppType CWmConfiguration::PortalButtonApplicationType(
- TInt aIndex )
- {
- if ( aIndex == 1 )
- {
- return iOperatorAppType;
- }
- // no support for ovi
- return EUnknown;
- }
-
-// ---------------------------------------------------------
-// CWmConfiguration::PortalButtonApplicationId
-// ---------------------------------------------------------
-//
-void CWmConfiguration::PortalButtonApplicationId(
- TInt aIndex, TDes& aOperatorAppId )
- {
- if ( aIndex == 1 )
- {
- aOperatorAppId.Copy( *iOperatorAppIdStr );
- }
- // no support for ovi
- }
-
-// ---------------------------------------------------------
-// CWmConfiguration::PortalButtonApplicationId
-// ---------------------------------------------------------
-//
-void CWmConfiguration::PortalButtonApplicationId(
- TInt aIndex, TUid& aOperatorAppId )
- {
- if ( aIndex == 1 )
- {
- aOperatorAppId = iOperatorAppIdUid;
- }
- // no support for ovi
- }
// ---------------------------------------------------------
// CWmConfiguration::StringToUid
@@ -507,6 +394,168 @@
return KNullUid;
}
+// ---------------------------------------------------------
+// CWmConfiguration::CompareStoreOrder
+// ---------------------------------------------------------
+//
+TInt CWmConfiguration::CompareStoreOrder(
+ const CWmConfItem& aItemOne, const CWmConfItem& aItemTwo )
+ {
+ // 1. zero, if the two objects are equal.
+ // 2. a negative value, if the first object is less than the second.
+ // 3. a positive value, if the first object is greater than the second.
+ TInt ret = 0;
+ if ( aItemOne.iOrder < aItemTwo.iOrder )
+ {
+ ret = -1;
+ }
+ if ( aItemOne.iOrder > aItemTwo.iOrder )
+ {
+ ret = 1;
+ }
+ return ret;
+ }
+
+// ---------------------------------------------------------
+// CWmConfiguration::StoreConfArray
+// ---------------------------------------------------------
+//
+const RPointerArray<CWmConfItem>& CWmConfiguration::StoreConfArray()
+ {
+ return iConfItems;
+ }
+
+// ---------------------------------------------------------
+// CWmConfiguration::StoreCount
+// ---------------------------------------------------------
+//
+TInt CWmConfiguration::StoreCount()
+ {
+ return iConfItems.Count();
+ }
+
+// ---------------------------------------------------------
+// CWmConfItem::NewL
+// ---------------------------------------------------------
+//
+CWmConfItem* CWmConfItem::NewL()
+ {
+ CWmConfItem* self = CWmConfItem::NewLC();
+ CleanupStack::Pop(); // self;
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CWmConfItem::NewLC
+// ---------------------------------------------------------
+//
+CWmConfItem* CWmConfItem::NewLC()
+ {
+ CWmConfItem* self = new ( ELeave ) CWmConfItem();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CWmConfItem::~CWmConfItem
+// ---------------------------------------------------------
+//
+CWmConfItem::~CWmConfItem()
+ {
+ delete iTitle;
+ delete iIcon;
+ delete iUrl;
+ delete iAppParam;
+ }
+
+// ---------------------------------------------------------
+// CWmConfItem::CWmConfItem
+// ---------------------------------------------------------
+//
+CWmConfItem::CWmConfItem()
+ {
+ }
+
+// ---------------------------------------------------------
+// CWmConfItem::ConstructL
+// ---------------------------------------------------------
+//
+void CWmConfItem::ConstructL()
+ {
+ }
+
+// ---------------------------------------------------------
+// CWmConfItem::Id
+// ---------------------------------------------------------
+//
+CWmStore::TStoreId CWmConfItem::Id()
+ {
+ return iId;
+ }
+
+// ---------------------------------------------------------
+// CWmConfItem::Title
+// ---------------------------------------------------------
+//
+const TDesC& CWmConfItem::Title()
+ {
+ return ( iTitle ? *iTitle : KNullDesC() );
+ }
+
+// ---------------------------------------------------------
+// CWmConfItem::Icon
+// ---------------------------------------------------------
+//
+const TDesC& CWmConfItem::Icon()
+ {
+ return ( iIcon ? *iIcon : KNullDesC() );
+ }
+
+// ---------------------------------------------------------
+// CWmConfItem::Order
+// ---------------------------------------------------------
+//
+TInt CWmConfItem::Order()
+ {
+ return iOrder;
+ }
+
+// ---------------------------------------------------------
+// CWmConfItem::BrowserUrl
+// ---------------------------------------------------------
+//
+const TDesC& CWmConfItem::BrowserUrl()
+ {
+ return ( iUrl ? *iUrl : KNullDesC() );
+ }
+
+// ---------------------------------------------------------
+// CWmConfItem::AppType
+// ---------------------------------------------------------
+//
+CWmConfiguration::TStoreAppType CWmConfItem::AppType()
+ {
+ return iAppType;
+ }
+
+// ---------------------------------------------------------
+// CWmConfItem::AppUid
+// ---------------------------------------------------------
+//
+TUid CWmConfItem::AppUid()
+ {
+ return iAppUid;
+ }
+
+// ---------------------------------------------------------
+// CWmConfItem::AppParam
+// ---------------------------------------------------------
+//
+const TDesC& CWmConfItem::AppParam()
+ {
+ return ( iAppParam ? *iAppParam : KNullDesC() );
+ }
// End of File
--- a/idlehomescreen/widgetmanager/src/wmimageconverter.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/widgetmanager/src/wmimageconverter.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -101,13 +101,14 @@
const TSize& aIconSize,
const TDesC& aIconStr,
CFbsBitmap*& aBitmap,
- CFbsBitmap*& aMask )
+ CFbsBitmap*& aMask,
+ TBool aForceScale )
{
delete aBitmap; aBitmap = NULL;
delete aMask; aMask = NULL;
TInt err( KErrNone );
- TRAP( err, HandleIconStringL( aIconSize, aIconStr ); );
+ TRAP( err, HandleIconStringL( aIconSize, aIconStr, aForceScale ); );
if ( err == KErrNone && iBitmap && iMask )
{
// ownership transferred
@@ -139,7 +140,8 @@
//
void CWmImageConverter::HandleIconStringL(
const TSize& aIconSize,
- const TDesC& aIconStr )
+ const TDesC& aIconStr,
+ TBool aForceScale )
{
if ( aIconStr.Length() )
{
@@ -160,7 +162,7 @@
}
else if ( ResolveUid( aIconStr, appUid ) )
{
- CreateIconFromUidL( appUid );
+ CreateIconFromUidL( appUid, aForceScale );
}
else if ( EndsWith( aIconStr, KSvgExt ) )
{
@@ -170,7 +172,7 @@
else if ( BaflUtils::FileExists( iFs, aIconStr ) )
{
// filename_with_full_path.png/jpg
- CreateIconFromOtherL( aIconStr );
+ CreateIconFromOtherL( aIconStr, aForceScale );
}
else
{
@@ -187,7 +189,8 @@
// CWmImageConverter::CreateIconFromUidL
// ---------------------------------------------------------
//
-void CWmImageConverter::CreateIconFromUidL( const TUid& aUid )
+void CWmImageConverter::CreateIconFromUidL(
+ const TUid& aUid, TBool aForceScale )
{
CFbsBitmap* bitmap = NULL;
CFbsBitmap* mask = NULL;
@@ -220,21 +223,54 @@
CApaMaskedBitmap* maskedBmp = CApaMaskedBitmap::NewLC();
User::LeaveIfError( lsSession.GetAppIcon( aUid, size, *maskedBmp ) );
-
+
// handle bitmap
- iBitmap = new ( ELeave ) CFbsBitmap;
- CopyBitmapL( *iBitmap, *maskedBmp );
+ iBitmap = new ( ELeave ) CFbsBitmap;
+ if ( aForceScale )
+ {
+ // copy and scale
+ TRect scaledRect = TRect( iSize );
+ iBitmap->Create( scaledRect.Size(), maskedBmp->DisplayMode() );
+ CFbsBitmapDevice* bitmapDevice = CFbsBitmapDevice::NewL( iBitmap );
+ CleanupStack::PushL( bitmapDevice );
+ CFbsBitGc* bitmapGc = CFbsBitGc::NewL();
+ CleanupStack::PushL( bitmapGc );
+ bitmapGc->Activate( bitmapDevice );
+ bitmapGc->DrawBitmap( scaledRect, maskedBmp );
+ CleanupStack::PopAndDestroy( bitmapGc );
+ CleanupStack::PopAndDestroy( bitmapDevice );
+ }
+ else
+ {
+ CopyBitmapL( *iBitmap, *maskedBmp );
+ }
// handle mask
if ( maskedBmp->Mask() )
{
iMask = new ( ELeave ) CFbsBitmap;
- CopyBitmapL( *iMask, *maskedBmp->Mask() );
+ if ( aForceScale )
+ {
+ TRect scaledRect = TRect( iSize );
+ iMask->Create( scaledRect.Size(), maskedBmp->Mask()->DisplayMode() );
+ CFbsBitmapDevice* bitmapDevice = CFbsBitmapDevice::NewL( iMask );
+ CleanupStack::PushL( bitmapDevice );
+ CFbsBitGc* bitmapGc = CFbsBitGc::NewL();
+ CleanupStack::PushL( bitmapGc );
+ bitmapGc->Activate( bitmapDevice );
+ bitmapGc->DrawBitmap( scaledRect, maskedBmp->Mask() );
+ CleanupStack::PopAndDestroy( bitmapGc );
+ CleanupStack::PopAndDestroy( bitmapDevice );
+ }
+ else
+ {
+ CopyBitmapL( *iMask, *maskedBmp->Mask() );
+ }
}
// cleanup
CleanupStack::PopAndDestroy( maskedBmp );
- CleanupStack::PopAndDestroy( sizeArray );
+ CleanupStack::PopAndDestroy( sizeArray );
CleanupStack::PopAndDestroy( &lsSession );
}
else if ( aUid.iUid != KNullUid.iUid )
@@ -339,7 +375,8 @@
// CWmImageConverter::CreateIconFromOtherL
// ---------------------------------------------------------
//
-void CWmImageConverter::CreateIconFromOtherL( const TDesC& aFileName )
+void CWmImageConverter::CreateIconFromOtherL(
+ const TDesC& aFileName, TBool aForceScale )
{
if (iBitmap) {delete iBitmap; iBitmap = NULL;}
if (iMask) {delete iMask; iMask = NULL;}
@@ -372,6 +409,47 @@
}
User::LeaveIfError( status.Int() );
CleanupStack::PopAndDestroy( imageDecoder );
+
+ // do scaling
+ if ( aForceScale )
+ {
+ // scale bitmap
+ TRect scaledRect = TRect( iSize );
+ CFbsBitmap* scaledBitmap = new (ELeave) CFbsBitmap();
+ CleanupStack::PushL( scaledBitmap );
+ User::LeaveIfError(
+ scaledBitmap->Create( scaledRect.Size(), iBitmap->DisplayMode() ) );
+ CFbsBitmapDevice* bitmapDevice = CFbsBitmapDevice::NewL( scaledBitmap );
+ CleanupStack::PushL( bitmapDevice );
+ CFbsBitGc* bitmapGc = CFbsBitGc::NewL();
+ CleanupStack::PushL( bitmapGc );
+ bitmapGc->Activate( bitmapDevice );
+ bitmapGc->DrawBitmap( scaledRect, iBitmap );
+ CleanupStack::PopAndDestroy( bitmapGc );
+ CleanupStack::PopAndDestroy( bitmapDevice );
+ CleanupStack::Pop( scaledBitmap );
+ // take ownership of scaled bitmap
+ delete iBitmap; iBitmap = NULL;
+ iBitmap = scaledBitmap; scaledBitmap = NULL;
+
+ // scale mask
+ CFbsBitmap* scaledMask = new (ELeave) CFbsBitmap();
+ CleanupStack::PushL( scaledMask );
+ User::LeaveIfError(
+ scaledMask->Create( scaledRect.Size(), iMask->DisplayMode() ) );
+ bitmapDevice = CFbsBitmapDevice::NewL( scaledMask );
+ CleanupStack::PushL( bitmapDevice );
+ bitmapGc = CFbsBitGc::NewL();
+ CleanupStack::PushL( bitmapGc );
+ bitmapGc->Activate( bitmapDevice );
+ bitmapGc->DrawBitmap( scaledRect, iMask );
+ CleanupStack::PopAndDestroy( bitmapGc );
+ CleanupStack::PopAndDestroy( bitmapDevice );
+ CleanupStack::Pop( scaledMask );
+ // take ownership of scaled bitmap
+ delete iMask; iMask = NULL;
+ iMask = scaledMask; scaledMask = NULL;
+ }
}
// ---------------------------------------------------------------------------
@@ -508,18 +586,18 @@
// ---------------------------------------------------------------------------
//
TBool CWmImageConverter::ResolveUid(
- const TDesC& aPath, TUid& aUid )
+ const TDesC& aStr, TUid& aUid )
{
// Syntax: uid(0x12345678)
TInt error = KErrNotFound;
- TInt pos = aPath.FindF( KUid );
+ TInt pos = aStr.FindF( KUid );
if( pos == 0 )
{
// Skip uid token
pos += KUid().Length();
// Initialize lexer
- TLex lex( aPath.Mid( pos ) );
+ TLex lex( aStr.Mid( pos ) );
lex.SkipSpaceAndMark();
// Check left parenthesis
@@ -537,18 +615,19 @@
// ---------------------------------------------------------------------------
//
TBool CWmImageConverter::ResolveSkinId(
- const TDesC& aPath, TAknsItemID& aItemId )
+ const TDesC& aStr, TAknsItemID& aItemId )
{
// Syntax: skin(major minor)
+ aItemId = KAknsIIDNone;
TInt error = KErrNotFound;
- TInt pos = aPath.FindF( KSkin );
+ TInt pos = aStr.FindF( KSkin );
if( pos == 0 )
{
// Skip skin token
pos += KSkin().Length();
// Initialize lexer
- TLex lex( aPath.Mid( pos ) );
+ TLex lex( aStr.Mid( pos ) );
lex.SkipSpaceAndMark();
// Check left parenthesis
@@ -570,18 +649,22 @@
// ---------------------------------------------------------------------------
//
TBool CWmImageConverter::ResolveMifId(
- const TDesC& aPath, TInt& aBitmapId,
+ const TDesC& aStr, TInt& aBitmapId,
TInt& aMaskId, TDes& aFileName )
{
// Syntax: mif(filename bimapId maskId)
+ aBitmapId = KErrNotFound;
+ aMaskId = KErrNotFound;
+ aFileName.Copy( KNullDesC );
+
TInt error = KErrNotFound;
- TInt pos = aPath.FindF( KMif );
+ TInt pos = aStr.FindF( KMif );
if( pos == 0 )
{
// Skip mif token
pos += KMif().Length();
// Initialize lexer
- TLex lex( aPath.Mid( pos ) );
+ TLex lex( aStr.Mid( pos ) );
lex.SkipSpaceAndMark();
// Check left parenthesis
@@ -609,23 +692,23 @@
// ---------------------------------------------------------------------------
//
TBool CWmImageConverter::ResolveSkinIdAndMifId(
- const TDesC& aPath, TAknsItemID& aItemId,
+ const TDesC& aStr, TAknsItemID& aItemId,
TInt& aBitmapId, TInt& aMaskId, TDes& aFileName )
{
// Syntax: skin(major minor):mif(filename bimapId maskId)
- TBool result = ResolveSkinId( aPath, aItemId );
+ TBool result = ResolveSkinId( aStr, aItemId );
if ( result )
{
- TInt pos = aPath.FindF( KColon );
+ TInt pos = aStr.FindF( KColon );
if ( pos != KErrNotFound )
{
- TPtrC ptr = aPath.Mid( pos+1 );
+ TPtrC ptr = aStr.Mid( pos+1 );
result = ResolveMifId( ptr, aBitmapId, aMaskId, aFileName );
}
}
else
{
- result = ResolveMifId( aPath, aBitmapId, aMaskId, aFileName );
+ result = ResolveMifId( aStr, aBitmapId, aMaskId, aFileName );
}
return result;
}
@@ -748,5 +831,20 @@
}
}
+// ---------------------------------------------------------------------------
+// CWmImageConverter::ParseIconString
+// ---------------------------------------------------------------------------
+//
+TBool CWmImageConverter::ParseIconString(
+ const TDesC& aIconStr,
+ TAknsItemID& aItemId,
+ TInt& aBitmapId,
+ TInt& aMaskId,
+ TDes& aFileName )
+ {
+ return ResolveSkinIdAndMifId(
+ aIconStr, aItemId, aBitmapId, aMaskId, aFileName );
+ }
+
// End of file
--- a/idlehomescreen/widgetmanager/src/wmlistbox.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/widgetmanager/src/wmlistbox.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -184,14 +184,13 @@
CWindowGc& gc = *Gc();
MAknsSkinInstance* skin = AknsUtils::SkinInstance();
TBool highlightEnabled = !( iListBox->ItemDrawer()->Flags() &
- CListItemDrawer::ESingleClickDisabledHighlight );
- TBool listFocused = ((iListBox->IsFocused() && !aViewIsDimmed) ? ETrue : EFalse);
+ CListItemDrawer::ESingleClickDisabledHighlight );
TRect itemRect = TRect( aItemRectPos, cellSize );
CFormattedCellListBoxItemDrawer::DrawEmptyItem(
aItemIndex, aItemRectPos, aViewIsDimmed );
- if ( aItemIsCurrent && listFocused && highlightEnabled )
+ if ( aItemIsCurrent && !aViewIsDimmed && highlightEnabled )
{
TRect innerRect( itemRect );
const TInt highlightOffset = 5;
@@ -241,7 +240,7 @@
// DRAW NAME
TRgb textColor;
TAknsQsnTextColorsIndex index =
- ( aItemIsCurrent && listFocused && highlightEnabled )?
+ ( aItemIsCurrent && aViewIsDimmed && highlightEnabled )?
EAknsCIQsnTextColorsCG10 : EAknsCIQsnTextColorsCG6;
AknsUtils::GetCachedColor(
--- a/idlehomescreen/widgetmanager/src/wmmaincontainer.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/widgetmanager/src/wmmaincontainer.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -40,6 +40,8 @@
#include <AknsDrawUtils.h>
#include <aknenv.h>
#include <aknlists.h>
+#include <aknpopup.h>
+#include <badesca.h>
#include <eikclbd.h>
#include <aknsfld.h>
#include <AknsBasicBackgroundControlContext.h>
@@ -63,7 +65,7 @@
#include "wmlistbox.h"
#include "wmpersistentwidgetorder.h"
#include "wmdetailsdlg.h"
-#include "wmportalbutton.h"
+#include "wmstore.h"
#include "wmwidgetloaderao.h"
#include "wmconfiguration.h"
#include "wminstaller.h"
@@ -75,6 +77,31 @@
const TInt KTextLimit = 40; // Text-limit for find-field
const TInt KMinWidgets = 1; // minimum number of widgets to show findpane
+// ======== LOCAL FUNCTIONS ========
+
+// ----------------------------------------------------------------------------
+// CleanupResetAndDestroy()
+// ----------------------------------------------------------------------------
+//
+template<class T>
+static void CleanupResetAndDestroy( TAny* aObj )
+ {
+ if( aObj )
+ {
+ static_cast<T*>( aObj )->ResetAndDestroy();
+ }
+ }
+
+// ----------------------------------------------------------------------------
+// CleanupResetAndDestroyPushL
+// ----------------------------------------------------------------------------
+//
+template<class T>
+static void CleanupResetAndDestroyPushL(T& aArray)
+ {
+ CleanupStack::PushL( TCleanupItem( &CleanupResetAndDestroy<T>, &aArray ) );
+ }
+
// ---------------------------------------------------------
// CWmMainContainer::CWmMainContainer()
// ---------------------------------------------------------
@@ -86,7 +113,6 @@
iFindbox = NULL;
iFindPaneIsVisible = EFalse;
iBgContext = NULL;
- iFocusMode = ENowhere;
iClosingDown = ETrue;
}
@@ -96,6 +122,11 @@
//
CWmMainContainer::~CWmMainContainer()
{
+ if ( iSelectedStore )
+ {
+ delete iSelectedStore;
+ iSelectedStore = NULL;
+ }
TRAP_IGNORE(DeactivateFindPaneL(EFalse));
if ( iWidgetLoader )
@@ -108,11 +139,8 @@
Components().ResetAndDestroy();
iWidgetsList = NULL;
- iPortalButtonOne = NULL;
- iPortalButtonTwo = NULL;
iFindbox = NULL;
delete iBgContext;
- delete iConfiguration;
}
// ---------------------------------------------------------
@@ -179,9 +207,6 @@
// background context
iBgContext = CAknsBasicBackgroundControlContext::NewL(
KAknsIIDQsnBgScreen, ScreenRect() , ETrue);
-
- // load configuration
- iConfiguration = CWmConfiguration::NewL( iWmPlugin.ResourceLoader() );
// set up controls
InitializeControlsL( aRect );
@@ -211,52 +236,21 @@
{
TRect rect( Rect() );
- // determine layout type
- iLandscape = Layout_Meta_Data::IsLandscapeOrientation();
- iMirrored = Layout_Meta_Data::IsMirrored();
-
- // layout iPortalButtons
- if ( iConfiguration->PortalButtonCount() == 1 )
- {
- // one button
- TAknWindowLineLayout btnPane = AknLayoutScalable_Apps
- ::wgtman_btn_pane( iLandscape ? 1 : 0 ).LayoutLine();
- AknLayoutUtils::LayoutControl( iPortalButtonOne, rect, btnPane );
- }
- else
- {
- // two buttons
- TInt variety = (iLandscape ? 3 : 2);
- TAknWindowLineLayout oviBtnLayout = AknLayoutScalable_Apps
- ::wgtman_btn_pane( variety ).LayoutLine();
- TAknWindowLineLayout operatorBtnLayout = AknLayoutScalable_Apps
- ::wgtman_btn_pane_cp_01( variety ).LayoutLine();
-
- // button placement
- if ( iConfiguration->PortalButtonsMirrored() )
- {
- AknLayoutUtils::LayoutControl( iPortalButtonOne, rect, operatorBtnLayout );
- AknLayoutUtils::LayoutControl( iPortalButtonTwo, rect, oviBtnLayout );
- }
- else
- {
- AknLayoutUtils::LayoutControl( iPortalButtonOne, rect, oviBtnLayout );
- AknLayoutUtils::LayoutControl( iPortalButtonTwo, rect, operatorBtnLayout );
- }
- }
-
// layout iWidgetsList
- TAknWindowLineLayout listPane = AknLayoutScalable_Apps
- ::listscroll_wgtman_pane( iLandscape ? 1 : 0 ).LayoutLine();
if( iFindbox && iFindPaneIsVisible )
{
- TAknLayoutRect layoutRect;
- layoutRect.LayoutRect( rect, listPane );
- iWidgetsList->SetRect( layoutRect.Rect() );
+ iWidgetsList->SetRect( rect );
HandleFindSizeChanged();
}
else
{
+ TAknWindowLineLayout listPane;
+ listPane.il = rect.iTl.iX;
+ listPane.it = rect.iTl.iY;
+ listPane.ib = 0;
+ listPane.iH = rect.Height();
+ listPane.iW = rect.Width();
+ listPane.ir = ELayoutEmpty;
AknLayoutUtils::LayoutControl( iWidgetsList, rect, listPane );
}
@@ -287,28 +281,16 @@
{
return EKeyWasConsumed;
}
-
+
// Handle search keyevent
keyResponse = HandleSearchKeyEventL( aKeyEvent, aType );
-
- // Move focus between controls
- if ( keyResponse == EKeyWasNotConsumed )
- {
- keyResponse = MoveFocusByKeys( aKeyEvent, aType );
- }
-
+
// Handle list keyevent
if ( keyResponse == EKeyWasNotConsumed )
{
keyResponse = HandleListKeyEventL( aKeyEvent, aType );
}
- // Handle buttons keyevent
- if ( keyResponse == EKeyWasNotConsumed )
- {
- keyResponse = HandleButtonKeyEventL( aKeyEvent, aType );
- }
-
// Update ui if needed
if ( keyResponse == EKeyWasConsumed )
{
@@ -386,429 +368,33 @@
TKeyResponse keyResponse( EKeyWasNotConsumed );
// pass key event except backpace or delete key event to widgets list if focused
- if ( iWidgetsList->IsFocused() )
+ if ( ( aType == EEventKey ) && ( aKeyEvent.iCode == EKeyBackspace
+ || aKeyEvent.iCode == EKeyDelete ) )
{
- if ( ( aType == EEventKey ) && ( aKeyEvent.iCode == EKeyBackspace
- || aKeyEvent.iCode == EKeyDelete ) )
+ if( CanDoUninstall() )
{
- if( CanDoUninstall() )
- {
- UninstallWidgetL();
- }
- else
- {
- CWmWidgetData* data = iWidgetsList->WidgetData();
- if( data != NULL )
- iWmPlugin.ResourceLoader().InfoPopupL(
- R_QTN_WM_UNINST_NOT_ALLOWED, data->Name() );
- }
- keyResponse = EKeyWasConsumed;
+ UninstallWidgetL();
}
- else
+ else
{
- //passing to listbox handler
- keyResponse = iWidgetsList->OfferKeyEventL(
- aKeyEvent, aType );
+ CWmWidgetData* data = iWidgetsList->WidgetData();
+ if( data != NULL )
+ iWmPlugin.ResourceLoader().InfoPopupL(
+ R_QTN_WM_UNINST_NOT_ALLOWED, data->Name() );
}
+ keyResponse = EKeyWasConsumed;
}
-
- return keyResponse;
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::HandleButtonKeyEventL
-// ---------------------------------------------------------
-//
-TKeyResponse CWmMainContainer::HandleButtonKeyEventL(
- const TKeyEvent& aKeyEvent,
- TEventCode aType )
- {
- TKeyResponse keyResponse( EKeyWasNotConsumed );
-
- // pass key event to portal button if focused
- if ( iPortalButtonOne->IsFocused() )
+ else
{
- keyResponse = iPortalButtonOne->OfferKeyEventL(
- aKeyEvent, aType );
- }
-
- // pass key event to the other portal button if exists and focused
- if ( iPortalButtonTwo && iPortalButtonTwo->IsFocused() )
- {
- keyResponse = iPortalButtonTwo->OfferKeyEventL(
- aKeyEvent, aType );
+ //passing to listbox handler
+ keyResponse = iWidgetsList->OfferKeyEventL(
+ aKeyEvent, aType );
}
return keyResponse;
}
// ---------------------------------------------------------
-// CWmMainContainer::MoveFocusByKeys
-// ---------------------------------------------------------
-//
-TKeyResponse CWmMainContainer::MoveFocusByKeys(
- const TKeyEvent& aKeyEvent,
- TEventCode aType )
- {
- TKeyResponse keyResponse( EKeyWasNotConsumed );
-
- if ( iWidgetsList->IsFocused() )
- {
- // ------------------------------------
- // focus is in the WIDGETS LIST
- // ------------------------------------
- if ( !iLandscape &&
- aKeyEvent.iScanCode == EStdKeyUpArrow &&
- iWidgetsList->CurrentItemIndex() == 0 )
- {
- // widget list top -> up -> ovi button (portrait)
- if ( aType == EEventKey )
- SetFocusToPortalButton( OperatorButtonHigherPriority ( 0 ) );
- keyResponse = EKeyWasConsumed;
- }
- else if ( !iLandscape &&
- aKeyEvent.iScanCode == EStdKeyDownArrow &&
- iWidgetsList->CurrentItemIndex() ==
- iWidgetsList->Model()->NumberOfItems() - 1 )
- {
- // widget list bottom -> down -> ovi button (portrait)
- if ( aType == EEventKey )
- SetFocusToPortalButton( OperatorButtonHigherPriority ( 0 ) );
- keyResponse = EKeyWasConsumed;
- }
- else if ( iLandscape && !iMirrored &&
- aKeyEvent.iScanCode == EStdKeyRightArrow )
- {
- // widget list -> right -> ovi button (landscape normal)
- if ( aType == EEventKey )
- SetFocusToPortalButton( OperatorButtonHigherPriority ( 0 ) );
- keyResponse = EKeyWasConsumed;
- }
- else if ( iLandscape && iMirrored &&
- aKeyEvent.iScanCode == EStdKeyLeftArrow )
- {
- // widget list -> left -> ovi button (landscape mirrored)
- if ( aType == EEventKey )
- SetFocusToPortalButton( OperatorButtonHigherPriority ( 0 ) );
- keyResponse = EKeyWasConsumed;
- }
- }
- else if ( iPortalButtonOne->IsFocused() )
- {
- // ------------------------------------
- // focus is in the FIRST PORTAL BUTTON
- // ------------------------------------
- if ( !iLandscape &&
- aKeyEvent.iScanCode == EStdKeyDownArrow )
- {
- // left portal -> down -> widget list top (portrait)
- if ( aType == EEventKey )
- SetFocusToWidgetList( 0 );
- keyResponse = EKeyWasConsumed;
- }
- else if ( !iLandscape &&
- aKeyEvent.iScanCode == EStdKeyUpArrow )
- {
- // left portal -> up -> widget list bottom (portrait)
- if ( aType == EEventKey )
- SetFocusToWidgetList( iWidgetsList->Model()->NumberOfItems()-1 );
- keyResponse = EKeyWasConsumed;
- }
- else if ( !iLandscape && !iMirrored &&
- aKeyEvent.iScanCode == EStdKeyLeftArrow &&
- iConfiguration->PortalButtonCount() > 1 &&
- iConfiguration->PortalButtonsMirrored() )
- {
- // right portal -> left -> left portal
- // (portrait, operator button higher priority )
- if ( aType == EEventKey )
- SetFocusToPortalButton( 1 );
- keyResponse = EKeyWasConsumed;
- }
- else if ( !iLandscape && !iMirrored &&
- aKeyEvent.iScanCode == EStdKeyRightArrow &&
- iConfiguration->PortalButtonCount() > 1 &&
- !iConfiguration->PortalButtonsMirrored() )
- {
- // left portal -> right -> right portal (portrait normal)
- if ( aType == EEventKey )
- SetFocusToPortalButton( 1 );
- keyResponse = EKeyWasConsumed;
- }
- else if ( !iLandscape && iMirrored &&
- aKeyEvent.iScanCode == EStdKeyRightArrow &&
- iConfiguration->PortalButtonCount() > 1 &&
- iConfiguration->PortalButtonsMirrored() )
- {
- // right portal -> left -> left portal (portrait mirrored)
- if ( aType == EEventKey )
- SetFocusToPortalButton( 1 );
- keyResponse = EKeyWasConsumed;
- }
- else if ( !iLandscape && iMirrored &&
- aKeyEvent.iScanCode == EStdKeyLeftArrow &&
- iConfiguration->PortalButtonCount() > 1 &&
- !iConfiguration->PortalButtonsMirrored() )
- {
- // right portal -> left -> left portal (portrait mirrored)
- if ( aType == EEventKey )
- SetFocusToPortalButton( 1 );
- keyResponse = EKeyWasConsumed;
- }
- else if ( iLandscape && !iMirrored &&
- aKeyEvent.iScanCode == EStdKeyLeftArrow )
- {
- // upper portal -> left -> widget list (landscape normal)
- if ( aType == EEventKey )
- SetFocusToWidgetList();
- keyResponse = EKeyWasConsumed;
- }
- else if ( iLandscape && iMirrored &&
- aKeyEvent.iScanCode == EStdKeyRightArrow )
- {
- // upper portal -> right -> widget list (landscape mirrored)
- if ( aType == EEventKey )
- SetFocusToWidgetList();
- keyResponse = EKeyWasConsumed;
- }
- else if ( iLandscape &&
- aKeyEvent.iScanCode == EStdKeyUpArrow &&
- iConfiguration->PortalButtonCount() > 1 &&
- iConfiguration->PortalButtonsMirrored() )
- {
- // lower portal -> up -> upper portal
- // (landscape, operator button higher priority )
- if ( aType == EEventKey )
- SetFocusToPortalButton( 1 );
- keyResponse = EKeyWasConsumed;
- }
- else if ( iLandscape &&
- aKeyEvent.iScanCode == EStdKeyDownArrow &&
- iConfiguration->PortalButtonCount() > 1 &&
- !iConfiguration->PortalButtonsMirrored() )
- {
- // upper portal -> down -> lower portal (landscape)
- if ( aType == EEventKey )
- SetFocusToPortalButton( 1 );
- keyResponse = EKeyWasConsumed;
- }
- }
- else if ( iPortalButtonTwo && iPortalButtonTwo->IsFocused() )
- {
- // ------------------------------------
- // focus is in the SECOND PORTAL BUTTON
- // ------------------------------------
- if ( !iLandscape &&
- aKeyEvent.iScanCode == EStdKeyDownArrow )
- {
- // right portal -> down -> widget list top (portrait)
- if ( aType == EEventKey )
- SetFocusToWidgetList( 0 );
- keyResponse = EKeyWasConsumed;
- }
- else if ( !iLandscape &&
- aKeyEvent.iScanCode == EStdKeyUpArrow )
- {
- // right portal -> up -> widget list bottom (portrait)
- if ( aType == EEventKey )
- SetFocusToWidgetList( iWidgetsList->Model()->NumberOfItems()-1 );
- keyResponse = EKeyWasConsumed;
- }
- else if ( !iLandscape && !iMirrored &&
- aKeyEvent.iScanCode == EStdKeyRightArrow &&
- iConfiguration->PortalButtonCount() > 1 &&
- iConfiguration->PortalButtonsMirrored() )
- {
- // left portal -> right -> right portal
- // (portrait, operator button higher priority )
- if ( aType == EEventKey )
- SetFocusToPortalButton( 0 );
- keyResponse = EKeyWasConsumed;
- }
- else if ( !iLandscape && !iMirrored &&
- aKeyEvent.iScanCode == EStdKeyLeftArrow &&
- iConfiguration->PortalButtonCount() > 1 &&
- !iConfiguration->PortalButtonsMirrored() )
- {
- // right portal -> left -> left portal (portrait normal)
- if ( aType == EEventKey )
- SetFocusToPortalButton( 0 );
- keyResponse = EKeyWasConsumed;
- }
- else if ( !iLandscape && iMirrored &&
- aKeyEvent.iScanCode == EStdKeyLeftArrow &&
- iConfiguration->PortalButtonCount() > 1 &&
- iConfiguration->PortalButtonsMirrored() )
- {
- // left portal -> right -> right portal (portrait mirrored)
- if ( aType == EEventKey )
- SetFocusToPortalButton( 0 );
- keyResponse = EKeyWasConsumed;
- }
- else if ( !iLandscape && iMirrored &&
- aKeyEvent.iScanCode == EStdKeyRightArrow &&
- iConfiguration->PortalButtonCount() > 1 &&
- !iConfiguration->PortalButtonsMirrored() )
- {
- // left portal -> right -> right portal (portrait mirrored)
- if ( aType == EEventKey )
- SetFocusToPortalButton( 0 );
- keyResponse = EKeyWasConsumed;
- }
- else if ( iLandscape && !iMirrored &&
- aKeyEvent.iScanCode == EStdKeyLeftArrow )
- {
- // lower portal -> left -> widget list (landscape normal)
- if ( aType == EEventKey )
- SetFocusToWidgetList();
- keyResponse = EKeyWasConsumed;
- }
- else if ( iLandscape && iMirrored &&
- aKeyEvent.iScanCode == EStdKeyRightArrow )
- {
- // lower portal -> right -> widget list (landscape mirrored)
- if ( aType == EEventKey )
- SetFocusToWidgetList();
- keyResponse = EKeyWasConsumed;
- }
- else if ( iLandscape &&
- aKeyEvent.iScanCode == EStdKeyDownArrow &&
- iConfiguration->PortalButtonsMirrored() )
- {
- // upper portal -> down -> lower portal
- // ( landscape operator button higher priority )
- if ( aType == EEventKey )
- SetFocusToPortalButton( 0 );
- keyResponse = EKeyWasConsumed;
- }
- else if ( iLandscape &&
- aKeyEvent.iScanCode == EStdKeyUpArrow &&
- !iConfiguration->PortalButtonsMirrored() )
- {
- // lower portal -> up -> upper portal (landscape)
- if ( aType == EEventKey )
- SetFocusToPortalButton( 0 );
- keyResponse = EKeyWasConsumed;
- }
- }
- else
- {
- // ------------------------------------
- // focus is NOWHERE
- // ------------------------------------
- if ( aKeyEvent.iScanCode == EStdKeyUpArrow ||
- aKeyEvent.iScanCode == EStdKeyDownArrow )
- {
- // no focus -> key hit -> focus list
- if ( aType == EEventKey )
- {
- SetFocusToWidgetList();
- keyResponse = EKeyWasNotConsumed;
- }
- }
- }
-
- return keyResponse;
- }
-
-
-// ---------------------------------------------------------
-// CWmMainContainer::OperatorButtonHigherPriority
-// ---------------------------------------------------------
-//
-TInt CWmMainContainer::OperatorButtonHigherPriority( TInt aIndex )
- {
- TInt ret = aIndex;
- if ( iConfiguration->PortalButtonsMirrored() )
- {
- if ( aIndex == 0 )
- {
- ret = 1;
- }
- else if ( aIndex == 1 )
- {
- ret = 0;
- }
- }
- return ret;
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::SetFocusToPortalButton
-// ---------------------------------------------------------
-//
-void CWmMainContainer::SetFocusToPortalButton( TInt aIndex )
- {
- if ( aIndex != 0 && iPortalButtonTwo )
- {
- iWidgetsList->SetFocus(EFalse);
- iPortalButtonOne->SetFocus(EFalse);
- iPortalButtonTwo->SetFocus(ETrue);
- }
- else
- {
- iWidgetsList->SetFocus(EFalse);
- if ( iPortalButtonTwo )
- iPortalButtonTwo->SetFocus(EFalse);
- iPortalButtonOne->SetFocus(ETrue);
- }
- DrawDeferred();
- UpdateFocusMode();
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::SetFocusToWidgetList
-// ---------------------------------------------------------
-//
-void CWmMainContainer::SetFocusToWidgetList( TInt aIndex )
- {
- iPortalButtonOne->SetFocus(EFalse);
- if ( iPortalButtonTwo )
- iPortalButtonTwo->SetFocus(EFalse);
- if ( aIndex >= 0 && aIndex < iWidgetsList->Model()->NumberOfItems() )
- {
- iWidgetsList->SetCurrentItemIndex( aIndex );
- }
- iWidgetsList->SetFocus(ETrue);
- DrawDeferred();
- UpdateFocusMode();
- }
-
-// ---------------------------------------------------------
-// CWmMainContainer::UpdateFocusMode
-// ---------------------------------------------------------
-//
-void CWmMainContainer::UpdateFocusMode()
- {
- if ( iPortalButtonOne->IsFocused() )
- {
- // PORTAL BUTTON is focused
- iFocusMode = EPortal;
- }
- else if ( iPortalButtonTwo && iPortalButtonTwo->IsFocused() )
- {
- // SECOND PORTAL BUTTON is focused
- iFocusMode = EPortal;
- }
- else if( ( iFindPaneIsVisible ) &&
- ( iFindbox->IsFocused() || iWidgetsList->IsFocused() ) )
- {
- // FIND MODE
- iFocusMode = EFind;
- }
- else if ( iWidgetsList->IsFocused() )
- {
- // WIDGETS LIST is focused
- iFocusMode = EList;
- }
- else
- {
- // NO focus
- iFocusMode = ENowhere;
- }
- }
-
-// ---------------------------------------------------------
// CWmMainContainer::FindChildControlByPoint
// ---------------------------------------------------------
//
@@ -858,8 +444,6 @@
// Set focus to the control that was clicked
control->SetFocus( ETrue );
- // update focus mode accordingly
- UpdateFocusMode();
// repaint
DrawDeferred();
}
@@ -903,17 +487,6 @@
//
void CWmMainContainer::InitializeControlsL( const TRect& /*aRect*/ )
{
- // Create portal buttons
- iPortalButtonOne = CWmPortalButton::NewL( this, 0 );
- iPortalButtonOne->SetMopParent( this );
- AddControlL( iPortalButtonOne, EPortalOne );
- if ( iConfiguration->PortalButtonCount() > 1 )
- {
- iPortalButtonTwo = CWmPortalButton::NewL( this, 1 );
- iPortalButtonTwo->SetMopParent( this );
- AddControlL( iPortalButtonTwo, EPortalTwo );
- }
-
// Create widget list box
iWidgetsList = CWmListBox::NewL(
iWmPlugin,
@@ -935,8 +508,8 @@
CAknSearchField::EAdaptiveSearch,
0, KTextLimit );
AddControlL( iFindbox, EFindBox );
-
- UpdateFocusMode();
+ iFindbox->AddAdaptiveSearchTextObserverL(this);
+
StartLoadingWidgetsL();
}
@@ -1045,21 +618,13 @@
}
// ---------------------------------------------------------
-// CWmMainContainer::PortalSelected
-// ---------------------------------------------------------
-//
-TBool CWmMainContainer::PortalSelected()
- {
- return ( iFocusMode == EPortal );
- }
-
-// ---------------------------------------------------------
// CWmMainContainer::WidgetSelected
// ---------------------------------------------------------
//
TBool CWmMainContainer::WidgetSelected()
{
- return ( iFocusMode == EList ) || ( iFocusMode == EFind );
+ return (( iWidgetsList->IsFocused() || iWidgetsList->IsHighlightEnabled())?
+ ETrue : EFalse );
}
// ---------------------------------------------------------
@@ -1217,18 +782,6 @@
if ( iFindbox && !iFindPaneIsVisible &&
iWidgetsList->Model()->NumberOfItems() > KMinWidgets )
{
- // set focus
- if ( iWidgetsList->ItemDrawer()->Flags()
- & CListItemDrawer::ESingleClickDisabledHighlight )
- {
- ResetFocus();
- }
- else
- {
- iWidgetsList->SetFocus( ETrue, EDrawNow );
- }
-
-
// set column filter flag
TBitFlags32 bitFlag;
bitFlag.ClearAll(); // clear all columns
@@ -1263,14 +816,18 @@
}
iFindbox->SetFocus( ETrue );
iWidgetsList->SetFindPaneIsVisible( ETrue );
-
- // set soft key set
- CEikButtonGroupContainer* cbaGroup =
- CEikButtonGroupContainer::Current();
- cbaGroup->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_CANCEL__SELECT );
- cbaGroup->DrawNow();
-
- UpdateFocusMode();
+
+ if ( AknLayoutUtils::MSKEnabled() )
+ {
+ // set soft key set
+ CEikButtonGroupContainer* cbaGroup =
+ CEikButtonGroupContainer::Current();
+ TInt cbaResourceId = ( ( iWmPlugin.Configuration().StoreCount() > 0 )?
+ R_WM_SOFTKEYS_OPTIONS_CANCEL__STORE :
+ R_AVKON_SOFTKEYS_OPTIONS_CANCEL__SELECT );
+ cbaGroup->SetCommandSetL( cbaResourceId );
+ cbaGroup->DrawNow();
+ }
}
}
@@ -1298,17 +855,6 @@
m->RemoveFilter();
}
- //set focus
- if ( iWidgetsList->ItemDrawer()->Flags()
- & CListItemDrawer::ESingleClickDisabledHighlight )
- {
- ResetFocus();
- }
- else
- {
- iWidgetsList->SetFocus( ETrue, EDrawNow );
- }
-
iFindbox->MakeVisible( EFalse );
iFindPaneIsVisible = EFalse;
iWidgetsList->SetFindPaneIsVisible( EFalse );
@@ -1317,8 +863,9 @@
// set soft key set
CEikButtonGroupContainer* cbaGroup =
CEikButtonGroupContainer::Current();
- TInt cbaResourceId = ( AknLayoutUtils::MSKEnabled() ?
- R_AVKON_SOFTKEYS_OPTIONS_BACK__SELECT :
+ TInt cbaResourceId = ( ( AknLayoutUtils::MSKEnabled() &&
+ iWmPlugin.Configuration().StoreCount() > 0 )?
+ R_WM_SOFTKEYS_OPTIONS_BACK__STORE :
R_AVKON_SOFTKEYS_OPTIONS_BACK );
cbaGroup->SetCommandSetL( cbaResourceId );
@@ -1327,7 +874,6 @@
LayoutControls();
cbaGroup->DrawNow();
- UpdateFocusMode();
DrawNow();
}
}
@@ -1381,35 +927,32 @@
}
// ---------------------------------------------------------------------------
-// CWmMainContainer::OpenPortalL
+// CWmMainContainer::HandleStoreCommandL
// ---------------------------------------------------------------------------
//
-void CWmMainContainer::OpenPortalL()
+void CWmMainContainer::HandleStoreCommandL()
{
- if ( !iClosingDown )
- {
- // execute whichever of the portal buttons happens to be active
- if ( iPortalButtonOne->IsFocused() )
- iPortalButtonOne->ExecuteL();
- else if ( iPortalButtonTwo && iPortalButtonTwo->IsFocused() )
- iPortalButtonTwo->ExecuteL();
- else if ( !iPortalButtonTwo )
- iPortalButtonOne->ExecuteL();
+ delete iSelectedStore;
+ iSelectedStore = NULL;
+
+ const RPointerArray<CWmConfItem>& storeConfArray =
+ iWmPlugin.Configuration().StoreConfArray();
+
+ if ( storeConfArray.Count() == 1 )
+ {
+ iSelectedStore = CWmStore::NewL( *storeConfArray[0],
+ iWmPlugin.ResourceLoader() );
+
+ iSelectedStore->ExecuteL();
}
- }
-
-// ---------------------------------------------------------------------------
-// CWmMainContainer::SelectL
-// ---------------------------------------------------------------------------
-//
-void CWmMainContainer::SelectL()
- {
- if ( WidgetSelected() )
- AddWidgetToHomeScreenL();
- else if ( PortalSelected() )
- OpenPortalL();
+ else if ( storeConfArray.Count() > 1 )
+ {
+ DisplayAndLaunchStoresL();
+ }
else
- SetFocusToWidgetList();
+ {
+ // do nothing
+ }
}
// ---------------------------------------------------------------------------
@@ -1499,19 +1042,6 @@
{
AddWidgetToHomeScreenL();
}
- else
- {
- if ( iWidgetsList->ItemDrawer()->Flags()
- & CListItemDrawer::ESingleClickDisabledHighlight )
- {
- ResetFocus();
- }
- else
- {
- iWidgetsList->SetFocus( ETrue, EDrawNow );
- UpdateFocusMode();
- }
- }
}
}
@@ -1534,15 +1064,6 @@
}
// ----------------------------------------------------
-// CWmMainContainer::Configuration
-// ----------------------------------------------------
-//
-CWmConfiguration& CWmMainContainer::Configuration()
- {
- return *iConfiguration;
- }
-
-// ----------------------------------------------------
// CWmMainContainer::HandleFindSizeChanged
// ----------------------------------------------------
//
@@ -1572,44 +1093,6 @@
}
// ----------------------------------------------------
-// CWmMainContainer::ProcessForegroundEvent
-// ----------------------------------------------------
-//
-void CWmMainContainer::ProcessForegroundEvent( TBool aForeground )
- {
- if ( iFindbox && iFindPaneIsVisible &&
- iFindbox->IsFocused() )
- {
- // keep focus & do nothing
- }
- else if ( aForeground )
- {
- // set init state when wm comes to foreground.
- // remove focus from all controls when activating view.
- ResetFocus( EDrawNow );
- }
- }
-
-// ----------------------------------------------------
-// CWmMainContainer::ResetFocus
-// ----------------------------------------------------
-//
-void CWmMainContainer::ResetFocus( TDrawNow aDrawNow )
- {
- CCoeControl* control = NULL;
- CCoeControlArray::TCursor cursor = Components().Begin();
- while( ( control = cursor.Control<CCoeControl>() ) != NULL )
- {
- if( control->IsVisible() && control->IsFocused() )
- {
- control->SetFocus( EFalse, aDrawNow );
- }
- cursor.Next();
- }
- UpdateFocusMode();
- }
-
-// ----------------------------------------------------
// CWmMainContainer::WmListBox
// ----------------------------------------------------
//
@@ -1629,10 +1112,8 @@
if ( iFindbox && iFindPaneIsVisible &&
!iFindbox->IsFocused() && IsFocused() )
{
- // reset focus to find pane if its lost ( ou1cimx1#308019 )
- ResetFocus();
+ // set focus to find pane if its lost ( ou1cimx1#308019 )
iFindbox->SetFocus( ETrue );
- UpdateFocusMode();
}
}
@@ -1665,5 +1146,113 @@
}
}
+// ----------------------------------------------------------
+// CWmMainContainer::CleanupIconArray
+// ----------------------------------------------------------
+//
+void CWmMainContainer::CleanupIconArray( TAny* aIconArray )
+ {
+ CArrayPtrFlat<CGulIcon>* icons = (CArrayPtrFlat<CGulIcon>*)aIconArray;
+ icons->ResetAndDestroy();
+ delete icons;
+ }
+
+// ----------------------------------------------------
+// CWmMainContainer::DisplayAndLaunchStoresL
+// ----------------------------------------------------
+//
+void CWmMainContainer::DisplayAndLaunchStoresL()
+ {
+ // prepare stores
+ RPointerArray<CWmStore> storesArray;
+ CleanupResetAndDestroyPushL( storesArray );
+
+ const RPointerArray<CWmConfItem>& storeConfArray =
+ iWmPlugin.Configuration().StoreConfArray();
+
+ for( TInt i = 0; i < storeConfArray.Count(); i++ )
+ {
+ CWmStore* store = CWmStore::NewL( *storeConfArray[i],
+ iWmPlugin.ResourceLoader() );
+ CleanupStack::PushL( store );
+ storesArray.AppendL( store );
+ CleanupStack::Pop( store );
+ }
+
+ CEikFormattedCellListBox* listBox =
+ new (ELeave) CAknDoubleLargeGraphicPopupMenuStyleListBox();
+ CleanupStack::PushL( listBox );
+
+ CAknPopupList* popupList = CAknPopupList::NewL(
+ listBox, R_AVKON_SOFTKEYS_SELECT_CANCEL__SELECT,
+ AknPopupLayouts::EMenuDoubleLargeGraphicWindow );
+
+ CleanupStack::PushL( popupList );
+
+ listBox->ConstructL( popupList, EAknListBoxMenuList );
+ listBox->CreateScrollBarFrameL(ETrue);
+ listBox->ScrollBarFrame()->SetScrollBarVisibilityL(
+ CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto);
+
+ // set title
+ HBufC* title = StringLoader::LoadLC( R_QTN_WM_STORELIST_TITLE );
+ popupList->SetTitleL( *title );
+ CleanupStack::PopAndDestroy(); // title
+
+ // format str
+ _LIT( KFormatStr , "%d\t%S" );
+
+ // items array
+ CDesCArray* itemArray =
+ static_cast<CDesCArray*>( listBox->Model()->ItemTextArray( ) );
+
+ // create icons array
+ CArrayPtr<CGulIcon>* iconarray = new (ELeave) CArrayPtrFlat<CGulIcon>( 2 );
+ CleanupStack::PushL( TCleanupItem( CleanupIconArray, iconarray) );
+
+ for ( TInt i=0; i < storesArray.Count(); i++ )
+ {
+ // prepare icon
+ CGulIcon* icon = CGulIcon::NewL( storesArray[i]->StoreIcon(),
+ storesArray[i]->StoreMask() );
+ CleanupStack::PushL( icon );
+ icon->SetBitmapsOwnedExternally( ETrue );
+ iconarray->AppendL( icon );
+ CleanupStack::Pop( icon );
+
+ // add store to items array
+ HBufC* buf = HBufC::NewLC(
+ storesArray[i]->Heading().Length() +
+ KFormatStr().Length() );
+
+ TPtr ptr = buf->Des();
+ ptr.Format( KFormatStr(), i, &storesArray[i]->Heading() );
+ itemArray->AppendL( ptr );
+ CleanupStack::PopAndDestroy( buf );
+ }
+
+ CleanupStack::Pop(); // iconarray
+ listBox->ItemDrawer()->ColumnData()->SetIconArrayL( iconarray );
+
+ TBool result = popupList->ExecuteLD();
+ CleanupStack::Pop(); // popupList ( deleted in ExecuteLD)
+
+ TInt selection = listBox->CurrentItemIndex();
+ CleanupStack::PopAndDestroy(); // listBox
+
+ if ( result && selection >= 0 &&
+ selection < storesArray.Count() )
+ {
+ iSelectedStore = storesArray[selection];
+ if ( iSelectedStore )
+ {
+ storesArray.Remove( selection );
+ iSelectedStore->ExecuteL();
+ }
+ }
+
+ CleanupStack::PopAndDestroy(); //storesArray
+ }
+
// End of File
--- a/idlehomescreen/widgetmanager/src/wmmaincontainerview.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/widgetmanager/src/wmmaincontainerview.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -30,14 +30,17 @@
#include <AknUtils.h>
#include <avkon.rsg>
#include <layoutmetadata.cdl.h>
-
+#include <widgetmanager.mbg>
#include "wmplugin.h"
#include "widgetmanager.hrh"
#include "wmmaincontainerview.h"
#include "wmresourceloader.h"
#include "wmmaincontainer.h"
#include "wmspbgcleaner.h"
-
+#include "wmconfiguration.h"
+#include "wmimageconverter.h"
+#include "wmstore.h"
+
// ---------------------------------------------------------
// CWmMainContainerView::CWmMainContainerView()
// ---------------------------------------------------------
@@ -55,7 +58,7 @@
// ---------------------------------------------------------
//
CWmMainContainerView::~CWmMainContainerView()
- {
+ {
if ( iWmMainContainer != NULL )
{
AppUi()->RemoveFromStack( iWmMainContainer );
@@ -127,9 +130,7 @@
{
switch ( aCommand )
{
- case EWmMainContainerViewOpenPortalMenuItemCommand:
- HandleOpenMenuItemSelectedL();
- break;
+ case EAknSoftkeySelect:
case EWmMainContainerViewAddMenuItemCommand:
HandleAddMenuItemSelectedL();
break;
@@ -162,9 +163,11 @@
case EWmMainContainerViewWiddetDetailsMenuItemCommand:
HandleDetailsMenuItemSelectedL();
break;
- case EAknSoftkeySelect:
+ case EWmStoreCommand:
+ {
if ( iWmMainContainer )
- iWmMainContainer->SelectL();
+ iWmMainContainer->HandleStoreCommandL();
+ }
break;
case EAknSoftkeyCancel: // flow through
case EEikCmdCanceled:
@@ -188,7 +191,16 @@
const TDesC8& /*aCustomMessage*/ )
{
// setup status pane layout
- StatusPane()->SwitchLayoutL( R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT );
+ TInt layoutResourceId = ( (iWmPlugin.Configuration().StoreCount() ) ?
+ R_AVKON_STATUS_PANE_LAYOUT_IDLE_FLAT :
+ R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT );
+ StatusPane()->SwitchLayoutL( layoutResourceId );
+
+ // ToDo: Support for msk in all layout is ongoing, when available in
+ // sdk use next line and get rid of above.
+
+ //StatusPane()->SwitchLayoutL( R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT );
+
// apply changes
StatusPane()->ApplyCurrentSettingsL();
// disable transparancy
@@ -208,14 +220,19 @@
StatusPane()->DrawNow();
// update cba
- if ( Layout_Meta_Data::IsMSKEnabled() )
+ if ( !AknLayoutUtils::MSKEnabled() ||
+ iWmPlugin.Configuration().StoreCount() == 0 )
{
CEikButtonGroupContainer* bgc( Cba() );
CEikCba* cba = static_cast< CEikCba* >( bgc->ButtonGroup() );
- cba->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_BACK__SELECT );
+ cba->SetCommandSetL( R_AVKON_SOFTKEYS_OPTIONS_BACK );
bgc->SetBoundingRect( TRect() );
cba->DrawNow();
}
+ else if ( AknLayoutUtils::MSKEnabled() )
+ {
+ UpdateMSKIconL();
+ }
// create container
if ( iWmMainContainer == NULL )
@@ -309,27 +326,12 @@
!iWmMainContainer->CanDoHelp() );
aMenuPane->SetItemDimmed( EWmMainContainerViewUninstallMenuItemCommand,
!iWmMainContainer->CanDoUninstall() );
- if ( !iWmMainContainer->PortalSelected() )
- aMenuPane->DeleteMenuItem( EWmMainContainerViewOpenPortalMenuItemCommand );
if ( !iWmMainContainer->WidgetSelected() )
aMenuPane->DeleteMenuItem( EWmMainContainerViewAddMenuItemCommand );
}
}
// ---------------------------------------------------------
-// CWmMainContainerView::HandleOpenMenuItemSelectedL
-// ---------------------------------------------------------
-//
-TBool CWmMainContainerView::HandleOpenMenuItemSelectedL()
- {
- if ( iWmMainContainer && iWmMainContainer->PortalSelected() )
- {
- iWmMainContainer->OpenPortalL();
- }
- return ETrue;
- }
-
-// ---------------------------------------------------------
// CWmMainContainerView::HandleDetailsMenuItemSelectedL
// ---------------------------------------------------------
//
@@ -431,16 +433,64 @@
}
// ---------------------------------------------------------
-// CWmMainContainerView::HandleForegroundEventL
+// CWmMainContainerView::UpdateMSKIconL
// ---------------------------------------------------------
//
-void CWmMainContainerView::HandleForegroundEventL( TBool aForeground )
+void CWmMainContainerView::UpdateMSKIconL()
{
- CAknView::HandleForegroundEventL( aForeground );
- if ( iWmMainContainer )
+ CEikButtonGroupContainer* bgc( Cba() );
+ CEikCba* cba = static_cast< CEikCba* >( bgc->ButtonGroup() );
+ TFileName fileName( iWmPlugin.ResourceLoader().IconFilePath() );
+ TAknsItemID skinId = KAknsIIDQgnMenuOviStore;
+ TInt bitmapId( EMbmWidgetmanagerQgn_menu_ovistore );
+ TInt maskId( EMbmWidgetmanagerQgn_menu_ovistore_mask );
+
+ if ( iWmPlugin.Configuration().StoreCount() > 1 )
+ {
+ skinId = KAknsIIDQgnPropLmShopping;
+ bitmapId = EMbmWidgetmanagerQgn_menu_shopping;
+ maskId = EMbmWidgetmanagerQgn_menu_shopping_mask;
+ }
+ else
{
- iWmMainContainer->ProcessForegroundEvent( aForeground );
+ const RPointerArray<CWmConfItem>& storeConfArray =
+ iWmPlugin.Configuration().StoreConfArray();
+ CWmConfItem* confItem( storeConfArray[0] );
+
+ if ( confItem &&
+ confItem->Id() != CWmStore::EOvi &&
+ confItem->Icon().Length() )
+ {
+ CWmImageConverter* imageConverter = CWmImageConverter::NewL();
+ CleanupStack::PushL( imageConverter );
+
+ // parse icon str
+ // TODO: now only mif&skin are supported. Later when API is there
+ // we can add support for rest icon types
+ TBool res = imageConverter->ParseIconString(
+ confItem->Icon(), skinId, bitmapId, maskId, fileName );
+
+ CleanupStack::PopAndDestroy( imageConverter );
+
+ if ( !res )
+ {
+ // use default shopping icon
+ skinId = KAknsIIDQgnPropLmShopping;
+ bitmapId = EMbmWidgetmanagerQgn_menu_shopping;
+ maskId = EMbmWidgetmanagerQgn_menu_shopping_mask;
+ fileName.Copy( iWmPlugin.ResourceLoader().IconFilePath() );
+ }
+ }
}
+
+ cba->UpdateMSKIconL(
+ skinId,
+ fileName,
+ bitmapId,
+ maskId,
+ ETrue );
+ bgc->SetBoundingRect( TRect() );
+ cba->DrawNow();
}
// End of file
--- a/idlehomescreen/widgetmanager/src/wmplugin.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/widgetmanager/src/wmplugin.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -37,6 +37,7 @@
#include "wmwidgetdata.h"
#include "wminstaller.h"
#include "wmlistbox.h"
+#include "wmconfiguration.h"
const TInt KExecuteCommandDelay( 50000 ); // 50ms
const TInt KMaxCmdExecutionCount( 6 );
@@ -77,6 +78,7 @@
delete iEffectManager;
delete iPostponedContent;
delete iWmInstaller;
+ delete iConfiguration;
}
// ---------------------------------------------------------
@@ -140,10 +142,15 @@
{
menuBar->StopDisplayingMenuBar();
}
-
+
+ // load configuration again, there might be change
+ delete iConfiguration;
+ iConfiguration = NULL;
+
TRAP_IGNORE(
+ iConfiguration = CWmConfiguration::NewL( ResourceLoader() );
iEffectManager->BeginFullscreenEffectL(
- KAppStartEffectStyle );
+ KAppStartEffectStyle );
iViewAppUi->ActivateLocalViewL(
TUid::Uid( EWmMainContainerViewId ) );
);
@@ -284,6 +291,10 @@
TCallBack( ExecuteCommand, this ) );
}
}
+
+ // delete config
+ delete iConfiguration;
+ iConfiguration = NULL;
}
// ---------------------------------------------------------
@@ -447,6 +458,15 @@
return *iWmInstaller;
}
+// ----------------------------------------------------
+// CWmPlugin::Configuration
+// ----------------------------------------------------
+//
+CWmConfiguration& CWmPlugin::Configuration()
+ {
+ return *iConfiguration;
+ }
+
// ---------------------------------------------------------
// CWmPlugin::GetUnistalledWidget
// ---------------------------------------------------------
--- a/idlehomescreen/widgetmanager/src/wmportalbutton.cpp Tue Sep 14 20:58:58 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,619 +0,0 @@
-/*
-* 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:
-* Implementation of the portal button for WidgetManager
-*
-*/
-
-// INCLUDE FILES
-#include <aknlayoutscalable_apps.cdl.h>
-#include <aknlayoutscalable_avkon.cdl.h>
-#include <layoutmetadata.cdl.h>
-#include <aknbutton.h>
-#include <AknsDrawUtils.h>
-#include <AknBidiTextUtils.h>
-#include <AknsFrameBackgroundControlContext.h>
-#include <gulicon.h>
-#include <avkon.mbg>
-#include <widgetmanager.mbg>
-#include <apgcli.h>
-#include <apgtask.h>
-#include <widgetregistryclient.h> // widgetreqistry
-#include <bacline.h>
-#include <escapeutils.h>
-#include <browserlauncher.h>
-#include <centralrepository.h>
-
-#include "wmimageconverter.h"
-#include "wmportalbutton.h"
-#include "wmcommon.h"
-#include "wmplugin.h"
-#include "wmresourceloader.h"
-#include "wmmaincontainer.h"
-#include "wmconfiguration.h"
-#include "wmprocessmonitor.h"
-
-// CONSTANTS
-
-// MEMBER FUNCTIONS
-
-// ---------------------------------------------------------
-// CWmPortalButton::NewL
-// ---------------------------------------------------------
-//
-CWmPortalButton* CWmPortalButton::NewL(
- const CCoeControl* aParent,
- TInt aPortalButtonIndex )
- {
- CWmPortalButton* self = new (ELeave) CWmPortalButton(
- KAknButtonTextInsideFrame, aPortalButtonIndex );
-
- CleanupStack::PushL( self );
-
- CWmMainContainer* mainContainer =
- static_cast <CWmMainContainer*>(
- const_cast <CCoeControl*>( aParent ) );
-
- self->ConstructL( mainContainer,
- mainContainer->Configuration().PortalButtonText( aPortalButtonIndex ),
- mainContainer->Configuration().PortalButtonIcon( aPortalButtonIndex ) );
-
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------
-// CWmPortalButton::~CWmPortalButton
-// ---------------------------------------------------------
-//
-CWmPortalButton::~CWmPortalButton()
- {
- delete iButtonIcon;
- delete iButtonIconMask;
-
- // if MAknIconFileProvider was used to create image from icon string
- // then it'll try accessing imageconverter after bitmap deletion
- // for de-reference open file count, so it should be deleted last.
- delete iImageConverter;
- delete iProcessMonitor;
- delete iBrowserLauncher;
- }
-
-// ---------------------------------------------------------
-// CWmPortalButton::CWmPortalButton
-// ---------------------------------------------------------
-//
-CWmPortalButton::CWmPortalButton(
- const TInt aFlags,
- TInt aPortalButtonIndex )
- :CAknButton( aFlags ),
- iPortalButtonIndex( aPortalButtonIndex )
- {
- iButtonIcon = NULL;
- iButtonIconMask = NULL;
- iProcessMonitor = NULL;
- iBrowserLauncher = NULL;
- }
-
-// ---------------------------------------------------------
-// CWmPortalButton::ConstructL
-// ---------------------------------------------------------
-//
-void CWmPortalButton::ConstructL(
- CWmMainContainer* aParent,
- const TDesC& aText,
- const TDesC& aIcon )
- {
- if ( !aParent )
- {
- User::Leave( KErrArgument );
- }
- SetContainerWindowL( *aParent );
-
- // Obtain pointer to main container.
- iWmMainContainer = aParent;
-
- // construct the button
- CAknButton::ConstructL( NULL, NULL, NULL, NULL, aText, KNullDesC, 0 );
-
- SetFrameAndCenterIds(
- KAknsIIDQsnFrButtonNormal,
- KAknsIIDQsnFrButtonCenterNormal,
- KAknsIIDQsnFrButtonPressed,
- KAknsIIDQsnFrButtonCenterPressed,
- KAknsIIDQsnFrButtonInactive,
- KAknsIIDQsnFrButtonCenterInactive,
- KAknsIIDQsnFrButtonPressed,
- KAknsIIDQsnFrButtonCenterPressed,
- KAknsIIDQsnFrButtonInactive,
- KAknsIIDQsnFrButtonCenterInactive );
-
- // start image converter for the icon
- iImageConverter = CWmImageConverter::NewL();
- TSize iconsize( LayoutIconSize() );
- iImageConverter->HandleIconString(
- iconsize,
- aIcon,
- iButtonIcon,
- iButtonIconMask );
- // observe our own press events
- SetObserver( this );
-
- SetFocusing( ETrue );
- SetRequestExit( ETrue ); // notification request for button up event
-
- // ready to be drawn
- ActivateL();
- }
-
-// ---------------------------------------------------------
-// CWmPortalButton::ExecuteL
-// ---------------------------------------------------------
-//
-void CWmPortalButton::ExecuteL()
- {
- if ( iPortalButtonIndex == 0 )
- {
- // OVI button
- if ( !iProcessMonitor )
- {
- iProcessMonitor = CWmProcessMonitor::NewL();
- }
- // if process monitor is active laucher was allready started.
- // this is for ignoring multiple button presses
- if ( !iProcessMonitor->IsActive() )
- {
- RunOviL( iWmMainContainer->Configuration() );
- }
- }
- else if ( iPortalButtonIndex == 1 )
- {
- // OPERATOR button
- // if this leaves it means we need to start browser
- // becouse application info was not given
- TRAPD( err, RunOperatorApplicationL(
- iWmMainContainer->Configuration() ) )
- if ( err != KErrNone )
- {
- StartBrowserL(
- iWmMainContainer->Configuration().PortalButtonBrowserUrl(
- iPortalButtonIndex ) );
- }
- }
- else
- {
- // Not supported
- User::Leave( KErrGeneral );
- }
- }
-
-// ---------------------------------------------------------
-// CWmPortalButton::RunOviL
-// ---------------------------------------------------------
-//
-void CWmPortalButton::RunOviL( CWmConfiguration& aConf )
- {
- RApaLsSession session;
- User::LeaveIfError( session.Connect() );
- CleanupClosePushL( session );
-
- //get app info
- TApaAppInfo appInfo;
- TUid launchUid;
- launchUid = aConf.PortalButtonClientUid( iPortalButtonIndex );
-
- if ( session.GetAppInfo( appInfo, launchUid ) == KErrNone )
- {
- // Form parameter
- HBufC* param = HBufC::NewLC( aConf.PortalButtonClientParam( iPortalButtonIndex ).Length() );
- param->Des().Copy( aConf.PortalButtonClientParam( iPortalButtonIndex ) );
-
- // do the launch
- RProcess process;
- User::LeaveIfError( process.Create( appInfo.iFullName, *param ) );
-
- iProcessMonitor->Monitor( process );
- process.Resume();
-
- CleanupStack::PopAndDestroy( param );
- }
-
- CleanupStack::PopAndDestroy( &session );
- }
-
-// ---------------------------------------------------------
-// CWmPortalButton::StartBrowserL
-// ---------------------------------------------------------
-//
-void CWmPortalButton::StartBrowserL( const TDesC& aUrl )
- {
- // already running/or request launch or url is empty
- if ( iBrowserLauncher || !aUrl.Length() ) { return; }
-
- _LIT( KUrlPrefix, "4 ");
- HBufC* param = HBufC::NewLC( aUrl.Length() + KUrlPrefix().Length() );
- param->Des().Append( KUrlPrefix );
- param->Des().Append( aUrl );
-
- // Create browser launcher
- CBrowserLauncher* launcher = CBrowserLauncher::NewLC();
-
- // Asynchronous operation to launch the browser with given URL
- launcher->LaunchBrowserEmbeddedL(
- *param, NULL, this, NULL );
-
- CleanupStack::Pop( launcher );
- iBrowserLauncher = launcher;
- launcher = NULL;
-
- CleanupStack::PopAndDestroy( param );
- }
-
-// ---------------------------------------------------------
-// CWmPortalButton::HandleServerAppExit
-// ---------------------------------------------------------
-//
-void CWmPortalButton::HandleServerAppExit( TInt aReason )
- {
- MAknServerAppExitObserver::HandleServerAppExit( aReason );
- delete iBrowserLauncher;
- iBrowserLauncher = NULL;
- }
-
-// ---------------------------------------------------------
-// CWmPortalButton::HandleControlEventL
-// ---------------------------------------------------------
-//
-void CWmPortalButton::HandleControlEventL( CCoeControl* aControl,
- TCoeEvent aEventType )
- {
- if ( aControl == this )
- {
- if ( aEventType == EEventStateChanged ||
- aEventType == ELongPressEndedEvent ||
- aEventType == EEventRequestCancel )
- {
- DrawDeferred();
- }
- // execute portal action when button pressed (short or long press)
- if ( aEventType == EEventRequestExit )
- {
- SetFocus( EFalse );
- DrawNow();
- ExecuteL();
- }
- }
- }
-
-// ---------------------------------------------------------
-// CWmPortalButton::HandlePointerEventL
-// ---------------------------------------------------------
-//
-void CWmPortalButton::HandlePointerEventL(
- const TPointerEvent& aPointerEvent )
- {
- CAknButton::HandlePointerEventL( aPointerEvent );
-
- // remove focus from button if button is released outside rect
- if ( aPointerEvent.iType == TPointerEvent::EDrag )
- {
- TBool wasFoucused( IsFocused() );
- SetFocus( Rect().Contains( aPointerEvent.iPosition ) );
- if ( wasFoucused != IsFocused() ){ DrawNow(); }
- }
- else if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
- {
- SetFocus( EFalse ); // remove focus when button released.
- }
- }
-
-
-// ---------------------------------------------------------
-// CWmPortalButton::LayoutIconSize
-// ---------------------------------------------------------
-//
-TSize CWmPortalButton::LayoutIconSize() const
- {
- TBool landscape = Layout_Meta_Data::IsLandscapeOrientation();
- TAknLayoutRect imageLayout;
- if ( iWmMainContainer->Configuration().PortalButtonCount() == 1 )
- {
- imageLayout.LayoutRect( Rect(), AknLayoutScalable_Apps::
- wgtman_btn_pane_g1( landscape ? 1 : 0).LayoutLine() );
- }
- else
- {
- TInt variety = (landscape ? 5 : 4);
- imageLayout.LayoutRect( Rect(), AknLayoutScalable_Apps
- ::wgtman_btn_pane_g1( variety ).LayoutLine() );
- }
-
- return imageLayout.Rect().Size();
- }
-
-// ---------------------------------------------------------
-// CWmPortalButton::SizeChanged
-// ---------------------------------------------------------
-//
-void CWmPortalButton::SizeChanged()
- {
- CAknButton::SizeChanged();
-
- SetTextVerticalAlignment( CAknButton::ECenter );
-
- // resize icon
- if ( iButtonIcon && iButtonIconMask )
- {
- iImageConverter->UpdateImageSize(
- LayoutIconSize(),
- iWmMainContainer->Configuration().PortalButtonIcon(
- iPortalButtonIndex ),
- *iButtonIcon,
- *iButtonIconMask );
- }
-
- TBool landscape = Layout_Meta_Data::IsLandscapeOrientation();
- SetTextAndIconAlignment(
- landscape ? CAknButton::EIconOverText : CAknButton::EIconBeforeText );
- }
-
-// ---------------------------------------------------------
-// CWmPortalButton::Draw
-// ---------------------------------------------------------
-//
-void CWmPortalButton::Draw( const TRect& /*aRect*/ ) const
- {
- TRect rect = Rect();
-
- TAknLayoutRect centerLayout;
- centerLayout.LayoutRect( rect,
- AknLayoutScalable_Avkon::toolbar_button_pane_g1().LayoutLine() );
- TRect innerRect = centerLayout.Rect();
-
- CWindowGc& gc = SystemGc();
- MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-
- TAknsItemID frameId = ( KAknsIIDQsnFrButtonNormal );
- TAknsItemID frameCenterId = ( KAknsIIDQsnFrButtonCenterNormal );
-
- if ( iButtonPressed )
- {
- frameId = ( KAknsIIDQsnFrButtonPressed );
- frameCenterId = ( KAknsIIDQsnFrButtonCenterPressed );
- }
- else if ( IsDimmed() )
- {
- frameId = KAknsIIDQsnFrButtonInactive;
- frameCenterId = KAknsIIDQsnFrButtonCenterInactive;
- }
- else if ( IsFocused() )
- {
- frameId = KAknsIIDQsnFrButtonHighlight;
- frameCenterId = KAknsIIDQsnFrButtonHighlightCenter;
- }
-
- iBgContext->SetFrame( frameId );
- iBgContext->SetCenter( frameCenterId );
- iBgContext->SetFrameRects( rect, innerRect );
-
- if ( !AknsDrawUtils::Background( skin, iBgContext, NULL,
- gc, rect, KAknsDrawParamNoClearUnderImage ) )
- {
- gc.SetBrushColor( KRgbRed );
- gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
- gc.DrawRect( rect );
- }
- gc.SetBrushStyle( CGraphicsContext::ENullBrush );
-
- CAknButtonState* state = State();
- if ( state )
- {
- TBool landscape = Layout_Meta_Data::IsLandscapeOrientation();
-
- // draw image if one exists
- if ( iButtonIcon && iButtonIconMask )
- {
- TAknLayoutRect imageLayout;
- if ( iWmMainContainer->Configuration().PortalButtonCount() == 1 )
- {
- imageLayout.LayoutRect( rect, AknLayoutScalable_Apps::
- wgtman_btn_pane_g1( landscape ? 3 : 0).LayoutLine() );
- }
- else
- {
- TInt variety = (landscape ? 7 : 4);
- imageLayout.LayoutRect( rect, AknLayoutScalable_Apps
- ::wgtman_btn_pane_g1( variety ).LayoutLine() );
- }
-
- gc.DrawBitmapMasked(
- imageLayout.Rect(),
- iButtonIcon,
- TRect(TPoint( 0, 0 ), iButtonIcon->SizeInPixels() ),
- iButtonIconMask,
- EFalse );
- }
-
- // draw text if portrait
- if ( !landscape )
- {
- TAknTextComponentLayout leftLayout;
- TInt variety =
- ((iWmMainContainer->Configuration().PortalButtonCount()== 2)? 4:0 );
- leftLayout = AknLayoutScalable_Apps::wgtman_btn_pane_t1( variety );
- DrawText( gc, state->Text(), leftLayout, 1 );
- }
- }
- }
-
-// ---------------------------------------------------------
-// CWmPortalButton::DrawText
-// ---------------------------------------------------------
-//
-void CWmPortalButton::DrawText(
- CWindowGc& aGc,
- const TDesC& aText,
- TAknTextComponentLayout& aLayout,
- TInt aMargin ) const
- {
- TAknLayoutText layoutText;
- layoutText.LayoutText(Rect(), aLayout.LayoutLine() );
-
- const CFont* font = layoutText.Font();
- TRect textRect = layoutText.TextRect();
-
- aGc.UseFont( font );
-
- MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-
- TRgb textColor;
- TInt err = AknsUtils::GetCachedColor(
- skin,
- textColor,
- KAknsIIDQsnTextColors,
- EAknsCIQsnTextColorsCG63 );
- if ( err != KErrNone )
- {
- textColor = layoutText.Color();
- }
- aGc.SetPenColor( textColor);
-
- // Layout data not correct, add some space for text
- textRect.iBr.iX += aMargin;
- textRect.iTl.iX -= aMargin;
-
- // buffer for visually ordered text
- TBuf<255 + KAknBidiExtraSpacePerLine> visualText;
- TInt clipWidth = textRect.Width();
-
- // bidi processing - using AknBidiTextUtils.
- AknBidiTextUtils::ConvertToVisualAndClip(
- aText,
- visualText,
- *font,
- clipWidth,
- clipWidth );
-
- TInt baselineOffset = 0;
- switch ( iVerticalAlignment )
- {
- case ETop:
- baselineOffset = font->AscentInPixels();
- break;
-
- case EBottom:
- baselineOffset = textRect.Height();
- break;
-
- default: // centered
- baselineOffset = font->AscentInPixels() +
- ( textRect.Height() - font->AscentInPixels() ) / 2;
- }
-
- aGc.DrawText( visualText, textRect,
- baselineOffset, layoutText.Align() );
- }
-
-// ---------------------------------------------------------
-// CWmPortalButton::RunOperatorApplicationL
-// ---------------------------------------------------------
-//
-void CWmPortalButton::RunOperatorApplicationL( CWmConfiguration& aConf )
- {
- CWmConfiguration::TOpAppType type = aConf.PortalButtonApplicationType( 1 );
- if ( type == CWmConfiguration::EUnknown ||
- type >= CWmConfiguration::EReserved )
- {
- // Leave if not found
- User::Leave( KErrArgument );
- }
-
- switch( type )
- {
- case CWmConfiguration::ES60:
- case CWmConfiguration::EQt:
- {
- TUid uid = KNullUid;
- aConf.PortalButtonApplicationId( 1, uid );
- StartProcessL( uid, aConf.PortalButtonClientParam( 1 ) );
- }
- break;
- case CWmConfiguration::ECwrt:
- {
- TUid uid = KNullUid;
- aConf.PortalButtonApplicationId( 1, uid );
- StartWidgetL( uid, aConf.PortalButtonClientParam( 1 ) );
- }
- break;
- case CWmConfiguration::EWrt:
- {
- TUid uid = KNullUid;
- aConf.PortalButtonApplicationId( 1, uid );
- StartWidgetL( uid, KNullDesC );
- }
- break;
- case CWmConfiguration::EJava:
- {
- TBuf<NCentralRepositoryConstants::KMaxUnicodeStringLength> appId;
- aConf.PortalButtonApplicationId( 1, appId );
- //TODO:
- }
- break;
- }
- }
-
-// ---------------------------------------------------------
-// CWmPortalButton::StartProcessL
-// ---------------------------------------------------------
-//
-void CWmPortalButton::StartProcessL( TUid aUid, const TDesC& aParam )
- {
- RApaLsSession session;
- User::LeaveIfError( session.Connect() );
- CleanupClosePushL( session );
-
- //get app info
- TApaAppInfo appInfo;
- User::LeaveIfError( session.GetAppInfo( appInfo, aUid ) );
- // do the launch
- RProcess process;
- User::LeaveIfError( process.Create( appInfo.iFullName, aParam ) );
- process.Resume();
-
- CleanupStack::PopAndDestroy( &session );
- }
-
-// ---------------------------------------------------------
-// CWmPortalButton::StartWidgetL
-// ---------------------------------------------------------
-//
-void CWmPortalButton::StartWidgetL( TUid aAppUid, const TDesC& aParams )
- {
- if ( aAppUid == KNullUid )
- User::Leave( KErrArgument );
-
- HBufC* params = aParams.AllocLC();
-
- RApaLsSession appArc;
- User::LeaveIfError( appArc.Connect() );
- CleanupClosePushL( appArc );
-
- TThreadId threadId;
- User::LeaveIfError( appArc.StartDocument( *params, aAppUid, threadId ) );
-
- CleanupStack::PopAndDestroy( &appArc );
- CleanupStack::PopAndDestroy( params );
- }
-
-// End of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/src/wmstore.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -0,0 +1,367 @@
+/*
+* 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:
+* Implementation of the store for WidgetManager
+*
+*/
+
+// INCLUDE FILES
+#include <aknlayoutscalable_apps.cdl.h>
+#include <aknlayoutscalable_avkon.cdl.h>
+#include <layoutmetadata.cdl.h>
+#include <AknUtils.h>
+#include <AknsDrawUtils.h>
+#include <AknBidiTextUtils.h>
+#include <AknsFrameBackgroundControlContext.h>
+#include <gulicon.h>
+#include <avkon.mbg>
+#include <widgetmanager.mbg>
+#include <apgcli.h>
+#include <apgtask.h>
+#include <widgetregistryclient.h> // widgetreqistry
+#include <bacline.h>
+#include <escapeutils.h>
+#include <browserlauncher.h>
+#include <centralrepository.h>
+#include <aknlayoutscalable_avkon.cdl.h>
+
+#include "wmimageconverter.h"
+#include "wmstore.h"
+#include "wmcommon.h"
+#include "wmplugin.h"
+#include "wmresourceloader.h"
+#include "wmmaincontainer.h"
+#include "wmconfiguration.h"
+#include "wmprocessmonitor.h"
+
+// CONSTANTS
+
+// MEMBER FUNCTIONS
+
+// ---------------------------------------------------------
+// CWmStore::NewL
+// ---------------------------------------------------------
+//
+CWmStore* CWmStore::NewL( CWmConfItem& aWmConfItem,
+ CWmResourceLoader& aResourceLoader )
+ {
+ CWmStore* self = new (ELeave) CWmStore( aWmConfItem );
+ CleanupStack::PushL( self );
+ self->ConstructL( aResourceLoader );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------
+// CWmStore::~CWmStore
+// ---------------------------------------------------------
+//
+CWmStore::~CWmStore()
+ {
+ delete iIcon;
+ delete iMask;
+
+ // if MAknIconFileProvider was used to create image from icon string
+ // then it'll try accessing imageconverter after bitmap deletion
+ // for de-reference open file count, so it should be deleted last.
+ delete iImageConverter;
+ delete iProcessMonitor;
+ delete iBrowserLauncher;
+ }
+
+// ---------------------------------------------------------
+// CWmStore::CWmStore
+// ---------------------------------------------------------
+//
+CWmStore::CWmStore( CWmConfItem& aWmConfItem )
+ : iWmConfItem( aWmConfItem )
+ {
+ iIcon = NULL;
+ iMask = NULL;
+ iProcessMonitor = NULL;
+ iBrowserLauncher = NULL;
+ }
+
+// ---------------------------------------------------------
+// CWmStore::ConstructL
+// ---------------------------------------------------------
+//
+void CWmStore::ConstructL( CWmResourceLoader& aResourceLoader )
+ {
+ // start image converter for the icon
+ iImageConverter = CWmImageConverter::NewL();
+
+ // get size of icon for double large style list
+ TRect rect;
+ TAknLayoutRect layout;
+
+ layout.LayoutRect( rect,
+ AknLayoutScalable_Avkon::list_double_large_graphic_pane_g1( 0 ).LayoutLine() );
+
+ TSize iconSize( layout.Rect().Width(),
+ layout.Rect().Height() );
+
+ // create icon
+ TInt err = iImageConverter->HandleIconString(
+ iconSize,
+ iWmConfItem.Icon(),
+ iIcon,
+ iMask,
+ ETrue ); // force scaling for non scaleble icons
+
+ if ( err != KErrNone )
+ {
+ // lets use basket icon
+ // skin( 0x101f86e3 0x23f6 ):mif( z:\resource\apps\widgetmanager.mif 16388 16389 )
+ _LIT( KSkinMifIconFormat, "skin( 0x%x 0x%x ):mif( %S %d %d )");
+ const TInt KMaxIconDescriptorLength = 256;
+ TBuf<KMaxIconDescriptorLength> buf;
+ buf.Format( KSkinMifIconFormat(),
+ EAknsMajorGeneric, EAknsMinorGenericQgnPropLmShopping,
+ &aResourceLoader.IconFilePath(),
+ EMbmWidgetmanagerQgn_menu_shopping,
+ EMbmWidgetmanagerQgn_menu_shopping_mask );
+
+ iImageConverter->HandleIconString(
+ iconSize,
+ buf,
+ iIcon,
+ iMask,
+ EFalse ); // force scaling for non scaleble icons
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmStore::StoreIcon
+// ---------------------------------------------------------
+//
+CFbsBitmap* CWmStore::StoreIcon()
+ {
+ return iIcon;
+ }
+
+// ---------------------------------------------------------
+// CWmStore::StoreMask
+// ---------------------------------------------------------
+//
+CFbsBitmap* CWmStore::StoreMask()
+ {
+ return iMask;
+ }
+
+// ---------------------------------------------------------
+// CWmStore::Heading
+// ---------------------------------------------------------
+//
+const TDesC& CWmStore::Heading()
+ {
+ return iWmConfItem.Title();
+ }
+
+// ---------------------------------------------------------
+// CWmStore::Order
+// ---------------------------------------------------------
+//
+TInt CWmStore::Order() const
+ {
+ return iWmConfItem.Order();
+ }
+
+// ---------------------------------------------------------
+// CWmStore::ExecuteL
+// ---------------------------------------------------------
+//
+void CWmStore::ExecuteL()
+ {
+ if ( iWmConfItem.Id() == EOvi )
+ {
+ if ( !iProcessMonitor )
+ {
+ iProcessMonitor = CWmProcessMonitor::NewL();
+ }
+ // if process monitor is active laucher was allready started.
+ // this is for ignoring multiple presses
+ if ( !iProcessMonitor->IsActive() )
+ {
+ RunOviL();
+ }
+ }
+ else if ( iWmConfItem.Id() >= EStore1 && iWmConfItem.Id() < ELastItem )
+ {
+ // if this leaves it means we need to start browser
+ // becouse application info was not given
+ TRAPD( err, RunApplicationL() )
+ if ( err != KErrNone )
+ {
+ StartBrowserL( iWmConfItem.BrowserUrl() );
+ }
+ }
+ else
+ {
+ // Not supported
+ User::Leave( KErrGeneral );
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmStore::RunOviL
+// ---------------------------------------------------------
+//
+void CWmStore::RunOviL()
+ {
+ RApaLsSession session;
+ User::LeaveIfError( session.Connect() );
+ CleanupClosePushL( session );
+
+ //get app info
+ TApaAppInfo appInfo;
+ if ( session.GetAppInfo( appInfo, iWmConfItem.AppUid() ) == KErrNone )
+ {
+ // Form parameter
+ HBufC* param = HBufC::NewLC( iWmConfItem.AppParam().Length() );
+ param->Des().Copy( iWmConfItem.AppParam() );
+
+ // do the launch
+ RProcess process;
+ User::LeaveIfError( process.Create( appInfo.iFullName, *param ) );
+
+ iProcessMonitor->Monitor( process );
+ process.Resume();
+
+ CleanupStack::PopAndDestroy( param );
+ }
+
+ CleanupStack::PopAndDestroy( &session );
+ }
+
+// ---------------------------------------------------------
+// CWmStore::StartBrowserL
+// ---------------------------------------------------------
+//
+void CWmStore::StartBrowserL( const TDesC& aUrl )
+ {
+ // already running/or request launch or url is empty
+ if ( iBrowserLauncher || !aUrl.Length() ) { return; }
+
+ _LIT( KUrlPrefix, "4 ");
+ HBufC* param = HBufC::NewLC( aUrl.Length() + KUrlPrefix().Length() );
+ param->Des().Append( KUrlPrefix );
+ param->Des().Append( aUrl );
+
+ // Create browser launcher
+ CBrowserLauncher* launcher = CBrowserLauncher::NewLC();
+
+ // Asynchronous operation to launch the browser with given URL
+ launcher->LaunchBrowserEmbeddedL(
+ *param, NULL, this, NULL );
+
+ CleanupStack::Pop( launcher );
+ iBrowserLauncher = launcher;
+ launcher = NULL;
+
+ CleanupStack::PopAndDestroy( param );
+ }
+
+// ---------------------------------------------------------
+// CWmStore::HandleServerAppExit
+// ---------------------------------------------------------
+//
+void CWmStore::HandleServerAppExit( TInt aReason )
+ {
+ MAknServerAppExitObserver::HandleServerAppExit( aReason );
+ delete iBrowserLauncher;
+ iBrowserLauncher = NULL;
+ }
+
+// ---------------------------------------------------------
+// CWmStore::RunApplicationL
+// ---------------------------------------------------------
+//
+void CWmStore::RunApplicationL()
+ {
+ CWmConfiguration::TStoreAppType type = iWmConfItem.AppType();
+ if ( type == CWmConfiguration::EUnknown ||
+ type >= CWmConfiguration::EReserved )
+ {
+ // Leave if not found
+ User::Leave( KErrArgument );
+ }
+
+ switch( type )
+ {
+ case CWmConfiguration::ES60:
+ case CWmConfiguration::EQt:
+ {
+ StartProcessL( iWmConfItem.AppUid(),
+ iWmConfItem.AppParam() );
+ }
+ break;
+ case CWmConfiguration::ECwrt:
+ {
+ StartWidgetL( iWmConfItem.AppUid(),
+ iWmConfItem.AppParam() );
+ }
+ break;
+ case CWmConfiguration::EWrt:
+ {
+ StartWidgetL( iWmConfItem.AppUid(), KNullDesC );
+ }
+ break;
+ }
+ }
+
+// ---------------------------------------------------------
+// CWmStore::StartProcessL
+// ---------------------------------------------------------
+//
+void CWmStore::StartProcessL( TUid aUid, const TDesC& aParam )
+ {
+ RApaLsSession session;
+ User::LeaveIfError( session.Connect() );
+ CleanupClosePushL( session );
+
+ //get app info
+ TApaAppInfo appInfo;
+ User::LeaveIfError( session.GetAppInfo( appInfo, aUid ) );
+ // do the launch
+ RProcess process;
+ User::LeaveIfError( process.Create( appInfo.iFullName, aParam ) );
+ process.Resume();
+
+ CleanupStack::PopAndDestroy( &session );
+ }
+
+// ---------------------------------------------------------
+// CWmStore::StartWidgetL
+// ---------------------------------------------------------
+//
+void CWmStore::StartWidgetL( TUid aAppUid, const TDesC& aParams )
+ {
+ if ( aAppUid == KNullUid )
+ User::Leave( KErrArgument );
+
+ HBufC* params = aParams.AllocLC();
+
+ RApaLsSession appArc;
+ User::LeaveIfError( appArc.Connect() );
+ CleanupClosePushL( appArc );
+
+ TThreadId threadId;
+ User::LeaveIfError( appArc.StartDocument( *params, aAppUid, threadId ) );
+
+ CleanupStack::PopAndDestroy( &appArc );
+ CleanupStack::PopAndDestroy( params );
+ }
+
+// End of file
--- a/idlehomescreen/widgetmanager/src/wmwidgetorderdata.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/widgetmanager/src/wmwidgetorderdata.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -86,7 +86,6 @@
{
delete iPublisherId;
delete iName;
- //delete iPersistentWidgetOrder // TODO: is needed???
}
// ---------------------------------------------------------
--- a/idlehomescreen/widgetmanager/tsrc/wmunittest/group/wmunittest.mmp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/group/wmunittest.mmp Wed Sep 15 12:00:00 2010 +0300
@@ -50,7 +50,7 @@
SOURCE wmpersistentwidgetorder.cpp
SOURCE wmeffectmanager.cpp
SOURCE wmdetailsdlg.cpp
-SOURCE wmportalbutton.cpp
+SOURCE wmstore.cpp
SOURCE wmwidgetloaderao.cpp
SOURCE wmconfiguration.cpp
SOURCE wminstaller.cpp
--- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockadapter.h Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockadapter.h Wed Sep 15 12:00:00 2010 +0300
@@ -70,11 +70,9 @@
* Create font
*
* @param aNode Node which contains info of font
- * @param aFontName Font name
* @param aFont On return points to a created font
*/
void CreateFontL( CXnNodePluginIf& aNode,
- const TDesC& aFontName,
CFont*& aFont );
/*
--- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockface.h Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockface.h Wed Sep 15 12:00:00 2010 +0300
@@ -216,6 +216,12 @@
*/
void DrawHandsL( CWindowGc& aGc, const TRect& aRect,
const TDateTime& aDateTime );
+
+ /**
+ * Stores clock face adjustment value
+ * @param aNode is current face.
+ */
+ TInt FaceAdjustmentValueL( CXnNodePluginIf& aNode );
private:
@@ -229,7 +235,10 @@
*/
void ConstructL();
- private: // Data
+ private: // Data
+
+ // Stores face adjustment value
+ TInt iFaceAdjustmentValue;
};
#endif // _XNCLOCKFACE_H
--- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockadapter.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockadapter.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -38,6 +38,7 @@
_LIT8( KDisplay, "display" );
_LIT8( KNone, "none" );
_LIT8( KBlock, "block" );
+_LIT( KLogicalSecondaryFont, "EAknLogicalFontSecondaryFont" );
// ============================ LOCAL FUNCTIONS ===============================
@@ -518,7 +519,6 @@
// -----------------------------------------------------------------------------
//
void CXnClockAdapter::CreateFontL( CXnNodePluginIf& aNode,
- const TDesC& aFontName,
CFont*& aFont )
{
TFontSpec spec;
@@ -546,13 +546,41 @@
prop, iNode.Rect().Height() );
}
}
-
- // No need to relase avkon font
- CXnUtils::CreateFontL( aFontName,
- height,
- spec.iFontStyle,
- aFont,
- dummy );
+
+ TBool fontNotSet( ETrue );
+ prop = aNode.GetPropertyL(
+ XnPropertyNames::appearance::common::KFontFamily );
+
+ if ( prop )
+ {
+ CXnDomPropertyValue* value = static_cast< CXnDomPropertyValue* >(
+ prop->Property()->PropertyValueList().Item( 0 ) );
+
+ if ( CXnDomPropertyValue::EIdent == value->PrimitiveValueType()
+ ||CXnDomPropertyValue::EString == value->PrimitiveValueType() )
+ {
+ const TDesC& fontName( prop->StringValueL()->Des() );
+
+ // No need to relase avkon font
+ CXnUtils::CreateFontL( fontName,
+ height,
+ spec.iFontStyle,
+ aFont,
+ dummy );
+
+ fontNotSet = EFalse;
+ }
+ }
+
+ if( fontNotSet )
+ {
+ // No need to relase avkon font
+ CXnUtils::CreateFontL( KLogicalSecondaryFont,
+ height,
+ spec.iFontStyle,
+ aFont,
+ dummy );
+ }
}
// -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockface.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockface.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -30,6 +30,9 @@
#include "xnnodepluginif.h"
#include "xnclockadapter.h"
#include "xntext.h"
+#include "xnproperty.h"
+#include "xndomproperty.h"
+#include "xndomlist.h"
#include "xnclockface.h"
@@ -38,8 +41,7 @@
_LIT( KAmPmFormat, "%B" );
_LIT( KTimeFormat, "%J%:1%T" );
-_LIT( KClockFont, "EAknLogicalFontSecondaryFont" );
-_LIT( KAmpmFont, "EAknLogicalFontSecondaryFont" );
+const TInt KDefaultFaceAdjustmentValue = 0;
// ============================ MEMBER FUNCTIONS ===============================
@@ -167,7 +169,7 @@
{
if ( !iClockFont )
{
- aAdapter.CreateFontL( aNode, KClockFont, iClockFont );
+ aAdapter.CreateFontL( aNode, iClockFont );
}
return CAknLayoutFont::AsCAknLayoutFontOrNull( iClockFont );
}
@@ -175,7 +177,7 @@
{
if ( !iAmpmFont )
{
- aAdapter.CreateFontL( aNode, KAmpmFont, iAmpmFont );
+ aAdapter.CreateFontL( aNode, iAmpmFont );
}
return CAknLayoutFont::AsCAknLayoutFontOrNull( iAmpmFont );
}
@@ -228,6 +230,7 @@
// -----------------------------------------------------------------------------
//
CXnClockFaceAnalog::CXnClockFaceAnalog()
+ : iFaceAdjustmentValue( KErrNotFound )
{
}
@@ -272,7 +275,7 @@
void CXnClockFaceAnalog::DrawL( CXnClockAdapter& /*aAdapter*/, CWindowGc& aGc,
CXnNodePluginIf& aNode, const TTime& aTime, CXnNodePluginIf* /*aAmpm*/ )
{
- TSize faceSize( aNode.Rect().Size() );
+ TRect faceRect( aNode.Rect() );
TDateTime dateTime( aTime.DateTime() );
@@ -292,14 +295,19 @@
{
return;
}
+
+ TInt value( FaceAdjustmentValueL( aNode ) );
+
+ TSize growthSize( value, 0 );
+ faceRect.Grow( growthSize );
- User::LeaveIfError( AknIconUtils::SetSize( skinBmp, faceSize ) );
+ User::LeaveIfError( AknIconUtils::SetSize( skinBmp, faceRect.Size() ) );
if( skinMask )
{
- User::LeaveIfError( AknIconUtils::SetSize( skinMask, faceSize ) );
+ User::LeaveIfError( AknIconUtils::SetSize( skinMask, faceRect.Size() ) );
- aGc.BitBltMasked( aNode.Rect().iTl,
+ aGc.BitBltMasked( faceRect.iTl,
skinBmp,
TRect( TPoint( 0, 0 ), skinBmp->SizeInPixels() ),
skinMask,
@@ -307,7 +315,7 @@
}
else
{
- aGc.BitBlt( aNode.Rect().iTl, skinBmp );
+ aGc.BitBlt( faceRect.iTl, skinBmp );
}
aGc.SetBrushStyle( CGraphicsContext::ENullBrush );
@@ -369,6 +377,34 @@
}
// -----------------------------------------------------------------------------
+// CXnClockFaceAnalog::FaceAdjustmentValueL
+// -----------------------------------------------------------------------------
+//
+TInt CXnClockFaceAnalog::FaceAdjustmentValueL( CXnNodePluginIf& aNode )
+ {
+ if( iFaceAdjustmentValue == KErrNotFound )
+ {
+ CXnProperty* prop( aNode.GetPropertyL( XnPropertyNames::clock::KFaceAdjustmentValue ) );
+
+ if( prop )
+ {
+ TInt value = static_cast<TInt>( prop->FloatValueL() );
+
+ if( value > KErrNotFound )
+ {
+ iFaceAdjustmentValue = value;
+ }
+ }
+
+ if( iFaceAdjustmentValue <= KErrNotFound )
+ {
+ iFaceAdjustmentValue = KDefaultFaceAdjustmentValue;
+ }
+ }
+
+ return iFaceAdjustmentValue;
+ }
+
// CXnClockFaceAnalog::ResetFont
// -----------------------------------------------------------------------------
//
--- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xndatecontrol.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xndatecontrol.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -38,7 +38,6 @@
const TInt KMaxDateStringLength = 100;
const TInt KMaxDayNumberStringLength = 10;
-_LIT( KDateFont, "EAknLogicalFontSecondaryFont" );
_LIT( KTimeFormat, "%0U %1U" );
@@ -210,7 +209,7 @@
{
if ( !iDateFont )
{
- iAdapter.CreateFontL( aNode, KDateFont, iDateFont );
+ iAdapter.CreateFontL( aNode, iDateFont );
}
return CAknLayoutFont::AsCAknLayoutFontOrNull( iDateFont );
}
--- a/idlehomescreen/xmluirendering/uiengine/eabi/xn3layoutengineu.def Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/eabi/xn3layoutengineu.def Wed Sep 15 12:00:00 2010 +0300
@@ -277,4 +277,5 @@
_ZTVN21CXnControlAdapterImpl13TIconProviderE @ 276 NONAME
_ZThn52_N17CXnControlAdapter19HandleControlEventLEP11CCoeControlN19MCoeControlObserver9TCoeEventE @ 277 NONAME
_ZThn60_N17CXnControlAdapter19HandleLongTapEventLERK6TPointS2_ @ 278 NONAME
+ _ZN8CXnUtils18ResolveSkinItemIDLERK7TDesC16R11TAknsItemID @ 279 NONAME
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.h Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.h Wed Sep 15 12:00:00 2010 +0300
@@ -34,9 +34,41 @@
class CXnODT;
class CXnViewManager;
class CXnPublisherData;
+class CCoeControl;
// Constants
+NONSHARABLE_STRUCT( TXnDirtyRegion )
+ {
+ /** Area that needs to be redrawn */
+ RRegion iRegion;
+
+ /** Window owning control
+ * Not own.
+ */
+ CCoeControl* iControl;
+
+ /** Window owning node
+ * Not own.
+ */
+ CXnNode* iRootNode;
+
+ /** List of currently dirty nodes */
+ RPointerArray< CXnNode > iDirtyList;
+
+ /** Controls layouting */
+ TInt iLayoutControl;
+
+ TXnDirtyRegion() : iControl( NULL ), iRootNode( NULL ),
+ iLayoutControl( 0 ) {}
+
+ ~TXnDirtyRegion()
+ {
+ iRegion.Close();
+ iDirtyList.Reset();
+ }
+ };
+
// Class declaration
/**
@@ -454,6 +486,20 @@
*/
void SetLockingStatus( const TDesC8& aStatus );
+ /**
+ * Creates dirty region.
+ *
+ * @return Created dirty region.
+ */
+ TXnDirtyRegion* CreateDirtyRegionL( CXnNode& aRootNode, CCoeControl& aControl);
+
+ /**
+ * Get dirty region.
+ *
+ * @return dirty region.
+ */
+ inline TXnDirtyRegion* DirtyRegion() const;
+
protected:
// data
@@ -493,6 +539,8 @@
HBufC* iPublisherName;
/** Flags to define this plugin's state */
TBitFlags32 iFlags;
+ /** Region pending redraw, Owned */
+ TXnDirtyRegion* iDirtyRegion;
};
// Inline functions
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.inl Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.inl Wed Sep 15 12:00:00 2010 +0300
@@ -188,4 +188,13 @@
return iPluginsData;
};
+// ---------------------------------------------------------------------------
+// Returns dirty region
+// ---------------------------------------------------------------------------
+//
+inline TXnDirtyRegion* CXnPluginData::DirtyRegion() const
+ {
+ return iDirtyRegion;
+ };
+
#endif // _XNPLUGINDATA_INL_
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnrootdata.h Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnrootdata.h Wed Sep 15 12:00:00 2010 +0300
@@ -122,6 +122,13 @@
CXnViewData& NextViewData() const;
/**
+ * Gets a view data, where the given node belongs to.
+ *
+ * @return Acquired view data. NULL if not found.
+ */
+ CXnViewData* ViewData( CXnNode& aNode ) const;
+
+ /**
* Sets view data to destroyal list
*
* @param aViewData View data to destroy
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnuiengineimpl.h Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnuiengineimpl.h Wed Sep 15 12:00:00 2010 +0300
@@ -41,6 +41,7 @@
class CXnViewManager;
class CXnViewData;
class CXnPluginData;
+class TXnDirtyRegion;
// Constants
namespace XnLayoutPhase
@@ -59,18 +60,6 @@
const TInt EViewDirty = 0x10;
const TInt EEffectStarted = 0x20;
}
-
-NONSHARABLE_STRUCT( TXnDirtyRegion )
- {
- RRegion iRegion;
- CCoeControl* iControl; // Not own.
-
- ~TXnDirtyRegion()
- {
- iRegion.Close();
- }
- };
-
NONSHARABLE_STRUCT( TXnSplitScreenState )
{
@@ -147,18 +136,6 @@
void LayoutUIL( CXnNode* aNode = NULL );
/**
- * Lays out the UI
- *
- * This generates full re-layout starting from the given node,
- * regardless of the current dirty set or the active view.
- * I.e. this can be used to layout an inactive view.
- *
- * @since Series 60 5.2
- * @param aNode Starting point of the layout
- */
- void LayoutFromNodeL( CXnNode& aNode );
-
- /**
* Creates UI implementations for the UI, adjusts control coordinates
* according to the layout
*
@@ -166,19 +143,6 @@
* @param aNode Starting point
*/
void RenderUIL( CXnNode* aNode = NULL );
-
- /**
- * Creates UI implementations for the UI, adjusts control coordinates
- * according to the layout
- *
- * This generates full re-layout starting from the given node,
- * regardless of the current dirty set or the active view.
- * I.e. this can be used to layout an inactive view.
- *
- * @since Series 60 5.2
- * @param aNode Starting point
- */
- void RenderFromNodeL( CXnNode& aNode );
/**
* Gets the root node of the UI
@@ -325,6 +289,7 @@
* @since Series 60 3.1
*/
void RefreshMenuL();
+ void RefreshMenuL( TXnDirtyRegion* aDirtyRegion );
/**
* Returns view manager
@@ -555,7 +520,7 @@
private:
IMPORT_C static void EnableRenderUi( TAny* aAny );
-
+
private:
// constructors
@@ -566,51 +531,55 @@
private:
// new functions
-
+
+ /**
+ * Lays out the UI
+ */
+ void LayoutL( TXnDirtyRegion& aRegion );
+ void RenderL( TXnDirtyRegion& aRegion );
+
/**
* Prepares to the layout algorithm run
*
* @since Series 60 3.2
*/
- void PrepareRunLayoutL();
- void PrepareRunLayoutL( CXnNode& aNode );
+ void PrepareRunLayoutL( TXnDirtyRegion& aDirtyRegion );
/**
* Runs the layout algorithm
*
* @since Series 60 3.2
*/
- TInt RunLayoutL( CXnNode* aNode );
- TInt RunLayoutFromNodeL( CXnNode& aNode );
+ TInt RunLayoutL( TXnDirtyRegion& aDirtyRegion, CXnNode& aNode );
/**
* Checks if layout is currently disabled
*
* @since Series 60 3.2
*/
- TBool IsLayoutDisabled();
+ TBool IsLayoutDisabled( TXnDirtyRegion& aDirtyRegion );
- void AddToRedrawListL( CXnNode* aNode, TRect aRect =
- TRect::EUninitialized );
+ void AddToRedrawListL( TXnDirtyRegion& aRegion, CXnNode& aNode,
+ TRect aRect = TRect::EUninitialized );
- void AddToDirtyListL( CXnNode* aNode );
+ void AddToDirtyListL( TXnDirtyRegion& aRegion, CXnNode& aNode );
/**
* Finds a node where to start layout
*
* @since Series 60 5.0
*/
- CXnNode* StartLayoutFromL();
+ CXnNode* StartLayoutFromL( TXnDirtyRegion& aDirtyRegion );
void ForceRenderUIL( TBool aLayoutOnly = EFalse );
- CCoeControl* WindowOwningControl( CXnNode& aNode );
+ CXnNode* WindowOwningNode( CXnNode& aNode );
TXnDirtyRegion* FindDirtyRegionL( CXnNode& aNode );
- void AddRedrawRectL( TRect aRect, CXnNode& aNode );
+ void ReportScreenDeviceChangeL();
- void ReportScreenDeviceChangeL();
+ void EnableRenderUiL();
/**
* Handle partial touch input
@@ -752,18 +721,12 @@
CXnKeyEventDispatcher* iKeyEventDispatcher;
/** ControlAdapters, not owned */
const RPointerArray< CXnControlAdapter >* iControlAdapterList;
- /** Region pending redraw */
- RPointerArray<TXnDirtyRegion> iRedrawRegions;
- /** List of currently dirty nodes */
- RPointerArray< CXnNode > iDirtyList;
/** Array of nodes which can be focused */
RPointerArray< CXnNode > iFocusCandidateList;
/** current view */
CXnNode* iCurrentView;
/** current view control adapter, not owned */
CXnControlAdapter* iCurrentViewControlAdapter;
- /** Controls layouting */
- TInt iLayoutControl;
/** Layout algo phase */
TInt iLayoutPhase;
/** Unit in pixels (width). */
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnviewadapter.h Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnviewadapter.h Wed Sep 15 12:00:00 2010 +0300
@@ -192,6 +192,14 @@
*/
void EnterEditStateL( CXnViewData& aView, TBool aEnter );
+ /**
+ * Tell if this adapter is on foreground. Returns EFalse immediately after
+ * adapter is deactivated (Avkon IsForeground has some delay).
+ * @since S60 5.0
+ * @return ETrue if container is on foreground, EFalse otherwise
+ */
+ TBool IsForegroundAdapter() const;
+
private:
// new functions
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnviewdata.h Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnviewdata.h Wed Sep 15 12:00:00 2010 +0300
@@ -26,8 +26,6 @@
class CXnViewManager;
class CFbsBitmap;
-// Constants
-
// Class declaration
/**
@@ -212,14 +210,28 @@
* Loads publishers to this view
*/
void LoadPublishers( TInt aReason );
-
+
/**
* Destroys all publishers in this view
*
* @param aReason Destroy reason
*/
void DestroyPublishers( TInt aReason );
-
+
+ /**
+ * Gets dirty region of a given node.
+ *
+ * @return Dirty region if found, otherwise NULL.
+ */
+ TXnDirtyRegion* DirtyRegionL( CXnNode& aNode );
+
+ /**
+ * Gets an array of dirty regions.
+ *
+ * @param aList An array for dirty regions.
+ */
+ void GetDirtyRegions( RPointerArray<TXnDirtyRegion>& aList );
+
private:
// data
--- a/idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -354,6 +354,20 @@
TRAP_IGNORE( RemovableDiskRemovedL() );
}
}
+ else if( aEvent.iType == MDiskNotifyHandlerCallback::EDiskAdded )
+ {
+ if( aEvent.iInfo.iType == EMediaHardDisk )
+ {
+ TRAP_IGNORE( RemovableDiskInsertedL() );
+ }
+ }
+ else if( aEvent.iType == MDiskNotifyHandlerCallback::EDiskRemoved )
+ {
+ if( aEvent.iInfo.iType == EMediaNotPresent )
+ {
+ TRAP_IGNORE( RemovableDiskRemovedL() );
+ }
+ }
}
// -----------------------------------------------------------------------------
@@ -1135,9 +1149,9 @@
RFs& fs( CEikonEnv::Static()->FsSession() );
if ( path != KNullDesC && BaflUtils::FileExists( fs, path ) )
{
+
iIntUpdate++;
- TInt err( AknsWallpaperUtils::SetIdleWallpaper( path, NULL ) );
-
+ TInt err( AknsWallpaperUtils::SetIdleWallpaper( path, NULL ) );
if( err )
{
iIntUpdate--;
@@ -1160,8 +1174,16 @@
if( err )
{
iIntUpdate--;
- }
- }
+ }
+
+ // If the drive was formatted or temporarily detached or the image was removed
+ if( path.Length() )
+ {
+ iViewManager.ActiveViewData().SetWallpaperImage( NULL );
+ iSkinSrv.RemoveWallpaper( path );
+ DrawNow();
+ }
+ }
}
}
--- a/idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -57,7 +57,6 @@
#include "xnviewdata.h"
#include "xnwallpaperview.h"
#include "xnbackgroundmanager.h"
-#include "xnpopupcontroladapter.h"
#include "xneditor.h"
#include "xnpanic.h"
@@ -629,18 +628,6 @@
}
if( ui )
{
- CXnNode* popup( iViewManager.UiEngine().StylusPopupNode() );
- if ( popup )
- {
- CXnPopupControlAdapter* control =
- static_cast< CXnPopupControlAdapter* >(
- popup->Control() );
-
- if ( control )
- {
- control->HideMenuL();
- }
- }
ui->SetContentController( this );
ui->Activate();
--- a/idlehomescreen/xmluirendering/uiengine/src/xnplugindata.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnplugindata.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -499,6 +499,9 @@
{
// Don't touch to iOwner, because this plugin might be reused later
+ delete iDirtyRegion;
+ iDirtyRegion = NULL;
+
// clear all flags, except editable and removable
TBool removable = iFlags.IsSet( EIsRemovable );
TBool editable = iFlags.IsSet( EIsEditable );
@@ -652,4 +655,21 @@
}
}
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+TXnDirtyRegion* CXnPluginData::CreateDirtyRegionL( CXnNode& aRootNode,
+ CCoeControl& aControl )
+ {
+ delete iDirtyRegion;
+ iDirtyRegion = NULL;
+ iDirtyRegion = new (ELeave) TXnDirtyRegion;
+ iDirtyRegion->iRegion.Clear();
+ iDirtyRegion->iControl = &aControl;
+ iDirtyRegion->iRootNode = &aRootNode;
+ iDirtyRegion->iDirtyList.Reset();
+ iDirtyRegion->iLayoutControl = 0;
+ return iDirtyRegion;
+ }
+
// End of file
--- a/idlehomescreen/xmluirendering/uiengine/src/xnpopupcontroladapter.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnpopupcontroladapter.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -204,13 +204,19 @@
CXnViewManager* manager( iUiEngine->ViewManager() );
CXnPluginData* plugin( manager->ActiveViewData().Plugin( &aPlugin ) );
-
+
if ( !plugin )
{
return;
}
CXnViewAdapter& adapter( iUiEngine->AppUiAdapter().ViewAdapter() );
+
+ // this is to avoid stylus popup on widget manager
+ if ( !adapter.IsForegroundAdapter() )
+ {
+ return;
+ }
const TPointerEvent& event( adapter.EventDispatcher()->PointerEvent() );
--- a/idlehomescreen/xmluirendering/uiengine/src/xnrootdata.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnrootdata.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -426,6 +426,46 @@
}
// -----------------------------------------------------------------------------
+// CXnRootData::ViewData()
+// -----------------------------------------------------------------------------
+//
+CXnViewData* CXnRootData::ViewData( CXnNode& aNode ) const
+ {
+ CXnNode* tmp( &aNode );
+ CXnNode* viewNode( NULL );
+ while( tmp )
+ {
+ if ( tmp->ViewNodeImpl() )
+ {
+ viewNode = tmp;
+ break;
+ }
+ else
+ {
+ tmp = tmp->Parent();
+ }
+ }
+ if( !viewNode )
+ {
+ return NULL;
+ }
+
+ CXnViewData* viewData( NULL );
+ for ( TInt i = 0; i < iPluginsData.Count(); i++ )
+ {
+ CXnViewData* tmpViewdata( static_cast< CXnViewData* >( iPluginsData[i] ) );
+ if( tmpViewdata->ViewNode() == viewNode )
+ {
+ viewData = tmpViewdata;
+ break;
+ }
+ }
+
+ return viewData;
+ }
+
+
+// -----------------------------------------------------------------------------
// CXnRootData::DestroyViewData()
// Sets view data to be destroyed
// -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnuiengine.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnuiengine.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -160,16 +160,6 @@
}
// -----------------------------------------------------------------------------
-// CXnUiEngine::RenderFromNodeL
-// Forwards the call to the ui engine implementation
-// -----------------------------------------------------------------------------
-void CXnUiEngine::RenderFromNodeL( CXnNode& aNode )
- {
- iUiEngineImpl->LayoutFromNodeL( aNode );
- iUiEngineImpl->RenderFromNodeL( aNode );
- }
-
-// -----------------------------------------------------------------------------
// CXnUiEngine::LayoutUIL
// Forwards the call to the ui engine implementation
// -----------------------------------------------------------------------------
@@ -180,16 +170,6 @@
}
// -----------------------------------------------------------------------------
-// CXnUiEngine::LayoutFromNodeL
-// Forwards the call to the ui engine implementation
-// -----------------------------------------------------------------------------
-//
-void CXnUiEngine::LayoutFromNodeL( CXnNode& aNode )
- {
- iUiEngineImpl->LayoutFromNodeL( aNode );
- }
-
-// -----------------------------------------------------------------------------
// CXnUiEngine::Resources
// Forwards the call to the ui engine implementation
// -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -7972,7 +7972,7 @@
// -----------------------------------------------------------------------------
//
static void ReportScreenDeviceChangedL( const CXnPluginData& aPluginData )
- {
+ {
CXnNode* node( NULL );
if ( aPluginData.Node() )
@@ -8211,13 +8211,6 @@
delete iEditMode;
iFocusCandidateList.Reset();
-
- if ( iRedrawRegions.Count() )
- {
- iRedrawRegions.ResetAndDestroy();
- }
-
- iDirtyList.Reset();
}
// -----------------------------------------------------------------------------
@@ -8233,98 +8226,124 @@
// CXnUiEngineImpl::LayoutUIL()
// -----------------------------------------------------------------------------
//
-void CXnUiEngineImpl::LayoutUIL( CXnNode* /*aNode*/ )
- {
- if ( IsLayoutDisabled() )
+void CXnUiEngineImpl::LayoutUIL( CXnNode* aNode )
+ {
+ if( aNode )
+ {
+ TXnDirtyRegion* dirtyRegion = FindDirtyRegionL( *aNode );
+ if( dirtyRegion )
+ {
+ LayoutL( *dirtyRegion );
+ }
+ }
+ else
+ {
+ CXnViewData* viewData = iViewManager.ActiveAppData().ViewData( *iCurrentView );
+ if( viewData )
+ {
+ RPointerArray<TXnDirtyRegion> arr;
+ CleanupClosePushL( arr );
+ viewData->GetDirtyRegions( arr );
+ for( TInt i = 0; i < arr.Count(); i++ )
+ {
+ LayoutL( *arr[i] );
+ }
+ CleanupStack::PopAndDestroy( &arr );
+ }
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CXnUiEngineImpl::LayoutUIL()
+// -----------------------------------------------------------------------------
+//
+void CXnUiEngineImpl::LayoutL( TXnDirtyRegion& aRegion )
+ {
+ if ( IsLayoutDisabled( aRegion ) )
{
- iLayoutControl |= XnLayoutControl::ELayoutUI;
+ aRegion.iLayoutControl |= XnLayoutControl::ELayoutUI;
return;
}
- iLayoutControl &= ~XnLayoutControl::ELayoutUI;
-
- if ( iDirtyList.Count() == 0 )
+ aRegion.iLayoutControl &= ~XnLayoutControl::ELayoutUI;
+
+ if ( aRegion.iDirtyList.Count() == 0 )
{
// Nothing to do, layout is up-to-date
return;
}
DisableRenderUiLC();
- CXnNode* candidate( StartLayoutFromL() );
- PrepareRunLayoutL();
- iDirtyList.Reset();
+
+ CXnNode* candidate( StartLayoutFromL( aRegion ) );
+ if( !candidate )
+ {
+ return;
+ }
+
+ PrepareRunLayoutL( aRegion );
+ aRegion.iDirtyList.Reset();
// Run layout until it is fully calculated
do
{
- iLayoutPhase = RunLayoutL( candidate );
+ iLayoutPhase = RunLayoutL( aRegion, *candidate );
}
while ( iLayoutPhase != XnLayoutPhase::ENone );
- CXnNode* focused( FocusedNode() );
-
- if ( focused && focused->IsDropped() )
- {
- // The currently focused node is dropped, run losevisualization
- CXnNode* loseVisualisation =
- BuildTriggerNodeLC( *iUiEngine,
- XnPropertyNames::action::trigger::name::KLoseVisualisation );
-
- focused->ReportXuikonEventL( *loseVisualisation );
- CleanupStack::PopAndDestroy( loseVisualisation );
-
- if ( FocusedNode() == focused )
- {
- // Remove focus as losevisualization trigger didn't
- // change focus from dropped node to another one
- SetFocusedNodeL( NULL );
- }
- }
-
- if ( !FocusedNode() && iAppUiAdapter.FocusShown() )
- {
- // No focus, try if some of the focus candidates can be focused
- RootNode()->RunFocusChangeL( iFocusCandidateList );
- }
-
- iFocusCandidateList.Reset();
-
- iAppUiAdapter.EffectManager()->UiLayouted();
+ // Run these only if the current view is being layouted
+ if( iCurrentView == aRegion.iRootNode )
+ {
+ CXnNode* focused( FocusedNode() );
+
+ if ( focused && focused->IsDropped() )
+ {
+ // The currently focused node is dropped, run losevisualization
+ CXnNode* loseVisualisation =
+ BuildTriggerNodeLC( *iUiEngine,
+ XnPropertyNames::action::trigger::name::KLoseVisualisation );
+
+ focused->ReportXuikonEventL( *loseVisualisation );
+ CleanupStack::PopAndDestroy( loseVisualisation );
+
+ if ( FocusedNode() == focused )
+ {
+ // Remove focus as losevisualization trigger didn't
+ // change focus from dropped node to another one
+ SetFocusedNodeL( NULL );
+ }
+ }
+
+ if ( !FocusedNode() && iAppUiAdapter.FocusShown() )
+ {
+ // No focus, try if some of the focus candidates can be focused
+ RootNode()->RunFocusChangeL( iFocusCandidateList );
+ }
+
+ iFocusCandidateList.Reset();
+
+ iAppUiAdapter.EffectManager()->UiLayouted();
+ }
// Layout is now recalculated
CleanupStack::PopAndDestroy(); // anonymous
}
-// -----------------------------------------------------------------------------
-// CXnUiEngineImpl::LayoutFromNodeL()
-// -----------------------------------------------------------------------------
-//
-void CXnUiEngineImpl::LayoutFromNodeL( CXnNode& aNode )
- {
- PrepareRunLayoutL( aNode );
-
- // Run layout until it is fully calculated
- do
- {
- iLayoutPhase = RunLayoutFromNodeL( aNode );
- }
- while ( iLayoutPhase != XnLayoutPhase::ENone );
- }
// -----------------------------------------------------------------------------
// PrepareRunLayoutL()
// Set dropped flags of all nodes in the tree to ENone.
// -----------------------------------------------------------------------------
//
-void CXnUiEngineImpl::PrepareRunLayoutL()
+void CXnUiEngineImpl::PrepareRunLayoutL( TXnDirtyRegion& aDirtyRegion )
{
if ( iLayoutPhase == XnLayoutPhase::ENone )
{
iLayoutPhase = XnLayoutPhase::ELayout;
- for ( TInt i = 0; i < iDirtyList.Count(); i++ )
- {
- CXnNode* dirty( iDirtyList[i] );
+ for ( TInt i = 0; i < aDirtyRegion.iDirtyList.Count(); i++ )
+ {
+ CXnNode* dirty( aDirtyRegion.iDirtyList[i] );
// Clear dropped flags recursively
SetNodeDroppedL( *dirty, XnNodeLayout::ENone );
@@ -8339,135 +8358,10 @@
}
// -----------------------------------------------------------------------------
-// PrepareRunLayoutL()
-// Set dropped flags of all nodes in the tree to ENone.
-// -----------------------------------------------------------------------------
-//
-void CXnUiEngineImpl::PrepareRunLayoutL( CXnNode& aNode )
- {
- if ( iLayoutPhase == XnLayoutPhase::ENone )
- {
- iLayoutPhase = XnLayoutPhase::ELayout;
-
- CXnNode* dirty( &aNode );
- dirty->ClearRenderedAndLaidOut();
-
- // Clear dropped flags recursively
- SetNodeDroppedL( *dirty, XnNodeLayout::ENone );
-
- if ( SetAdaptivesL( *dirty ) )
- {
- // Adaptive node causes measure phase
- iLayoutPhase = XnLayoutPhase::EMeasure;
- }
- }
- }
-
-// -----------------------------------------------------------------------------
// CXnUiEngineImpl::RunLayoutL()
// -----------------------------------------------------------------------------
//
-TInt CXnUiEngineImpl::RunLayoutL( CXnNode* aNode )
- {
- TRect clientRect( ClientRect() );
- // Move it to 0, 0
- clientRect.Move( -clientRect.iTl.iX, -clientRect.iTl.iY );
-
- RPointerArray< CXnNode > laidOutList;
- CleanupClosePushL( laidOutList );
-
- if ( IsNodeDisplayedL( *aNode ) )
- {
- if ( aNode->ViewNodeImpl() && !aNode ->IsLaidOut() )
- {
- aNode->SetMarginRect( clientRect );
- aNode->SetBorderRect( clientRect );
- aNode->SetNormalFlowBorderRect( clientRect );
- aNode->SetPaddingRect( clientRect );
- aNode->SetRect( clientRect );
- }
-
- // Put areas to place
- PlaceAreasL( *aNode, laidOutList, iLayoutPhase,
- *iCurrentGraphicsDevice, iHorizontalUnitInPixels,
- iVerticalUnitInPixels );
- }
-
- TInt nextPhase;
-
- switch ( iLayoutPhase )
- {
- case XnLayoutPhase::EMeasure:
- nextPhase = XnLayoutPhase::ELayout;
- break;
- case XnLayoutPhase::ELayout:
- // Layout is now calculated
- iCurrentView->SetLaidOutL();
- iLayoutControl &= ~XnLayoutControl::EViewDirty;
- // Check nodes which dimensions are changed
- for ( TInt i = 0; i < laidOutList.Count(); i++ )
- {
- CXnNode* node( laidOutList[i] );
- if( IsSrollableBox( *node ) && node->ScrollableControl() )
- {
- node->ScrollableControl()->LayoutChangedL();
- }
- if ( /*IsNodeTooltip( *node ) ||*/ !node->IsLaidOut() )
- {
- continue;
- }
- CXnControlAdapter* adapter( node->Control() );
- if ( adapter )
- {
- TRect rect;
-
- if ( node->ViewNodeImpl() )
- {
- rect = ClientRect();
-
- // Move it to 0, 0
- //rect.Move( -rect.iTl.iX, -rect.iTl.iY );
- }
- else
- {
- rect = node->BorderRect();
- }
-
- if ( adapter->Rect() != rect )
- {
- AddToRedrawListL( node, rect );
-
- adapter->SetRect( rect );
-
- CXnProperty* prop = node->GetPropertyL(
- XnPropertyNames::common::KSizeAware );
- if ( prop && prop->StringValue() ==
- XnPropertyNames::KTrue )
- {
- CXnNode* sizeChanged =
- BuildTriggerNodeLC( *iUiEngine,
- XnPropertyNames::action::trigger::name::
- KSizeChanged );
- node->ReportXuikonEventL( *sizeChanged );
- CleanupStack::PopAndDestroy( sizeChanged );
- }
- }
- }
- }
- /* flow through */
- default:
- nextPhase = XnLayoutPhase::ENone;
- break;
- }
- CleanupStack::PopAndDestroy( &laidOutList );
- return nextPhase;
- }
-
-// -----------------------------------------------------------------------------
-// CXnUiEngineImpl::RunLayoutL()
-// -----------------------------------------------------------------------------
-//
-TInt CXnUiEngineImpl::RunLayoutFromNodeL( CXnNode& aNode )
+TInt CXnUiEngineImpl::RunLayoutL( TXnDirtyRegion& aDirtyRegion, CXnNode& aNode )
{
TRect clientRect( ClientRect() );
// Move it to 0, 0
@@ -8502,8 +8396,8 @@
break;
case XnLayoutPhase::ELayout:
// Layout is now calculated
- aNode.SetLaidOutL();
-
+ aDirtyRegion.iRootNode->SetLaidOutL();
+ aDirtyRegion.iLayoutControl &= ~XnLayoutControl::EViewDirty;
// Check nodes which dimensions are changed
for ( TInt i = 0; i < laidOutList.Count(); i++ )
{
@@ -8512,7 +8406,7 @@
{
node->ScrollableControl()->LayoutChangedL();
}
- if ( !node->IsLaidOut() )
+ if ( /*IsNodeTooltip( *node ) ||*/ !node->IsLaidOut() )
{
continue;
}
@@ -8524,14 +8418,33 @@
if ( node->ViewNodeImpl() )
{
rect = ClientRect();
+
+ // Move it to 0, 0
+ //rect.Move( -rect.iTl.iX, -rect.iTl.iY );
}
else
{
rect = node->BorderRect();
}
+
if ( adapter->Rect() != rect )
{
- adapter->SetRect( rect );
+ AddToRedrawListL( aDirtyRegion, *node, rect );
+
+ adapter->SetRect( rect );
+
+ CXnProperty* prop = node->GetPropertyL(
+ XnPropertyNames::common::KSizeAware );
+ if ( prop && prop->StringValue() ==
+ XnPropertyNames::KTrue )
+ {
+ CXnNode* sizeChanged =
+ BuildTriggerNodeLC( *iUiEngine,
+ XnPropertyNames::action::trigger::name::
+ KSizeChanged );
+ node->ReportXuikonEventL( *sizeChanged );
+ CleanupStack::PopAndDestroy( sizeChanged );
+ }
}
}
}
@@ -8548,49 +8461,91 @@
// CXnUiEngineImpl::RenderUIL()
// -----------------------------------------------------------------------------
//
-void CXnUiEngineImpl::RenderUIL( CXnNode* /*aNode*/ )
- {
- if ( IsLayoutDisabled() )
+void CXnUiEngineImpl::RenderUIL( CXnNode* aNode )
+ {
+ if( aNode )
+ {
+ TXnDirtyRegion* dirtyRegion = FindDirtyRegionL( *aNode );
+ if( dirtyRegion )
+ {
+ RenderL( *dirtyRegion );
+ }
+ }
+ else
+ {
+ CXnViewData* viewData = iViewManager.ActiveAppData().ViewData( *iCurrentView );
+ if( viewData )
+ {
+ RPointerArray<TXnDirtyRegion> arr;
+ CleanupClosePushL( arr );
+
+ viewData->GetDirtyRegions( arr );
+ for( TInt i = 0; i < arr.Count(); i++ )
+ {
+ RenderL( *arr[i] );
+ }
+ CleanupStack::PopAndDestroy( &arr );
+ }
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CXnUiEngineImpl::RenderUIL()
+// -----------------------------------------------------------------------------
+//
+void CXnUiEngineImpl::RenderL( TXnDirtyRegion& aRegion )
+ {
+ if ( IsLayoutDisabled( aRegion ) )
{
// Layout is not up-to-date
- iLayoutControl |= XnLayoutControl::ERenderUI;
+ aRegion.iLayoutControl |= XnLayoutControl::ERenderUI;
return;
}
-
+
+ TBool belongsToCurrentView( EFalse );
+ if( iCurrentView == aRegion.iRootNode )
+ {
+ belongsToCurrentView = ETrue;
+ }
+
#ifdef _XN3_DEBUG_
- TraceTreeL(iCurrentView );
+ TraceTreeL( aRegion.RootNode );
#endif
__PRINTS("*** CXnUiEngineImpl::RenderUIL ***");
- for( TInt i=0; i<iRedrawRegions.Count(); i++)
- {
- CCoeControl* control = iRedrawRegions[i]->iControl;
- RRegion& redrawRegion = iRedrawRegions[i]->iRegion;
+
+ CCoeControl* control = aRegion.iControl;
+ RRegion& redrawRegion = aRegion.iRegion;
+
+ if( redrawRegion.CheckError() )
+ {
+ // Mark tree rendered
+ aRegion.iRootNode->SetRenderedL();
+ // Error occured during dirty set, redraw whole window
+ control->DrawNow();
- if( redrawRegion.CheckError() )
- {
+ __PRINTS("* CXnUiEngineImpl::RenderUIL - redraw region error -> full redraw ***");
+ }
+ else
+ {
+ if( !redrawRegion.IsEmpty() )
+ {
// Mark tree rendered
- iCurrentView->SetRenderedL();
- // Error occured during dirty set, redraw whole window
- control->DrawNow();
+ aRegion.iRootNode->SetRenderedL();
+
+ TBool effectOngoing( EFalse );
+ if ( iAppUiAdapter.EffectManager()->ControlEffectActive( control ) &&
+ belongsToCurrentView )
+ {
+ // control effect is ongoing, no need to draw control yet,
+ // if current view in question
+ redrawRegion.Clear();
+ effectOngoing = ETrue;
+ }
- __PRINTS("* CXnUiEngineImpl::RenderUIL - redraw region error -> full redraw ***");
- }
- else
- {
- if( !redrawRegion.IsEmpty() )
- {
- // Mark tree rendered
- iCurrentView->SetRenderedL();
-
- if ( iAppUiAdapter.EffectManager()->ControlEffectActive( control ) )
- {
- // control effect is ongoing, no need to draw control yet
- redrawRegion.Clear();
- continue;
- }
-
+ if( !effectOngoing )
+ {
TInt count( redrawRegion.Count() );
if( count > 2 )
@@ -8609,7 +8564,7 @@
{
// Draw every dirty area separately
TRect redrawRect( redrawRegion[i] );
-
+
__PRINT( __DBG_FORMAT( "* CXnUiEngineImpl::RenderUIL - redrawing rect iTl.iX: %d, iTl.iY: %d, iBr.iX: %d, iBr.iY: %d" ),
redrawRect.iTl.iX, redrawRect.iTl.iY, redrawRect.iBr.iX, redrawRect.iBr.iY );
@@ -8617,38 +8572,28 @@
}
}
}
- else
- {
- __PRINTS("* CXnUiEngineImpl::RenderUIL - nothing to redraw ***");
- }
- }
-
- redrawRegion.Clear();
- }
-
- RefreshMenuL();
-
- iLayoutControl &= ~XnLayoutControl::ERenderUI;
+ }
+ else
+ {
+ __PRINTS("* CXnUiEngineImpl::RenderUIL - nothing to redraw ***");
+ }
+ }
- iAppUiAdapter.EffectManager()->UiRendered();
+ redrawRegion.Clear();
+
+ RefreshMenuL( &aRegion );
+
+ aRegion.iLayoutControl &= ~XnLayoutControl::ERenderUI;
+
+ if( belongsToCurrentView )
+ {
+ iAppUiAdapter.EffectManager()->UiRendered();
+ }
__PRINTS("*** CXnUiEngineImpl::RenderUIL - done ***");
}
// -----------------------------------------------------------------------------
-// CXnUiEngineImpl::RenderFromNodeL()
-// -----------------------------------------------------------------------------
-//
-void CXnUiEngineImpl::RenderFromNodeL( CXnNode& aNode )
- {
-#ifdef _XN3_DEBUG_
- TraceTreeL( &aNode );
-#endif
- CCoeControl* control = WindowOwningControl( aNode );
- control->DrawNow();
- }
-
-// -----------------------------------------------------------------------------
// CXnUiEngineImpl::RootNode()
// -----------------------------------------------------------------------------
//
@@ -8913,10 +8858,6 @@
iControlAdapterList = &iViewManager.Controls();
iCurrentViewControlAdapter = iCurrentView->Control();
-
- iDirtyList.Reset();
-
- iRedrawRegions.ResetAndDestroy();
// Remove previous menubar and stylus popup node
iMenuNode = NULL;
@@ -8962,7 +8903,12 @@
ForceRenderUIL();
- iLayoutControl &= ~XnLayoutControl::ERefreshMenu;
+ TXnDirtyRegion* dirtyRegion = FindDirtyRegionL( *iCurrentView );
+ if( dirtyRegion )
+ {
+ dirtyRegion->iDirtyList.Reset();
+ dirtyRegion->iLayoutControl &= ~XnLayoutControl::ERefreshMenu;
+ }
}
// -----------------------------------------------------------------------------
@@ -9179,16 +9125,33 @@
//
void CXnUiEngineImpl::RefreshMenuL()
{
- if ( IsLayoutDisabled() )
- {
- return;
+ RefreshMenuL( NULL );
+ }
+
+// -----------------------------------------------------------------------------
+// CXnUiEngineImpl::RefreshMenuL
+// Refresh current menu
+// -----------------------------------------------------------------------------
+//
+void CXnUiEngineImpl::RefreshMenuL( TXnDirtyRegion* aDirtyRegion )
+ {
+ TXnDirtyRegion* dirtyRegion = aDirtyRegion;
+ if( !dirtyRegion )
+ {
+ dirtyRegion = FindDirtyRegionL( *iCurrentView );
}
- if ( iLayoutControl & XnLayoutControl::ERefreshMenu )
+ if ( IsLayoutDisabled( *dirtyRegion ) )
+ {
+ return;
+ }
+
+ if ( dirtyRegion &&
+ dirtyRegion->iLayoutControl & XnLayoutControl::ERefreshMenu )
{
if ( iKeyEventDispatcher )
{
- iLayoutControl &= ~XnLayoutControl::ERefreshMenu;
+ dirtyRegion->iLayoutControl &= ~XnLayoutControl::ERefreshMenu;
iKeyEventDispatcher->RefreshMenuL();
}
}
@@ -9201,45 +9164,79 @@
//
void CXnUiEngineImpl::AddDirtyNodeL( CXnNode* aNode, TInt aLevel )
{
- CXnViewData& data( iViewManager.ActiveViewData() );
-
- if ( !aNode || ( aNode != RootNode() && !data.Plugin( aNode->Namespace() ) ) )
- {
- // No node, or node doesn't belong to active view namespace
- return;
- }
-
- if ( aNode->Type()->Type() == KMenuBar )
- {
- iLayoutControl |= XnLayoutControl::ERefreshMenu;
+ if ( !aNode )
+ {
return;
- }
-
- if ( iLayoutControl & XnLayoutControl::EViewDirty )
- {
- // nothing to do
- return;
- }
-
- if ( aLevel == XnDirtyLevel::ERender )
- {
- if( aNode == RootNode() )
- {
- TXnDirtyRegion* dirtyRegion = FindDirtyRegionL( *iCurrentView );
- if( dirtyRegion )
- {
- dirtyRegion->iRegion.Clear();
- }
- aNode = iCurrentView;
- }
-
- // Add to redraw list
- AddToRedrawListL( aNode );
+ }
+
+ if ( aNode == RootNode() )
+ {
+ // Force relayout and redraw from current view
+ iViewManager.ActiveAppData().PluginData();
+ if ( !iCurrentView )
+ {
+ iCurrentView = iViewManager.ViewNode();
+ }
+
+ TXnDirtyRegion* dirtyRegion = FindDirtyRegionL( *iCurrentView );
+ if( dirtyRegion )
+ {
+ dirtyRegion->iRegion.Clear();
+ }
+ else
+ {
+ return;
+ }
+
+ dirtyRegion->iDirtyList.Reset();
+ dirtyRegion->iDirtyList.AppendL( iCurrentView );
+
+ dirtyRegion->iLayoutControl |= XnLayoutControl::EViewDirty;
+ iCurrentView->ClearRenderedAndLaidOut();
+
+ // Add to draw list for redraw
+ AddToRedrawListL( *dirtyRegion, *iCurrentView );
}
else
{
- // Add to dirty list for relayout and redraw
- AddToDirtyListL( aNode );
+ TXnDirtyRegion* dirtyRegion( FindDirtyRegionL( *aNode ) );
+ if( !dirtyRegion )
+ {
+ return;
+ }
+
+ if ( aNode->Type()->Type() == KMenuBar )
+ {
+ dirtyRegion->iLayoutControl |= XnLayoutControl::ERefreshMenu;
+ return;
+ }
+
+ if ( dirtyRegion->iLayoutControl & XnLayoutControl::EViewDirty )
+ {
+ // nothing to do
+ return;
+ }
+
+ if ( aLevel == XnDirtyLevel::ERender )
+ {
+ if( aNode == RootNode() )
+ {
+ TXnDirtyRegion* dirtyRegion = FindDirtyRegionL( *iCurrentView );
+ if( dirtyRegion )
+ {
+ dirtyRegion->iRegion.Clear();
+ }
+ aNode = iCurrentView;
+ }
+
+ // Add to redraw list
+ AddToRedrawListL( *dirtyRegion, *aNode );
+ }
+ else
+ {
+ // Add to dirty list for relayout and redraw
+ AddToDirtyListL( *dirtyRegion, *aNode );
+ }
}
}
@@ -9597,16 +9594,16 @@
// CXnUiEngineImpl::IsLayoutDisabled
// -----------------------------------------------------------------------------
//
-TBool CXnUiEngineImpl::IsLayoutDisabled()
+TBool CXnUiEngineImpl::IsLayoutDisabled( TXnDirtyRegion& aDirtyRegion )
{
if ( !iCurrentView )
{
return ETrue;
}
-
+
TBool retval( EFalse );
- if ( !( iLayoutControl & XnLayoutControl::EIgnoreState ) )
+ if ( !( aDirtyRegion.iLayoutControl & XnLayoutControl::EIgnoreState ) )
{
if ( iDisableCount > 0 )
{
@@ -9622,9 +9619,10 @@
// Mark Control's appearance to be redrawn
// -----------------------------------------------------------------------------
//
-void CXnUiEngineImpl::AddToRedrawListL( CXnNode* aNode, TRect aRect )
+void CXnUiEngineImpl::AddToRedrawListL( TXnDirtyRegion& aRegion,
+ CXnNode& aNode, TRect aRect )
{
- CXnControlAdapter* aAdapter( aNode->Control() );
+ CXnControlAdapter* aAdapter( aNode.Control() );
if( !aAdapter )
{
@@ -9634,7 +9632,8 @@
if( aRect != TRect::EUninitialized )
{
// This is the new rect which will be set by layout algo
- AddRedrawRectL( aRect, *aNode );
+ aRegion.iRegion.AddRect( aRect );
+ aRegion.iRegion.Tidy();
}
TRect rect( aAdapter->Rect() );
@@ -9644,39 +9643,11 @@
// Don't add uninitialized rect
return;
}
-
- /*
- if( aNode->IsStateSet( XnPropertyNames::style::common::KFocus ) )
- {
- const TDesC8& name( aNode->DomNode()->Name() );
-
- if( name == KPlugin )
- {
- rect.Grow( KFocusGrowValue, KFocusGrowValue );
- }
- else
- {
- TRect marginRect( aNode->MarginRect() );
-
- CXnNode* parent( aNode->Parent() );
-
- for( ; parent; parent = parent->Parent() )
- {
- if( parent->DomNode()->Name() == KPlugin )
- {
- if( parent->Rect() == marginRect )
- {
- rect.Grow( KFocusGrowValue, KFocusGrowValue );
- }
-
- break;
- }
- }
- }
- }
- */
- GrowIfNeeded(aNode, rect);
- AddRedrawRectL( rect, *aNode );
+
+ GrowIfNeeded( &aNode, rect );
+
+ aRegion.iRegion.AddRect( rect );
+ aRegion.iRegion.Tidy();
}
// -----------------------------------------------------------------------------
@@ -9684,122 +9655,94 @@
// Mark node to dirty list for relayout
// -----------------------------------------------------------------------------
//
-void CXnUiEngineImpl::AddToDirtyListL( CXnNode* aNode )
- {
-
- if ( aNode )
- {
- CXnNode* nodeToRedrawList( aNode );
- CXnNode* nodeToDirtyList( aNode );
-
- if ( aNode == RootNode() )
- {
- // Force relayout and redraw from current view
- iDirtyList.Reset();
- if ( !iCurrentView )
- {
- iCurrentView = iViewManager.ViewNode();
- }
- iDirtyList.AppendL( iCurrentView );
- TXnDirtyRegion* dirtyRegion = FindDirtyRegionL( *iCurrentView );
- if( dirtyRegion )
- {
- dirtyRegion->iRegion.Clear();
- }
- iLayoutControl |= XnLayoutControl::EViewDirty;
- nodeToDirtyList = nodeToRedrawList = iCurrentView;
- nodeToDirtyList->ClearRenderedAndLaidOut();
-
- // Add to draw list for redraw
- AddToRedrawListL( nodeToRedrawList );
- }
- else
- {
- if ( !IsAbsoluteL( *aNode ) && !IsNodeTooltip( *aNode ) )
- {
- // Check adaptives in normal flow
- CXnNode* oldest( NULL );
- CXnNode* adaptive( aNode );
-
- if ( !aNode->IsAdaptive( ETrue ) )
- {
- adaptive = aNode->Parent();
- }
-
- for ( ; adaptive && adaptive->IsAdaptive( ETrue );
- adaptive = adaptive->Parent() )
- {
- oldest = adaptive;
- }
-
- // Now we have found the oldest adaptive node if present
- if ( oldest )
- {
- nodeToRedrawList = nodeToDirtyList = adaptive;
- }
- }
-
- RPointerArray< CXnNode > dirtyList;
- CleanupClosePushL( dirtyList );
- TInt count( iDirtyList.Count() );
- TBool found;
-
- // first, check that aNode's children are not in the dirty array
- for ( TInt i = 0; i < count; ++i )
- {
- found = EFalse;
- CXnNode* candidate( iDirtyList[i] );
-
- for ( CXnNode* node = candidate->Parent(); node && !found;
- node = node->Parent() )
- {
- if ( nodeToDirtyList == node )
- {
- found = ETrue;
- }
- }
-
- if ( !found )
- {
- // Put candidate back to list as child is not found
- dirtyList.AppendL( candidate );
- }
- }
-
- found = EFalse;
-
- // second, check that aNode's parent is not in dirty array
- for ( TInt i = 0; i < count && !found; ++i )
- {
- CXnNode* candidate( iDirtyList[i] );
-
- for ( CXnNode* node = nodeToDirtyList; node && !found;
- node = node->Parent() )
- {
- if ( node == candidate )
- {
- found = ETrue;
- }
- }
- }
-
- if ( !found && iDirtyList.Find( nodeToDirtyList ) == KErrNotFound )
- {
- // Add node to dirty list as parent is neither found
- dirtyList.AppendL( nodeToDirtyList );
- nodeToDirtyList->ClearRenderedAndLaidOut();
-
- // Add to draw list for redraw
- AddToRedrawListL( nodeToRedrawList );
- }
-
- // finally update the dirty list
- iDirtyList.Reset();
- iDirtyList = dirtyList;
-
- CleanupStack::Pop( &dirtyList );
- }
- }
+void CXnUiEngineImpl::AddToDirtyListL( TXnDirtyRegion& aRegion, CXnNode& aNode )
+ {
+ CXnNode* nodeToRedrawList( &aNode );
+ CXnNode* nodeToDirtyList( &aNode );
+
+ if ( !IsAbsoluteL( aNode ) && !IsNodeTooltip( aNode ) )
+ {
+ // Check adaptives in normal flow
+ CXnNode* oldest( NULL );
+ CXnNode* adaptive( &aNode );
+
+ if ( !aNode.IsAdaptive( ETrue ) )
+ {
+ adaptive = aNode.Parent();
+ }
+
+ for ( ; adaptive && adaptive->IsAdaptive( ETrue );
+ adaptive = adaptive->Parent() )
+ {
+ oldest = adaptive;
+ }
+
+ // Now we have found the oldest adaptive node if present
+ if ( oldest )
+ {
+ nodeToRedrawList = nodeToDirtyList = adaptive;
+ }
+ }
+
+ RPointerArray< CXnNode > dirtyList;
+ CleanupClosePushL( dirtyList );
+ TInt count( aRegion.iDirtyList.Count() );
+ TBool found;
+
+ // first, check that aNode's children are not in the dirty array
+ for ( TInt i = 0; i < count; ++i )
+ {
+ found = EFalse;
+ CXnNode* candidate( aRegion.iDirtyList[i] );
+
+ for ( CXnNode* node = candidate->Parent(); node && !found;
+ node = node->Parent() )
+ {
+ if ( nodeToDirtyList == node )
+ {
+ found = ETrue;
+ }
+ }
+
+ if ( !found )
+ {
+ // Put candidate back to list as child is not found
+ dirtyList.AppendL( candidate );
+ }
+ }
+
+ found = EFalse;
+
+ // second, check that aNode's parent is not in dirty array
+ for ( TInt i = 0; i < count && !found; ++i )
+ {
+ CXnNode* candidate( aRegion.iDirtyList[i] );
+
+ for ( CXnNode* node = nodeToDirtyList; node && !found;
+ node = node->Parent() )
+ {
+ if ( node == candidate )
+ {
+ found = ETrue;
+ }
+ }
+ }
+
+ if ( !found && aRegion.iDirtyList.Find( nodeToDirtyList ) == KErrNotFound )
+ {
+ // Add node to dirty list as parent is neither found
+ dirtyList.AppendL( nodeToDirtyList );
+ nodeToDirtyList->ClearRenderedAndLaidOut();
+
+ // Add to draw list for redraw
+ AddToRedrawListL( aRegion, *nodeToRedrawList );
+ }
+
+ // finally update the dirty list
+ aRegion.iDirtyList.Reset();
+ aRegion.iDirtyList = dirtyList;
+
+ CleanupStack::Pop( &dirtyList );
}
// -----------------------------------------------------------------------------
@@ -9862,23 +9805,29 @@
// CXnUiEngineImpl::StartLayoutFromL
// -----------------------------------------------------------------------------
//
-CXnNode* CXnUiEngineImpl::StartLayoutFromL()
- {
- if ( iLayoutControl & XnLayoutControl::EViewDirty )
- {
- return iCurrentView;
+CXnNode* CXnUiEngineImpl::StartLayoutFromL( TXnDirtyRegion& aDirtyRegion )
+ {
+ CXnNode* viewNode( aDirtyRegion.iRootNode );
+ if( !viewNode )
+ {
+ return NULL;
+ }
+
+ if ( aDirtyRegion.iLayoutControl & XnLayoutControl::EViewDirty )
+ {
+ return viewNode;
}
RPointerArray< CXnNode >parentArray;
CleanupClosePushL( parentArray );
- TInt dirtyCount = iDirtyList.Count();
+ TInt dirtyCount = aDirtyRegion.iDirtyList.Count();
CXnNode* startNode( NULL );
for ( TInt dirtyIndex = 0; dirtyIndex < dirtyCount; dirtyIndex++ )
{
- startNode = iDirtyList[dirtyIndex];
-
- for ( ;startNode && startNode != iCurrentView; )
+ startNode = aDirtyRegion.iDirtyList[dirtyIndex];
+
+ for ( ;startNode && startNode != viewNode; )
{
parentArray.Append( startNode->Parent() );
startNode = startNode->Parent();
@@ -9909,7 +9858,7 @@
CleanupStack::PopAndDestroy( &parentArray );
- return iCurrentView;
+ return viewNode;
}
// -----------------------------------------------------------------------------
@@ -9927,7 +9876,14 @@
//
void CXnUiEngineImpl::ForceRenderUIL( TBool aLayoutOnly )
{
- iLayoutControl |= XnLayoutControl::EIgnoreState;
+ TXnDirtyRegion* dirtyRegion = FindDirtyRegionL( *iCurrentView );
+ if( !dirtyRegion )
+ {
+ return;
+ }
+
+ dirtyRegion->iLayoutControl |= XnLayoutControl::EIgnoreState;
+
if ( aLayoutOnly )
{
LayoutUIL();
@@ -9937,7 +9893,8 @@
LayoutUIL();
RenderUIL();
}
- iLayoutControl &= ~XnLayoutControl::EIgnoreState;
+
+ dirtyRegion->iLayoutControl &= ~XnLayoutControl::EIgnoreState;
}
// -----------------------------------------------------------------------------
@@ -10085,31 +10042,52 @@
if ( self->iDisableCount == 0 )
{
- TRAP_IGNORE(
+ TRAP_IGNORE( self->EnableRenderUiL() );
+ }
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CXnUiEngineImpl::EnableRenderUiL()
+ {
+ CXnViewData* viewData = iViewManager.ActiveAppData().ViewData( *iCurrentView );
+ if( viewData )
+ {
+ RPointerArray<TXnDirtyRegion> arr;
+ CleanupClosePushL( arr );
+
+ viewData->GetDirtyRegions( arr );
+
+ for( TInt i = 0; i < arr.Count(); i++ )
+ {
+ TXnDirtyRegion* dirtyRegion = arr[i];
+
// Is menu refresh pending?
- if ( ( self->iLayoutControl & XnLayoutControl::ERefreshMenu ) &&
- !self->IsMenuDisplaying() )
+ if ( ( dirtyRegion->iLayoutControl & XnLayoutControl::ERefreshMenu ) &&
+ IsMenuDisplaying() )
{
// RefreshMenuL will reset the state flag
- self->RefreshMenuL();
- }
-
+ RefreshMenuL( dirtyRegion );
+ }
+
// Is layout pending?
- if ( self->iLayoutControl & XnLayoutControl::ELayoutUI )
- {
- self->LayoutUIL();
- }
-
+ if ( dirtyRegion->iLayoutControl & XnLayoutControl::ELayoutUI )
+ {
+ LayoutL( *dirtyRegion );
+ }
+
// Is render pending?
- if ( self->iLayoutControl & XnLayoutControl::ERenderUI )
- {
- self->RenderUIL();
- }
- );
- }
- }
- }
-
+ if ( dirtyRegion->iLayoutControl & XnLayoutControl::ERenderUI )
+ {
+ RenderL( *dirtyRegion );
+ }
+ }
+ CleanupStack::PopAndDestroy( &arr);
+ }
+ }
+
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
//
@@ -10122,6 +10100,15 @@
for( TInt i = 0; i < plugins.Count(); i++ )
{
ReportScreenDeviceChangedL( *plugins[i] );
+ CXnDomNode* domNode( plugins[i]->Node() );
+ if( domNode )
+ {
+ CXnNode* node( domNode->LayoutNode() );
+ if( node )
+ {
+ node->SetDirtyL();
+ }
+ }
}
}
@@ -10235,7 +10222,7 @@
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
-CCoeControl* CXnUiEngineImpl::WindowOwningControl( CXnNode& aNode )
+CXnNode* CXnUiEngineImpl::WindowOwningNode( CXnNode& aNode )
{
CXnNode* parent = &aNode;
while( parent )
@@ -10246,13 +10233,13 @@
if( parent->ViewNodeImpl() &&
adapter == iCurrentViewControlAdapter )
{
- return adapter;
+ return parent;
}
else if( adapter->OwnsWindow() )
{
if( !IsNodeTooltip( *parent ) )
{
- return adapter;
+ return parent;
}
else
{
@@ -10269,39 +10256,29 @@
// -----------------------------------------------------------------------------
TXnDirtyRegion* CXnUiEngineImpl::FindDirtyRegionL( CXnNode& aNode )
{
- CCoeControl* control = WindowOwningControl( aNode );
+ CXnNode* node( WindowOwningNode( aNode ) );
+ if( !node )
+ {
+ return NULL;
+ }
+
+ CCoeControl* control( node->Control() );
if( !control )
{
return NULL;
}
- for( TInt i=0; i<iRedrawRegions.Count(); i++ )
- {
- if( iRedrawRegions[i]->iControl == control )
- {
- return iRedrawRegions[i];
- }
- }
- TXnDirtyRegion* region = new (ELeave) TXnDirtyRegion;
- CleanupStack::PushL( region );
- region->iControl = control;
- iRedrawRegions.AppendL( region );
- CleanupStack::Pop();
+
+ TXnDirtyRegion* region( NULL );
+ CXnViewData* viewData = iViewManager.ActiveAppData().ViewData( *node );
+ if( viewData )
+ {
+ region = viewData->DirtyRegionL( *node );
+ }
+
return region;
}
// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-void CXnUiEngineImpl::AddRedrawRectL( TRect aRect, CXnNode& aNode )
- {
- TXnDirtyRegion* dirtyReg = FindDirtyRegionL( aNode );
- if( dirtyReg )
- {
- dirtyReg->iRegion.AddRect( aRect );
- dirtyReg->iRegion.Tidy();
- }
- }
-
-// -----------------------------------------------------------------------------
// SetEventDispatcher
// -----------------------------------------------------------------------------
void CXnUiEngineImpl::SetEventDispatcher( CXnKeyEventDispatcher* aDispatcher )
--- a/idlehomescreen/xmluirendering/uiengine/src/xnutils.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnutils.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -1667,7 +1667,7 @@
// Resolves skin id (major+minor) from SKIN() declaration.
// -----------------------------------------------------------------------------
//
-TBool CXnUtils::ResolveSkinItemIDL( const TDesC& aSkinId, TAknsItemID& aItemID )
+EXPORT_C TBool CXnUtils::ResolveSkinItemIDL( const TDesC& aSkinId, TAknsItemID& aItemID )
{
HBufC* str = aSkinId.AllocL();
TPtr ptrSkin = str->Des();
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -48,6 +48,8 @@
#include "xneditmode.h"
#include "xnrootdata.h"
+#include "xnpopupcontroladapter.h"
+
#include "debug.h"
// Constants
@@ -584,7 +586,7 @@
started = mgr->BeginActivateViewEffect( active, aContainer, aEffect );
}
- DeactivateContainerL( EFalse );
+ DeactivateContainerL();
// Update
iContainer = &aContainer;
@@ -751,18 +753,7 @@
ChangeControlsStateL( EFalse );
CXnNode* node( iContainer->Node()->LayoutNode() );
-
- CXnDomStringPool* sp( node->DomNode()->StringPool() );
-
- CXnProperty* prop = CXnProperty::NewL(
- XnPropertyNames::style::common::KDisplay,
- XnPropertyNames::style::common::display::KNone,
- CXnDomPropertyValue::EString, *sp );
- CleanupStack::PushL( prop );
-
- node->SetPropertyWithoutNotificationL( prop );
- CleanupStack::Pop( prop );
-
+
if ( !iDeactivate )
{
iDeactivate = BuildDeactivateTriggerL( iAppUiAdapter.UiEngine() );
@@ -1018,7 +1009,7 @@
CleanupClosePushL( popups );
iContainer->PopupNodesL( popups );
-
+
for ( TInt i = 0; i < popups.Count(); i++ )
{
CXnProperty* display = CXnProperty::NewL(
@@ -1035,7 +1026,24 @@
CleanupStack::PopAndDestroy( &popups );
iEventDispatcher->SetTextEditorActive( NULL, EFalse );
+
+ CXnNode* popup( iAppUiAdapter.UiEngine().StylusPopupNode() );
+ if ( popup )
+ {
+ CXnPopupControlAdapter* control =
+ static_cast< CXnPopupControlAdapter* >(
+ popup->Control() );
+
+ if ( control )
+ {
+ control->HideMenuL();
+ }
+ }
}
+TBool CXnViewAdapter::IsForegroundAdapter() const
+ {
+ return ( iContainer != NULL );
+ }
// End of file
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewcontroladapter.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewcontroladapter.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -194,6 +194,11 @@
iAppUi.ViewSwitcher() == NULL || // no swipe if VS not available
!iAppUi.ViewSwitcher()->ProcessPointerEventL( aPointerEvent ) ) ) // no swipe if event not handled by VS
{
+ if ( IsWidgetGestureDest() && iAppUi.ViewSwitcher() != NULL )
+ {
+ iAppUi.ViewSwitcher()->StopViewSwitchL();
+ }
+
iAppUi.UiEngine().DisableRenderUiLC();
CXnControlAdapter::HandlePointerEventL( aPointerEvent );
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewdata.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewdata.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -624,4 +624,60 @@
__PRINTS( "*** CXnViewData::DestroyPublishers - done" );
}
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+TXnDirtyRegion* CXnViewData::DirtyRegionL( CXnNode& aNode )
+ {
+ // First make sure that the given node is "window owning"
+ CCoeControl* control( aNode.Control() );
+ if( !control || !control->OwnsWindow() )
+ {
+ return NULL;
+ }
+
+ if( iDirtyRegion && iDirtyRegion->iControl == control )
+ {
+ return iDirtyRegion;
+ }
+
+ // in case of widget extension / popup, a widget may own window
+ for( TInt i = 0; i < iPluginsData.Count(); i++ )
+ {
+ TXnDirtyRegion* region( iPluginsData[i]->DirtyRegion() );
+ if( region && region->iControl == control )
+ {
+ return region;
+ }
+ }
+
+ // Region not found, create a new one
+ CXnPluginData* pluginData( Plugin( &aNode ) );
+ if( pluginData )
+ {
+ return pluginData->CreateDirtyRegionL( aNode, *control );
+ }
+
+ return NULL;
+ }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CXnViewData::GetDirtyRegions( RPointerArray<TXnDirtyRegion>& aList )
+ {
+ if( iDirtyRegion )
+ {
+ aList.Append( iDirtyRegion );
+ }
+ for( TInt i = 0; i < iPluginsData.Count(); i++ )
+ {
+ TXnDirtyRegion* region( iPluginsData[i]->DirtyRegion() );
+ if( region )
+ {
+ aList.Append( region );
+ }
+ }
+ }
+
// End of file
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewswitcher.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewswitcher.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -544,7 +544,7 @@
iAppUi.ViewAdapter().EnterEditStateL( *aView.iViewData, EFalse );
- viewNode->UiEngine()->RenderFromNodeL( *viewNode );
+ viewNode->UiEngine()->RenderUIL( viewNode );
aView.iReadyToDraw = ETrue;
}
@@ -982,5 +982,13 @@
GfxTransEffect::SetDemarcation( &bg, bg.Position() );
GfxTransEffect::End( &bg );
}
-
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CXnViewSwitcher::StopViewSwitchL()
+ {
+ ViewSwitchEndedL();
+ }
+
// End of file
--- a/menufw/hierarchynavigator/hnengine/inc/hnengine.h Tue Sep 14 20:58:58 2010 +0300
+++ b/menufw/hierarchynavigator/hnengine/inc/hnengine.h Wed Sep 15 12:00:00 2010 +0300
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description:
+* Description:
*
*/
@@ -36,10 +36,10 @@
/**
* @ingroup group_hnengine
* Hierarchy Navigator engine - used by Multimedia Menu
- * to fetch data models. The most commonly used exported method is TriggerHnEventL,
+ * to fetch data models. The most commonly used exported method is TriggerHnEventL,
* which offers event execution for the framework. This functionality is implemented
- * through the MHnEventGenerator interface. The class owns the meta data model ( CHnMdModel )
- * and suite container ( CHnSuiteModelContainer ) to manage them. The engine manages
+ * through the MHnEventGenerator interface. The class owns the meta data model ( CHnMdModel )
+ * and suite container ( CHnSuiteModelContainer ) to manage them. The engine manages
* the model by processing model events ( HandleModelEventL ) or reseting the models
* ( ResetModelsL ).
*
@@ -66,18 +66,18 @@
* @since S60 v5.0
* @param aController Controller handler.
* @return Fully constructed object.
- */
+ */
IMPORT_C static CHnEngine* NewLC( MHnControllerInterface& aController );
/**
* Standard C++ destructor.
- *
+ *
* @since S60 v5.0
- */
+ */
~CHnEngine();
// from CHnInterface
-
+
/**
* Fetches and constructs data structres, needed by Multimedia
* Menu to display suites.
@@ -86,7 +86,7 @@
* @return Filled suite model object from the stack.
*/
CHnSuiteModel* GetLastSuiteModelL();
-
+
/**
* Fetches and constructs data structres, needed by Multimedia
* Menu to display suites.
@@ -95,23 +95,23 @@
* @return Filled suite model object from the stack.
*/
CHnSuiteModel* GetParentSuiteModelL();
-
+
/**
* Get count of suite models on the stack.
- *
+ *
* @since S60 v5.0
* @return Count of suite models on the stack.
*/
virtual TInt GetSuiteModelsCountL();
-
+
/**
* Checks if suite model is loaded.
- *
+ *
* @since S60 v5.0
* @return ETrue if suite model is loaded, otherwise EFalse.
*/
TBool SuiteModelLoadedL( TInt aId );
-
+
/**
* Loads suite hierarchy specified in URI.
*
@@ -122,7 +122,7 @@
public:
// from MHnMdModelEventObserver
-
+
/**
* Handle model event.
*
@@ -131,9 +131,9 @@
* @param aParams Event specific parameters used to perform action.
*/
TInt HandleModelEventL( const TDesC& aEventName, CLiwGenericParamList& aParams );
-
+
// from CHnInterface
-
+
/**
* Handle back event.
*
@@ -147,24 +147,24 @@
/**
* Loads default root suite
- *
+ *
* @since S60 v5.0
* @param aSuiteParams Suite parameters.
* @return Status error code.
*/
IMPORT_C TInt InitializeL( CLiwGenericParamList& aSuiteParams );
-
+
// from MHnEventGenerator
-
+
/**
* Triggers an event inside hierarchy navigator.
- *
+ *
* Used by UI to notify hierarchy navigator of its events,
* as well as for hierarchy navigator components to notify
* the module of certain events (such as OnSuiteLoaded etc).
*
* @since S60 v5.0
- * @param aHnEventId Internal id of an event (Event names are
+ * @param aHnEventId Internal id of an event (Event names are
* mapped to ids).
* @param aRecipientId The id of the recipient item.
* @param aEventParameters Event specific parameter.
@@ -172,41 +172,41 @@
*/
IMPORT_C TInt TriggerHnEventL( const TInt aHnEventId,
const TInt aRecipientId, CLiwGenericParamList* aEventParameters = NULL );
-
+
/**
* Splits the source descriptor by a separatos
- *
+ *
* @since S60 v5.0
* @param aSource Source descriptor intended to split.
* @param aSeparator Separator used to split.
- * @return Array of descriptors.
+ * @return Array of descriptors.
*/
RPointerArray< HBufC8 > SplitL( const TDesC8& aSource,
const TDesC8& aSeparator );
-
+
/**
* Generate param list according to query param.
- *
+ *
* @param aUriQuery Descriptor consist of param(s) to split
* @param aUriFragment Descriptor containing an uri fragment.
- * @param aSuiteName The suite's name.
+ * @param aSuiteName The suite's name.
* @return Filled generic param list.
*/
CLiwGenericParamList* UriQueryToLiwListLC( const TDesC8& aUriQuery,
const TDesC8& aUriFragment, const TDesC8& aSuiteName );
-
+
/**
* Resets MD Model and Suite Container.
*
* @since S60 v5.0
*/
IMPORT_C void ResetModelsL();
-
- // from MHnEditModeInterface
-
+
+ // from MHnEditModeInterface
+
/**
* Sets edit mode.
- *
+ *
* @since S60 v5.0
* @param aEditMode Set edit mode member to false/true.
*/
@@ -214,12 +214,12 @@
/**
* Enables to issue a request to Hn engine.
- *
+ *
* @since S60 v5.0
* @param aParam Input Parameters.
- * @param aOutput Target list for output.
+ * @param aOutput Target list for output.
*/
- IMPORT_C void HandleRequestL( const CLiwGenericParamList& aParam,
+ IMPORT_C void HandleRequestL( const CLiwGenericParamList& aParam,
CLiwGenericParamList* aOutput = NULL);
// from MHWRMLightObserver
@@ -238,19 +238,19 @@
private:
/**
* Default constructor.
- *
+ *
* @since S60 v5.0
* @param aController Controller handler.
*/
CHnEngine( MHnControllerInterface& aController );
-
+
/**
* Standard 2nd phase constructor.
- *
+ *
* @since S60 v5.0
*/
void ConstructL();
-
+
/**
* Handle new suite loaded event.
*
@@ -286,7 +286,7 @@
* @return Status code.
*/
TInt HandleSetFocusEventL( const CLiwGenericParamList& aParams );
-
+
/**
* Handles MoveFocusBeforeDelete event.
*
@@ -296,7 +296,7 @@
*/
TInt HandleMoveFocusBeforeDeleteEventL(
const CLiwGenericParamList& aParams );
-
+
/**
* Handles RefreshIcons event.
*
@@ -308,7 +308,7 @@
/**
* Handles DisableActionsForItem event.
- *
+ *
* @since S60 v5.0
* @param aParams Event specific parameters - contains custom item id
* @return Status code.
@@ -319,14 +319,14 @@
* Store widget type to repository.
*
* @since S60 v5.0
- * @param aSuiteName Suite name to that set widget type.
+ * @param aSuiteName Suite name to that set widget type.
* @param aType Widget type to store in repository.
* @return Status code.
- */
+ */
TInt HandleWidgetChangeL( const TDesC& aSuiteName,
THnSuiteWidgetType aType );
-
-
+
+
/**
* Parse URI path component containing Suites to be loaded.
*
@@ -334,10 +334,10 @@
* @param aUriPath Descriptor URI path which consist of suites' names.
* @param aOutput Array on output containes parsed suite names.
*/
- void ParseSuiteUriPathL( const TDesC8& aUriPath,
+ void ParseSuiteUriPathL( const TDesC8& aUriPath,
CDesC8ArrayFlat& aOutput );
-
-
+
+
/**
* Checks if only root configuration is loaded.
* Used to decide if reloading models is needed.
@@ -347,29 +347,29 @@
* otherwise EFalse.
*/
TBool IsOnlyRootConfLoaded();
-
+
/**
* Resets loaded resources.
*
* @since S60 5.0
*/
void ResetLocalization();
-
+
/**
* Loads suite with given suite name with parameters
- * from uri query.
+ * from uri query.
*
* @since S60 5.0
- * @param aSuiteName Name of the suite to load.
+ * @param aSuiteName Name of the suite to load.
* @param aUriQuery Descriptor containig parsed part of the uri.
* @param aUriFragment Descriptor containig parsed part (fragment) of the uri.
* @return Error code when loading suite.
*/
- TInt LoadSuiteFromUriL( const TDesC8& aSuiteName,
+ TInt LoadSuiteFromUriL( const TDesC8& aSuiteName,
const TDesC8& aUriQuery, const TDesC8& aUriFragment );
-
+
/**
- * Reads highlight position from uri fragment
+ * Reads highlight position from uri fragment
* and sets it on the suite model.
*
* @since S60 5.0
@@ -387,15 +387,15 @@
/**
* Handles loading suite from uri if suites names' are the same.
- *
+ *
* @param aNextExists ETrue if the next suite's name exists in uri.
- * @param aUri The URI's parameters passed to the suite.
+ * @param aUri The URI's parameters passed to the suite.
*/
void HandleTheSameSuitesL( TBool aNextExists, const TDesC8& aParams );
-
+
/**
* Checks if suites have the same names.
- *
+ *
* @param aLastSuiteName The last suite's name on the stack.
* @param aFirstSuiteName The first suite's name in uri.
* @return ETrue if names are equal
@@ -404,37 +404,44 @@
/**
* Decides whether to hide menu depending on current state and uri parameters
- *
+ *
* @param aUri The Uri to parse for exit procedure.
* @return ETrue If exit was consumed.
*/
TBool HandleActionL( const TDesC8& aUri );
-
+
/**
* Loads suites from uri.
- *
+ *
* @param aUri The uri to parse
*/
void LoadSuitesL( const TDesC8& aUri );
-
+
+ /**
+ * Loads item through CR.
+ *
+ * @since S60 v5.0
+ */
+ void LoadItemFromCrL( const TDesC8& aUri );
+
private: // data
-
+
/**
* Own - Meta data model.
*/
CHnMdModel* iMetaDataModel;
-
+
/**
* Own - Suite container.
*/
CHnSuiteModelContainer* iSuiteContainer;
-
+
/**
* Not own.
- * EikonEnv for displaying popup messages.
+ * EikonEnv for displaying popup messages.
*/
CEikonEnv* iEEnv;
-
+
/**
* Not own - Suite observer.
*/
@@ -444,7 +451,7 @@
* Edit mode
*/
TBool iEditMode;
-
+
/**
* Light status observer
*/
--- a/menufw/hierarchynavigator/hnengine/src/hnengine.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/menufw/hierarchynavigator/hnengine/src/hnengine.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -268,26 +268,31 @@
//
EXPORT_C void CHnEngine::LoadSuitesFromUriL( const TDesC8& aUri )
{
- DEBUG(("_MM_:CHnEngine::LoadSuitesFromUriL IN"));
- DEBUG8(("_MM_:\tURI: %S",&aUri));
+ DEBUG(("_MM_:CHnEngine::LoadSuitesFromUriL IN"));
+ DEBUG8(("_MM_:\tURI: %S",&aUri));
- TBool consumed(EFalse);
+ TBool consumed( EFalse );
- if ( aUri.Find( KSetFocusWithPref ) != KErrNotFound )
- {
- LoadFromCrL( aUri );
- consumed = ETrue;
- }
+ if( aUri.Find( KSetFocusWithPref ) != KErrNotFound )
+ {
+ LoadFromCrL( aUri );
+ consumed = ETrue;
+ }
+ else if( aUri.Find( KOpenItemWithPref ) != KErrNotFound )
+ {
+ LoadItemFromCrL( aUri );
+ consumed = ETrue;
+ }
- if ( !consumed )
- {
- consumed = HandleActionL( aUri );
- }
+ if( !consumed )
+ {
+ consumed = HandleActionL( aUri );
+ }
- if ( !consumed )
- {
- LoadSuitesL( aUri );
- }
+ if( !consumed )
+ {
+ LoadSuitesL( aUri );
+ }
DEBUG(("_MM_:CHnEngine::LoadSuitesFromUriL OUT"));
}
@@ -602,8 +607,8 @@
TInt posSuite( 0 );
TInt posItem( 0 );
- TInt64 suiteCustomId( KErrNotFound );
- TInt64 itemCustomId( KErrNotFound );
+ TInt64 suiteCustomId( KErrNotFound );
+ TInt64 itemCustomId( KErrNotFound );
// Get suite's and item's custom ids.
const TLiwGenericParam* paramSuiteId = aParams.FindFirst( posSuite, KSuiteCustomId8 );
@@ -888,7 +893,6 @@
if ( aSource.Length() > 0 && aSeparator.Length() > 0 )
{
TPtrC8 tmpSource = aSource;
-
TPtrC8 token( KNullDesC8 );
while( ETrue )
@@ -899,7 +903,6 @@
&& length != KErrNotFound )
{
TInt ampPos( KErrNotFound );
- TInt eqPos( KErrNotFound );
do
{
ampPos = tmpSource.Mid(
@@ -912,7 +915,7 @@
}
else if( (length + HnLogicalRelations::KParamUid8().Length())
== tmpSource.Length())
- {
+ {
length = KErrNotFound;
}
}while( !ampPos );
@@ -1033,7 +1036,7 @@
const TDesC8& query = parser.Extract( EUriQuery );
RPointerArray< HBufC8 > params = SplitL( query, HnLogicalRelations::KParamUid8);
- TBuf8<KApaMaxAppGroupName + KTimeStampBufferLength + KUidStringLength + 2> item;
+ TBuf8< KApaMaxAppGroupName + KTimeStampBufferLength + KUidStringLength + 2> item;
for( TInt i = 0; i < params.Count(); i++ )
{
@@ -1042,12 +1045,12 @@
ASSERT( paramValue.Count() == 2 );
if ( !paramValue[0]->Compare(KMcsAppGroupName8) )
- {
- TBuf8<KApaMaxAppGroupName> appgrname;
- if( paramValue[1]->Length()<=KApaMaxAppGroupName )
- {
- appgrname.Append( *paramValue[1] );
- }
+ {
+ TBuf8< KApaMaxAppGroupName > appgrname;
+ if( paramValue[1]->Length()<= KApaMaxAppGroupName )
+ {
+ appgrname.Append( *paramValue[1] );
+ }
//get current time
TTime currentTime;
@@ -1067,7 +1070,7 @@
CleanupStack::PopAndDestroy( ¶mValue );
}
- TBuf<KApaMaxAppGroupName + KTimeStampBufferLength + KUidStringLength + 2> item1;
+ TBuf< KApaMaxAppGroupName + KTimeStampBufferLength + KUidStringLength + 2> item1;
item1.Copy(item);
CRepository *cenRep = CRepository::NewLC( KCRUidMenu );
cenRep->Set(KMenuShowFolder, item1);
@@ -1075,7 +1078,6 @@
params.ResetAndDestroy();
CleanupStack::PopAndDestroy( uriBuf );
-
}
// ---------------------------------------------------------------------------
//
@@ -1110,96 +1112,96 @@
// ---------------------------------------------------------------------------
//
TBool CHnEngine::HandleActionL( const TDesC8& aUri )
- {
- TBool exitActionConsumed(EFalse);
+ {
+ TBool exitActionConsumed( EFalse );
- HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() );
- uriBuf->Des().Copy( aUri );
+ HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() );
+ uriBuf->Des().Copy( aUri );
- TUriParser8 parser;
+ TUriParser8 parser;
parser.Parse( *uriBuf );
User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound );
const TDesC8& host8 = parser.Extract( EUriHost );
const TDesC8& query = parser.Extract( EUriQuery );
- RBuf action;
+ RBuf action;
CleanupClosePushL( action );
CLiwGenericParamList* paramsUri = UriQueryToLiwListLC( query, KNullDesC8, KNullDesC8 );
HnLiwUtils::GetStringL( *paramsUri, KActionParams, action );
- if ( !action.Compare( KActionExit ) )
- {
- RBuf host;
- host.CreateL( host8.Length() );
- CleanupClosePushL( host );
- host.Copy(host8);
- CHnSuiteModel* suiteModel = iSuiteContainer->GetSuiteModel( host );
- TBool exitHideHostNotFound( ETrue );
- if( suiteModel && suiteModel->ExitMode() == EExitModeHide )
- {
- exitHideHostNotFound = EFalse;
- }
+ if( !action.Compare( KActionExit ) )
+ {
+ RBuf host;
+ host.CreateL( host8.Length() );
+ CleanupClosePushL( host );
+ host.Copy( host8 );
+ CHnSuiteModel* suiteModel = iSuiteContainer->GetSuiteModel( host );
+ TBool exitHideHostNotFound( ETrue );
+ if( suiteModel && suiteModel->ExitMode() == EExitModeHide )
+ {
+ exitHideHostNotFound = EFalse;
+ }
- if ( exitHideHostNotFound )
- {
- //send to foreground
- CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
- CleanupStack::PushL( pl );
- HandleModelEventL( KAppGainForeground, *pl );
- CleanupStack::PopAndDestroy( pl );
- }
- else
- {
- //send to background
- CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
- CleanupStack::PushL( pl );
- HandleModelEventL( KAppGainBackground, *pl );
- CleanupStack::PopAndDestroy( pl );
- }
+ if( exitHideHostNotFound )
+ {
+ //send to foreground
+ CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
+ CleanupStack::PushL( pl );
+ HandleModelEventL( KAppGainForeground, *pl );
+ CleanupStack::PopAndDestroy( pl );
+ }
+ else
+ {
+ //send to background
+ CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
+ CleanupStack::PushL( pl );
+ HandleModelEventL( KAppGainBackground, *pl );
+ CleanupStack::PopAndDestroy( pl );
+ }
- if ( exitHideHostNotFound && iSuiteContainer->GetLastSuiteModel() == suiteModel )
- {
- HandleBackEventL( host, 1 );
- }
- else
- {
- //reset to root
+ if( exitHideHostNotFound && iSuiteContainer->GetLastSuiteModel() == suiteModel )
+ {
+ HandleBackEventL( host, 1 );
+ }
+ else
+ {
+ //reset to root
CLiwGenericParamList* params = CLiwGenericParamList::NewLC();
params->AppendL( iMetaDataModel->GetSuiteParameters( 0 ) );
- ResetModelsL();
+ ResetModelsL();
InitializeL( *params );
CleanupStack::PopAndDestroy( params );
- }
+ }
- CleanupStack::PopAndDestroy( &host );
- exitActionConsumed = ETrue;
- }
+ CleanupStack::PopAndDestroy( &host );
+ exitActionConsumed = ETrue;
+ }
CleanupStack::PopAndDestroy( paramsUri );
CleanupStack::PopAndDestroy( &action );
CleanupStack::PopAndDestroy( uriBuf );
return exitActionConsumed;
- }
+ }
// ---------------------------------------------------------------------------
//
// ---------------------------------------------------------------------------
//
void CHnEngine::LoadSuitesL( const TDesC8& aUri )
- {
- TBool sendToForeground(EFalse);
- HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() );
- uriBuf->Des().Copy( aUri );
+ {
+ TBool sendToForeground(EFalse);
+ HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() );
+ uriBuf->Des().Copy( aUri );
- TUriParser8 parser;
- parser.Parse( *uriBuf );
- User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound );
+ TUriParser8 parser;
+ parser.Parse( *uriBuf );
+ User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound );
- CDesC8ArrayFlat* suiteNameArray = new( ELeave ) CDesC8ArrayFlat( KDefaultGranularity ) ;
- CleanupStack::PushL( suiteNameArray );
+ CDesC8ArrayFlat* suiteNameArray = new( ELeave ) CDesC8ArrayFlat( KDefaultGranularity ) ;
+ CleanupStack::PushL( suiteNameArray );
- const TDesC8& host = parser.Extract( EUriHost );
+ const TDesC8& host = parser.Extract( EUriHost );
RBuf8 host8;
CleanupClosePushL( host8 );
if (host.Compare( KNullDesC8 ))
@@ -1210,19 +1212,19 @@
DEBUG8(( "_MM_:\tURI host part: %S", &host8 ));
}
- const TDesC8& path = parser.Extract( EUriPath );
- if (path.Compare( KNullDesC8 ))
- {
- HBufC8* path8 = HBufC8::NewLC( path.Length() );
- path8->Des().Copy( path );
- path8->Des().LowerCase();
- ParseSuiteUriPathL( *path8, *suiteNameArray );
- CleanupStack::PopAndDestroy( path8 );
- }
+ const TDesC8& path = parser.Extract( EUriPath );
+ if (path.Compare( KNullDesC8 ))
+ {
+ HBufC8* path8 = HBufC8::NewLC( path.Length() );
+ path8->Des().Copy( path );
+ path8->Des().LowerCase();
+ ParseSuiteUriPathL( *path8, *suiteNameArray );
+ CleanupStack::PopAndDestroy( path8 );
+ }
- TBool suiteExists( EFalse );
- iMetaDataModel->IgnoreEvaluations( ETrue );
- iMetaDataModel->QueueForeground( CHnMdModel::EWhenAnySuiteIsEvaluated );
+ TBool suiteExists( EFalse );
+ iMetaDataModel->IgnoreEvaluations( ETrue );
+ iMetaDataModel->QueueForeground( CHnMdModel::EWhenAnySuiteIsEvaluated );
if( host8.Length() == 0 || ( host8.Length() > 0 &&
!iMetaDataModel->SuiteModelExistsL( host8 ) ) )
@@ -1231,101 +1233,141 @@
suiteNameArray->AppendL( KRoot8 );
}
- for( TInt i = 0; i < suiteNameArray->Count(); ++i )
- {
- suiteExists = iMetaDataModel->SuiteModelExistsL(
- ( *suiteNameArray )[i] );
- TBool nextExists = i < suiteNameArray->Count() - 1 &&
- iMetaDataModel->SuiteModelExistsL( ( *suiteNameArray )[i + 1] );
- TBool isLast = ( i == ( suiteNameArray->Count() - 1 ) );
+ for( TInt i = 0; i < suiteNameArray->Count(); ++i )
+ {
+ suiteExists = iMetaDataModel->SuiteModelExistsL(
+ ( *suiteNameArray )[i] );
+ TBool nextExists = i < suiteNameArray->Count() - 1 &&
+ iMetaDataModel->SuiteModelExistsL( ( *suiteNameArray )[i + 1] );
+ TBool isLast = ( i == ( suiteNameArray->Count() - 1 ) );
+
+ TBool turnOnEvaluation = ( suiteExists && ( !nextExists || isLast ) );
+ if( turnOnEvaluation || !suiteExists )
+ {
+ iMetaDataModel->IgnoreEvaluations( EFalse );
+ }
- TBool turnOnEvaluation = ( suiteExists && ( !nextExists || isLast ) );
- if( turnOnEvaluation || !suiteExists )
- {
- iMetaDataModel->IgnoreEvaluations( EFalse );
- }
+ TInt err( KErrNone );
+
+ // Ignore loading new suite if the last suite in model is the same
+ // as first one in the uri.
+ if ( i == 0 )
+ {
+ if ( SuitesAreTheSameL( iMetaDataModel->GetLastSuite()->SuiteName(), (*suiteNameArray)[i] ) )
+ {
+ HandleTheSameSuitesL( nextExists, parser.Extract( EUriQuery ) );
+ sendToForeground = ETrue;
+ continue;
+ }
+ }
- TInt err( KErrNone );
+ if( suiteExists )
+ {
+ if (!nextExists)
+ {
+ // Tricky: queue foreground so that if the suite is evaluated synchronously
+ // the foreground will be gained.
+ iMetaDataModel->QueueForeground( CHnMdModel::EWhenAnySuiteIsEvaluated );
+ }
+ err = LoadSuiteFromUriL(
+ ( *suiteNameArray )[i], parser.Extract( EUriQuery ), parser.Extract( EUriFragment ) );
+ if ( KErrNone == err && !nextExists && iMetaDataModel->IsForegroundQueued() )
+ {
+ // Tricky: if foreground is still queued it means that the suite is evaluated
+ // asynchronously. Override the previos foreground queue setting with one
+ // that will be effective only if the last loaded suite is evaluated.
+ iMetaDataModel->QueueForeground( CHnMdModel::EWhenCurrentTopSuiteIsEvaluated );
+ }
+ if ( err != KErrNone )
+ {
+ sendToForeground = ETrue;
+ }
+ }
- // Ignore loading new suite if the last suite in model is the same
- // as first one in the uri.
- if ( i == 0 )
- {
- if ( SuitesAreTheSameL( iMetaDataModel->GetLastSuite()->SuiteName(), (*suiteNameArray)[i] ) )
- {
- HandleTheSameSuitesL( nextExists, parser.Extract( EUriQuery ) );
- sendToForeground = ETrue;
- continue;
+ if( !suiteExists || err != KErrNone || !nextExists )
+ {
+ CHnFilter* filter = CHnFilter::NewLC();
+
+ filter->SetSuiteId(
+ iSuiteContainer->GetLastSuiteModel()->CustomId() );
+
+ filter->SetEvaluateSuiteL( ETrue );
+ iMetaDataModel->IgnoreEvaluations( EFalse );
+
+ TRAPD( err, iMetaDataModel->EvaluateL( *filter ) );
+
+ CleanupStack::PopAndDestroy( filter );
+ if( err )
+ {
+ iMetaDataModel->DeleteLastSuite();
+ iSuiteContainer->PopSuiteModelL(
+ HnConvUtils::Str8ToStr( ( *suiteNameArray )[i] )->Des() );
+ sendToForeground = ETrue;
+ }
+ break;
+ }
}
- }
+ // set highlight only when path is valid!
if( suiteExists )
- {
- if (!nextExists)
- {
- // Tricky: queue foreground so that if the suite is evaluated synchronously
- // the foreground will be gained.
- iMetaDataModel->QueueForeground( CHnMdModel::EWhenAnySuiteIsEvaluated );
- }
- err = LoadSuiteFromUriL(
- ( *suiteNameArray )[i], parser.Extract( EUriQuery ), parser.Extract( EUriFragment ) );
- if ( KErrNone == err && !nextExists && iMetaDataModel->IsForegroundQueued() )
- {
- // Tricky: if foreground is still queued it means that the suite is evaluated
- // asynchronously. Override the previos foreground queue setting with one
- // that will be effective only if the last loaded suite is evaluated.
- iMetaDataModel->QueueForeground( CHnMdModel::EWhenCurrentTopSuiteIsEvaluated );
- }
- if ( err != KErrNone )
+ {
+ HighlightPlacementFromUriL( parser.Extract( EUriFragment ) );
+ }
+
+ CleanupStack::PopAndDestroy( &host8 );
+ CleanupStack::PopAndDestroy( suiteNameArray );
+ CleanupStack::PopAndDestroy( uriBuf );
+
+ // send to foreground
+ if ( sendToForeground )
{
- sendToForeground = ETrue;
+ CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
+ CleanupStack::PushL( pl );
+ HandleModelEventL( KAppGainForeground, *pl );
+ CleanupStack::PopAndDestroy( pl );
+ iMetaDataModel->QueueForeground( CHnMdModel::ENever );
}
- }
+
+ }
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CHnEngine::LoadItemFromCrL( const TDesC8& aUri )
+ {
+ HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() );
+ uriBuf->Des().Copy( aUri );
- if( !suiteExists || err != KErrNone || !nextExists )
- {
- CHnFilter* filter = CHnFilter::NewLC();
+ TUriParser8 parser;
+ parser.Parse( *uriBuf );
+ User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound );
+
+ const TDesC8& query = parser.Extract( EUriQuery );
- filter->SetSuiteId(
- iSuiteContainer->GetLastSuiteModel()->CustomId() );
-
- filter->SetEvaluateSuiteL( ETrue );
- iMetaDataModel->IgnoreEvaluations( EFalse );
+ if( query.Compare( KNullDesC8 ) )
+ {
+ TBuf8<KMaxLength> item;
+ RPointerArray<HBufC8> paramValue = SplitL( query,
+ HnLogicalRelations::KLogicalEqual8 );
+ CleanupResetAndDestroyPushL( paramValue );
+ ASSERT( paramValue.Count() == 2 );
- TRAPD( err, iMetaDataModel->EvaluateL( *filter ) );
+ if( !paramValue[0]->Compare( KId8 ) )
+ {
+ if( paramValue[1]->Length() <= KUidStringLength )
+ {
+ item.Append( *paramValue[1] );
+ }
+ }
+ CleanupStack::PopAndDestroy( ¶mValue );
- CleanupStack::PopAndDestroy( filter );
- if( err )
- {
- iMetaDataModel->DeleteLastSuite();
- iSuiteContainer->PopSuiteModelL(
- HnConvUtils::Str8ToStr( ( *suiteNameArray )[i] )->Des() );
- sendToForeground = ETrue;
+ TBuf<KMaxLength> item1;
+ item1.Copy( item );
+ CRepository *cenRep = CRepository::NewLC( KCRUidMenu );
+ cenRep->Set( KMenuOpenItem, item1 );
+ CleanupStack::PopAndDestroy( cenRep );
}
- break;
- }
+ CleanupStack::PopAndDestroy( uriBuf );
}
- // set highlight only when path is valid!
- if( suiteExists )
- {
- HighlightPlacementFromUriL( parser.Extract( EUriFragment ) );
- }
-
- CleanupStack::PopAndDestroy( &host8 );
- CleanupStack::PopAndDestroy( suiteNameArray );
- CleanupStack::PopAndDestroy( uriBuf );
-
-// send to foreground
- if ( sendToForeground )
- {
- CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
- CleanupStack::PushL( pl );
- HandleModelEventL( KAppGainForeground, *pl );
- CleanupStack::PopAndDestroy( pl );
- iMetaDataModel->QueueForeground( CHnMdModel::ENever );
- }
-
- }
-
// End of file
--- a/menufw/hierarchynavigator/hnmetadatamodel/inc/hnglobals.h Tue Sep 14 20:58:58 2010 +0300
+++ b/menufw/hierarchynavigator/hnmetadatamodel/inc/hnglobals.h Wed Sep 15 12:00:00 2010 +0300
@@ -292,7 +292,8 @@
_LIT( KPrefMm, "mm://" );
_LIT8( KRootWithPref, "mm://root" );
-_LIT8( KSetFocusWithPref, "mm://!setfocus" );
+_LIT8( KSetFocusWithPref, "mm://!setfocus" );
+_LIT8( KOpenItemWithPref, "mm://!openitem" );
_LIT8( KCRepTimeFormat, "%S,%04d%02d%02d:%02d%02d%02d.%06d" );
// images
@@ -513,6 +514,8 @@
const TUint32 KMenuShowFolder = 0x0000000c;
+const TUint32 KMenuOpenItem = 0x0000000e;
+
const TInt KTimeStampBufferLength = 25;
const TInt KUidStringLength = 10;
--- a/menufw/hierarchynavigator/hnmetadatamodel/inc/hnmdmodel.h Tue Sep 14 20:58:58 2010 +0300
+++ b/menufw/hierarchynavigator/hnmetadatamodel/inc/hnmdmodel.h Wed Sep 15 12:00:00 2010 +0300
@@ -544,6 +544,11 @@
*/
CHnSuiteModel* iForegroundTriggeringSuite;
+ /**
+ * Repository open item change observer.
+ */
+ CHnRepositoryObserver* iRepositoryOpenItemObserver;
+
};
#endif // C_HNMDMODEL_H
--- a/menufw/hierarchynavigator/hnmetadatamodel/inc/hnrepositoryobserver.h Tue Sep 14 20:58:58 2010 +0300
+++ b/menufw/hierarchynavigator/hnmetadatamodel/inc/hnrepositoryobserver.h Wed Sep 15 12:00:00 2010 +0300
@@ -306,7 +306,7 @@
/**
* Folder application group name.
*/
- TBuf8<KApaMaxAppGroupName> iCRKeyFolderName;
+ TBuf8< KApaMaxAppGroupName > iCRKeyFolderName;
/**
* Mcs id for an application item in a folder with a given app group name.
@@ -325,6 +325,123 @@
TInt iNotifyType;
};
+/**
+ * Open item Repository Observer.
+ *
+ * It is used to inform hierarchy navigator of changes in the suites repository.
+ *
+ * @lib hnmetadatamodel
+ * @since S60 5.0
+ * @ingroup group_hnmetadatamodel
+ */
+NONSHARABLE_CLASS( CHnRepositoryOpenItemObserver ):
+ public CHnRepositoryObserver,
+ public MLiwNotifyCallback
+ {
+public:
+
+ /**
+ * Default C++ Destructor.
+ *
+ * @since S60 v5.0
+ */
+ virtual ~CHnRepositoryOpenItemObserver();
+
+ /**
+ * Factory function.
+ *
+ * @param aCmnPtrs Common pointers.
+ * @return Repository Observer.
+ * @since S60 v5.0
+ */
+ static CHnRepositoryOpenItemObserver* NewL(
+ THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid,
+ const TUint32 aId );
+
+ /**
+ * Factory function.
+ *
+ * @param aCmnPtrs Common pointers.
+ * @return Repository Observer.
+ * @since S60 v5.0
+ */
+ static CHnRepositoryOpenItemObserver* NewLC(
+ THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid,
+ const TUint32 aId );
+
+ /**
+ * Change handler method.
+ * It is invoked whenever notifier detects a change in the CR.
+ *
+ * @param aId Id of the entry in CR.
+ * @since S60 v5.0
+ */
+ void HandleNotifyString( TUint32 aId, const TDesC16& aNewValue );
+
+ /**
+ * Change handler method.
+ * It is invoked whenever notifier detects a change in the CR.
+ *
+ * @param aId Id of the entry in CR.
+ * @since S60 v5.0
+ */
+ void HandleNotifyStringL( TUint32 aId, const TDesC16& aNewValue );
+
+ /**
+ * Handles notifications caused by an asynchronous Execute*CmdL call
+ * or an event.
+ *
+ * @param aCmdId The service command associated to the event.
+ * @param aEventId Occured event, see LiwCommon.hrh.
+ * @param aEventParamList Event parameters, if any, as defined per
+ * each event.
+ * @param aInParamList Input parameters, if any, given in the
+ * related HandleCommmandL.
+ * @return Error code for the callback.
+ */
+ virtual TInt HandleNotifyL(
+ TInt aCmdId,
+ TInt aEventId,
+ CLiwGenericParamList& aEventParamList,
+ const CLiwGenericParamList& aInParamList);
+
+private:
+
+ /**
+ * Defautlt C++ Constructor.
+ *
+ * @param aCmnPtrs Common pointers.
+ * @since S60 v5.0
+ */
+ CHnRepositoryOpenItemObserver( THnMdCommonPointers* aCmnPtrs, TUint32 iId );
+
+ /**
+ * Second stage constructor.
+ *
+ * @since S60 v5.0
+ */
+ void ConstructL( const TUid aRepositoryUid );
+
+private:
+
+ /**
+ * Request get list for an folder.
+ *
+ * @param aFolderId A parent folder id
+ * @since S60 v5.0
+ */
+ void ShowFolderL( const TDesC16& aFolderId );
+
+private:
+
+ /**
+ * Own.
+ * Intance of the service handler.
+ */
+ CHnServiceHandler* iServiceHandler;
+
+ };
+
#endif /*HNREPOSITORYOBSERVER_H_*/
//End of file
--- a/menufw/hierarchynavigator/hnmetadatamodel/src/hnmdmodel.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/menufw/hierarchynavigator/hnmetadatamodel/src/hnmdmodel.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -64,6 +64,7 @@
iMode = EMdModeNormal;
iRepositoryWidgetTypeObserver = CHnRepositoryWidgetTypeObserver::NewL( &iCmnPtrs, KMatrixRepositoryUid );
iRepositoryShowFolderObserver = CHnRepositoryShowFolderObserver::NewL( &iCmnPtrs, KCRUidMenu, KMenuShowFolder );
+ iRepositoryOpenItemObserver = CHnRepositoryOpenItemObserver::NewL( &iCmnPtrs, KCRUidMenu, KMenuOpenItem );
MMPERF(("CHnMetaDataModel::ConstructL - rep. observer ready"));
}
@@ -111,6 +112,7 @@
{
delete iRepositoryWidgetTypeObserver;
delete iRepositoryShowFolderObserver;
+ delete iRepositoryOpenItemObserver;
iLoadedSuites.ResetAndDestroy();
delete iXmlModelProvider;
delete iLocalization;
--- a/menufw/hierarchynavigator/hnmetadatamodel/src/hnrepositoryobserver.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/menufw/hierarchynavigator/hnmetadatamodel/src/hnrepositoryobserver.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -227,9 +227,8 @@
{
CHnRepositoryObserver::ConstructL( aRepositoryUid );
TInt ret = iRepository->Create( iId, KBlank );
- iNotifyHandler = CCenRepNotifyHandler::NewL(
- *this, *iRepository,
- CCenRepNotifyHandler::EStringKey, iId );
+ iNotifyHandler = CCenRepNotifyHandler::NewL( *this, *iRepository,
+ CCenRepNotifyHandler::EStringKey, iId );
iNotifyHandler->StartListeningL();
}
@@ -273,129 +272,128 @@
//++Show Folder
if( aId == iId && aNewValue.Length())
- {
+ {
iNotifyType = 0;
- ExtractCRKeyShowFolderName( aNewValue );
+ ExtractCRKeyShowFolderName( aNewValue );
+
+ // iCRKeyFolderItemUid can contain mcs id or uid
+ // in case of uid it will be replaced whith id in HandleNotifyL callback
+ if( iCRKeyFolderItemUid.Length()>0 )
+ {
+ if( iCRKeyFolderItemUid.FindF( KHexPrefix8 )==0 )
+ {
+ iNotifyType |= EAPP_UID;
+ }
+ else
+ {
+ iNotifyType |= EAPP_ID;
+ }
+ }
+
+ CHnMdBaseKey* inDataKey = HnMdKeyFactory::CreateL(
+ KInData8, KKeyTypeMap, KDefaultParentId8 );
+ CleanupStack::PushL( inDataKey );
+
+ CHnMdBaseKey* filter( NULL );
+ HBufC8* id( NULL );
+ if ( iCRKeyFolderName.Length()>0 && !( iNotifyType & EAPP_UID ) )
+ {
+ // app group name is known
+ // id is optional
+ id = HnConvUtils::NumToStr8LC( KRootId );
+ inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuFolder8 ) );
+ inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KIdParam, KKeyTypeInteger, *id ) );
+ inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KRecursiveSearch8, KKeyTypeBoolean, KStringTrue8 ) );
+ inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KFlatResult8, KKeyTypeBoolean, KStringTrue8 ) );
+
+ filter = HnMdKeyFactory::CreateL(
+ KFilter8, KKeyTypeMap, KStringTrue8 );
+ CleanupStack::PushL( filter );
+ filter->AddSubKeyL( HnMdKeyFactory::CreateL( KMcsAppGroupName8, KKeyTypeString, iCRKeyFolderName ) );
+ filter->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuFolder8 ) );
+ filter->AddSubKeyL( HnMdKeyFactory::CreateL( KHidden8, KKeyTypeBoolean, KStringFalse8 ) );
+ }
+ else if( iNotifyType & EAPP_ID )
+ {
+ // no app group name, id is known
+ inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuApplication8 ) );
+ inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KIdParam, KKeyTypeInteger, iCRKeyFolderItemUid ) );
+ inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KParentOnly8, KKeyTypeBoolean, KStringTrue8 ) );
+ }
+ else if( iNotifyType & EAPP_UID )
+ {
+ // uid is known
+ // app group name is optional
+ id = HnConvUtils::NumToStr8LC( KRootId );
+ inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuFolder8 ) );
+ inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KIdParam, KKeyTypeInteger, *id ) );
+ inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KRecursiveSearch8, KKeyTypeBoolean, KStringTrue8 ) );
+ inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KFlatResult8, KKeyTypeBoolean, KStringTrue8 ) );
- // iCRKeyFolderItemUid can contain mcs id or uid
- // in case of uid it will be replaced whith id in HandleNotifyL callback
- if( iCRKeyFolderItemUid.Length()>0 )
- {
- if( iCRKeyFolderItemUid.FindF( KHexPrefix8 )==0 )
- {
- iNotifyType |= EAPP_UID;
- }
- else
- {
- iNotifyType |= EAPP_ID;
- }
+ filter = HnMdKeyFactory::CreateL(
+ KFilter8, KKeyTypeMap, KStringTrue8 );
+ CleanupStack::PushL( filter );
+ filter->AddSubKeyL( HnMdKeyFactory::CreateL( KUid8, KKeyTypeInteger, iCRKeyFolderItemUid ) );
+ filter->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuApplication8 ) );
+ filter->AddSubKeyL( HnMdKeyFactory::CreateL( KHidden8, KKeyTypeBoolean, KStringFalse8 ) );
+ }
+ else
+ {
+ // No app group name, no uid. Search for root.
+ id = HnConvUtils::NumToStr8LC( KRootId );
+ inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuFolder8 ) );
+ inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KIdParam, KKeyTypeInteger, *id ) );
+ inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KParentOnly8, KKeyTypeBoolean, KStringTrue8 ) );
+ }
+
+ RPointerArray< CHnMdBaseKey > data;
+ CleanupClosePushL( data );
+ data.AppendL( inDataKey );
+ if ( filter )
+ {
+ data.AppendL( filter );
+ }
+
+ CHnMdBaseKey* serviceData = HnMdKeyFactory::CreateL(
+ KServiceContentName, KKeyTypeString, KMatrixMenuData );
+ CleanupStack::PushL( serviceData );
+
+ RPointerArray< CHnMdBaseKey> constructor;
+ CleanupClosePushL( constructor );
+ constructor.AppendL( serviceData );
+ CLiwGenericParamList* constructorLiw = CLiwGenericParamList::NewLC();
+ CLiwGenericParamList* commandLiw = CLiwGenericParamList::NewLC();
+ HnLiwUtils::SetGenericParamListL( constructor, *constructorLiw );
+ HnLiwUtils::SetGenericParamListL( data, *commandLiw );
+
+ TBuf8< KMaxLength > interface( KMCSDataSourceInterface8 );
+
+ delete iServiceHandler;
+ iServiceHandler = NULL;
+ iServiceHandler = CHnServiceHandler::NewL(
+ KMCSService8, interface, KCmdGetList8,
+ EServiceModeAsynchronous, constructorLiw, commandLiw );
+
+ CleanupStack::Pop( commandLiw );
+ CleanupStack::Pop( constructorLiw );
+
+ iServiceHandler->ExecuteL( this );
+
+ CleanupStack::PopAndDestroy( &constructor );
+ CleanupStack::PopAndDestroy( serviceData );
+ CleanupStack::PopAndDestroy( &data );
+ if( filter )
+ {
+ CleanupStack::PopAndDestroy( filter );
+ }
+ if( id )
+ {
+ CleanupStack::PopAndDestroy( id );
+ }
+ CleanupStack::PopAndDestroy( inDataKey );
}
- CHnMdBaseKey* inDataKey = HnMdKeyFactory::CreateL(
- KInData8, KKeyTypeMap, KDefaultParentId8 );
- CleanupStack::PushL( inDataKey );
-
- CHnMdBaseKey* filter( NULL );
- HBufC8* id( NULL );
- if ( iCRKeyFolderName.Length()>0 && !( iNotifyType & EAPP_UID ) )
- {
- // app group name is known
- // id is optional
- id = HnConvUtils::NumToStr8LC( KRootId );
- inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuFolder8 ) );
- inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KIdParam, KKeyTypeInteger, *id ) );
- inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KRecursiveSearch8, KKeyTypeBoolean, KStringTrue8 ) );
- inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KFlatResult8, KKeyTypeBoolean, KStringTrue8 ) );
-
- filter = HnMdKeyFactory::CreateL(
- KFilter8, KKeyTypeMap, KStringTrue8 );
- CleanupStack::PushL( filter );
- filter->AddSubKeyL( HnMdKeyFactory::CreateL( KMcsAppGroupName8, KKeyTypeString, iCRKeyFolderName ) );
- filter->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuFolder8 ) );
- filter->AddSubKeyL( HnMdKeyFactory::CreateL( KHidden8, KKeyTypeBoolean, KStringFalse8 ) );
- }
- else if( iNotifyType & EAPP_ID )
- {
- // no app group name, id is known
- inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuApplication8 ) );
- inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KIdParam, KKeyTypeInteger, iCRKeyFolderItemUid ) );
- inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KParentOnly8, KKeyTypeBoolean, KStringTrue8 ) );
- }
- else if( iNotifyType & EAPP_UID )
- {
- // uid is known
- // app group name is optional
- id = HnConvUtils::NumToStr8LC( KRootId );
- inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuFolder8 ) );
- inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KIdParam, KKeyTypeInteger, *id ) );
- inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KRecursiveSearch8, KKeyTypeBoolean, KStringTrue8 ) );
- inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KFlatResult8, KKeyTypeBoolean, KStringTrue8 ) );
-
- filter = HnMdKeyFactory::CreateL(
- KFilter8, KKeyTypeMap, KStringTrue8 );
- CleanupStack::PushL( filter );
- filter->AddSubKeyL( HnMdKeyFactory::CreateL( KUid8, KKeyTypeInteger, iCRKeyFolderItemUid ) );
- filter->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuApplication8 ) );
- filter->AddSubKeyL( HnMdKeyFactory::CreateL( KHidden8, KKeyTypeBoolean, KStringFalse8 ) );
- }
- else
- {
- // No app group name, no uid. Search for root.
- id = HnConvUtils::NumToStr8LC( KRootId );
- inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuFolder8 ) );
- inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KIdParam, KKeyTypeInteger, *id ) );
- inDataKey->AddSubKeyL( HnMdKeyFactory::CreateL( KParentOnly8, KKeyTypeBoolean, KStringTrue8 ) );
- }
-
- RPointerArray< CHnMdBaseKey > data;
- CleanupClosePushL( data );
- data.AppendL( inDataKey );
- if ( filter )
- {
- data.AppendL( filter );
- }
-
- CHnMdBaseKey* serviceData = HnMdKeyFactory::CreateL(
- KServiceContentName, KKeyTypeString, KMatrixMenuData );
- CleanupStack::PushL( serviceData );
-
- RPointerArray< CHnMdBaseKey> constructor;
- CleanupClosePushL( constructor );
- constructor.AppendL( serviceData );
- CLiwGenericParamList* constructorLiw = CLiwGenericParamList::NewLC();
- CLiwGenericParamList* commandLiw = CLiwGenericParamList::NewLC();
- HnLiwUtils::SetGenericParamListL( constructor, *constructorLiw );
- HnLiwUtils::SetGenericParamListL( data, *commandLiw );
-
- TBuf8< KMaxLength > interface( KMCSDataSourceInterface8 );
-
- delete iServiceHandler;
- iServiceHandler = NULL;
- iServiceHandler = CHnServiceHandler::NewL(
- KMCSService8, interface, KCmdGetList8,
- EServiceModeAsynchronous, constructorLiw, commandLiw );
-
- CleanupStack::Pop( commandLiw );
- CleanupStack::Pop( constructorLiw );
-
- iServiceHandler->ExecuteL( this );
-
- CleanupStack::PopAndDestroy( &constructor );
- CleanupStack::PopAndDestroy( serviceData );
- CleanupStack::PopAndDestroy( &data );
- if( filter )
- {
- CleanupStack::PopAndDestroy( filter );
- }
- if( id )
- {
- CleanupStack::PopAndDestroy( id );
- }
- CleanupStack::PopAndDestroy( inDataKey );
- }
-
DEBUG(("_MM_:CHnRepositoryShowFolderObserver::HandleNotifyStringL OUT"));
-
}
// ---------------------------------------------------------------------------
@@ -403,91 +401,91 @@
// ---------------------------------------------------------------------------
//
void CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName( const TDesC& aNewValue )
- {
- DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName IN" ));
- iCRKeyFolderName.Copy( KBlank );
- iCRKeyFolderItemUid.Copy( KBlank );
+ {
+ DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName IN" ));
+ iCRKeyFolderName.Copy( KBlank );
+ iCRKeyFolderItemUid.Copy( KBlank );
- int keyValueLength = aNewValue.Length();
- if( keyValueLength )
- {
- TApaAppGroupName folder;
- TBuf<KTimeStampBufferLength + KUidStringLength + 1> tempBuf;
- TBuf<KTimeStampBufferLength> timeStamp;
+ int keyValueLength = aNewValue.Length();
+ if( keyValueLength )
+ {
+ TApaAppGroupName folder;
+ TBuf<KTimeStampBufferLength + KUidStringLength + 1> tempBuf;
+ TBuf<KTimeStampBufferLength> timeStamp;
- TInt ret = aNewValue.Find( KComma );
- if( (ret == KErrNotFound )|| ( ret == ( keyValueLength-1 ) ) )
- {
- DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (bad CR key value input) OUT" ));
- return; //bad CR key value input
- }
- if( ret>KApaMaxAppGroupName )
- {
- return;
- }
- folder.Copy(aNewValue.Left(ret));
- if( aNewValue.Length()-ret > tempBuf.MaxLength() )
- {
- return;
- }
- tempBuf.Copy(aNewValue.Mid( ret + 1 ) );
+ TInt ret = aNewValue.Find( KComma );
+ if( ( ret == KErrNotFound ) || ( ret == ( keyValueLength - 1 ) ) )
+ {
+ DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (bad CR key value input) OUT" ));
+ return; //bad CR key value input
+ }
+ if( ret > KApaMaxAppGroupName )
+ {
+ return;
+ }
+ folder.Copy( aNewValue.Left( ret ) );
+ if( aNewValue.Length() - ret > tempBuf.MaxLength() )
+ {
+ return;
+ }
+ tempBuf.Copy( aNewValue.Mid( ret + 1 ) );
- TInt posUid = tempBuf.Find( KComma );
- if ( KErrNotFound != posUid )
+ TInt posUid = tempBuf.Find( KComma );
+ if( KErrNotFound != posUid )
{
- if( posUid>KTimeStampBufferLength )
+ if( posUid > KTimeStampBufferLength )
{
return;
}
- timeStamp.Copy( tempBuf.Left(posUid) );
- if( tempBuf.Length()-(posUid+1) > KUidStringLength )
+ timeStamp.Copy( tempBuf.Left( posUid ) );
+ if( tempBuf.Length() - ( posUid + 1 ) > KUidStringLength )
{
return;
}
iCRKeyFolderItemUid.Copy( tempBuf.Mid( posUid + 1 ) );
}
- else
+ else
{
- if( tempBuf.Length()>KTimeStampBufferLength )
- {
- return;
- }
+ if( tempBuf.Length() > KTimeStampBufferLength )
+ {
+ return;
+ }
timeStamp.Copy( tempBuf );
}
- TTime currentTime;
- currentTime.HomeTime();
- TTimeIntervalSeconds interval;
+ TTime currentTime;
+ currentTime.HomeTime();
+ TTimeIntervalSeconds interval;
- TTime timeStampTime;
- ret = timeStampTime.Set(timeStamp);
+ TTime timeStampTime;
+ ret = timeStampTime.Set( timeStamp );
- if(ret == KErrGeneral )
- {
- DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (bad timestamp) OUT" ));
+ if( ret == KErrGeneral )
+ {
+ DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (bad timestamp) OUT" ));
return; // bad time stamp value
- }
+ }
- ret = currentTime.SecondsFrom( timeStampTime, interval );
+ ret = currentTime.SecondsFrom( timeStampTime, interval );
- if( interval.Int() < 0 )
- {//negative timestamp is set ahead of current time...!
- DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (negative interval) OUT" ));
+ if( interval.Int() < 0 )
+ {//negative timestamp is set ahead of current time...!
+ DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (negative interval) OUT" ));
return;
- }
+ }
- if(( interval.Int()) > KTimeStampCutOff )
- {//positive timestamp but more than 5 seconds
- DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (more than 5 seconds) OUT" ));
+ if( ( interval.Int() ) > KTimeStampCutOff )
+ {//positive timestamp but more than 5 seconds
+ DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (more than 5 seconds) OUT" ));
return;
- }
- else
- {
- iCRKeyFolderName.Copy(folder);
- }
+ }
+ else
+ {
+ iCRKeyFolderName.Copy( folder );
+ }
+ }
+ DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName OUT" ));
}
- DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName OUT" ));
- }
// ---------------------------------------------------------------------------
//
@@ -547,7 +545,6 @@
//
void CHnRepositoryShowFolderObserver::GetShowFolderGroupNameL()
{
-
CHnMdBaseKey* inDataKey = HnMdKeyFactory::CreateL(
KInData8, KKeyTypeMap, KDefaultParentId8 );
CleanupStack::PushL( inDataKey );
@@ -611,13 +608,13 @@
// ---------------------------------------------------------------------------
//
TInt CHnRepositoryShowFolderObserver::HandleNotifyL(
- TInt /*aCmdId*/,
- TInt aEventId,
- CLiwGenericParamList& aEventParamList,
- const CLiwGenericParamList& /*aInParamList*/)
- {
- DEBUG(("_MM_:CHnRepositoryShowFolderObserver::HandleNotifyL IN"));
- if( aEventId == KLiwEventCanceled )
+ TInt /*aCmdId*/,
+ TInt aEventId,
+ CLiwGenericParamList& aEventParamList,
+ const CLiwGenericParamList& /*aInParamList*/)
+ {
+ DEBUG(("_MM_:CHnRepositoryShowFolderObserver::HandleNotifyL IN"));
+ if( aEventId == KLiwEventCanceled )
{
return KErrNotFound;
}
@@ -772,4 +769,248 @@
return KErrNone;
}
+// class CHnRepositoryOpenItemObserver
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+CHnRepositoryOpenItemObserver * CHnRepositoryOpenItemObserver::NewL(
+ THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid, const TUint32 aId )
+ {
+ CHnRepositoryOpenItemObserver * self = CHnRepositoryOpenItemObserver::NewLC(
+ aCmnPtrs, aRepositoryUid, aId );
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+CHnRepositoryOpenItemObserver * CHnRepositoryOpenItemObserver::NewLC(
+ THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid, const TUint32 aId )
+ {
+ CHnRepositoryOpenItemObserver * self = new (ELeave) CHnRepositoryOpenItemObserver(
+ aCmnPtrs, aId );
+ CleanupStack::PushL(self);
+ self->ConstructL( aRepositoryUid );
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CHnRepositoryOpenItemObserver::ConstructL( const TUid aRepositoryUid )
+ {
+ CHnRepositoryObserver::ConstructL( aRepositoryUid );
+ TInt ret = iRepository->Create( iId, KBlank );
+ iNotifyHandler = CCenRepNotifyHandler::NewL( *this, *iRepository,
+ CCenRepNotifyHandler::EStringKey, iId );
+ iNotifyHandler->StartListeningL();
+ }
+
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+CHnRepositoryOpenItemObserver::CHnRepositoryOpenItemObserver(
+ THnMdCommonPointers* aCmnPtrs, TUint32 aId ) :
+ CHnRepositoryObserver( aCmnPtrs, aId )
+ {
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+CHnRepositoryOpenItemObserver::~CHnRepositoryOpenItemObserver()
+ {
+ iRepository->Delete( iId );
+ delete iServiceHandler;
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CHnRepositoryOpenItemObserver::HandleNotifyString(
+ TUint32 aId, const TDesC16& aNewValue )
+ {
+ TRAP_IGNORE( HandleNotifyStringL( aId, aNewValue ) );
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CHnRepositoryOpenItemObserver::HandleNotifyStringL(
+ TUint32 aId, const TDesC16& aNewValue )
+ {
+ DEBUG(("_MM_:CHnRepositoryOpenItemObserver::HandleNotifyStringL IN"));
+ DEBUG(("\tID: %d : %S", aId, &aNewValue));
+
+ // Open item
+ if( aId == iId && aNewValue.Length())
+ {
+ ShowFolderL( aNewValue );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+TInt CHnRepositoryOpenItemObserver::HandleNotifyL(
+ TInt /*aCmdId*/,
+ TInt aEventId,
+ CLiwGenericParamList& aEventParamList,
+ const CLiwGenericParamList& /*aInParamList*/)
+ {
+ DEBUG(("_MM_:CHnRepositoryOpenItemObserver::HandleNotifyL IN"));
+ if( aEventId == KLiwEventCanceled )
+ {
+ return KErrNotFound;
+ }
+ else
+ {
+ TInt pos( 0 );
+ const TLiwGenericParam* first = aEventParamList.FindFirst(
+ pos, KReturnValue8() );
+ if( pos == KErrNotFound )
+ {
+ return KErrNotFound;
+ }
+
+ TInt count = first->Value().AsList()->Count();
+ if( count == 0 )
+ {
+ return KErrNotFound;
+ }
+
+ TLiwVariant varId;
+ varId.PushL();
+ TLiwVariant varAppGroupName;
+ varAppGroupName.PushL();
+ TLiwVariant varSuiteName;
+ varSuiteName.PushL();
+ TLiwVariant varChildrenCount;
+ varChildrenCount.PushL();
+
+ HnLiwUtils::GetVariantL( aEventParamList, KIdPath8, 0, varId );
+ HnLiwUtils::GetVariantL( aEventParamList, KAppGroupNamePath8, 0, varAppGroupName );
+ HnLiwUtils::GetVariantL( aEventParamList, KTitleNamePath8, 0, varSuiteName );
+ HnLiwUtils::GetVariantL( aEventParamList, KChildrenCountPath8, 0, varChildrenCount );
+
+ CLiwGenericParamList* paramList = CLiwGenericParamList::NewL();
+ CleanupStack::PushL( paramList );
+
+ CLiwDefaultMap* map = CLiwDefaultMap::NewLC();
+
+ paramList->AppendL( TLiwGenericParam( KSuiteName8, TLiwVariant(
+ KFolderSuite ) ) );
+
+ map->InsertL( KSuiteName8, varSuiteName );
+ map->InsertL( KFolderId8, varId );
+ map->InsertL( KRemoveLocked8, TLiwVariant( KStringFalse8 ) );
+ map->InsertL( KParentFolderId8, varId );
+ map->InsertL( KTmpParentFolderId8, varId );
+ map->InsertL( KMcsAppGroupName8, varAppGroupName );
+
+ paramList->AppendL( TLiwGenericParam( KParams8, TLiwVariant( map ) ) );
+
+ CleanupStack::PopAndDestroy( map );
+
+ while( iCmnPtrs->iModel->LoadedSuitesCount() > 1 )
+ {
+ CHnMdSuite* suite = iCmnPtrs->iModel->GetLastSuite();
+ iCmnPtrs->iContainer->PopSuiteModelL( suite->SuiteName() );
+ iCmnPtrs->iModel->DeleteLastSuite();
+ }
+
+ if( iCmnPtrs->iContainer->GetLastSuiteModel()->CustomId()
+ != varId.AsTInt64() )
+ {
+ iCmnPtrs->iModelEventObserver->HandleModelEventL(
+ KNewSuiteLoadedMdEvent, *paramList );
+ iCmnPtrs->iModel->QueueForeground(
+ CHnMdModel::EWhenCurrentTopSuiteIsEvaluated );
+ }
+ else
+ {
+ iCmnPtrs->iContainer->GetLastSuiteModel()->NotifyObserversL(
+ ESuiteModelInitialized );
+ CLiwGenericParamList* paramList = CLiwGenericParamList::NewL();
+ CleanupStack::PushL( paramList );
+ iCmnPtrs->iModelEventObserver->HandleModelEventL(
+ KAppGainForeground, *paramList );
+ CleanupStack::PopAndDestroy( paramList );
+ }
+
+ iRepository->Set( iId, KBlank ); // reset key repository to empty string
+
+ CleanupStack::PopAndDestroy( paramList );
+ CleanupStack::PopAndDestroy( &varChildrenCount );
+ CleanupStack::PopAndDestroy( &varSuiteName );
+ CleanupStack::PopAndDestroy( &varAppGroupName );
+ CleanupStack::PopAndDestroy( &varId );
+ }
+
+ DEBUG(("_MM_:CHnRepositoryOpenItemObserver::HandleNotifyL OUT"));
+ return KErrNone;
+ }
+
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CHnRepositoryOpenItemObserver::ShowFolderL( const TDesC16& aFolderId )
+ {
+ CHnMdBaseKey* inDataKey = HnMdKeyFactory::CreateL(
+ KInData8, KKeyTypeMap, KDefaultParentId8 );
+ CleanupStack::PushL( inDataKey );
+ inDataKey->AddSubKeyL(
+ HnMdKeyFactory::CreateL( KType8, KKeyTypeString, KMenuFolder8 ) );
+ inDataKey->AddSubKeyL(
+ HnMdKeyFactory::CreateL( KIdParam, KKeyTypeInteger, aFolderId ) );
+ inDataKey->AddSubKeyL(
+ HnMdKeyFactory::CreateL( KParentOnly8, KKeyTypeBoolean, KStringTrue8 ) );
+
+ RPointerArray< CHnMdBaseKey > data;
+ CleanupClosePushL( data );
+ data.Append( inDataKey );
+
+ CHnMdBaseKey* serviceData = HnMdKeyFactory::CreateL(
+ KServiceContentName, KKeyTypeString, KMatrixMenuData );
+ CleanupStack::PushL( serviceData );
+
+ RPointerArray< CHnMdBaseKey> constructor;
+ CleanupClosePushL( constructor );
+ constructor.Append( serviceData );
+ CLiwGenericParamList* constructorLiw = CLiwGenericParamList::NewLC();
+ CLiwGenericParamList* commandLiw = CLiwGenericParamList::NewLC();
+ HnLiwUtils::SetGenericParamListL( constructor, *constructorLiw );
+ HnLiwUtils::SetGenericParamListL( data, *commandLiw );
+
+ TBuf8< KMaxLength > interface( KMCSDataSourceInterface8 );
+
+ delete iServiceHandler;
+ iServiceHandler = NULL;
+ iServiceHandler = CHnServiceHandler::NewL(
+ KMCSService8, interface, KCmdGetList8,
+ EServiceModeAsynchronous, constructorLiw, commandLiw );
+
+ CleanupStack::Pop( commandLiw );
+ CleanupStack::Pop( constructorLiw );
+
+ iServiceHandler->ExecuteL( this );
+
+ CleanupStack::PopAndDestroy( &constructor );
+ CleanupStack::PopAndDestroy( serviceData );
+ CleanupStack::PopAndDestroy( &data );
+ CleanupStack::PopAndDestroy( inDataKey );
+
+ }
+
// End of File
Binary file menufw/menusuites/foldersuite/loc/matrixmenudata.loc has changed
--- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h Tue Sep 14 20:58:58 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h Wed Sep 15 12:00:00 2010 +0300
@@ -303,6 +303,11 @@
void RenderContentL( );
/**
+ * Prepare bitmap for item.
+ */
+ CGulIcon* CreateItemIconLC( CTsFswEntry* aEntry, TBool aIsScreenshot );
+
+ /**
* Creates the ganes grid control.
*/
void ReCreateGridL();
@@ -384,6 +389,11 @@
*/
TBool LongTapAnimForPos( const TPoint& aHitPoint );
+ /**
+ * Count grid rectangle based on given item position
+ */
+ TRect CountCenteredGridRect( TPoint aItemPosition);
+
private: // Data
// parent control
@@ -458,6 +468,7 @@
// Screenshot handling
RArray<TInt> iPrevScreenshots;
+ RArray<TInt> iPrevWgIds;
};
#endif // TSFASTSWAPAREA_H
--- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapareautils.h Tue Sep 14 20:58:58 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapareautils.h Wed Sep 15 12:00:00 2010 +0300
@@ -198,6 +198,17 @@
CFbsBitmap* CopyBitmapL( TInt aFbsHandle, TSize aSize, TBool aIsScreenshot );
/**
+ * Duplicates handle to bitmap.
+ */
+ CFbsBitmap* DuplicateBitmapLC( TInt aFbsHandle );
+
+ /**
+ * Duplicates handle to bitmap.
+ */
+ void ScaleBitmapL( CFbsBitmap* aSourceBitmap,
+ CFbsBitmap* aTargetBitmap );
+
+ /**
* Cancels ongoing scale tasks
*/
void CancelScaleTasks();
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -584,10 +584,8 @@
TSLOG_CONTEXT( MoveAppToForeground, TSLOG_LOCAL );
TSLOG_IN();
- if ( !iUiStarted )
- {
- TRAP_IGNORE( iUnderAppWgId = WgIdOfUnderlyingAppL(EFalse) );
- }
+ TRAP_IGNORE( iUnderAppWgId = WgIdOfUnderlyingAppL(EFalse) );
+
iUiStarted = ETrue;
// Request window server to bring our application
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -140,6 +140,7 @@
delete iLongTapAnimationTimer;
delete iFastSwapExt;
iPrevScreenshots.Close();
+ iPrevWgIds.Close();
delete iEventSupressor;
}
@@ -273,7 +274,10 @@
CleanupStack::PopAndDestroy(&rects);
- iGrid->SetRect(gridAppPane.Rect());
+ TPoint position = iFastSwapExt->ItemViewPosition( SelectedIndex() );
+ iGrid->SetRect( CountCenteredGridRect( position ) );
+
+
CTsAppUi* appUi = static_cast<CTsAppUi*>(iEikonEnv->AppUi());
@@ -692,6 +696,8 @@
CleanupClosePushL(strokeItemArray);
RArray<TInt> screenshotList;
CleanupClosePushL(screenshotList);
+ RArray<TInt> wgIdList;
+ CleanupClosePushL(wgIdList);
// Update view based on number of items
LayoutGridViewL( iArray.Count() );
@@ -711,20 +717,15 @@
formAppName.Append(appName);
textArray->AppendL(formAppName);
CleanupStack::PopAndDestroy(&formAppName);
- TSize sz = iFastSwapExt->PreferredImageSize();
// take the screenshot or appicon+mask and make a copy and scale
- CFbsBitmap* bitmap = 0;
TInt h = iArray[i]->ScreenshotHandle();
TSLOG2( TSLOG_INFO, "'%S' screenshot handle %d", &appName, h );
- TInt maskh = 0;
- CFbsBitmap* mask = 0;
TBool isScreenshot( ETrue );
if ( !h )
{
// No screenshot, take app icon
h = iArray[i]->AppIconBitmapHandle();
- maskh = iArray[i]->AppIconMaskHandle();
isScreenshot = EFalse;
TSLOG1( TSLOG_INFO, "using appicon, handle = %d", h );
}
@@ -737,36 +738,13 @@
// check screenshot - if it exists already, use it
// so there is no unnecessary scaling performed
+ CGulIcon* icon = CreateItemIconLC( iArray[i], isScreenshot );
+ iconArray->AppendL(icon);
+ CleanupStack::Pop( icon ); //icon
+
screenshotList.AppendL( h );
- TInt idx = iPrevScreenshots.Find( h );
- if ( idx != KErrNotFound && oldIconArray && idx < oldIconArray->Count() )
- {
- CGulIcon* existingIcon = oldIconArray->At( idx );
- if ( existingIcon->Bitmap() )
- {
- h = existingIcon->Bitmap()->Handle();
- if ( existingIcon->Mask() )
- {
- maskh = existingIcon->Mask()->Handle();
- }
- isScreenshot = EFalse;
- }
- }
-
- // create bitmap for grid item
- bitmap = iFastSwapExt->CopyBitmapL( h, sz, isScreenshot );
- CleanupStack::PushL( bitmap );
- if ( maskh )
- {
- mask = iFastSwapExt->CopyBitmapL( maskh, sz, EFalse );
- }
- CleanupStack::PushL( mask );
-
- CGulIcon* icon = CGulIcon::NewL( bitmap, mask );
- CleanupStack::PushL(icon);
- iconArray->AppendL(icon);
- CleanupStack::Pop( 3, bitmap ); // mask, bitmap, icon
-
+ wgIdList.AppendL( iArray[i]->WgId() );
+
// Check if item can be closed
if ( CanClose(i) && AknLayoutUtils::PenEnabled() )
{
@@ -775,10 +753,14 @@
}
// Update screenshot list
iPrevScreenshots.Reset();
- for ( TInt i = 0; i < screenshotList.Count(); i++ )
+ iPrevWgIds.Reset();
+ for ( TInt i = 0;
+ i < screenshotList.Count() && i < wgIdList.Count(); i++ )
{
iPrevScreenshots.AppendL( screenshotList[i] );
+ iPrevWgIds.AppendL( wgIdList[i] );
}
+ CleanupStack::PopAndDestroy( &wgIdList );
CleanupStack::PopAndDestroy( &screenshotList );
// Setup grid
@@ -814,6 +796,87 @@
TSLOG_OUT();
}
+// --------------------------------------------------------------------------
+// CTsFastSwapArea::CreateItemIconLC
+// --------------------------------------------------------------------------
+//
+CGulIcon* CTsFastSwapArea::CreateItemIconLC( CTsFswEntry* aEntry,
+ TBool aIsScreenshot )
+ {
+ TSize sz = iFastSwapExt->PreferredImageSize();
+ CArrayPtr<CGulIcon>* oldIconArray =
+ iGrid->ItemDrawer()->FormattedCellData()->IconArray();
+
+ CFbsBitmap* bitmap = NULL;
+ CFbsBitmap* mask = NULL;
+
+ TInt h = 0;
+ TInt maskh = 0;
+ if ( aIsScreenshot )
+ {
+ h = aEntry->ScreenshotHandle();
+ }
+ else
+ {
+ h = aEntry->AppIconBitmapHandle();
+ maskh = aEntry->AppIconMaskHandle();
+ }
+
+ TInt idx = iPrevScreenshots.Find( h );
+ TInt wgIdIdx = iPrevWgIds.Find( aEntry->WgId() );
+
+ if ( idx != KErrNotFound && idx == wgIdIdx
+ && oldIconArray && idx < oldIconArray->Count() )
+ {
+ CGulIcon* existingIcon = oldIconArray->At( idx );
+ if ( existingIcon->Bitmap() )
+ {
+ bitmap = iFastSwapExt->DuplicateBitmapLC(
+ existingIcon->Bitmap()->Handle() );
+ if ( existingIcon->Mask() )
+ {
+ maskh = existingIcon->Mask()->Handle();
+ mask = iFastSwapExt->DuplicateBitmapLC( maskh );
+ }
+ }
+ }
+ else if ( idx == KErrNotFound && wgIdIdx != KErrNotFound
+ && oldIconArray && wgIdIdx < oldIconArray->Count() )
+ {
+ CGulIcon* existingIcon = oldIconArray->At( wgIdIdx );
+ if ( existingIcon->Bitmap()
+ && !existingIcon->Mask() )
+ {
+ bitmap = iFastSwapExt->DuplicateBitmapLC(
+ existingIcon->Bitmap()->Handle() );
+ CFbsBitmap* source = iFastSwapExt->DuplicateBitmapLC( h );
+ iFastSwapExt->ScaleBitmapL( source, bitmap );
+ CleanupStack::Pop( source );
+ }
+ }
+
+ // create bitmap for grid item
+ if ( !bitmap )
+ {
+ bitmap = iFastSwapExt->CopyBitmapL( h, sz, aIsScreenshot );
+ CleanupStack::PushL( bitmap );
+ }
+ if ( !mask && maskh )
+ {
+ mask = iFastSwapExt->CopyBitmapL( maskh, sz, EFalse );
+ CleanupStack::PushL( mask );
+ }
+ else if ( !mask )
+ {
+ CleanupStack::PushL( mask );
+ }
+
+ CGulIcon* icon = CGulIcon::NewL( bitmap, mask );
+ CleanupStack::Pop( 2, bitmap );
+ CleanupStack::PushL( icon );
+ return icon;
+ }
+
// --------------------------------------------------------------------------
// CTsFastSwapArea::CountComponentControls
@@ -1074,13 +1137,18 @@
else if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
{
CancelLongTapAnimation( EFalse );
- if( iActivateOnPointerRelease != TPoint() ||
- iSupressDrag)
+ if( iActivateOnPointerRelease != TPoint() )
{
iHandlePointerCandidate = ETrue;
- TapL(iActivateOnPointerRelease);
+ TapL( iActivateOnPointerRelease );
iActivateOnPointerRelease = TPoint();
}
+ else if( iSupressDrag )
+ {
+ iSupressDrag = EFalse;
+ iHandlePointerCandidate = ETrue;
+ TapL( iTapEvent.iParentPosition );
+ }
}
}
@@ -1525,17 +1593,7 @@
if ( aDrawNow )
{
- TInt currentXPos = aPoint.iX;
- currentXPos -= Rect().Width() / 2;
- TRect gridViewRect = Rect();
- gridViewRect.iTl.iX = -currentXPos;
- // Take edge offset into account
- gridViewRect.iTl.iX += Rect().iTl.iX;
- if(GridItemCount() && GridItemCount() <= iMaxItemsOnScreen)
- {
- // Center view
- gridViewRect.iTl.iX += ( Rect().Width() - GridItemCount() * iGridItemWidth ) / 2;
- }
+ TRect gridViewRect = CountCenteredGridRect( aPoint );
//iParent.DrawDeferred();
iGrid->DrawDeferred();
iGrid->SetRect( gridViewRect );
@@ -1598,6 +1656,10 @@
{
iActivateOnPointerRelease = aPoint;
}
+ else
+ {
+ iSupressDrag = EFalse;
+ }
iGrid->ShowHighlight();
DrawNow();
}
@@ -1761,4 +1823,24 @@
return EFalse;
}
+// -----------------------------------------------------------------------------
+// CTsFastSwapArea::CountCenteredGridRect
+// -----------------------------------------------------------------------------
+//
+TRect CTsFastSwapArea::CountCenteredGridRect( TPoint aItemPosition)
+ {
+ TInt currentXPos = aItemPosition.iX;
+ currentXPos -= Rect().Width() / 2;
+ TRect gridViewRect = Rect();
+ gridViewRect.iTl.iX = -currentXPos;
+ // Take edge offset into account
+ gridViewRect.iTl.iX += Rect().iTl.iX;
+ if(GridItemCount() && GridItemCount() <= iMaxItemsOnScreen)
+ {
+ // Center view
+ gridViewRect.iTl.iX += ( Rect().Width() - GridItemCount() * iGridItemWidth ) / 2;
+ }
+ return gridViewRect;
+ }
+
// End of file
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapareautils.cpp Tue Sep 14 20:58:58 2010 +0300
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapareautils.cpp Wed Sep 15 12:00:00 2010 +0300
@@ -514,9 +514,7 @@
CFbsBitmap* ret = new (ELeave) CFbsBitmap();
CleanupStack::PushL( ret );
- CFbsBitmap* bmp = new (ELeave) CFbsBitmap();
- CleanupStack::PushL( bmp );
- User::LeaveIfError( bmp->Duplicate( aFbsHandle ) );
+ CFbsBitmap* bmp = DuplicateBitmapLC( aFbsHandle );
// First scale using normal method, to show "draft" screenshots.
// Do not always use aSize, preserving the aspect ratio is quite
@@ -528,11 +526,7 @@
// Second, if it is screenshot, perform quality improvement scaling
if ( aIsScreenshot )
{
- CTsBitmapScaleTask* rotaTask = new (ELeave) CTsBitmapScaleTask( *this );
- CleanupStack::PushL( rotaTask );
- iScaleTasks.AppendL( rotaTask );
- rotaTask->StartLD( bmp, ret ); // ownership of bmp transferred
- CleanupStack::Pop( rotaTask );
+ ScaleBitmapL( bmp, ret );
CleanupStack::Pop( bmp );
}
else
@@ -544,6 +538,32 @@
return ret;
}
+// --------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::DuplicateBitmapL
+// --------------------------------------------------------------------------
+//
+CFbsBitmap* CTsFastSwapAreaExtension::DuplicateBitmapLC( TInt aFbsHandle )
+ {
+ CFbsBitmap* bmp = new (ELeave) CFbsBitmap();
+ CleanupStack::PushL( bmp );
+ User::LeaveIfError( bmp->Duplicate( aFbsHandle ) );
+ return bmp;
+ }
+
+// --------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::ScaleBitmapL
+// --------------------------------------------------------------------------
+//
+void CTsFastSwapAreaExtension::ScaleBitmapL( CFbsBitmap* aSourceBitmap,
+ CFbsBitmap* aTargetBitmap )
+ {
+ CTsBitmapScaleTask* rotaTask = new (ELeave) CTsBitmapScaleTask( *this );
+ CleanupStack::PushL( rotaTask );
+ iScaleTasks.AppendL( rotaTask );
+ rotaTask->StartLD( aSourceBitmap, aTargetBitmap );
+ // ownership of bmp transferred
+ CleanupStack::Pop( rotaTask );
+ }
// --------------------------------------------------------------------------
// CTsFastSwapAreaExtension::CancelScaleTasks