Revision: 201011 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 31 Mar 2010 21:17:19 +0300
branchRCL_3
changeset 30 b8fae6b8a148
parent 16 9674c1a575e9
child 31 d6c9979772b6
child 34 d05a55b217df
Revision: 201011 Kit: 201013
idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/manifest.dat
idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/widgetconfiguration.xml
idlehomescreen/data/qhd_tch/empty_2001f47f/hsps/00/manifest.dat
idlehomescreen/data/qhd_tch/group/bld.inf
idlehomescreen/data/qhd_tch/onerow_2001f480/hsps/00/manifest.dat
idlehomescreen/data/qhd_tch/posterwideimage_2001fdbc/hsps/00/manifest.dat
idlehomescreen/data/qhd_tch/profile_2001cb7c/hsps/00/manifest.dat
idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.xml
idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.confml
idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.gcfml
idlehomescreen/data/qhd_tch/root_2001f482/hsps/00/manifest.dat
idlehomescreen/data/qhd_tch/templateview_20026f50/hsps/00/manifest.dat
idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.css
idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.xml
idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/37/templateview.css
idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/50/templateview.css
idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/57/templateview.css
idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/94/templateview.css
idlehomescreen/data/qhd_tch/threerows_2001f486/hsps/00/manifest.dat
idlehomescreen/data/qhd_tch/threetextrows_2001f487/hsps/00/manifest.dat
idlehomescreen/data/qhd_tch/tworows_2001f488/hsps/00/manifest.dat
idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.confml
idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.gcfml
idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bmanifest.confml
idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bmanifest.gcfml
idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bxuikon.confml
idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bxuikon.gcfml
idlehomescreen/data/qhd_tch/view_2001f48b/group/bld.inf
idlehomescreen/data/qhd_tch/view_2001f48b/hsps/00/manifest.dat
idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.css
idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.xml
idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/37/View.css
idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/50/View.css
idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/57/View.css
idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/94/View.css
idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.confml
idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.gcfml
idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4manifest.confml
idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4manifest.gcfml
idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4xuikon.confml
idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4xuikon.gcfml
idlehomescreen/data/qhd_tch/view_200286e4/group/bld.inf
idlehomescreen/data/qhd_tch/view_200286e4/hsps/00/manifest.dat
idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.css
idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.xml
idlehomescreen/data/qhd_tch/view_200286e4/xuikon/37/View.css
idlehomescreen/data/qhd_tch/view_200286e4/xuikon/50/View.css
idlehomescreen/data/qhd_tch/view_200286e4/xuikon/57/View.css
idlehomescreen/data/qhd_tch/view_200286e4/xuikon/94/View.css
idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.confml
idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.gcfml
idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5manifest.confml
idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5manifest.gcfml
idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5xuikon.confml
idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5xuikon.gcfml
idlehomescreen/data/qhd_tch/view_200286e5/group/bld.inf
idlehomescreen/data/qhd_tch/view_200286e5/hsps/00/manifest.dat
idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.css
idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.xml
idlehomescreen/data/qhd_tch/view_200286e5/xuikon/37/View.css
idlehomescreen/data/qhd_tch/view_200286e5/xuikon/50/View.css
idlehomescreen/data/qhd_tch/view_200286e5/xuikon/57/View.css
idlehomescreen/data/qhd_tch/view_200286e5/xuikon/94/View.css
idlehomescreen/data/qhd_tch/wideimage_2001f489/hsps/00/manifest.dat
idlehomescreen/data/vga_tch/desktop_20018eee/hsps/00/manifest.dat
idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/hsps/00/manifest.dat
idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/hsps/00/manifest.dat
idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/manifest.dat
idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/hsps/00/manifest.dat
idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/hsps/00/manifest.dat
idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/hsps/00/manifest.dat
idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/hsps/00/manifest.dat
idlehomescreen/data/vga_tch/view1_2001fdb9/hsps/00/manifest.dat
idlehomescreen/data/vga_tch/wideimage_10009dff/hsps/00/manifest.dat
idlehomescreen/exths/group/backup_registration.xml
idlehomescreen/exths/group/bld.inf
idlehomescreen/exths/rom/aicontainer.iby
idlehomescreen/hscontentcontrol/group/hscontentcontrol.mmp
idlehomescreen/hscontentcontrol/inc/hscontentcontrolfactory.h
idlehomescreen/hscontentcontrol/inc/hscontentcontrolswilistener.h
idlehomescreen/hscontentcontrol/inc/hscontentcontrolswiobserver.h
idlehomescreen/hscontentcontrol/inc/hscontentcontroluninstallmonitor.h
idlehomescreen/hscontentcontrol/inc/hscontentcontroluninstallobserver.h
idlehomescreen/hscontentcontrol/src/hscontentcontrolfactory.cpp
idlehomescreen/hscontentcontrol/src/hscontentcontrolswilistener.cpp
idlehomescreen/hscontentcontrol/src/hscontentcontroluninstallmonitor.cpp
idlehomescreen/inc/xnappuiadapter.h
idlehomescreen/inc/xnviewmanager.h
idlehomescreen/loc/activeidle3.loc
idlehomescreen/sapiwrapper/hspswrapper/bwins/hspswrapper.def
idlehomescreen/sapiwrapper/hspswrapper/eabi/hspswrapper.def
idlehomescreen/sapiwrapper/hspswrapper/inc/hspswrapper.h
idlehomescreen/sapiwrapper/hspswrapper/src/hspswrapper.cpp
idlehomescreen/widgetmanager/gfx/add_widget_button.svg
idlehomescreen/widgetmanager/inc/wminstaller.h
idlehomescreen/widgetmanager/inc/wmmaincontainer.h
idlehomescreen/widgetmanager/inc/wmwidgetdata.h
idlehomescreen/widgetmanager/inc/wmwidgetdata.inl
idlehomescreen/widgetmanager/src/wmeffectmanager.cpp
idlehomescreen/widgetmanager/src/wminstaller.cpp
idlehomescreen/widgetmanager/src/wmmaincontainer.cpp
idlehomescreen/widgetmanager/src/wmplugin.cpp
idlehomescreen/widgetmanager/src/wmportalbutton.cpp
idlehomescreen/widgetmanager/src/wmwidgetdata.cpp
idlehomescreen/xmluicontroller/inc/appui.h
idlehomescreen/xmluicontroller/inc/onlineofflinehelper.h
idlehomescreen/xmluicontroller/src/appui.cpp
idlehomescreen/xmluicontroller/src/contentrenderer.cpp
idlehomescreen/xmluicontroller/src/onlineofflinehelper.cpp
idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockface.cpp
idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/inc/xnnewstickercontrol.h
idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewstickercontrol.cpp
idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditoradapter.cpp
idlehomescreen/xmluirendering/uiengine/bwins/xn3layoutengineu.def
idlehomescreen/xmluirendering/uiengine/eabi/xn3layoutengineu.def
idlehomescreen/xmluirendering/uiengine/inc/xnbackgroundmanager.h
idlehomescreen/xmluirendering/uiengine/inc/xnbgcontrol.h
idlehomescreen/xmluirendering/uiengine/inc/xncontroladapterimpl.h
idlehomescreen/xmluirendering/uiengine/inc/xneditor.h
idlehomescreen/xmluirendering/uiengine/inc/xngesturedefs.h
idlehomescreen/xmluirendering/uiengine/inc/xnwidgetextensionadapter.h
idlehomescreen/xmluirendering/uiengine/src/xnappuiadapter.cpp
idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp
idlehomescreen/xmluirendering/uiengine/src/xnbgcontrol.cpp
idlehomescreen/xmluirendering/uiengine/src/xncontroladapterimpl.cpp
idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp
idlehomescreen/xmluirendering/uiengine/src/xnextrenderingpluginwrapper.cpp
idlehomescreen/xmluirendering/uiengine/src/xngesturehelper.cpp
idlehomescreen/xmluirendering/uiengine/src/xngesturerecogniser.cpp
idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp
idlehomescreen/xmluirendering/uiengine/src/xnuiengine.rss
idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp
idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp
idlehomescreen/xmluirendering/uiengine/src/xnviewdata.cpp
idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp
idlehomescreen/xmluirendering/uiengine/src/xnwidgetextensionadapter.cpp
menufw/menufwui/matrixmenu/group/matrixmenu.mmp
menufw/menufwui/matrixmenu/inc/mmappui.h
menufw/menufwui/matrixmenu/src/mmappui.cpp
menufw/menufwui/matrixmenu/src/mmgui.cpp
menufw/menufwui/mmwidgets/src/mmwidgetcontainer.cpp
menufw/menusuites/foldersuite/data/matrixmenudata.dtd
menufw/menusuites/foldersuite/data/matrixmenudata.xml
menufw/menusuites/foldersuite/loc/matrixmenudata.loc
package_definition.xml
taskswitcher/contextengine/tsfswserver/engine/group/tsfswengine.mmp
taskswitcher/contextengine/tsfswserver/engine/inc/tscpsnotifier.h
taskswitcher/contextengine/tsfswserver/engine/inc/tsfswdatalist.h
taskswitcher/contextengine/tsfswserver/engine/inc/tsfswengine.h
taskswitcher/contextengine/tsfswserver/engine/inc/tsfswidgetlist.h
taskswitcher/contextengine/tsfswserver/engine/src/tscpsnotifier.cpp
taskswitcher/contextengine/tsfswserver/engine/src/tsfsalwaysshownapplist.cpp
taskswitcher/contextengine/tsfswserver/engine/src/tsfshiddenapplist.cpp
taskswitcher/contextengine/tsfswserver/engine/src/tsfswdatalist.cpp
taskswitcher/contextengine/tsfswserver/engine/src/tsfswengine.cpp
taskswitcher/contextengine/tsfswserver/engine/src/tsfswidgetlist.cpp
taskswitcher/taskswitcherui/taskswitcherapp/data/taskswitcher.rss
taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappui.h
taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappview.h
taskswitcher/taskswitcherui/taskswitcherapp/inc/tseventcontroler.h
taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h
taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapgrid.h
taskswitcher/taskswitcherui/taskswitcherapp/loc/taskswitcher.loc
taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp
taskswitcher/taskswitcherui/taskswitcherapp/src/tsappview.cpp
taskswitcher/taskswitcherui/taskswitcherapp/src/tseventcontroler.cpp
taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp
taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapgrid.cpp
--- a/idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/manifest.dat	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/manifest.dat	Wed Mar 31 21:17:19 2010 +0300
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<package version="1.0">
+<package version="2.0">
 
     <family>qhd_tch</family>
 
--- a/idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/widgetconfiguration.xml	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/widgetconfiguration.xml	Wed Mar 31 21:17:19 2010 +0300
@@ -8,12 +8,12 @@
         <property  name="view" value=""/>
         <property  name="param" value=""/>
       </item>
-      <!-- Shortcut #2, Messaging -->
+      <!-- Shortcut #2, New Message -->
       <item id="second" name="Shortcut2" >
-        <property  name="type" value="application"/>
-        <property  name="uid" value="0x100058C5"/>
+        <property  name="type" value="shortcut"/>
+        <property  name="uid" value="0x99999999"/>
         <property  name="view" value=""/>
-        <property  name="param" value=""/>
+        <property  name="param" value="messaging:msg"/>
       </item>
       <!-- Shortcut #3, Browser -->
       <item id="third" name="Shortcut3" >
@@ -22,10 +22,10 @@
         <property  name="view" value=""/>
         <property  name="param" value=""/>
       </item>
-      <!-- Shortcut #4, Photos -->
+      <!-- Shortcut #4, Calendar -->
       <item id="fourth" name="Shortcut4" >
         <property  name="type" value="application"/>
-        <property  name="uid" value="0x200009EE"/>
+        <property  name="uid" value="0x10005901"/>
         <property  name="view" value=""/>
         <property  name="param" value=""/>
       </item>
--- a/idlehomescreen/data/qhd_tch/empty_2001f47f/hsps/00/manifest.dat	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/empty_2001f47f/hsps/00/manifest.dat	Wed Mar 31 21:17:19 2010 +0300
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 
-<package version="1.0">
+<package version="2.0">
 
 
 
@@ -57,4 +57,4 @@
 
 
 
-</package>
\ No newline at end of file
+</package>
--- a/idlehomescreen/data/qhd_tch/group/bld.inf	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/group/bld.inf	Wed Mar 31 21:17:19 2010 +0300
@@ -25,6 +25,8 @@
 #include "../posterwideimage_2001fdbc/group/bld.inf"
 #include "../profile_2001cb7c/group/bld.inf"
 #include "../view_2001f48b/group/bld.inf"
+#include "../view_200286e4/group/bld.inf"
+#include "../view_200286e5/group/bld.inf"
 #include "../templateview_20026f50/group/bld.inf"
 #include "../root_2001f482/group/bld.inf"
 
--- a/idlehomescreen/data/qhd_tch/onerow_2001f480/hsps/00/manifest.dat	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/onerow_2001f480/hsps/00/manifest.dat	Wed Mar 31 21:17:19 2010 +0300
@@ -1,18 +1,18 @@
 <?xml version="1.0"?>
 
-<package version="1.0">
+<package version="2.0">
 
 
 
-  <family>qhd_tch</family>
+    <family>qhd_tch</family>
 
 
 
-  <type>template</type>
+    <type>template</type>
 
 
 
-  <!-- interface uid -->
+    <!-- interface uid -->
 
 	<interfaceuid>0x2001f48a</interfaceuid>
 
@@ -60,4 +60,4 @@
 
 
 
-</package>
\ No newline at end of file
+</package>
--- a/idlehomescreen/data/qhd_tch/posterwideimage_2001fdbc/hsps/00/manifest.dat	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/posterwideimage_2001fdbc/hsps/00/manifest.dat	Wed Mar 31 21:17:19 2010 +0300
@@ -1,18 +1,18 @@
 <?xml version="1.0"?>
 
-<package version="1.0">
+<package version="2.0">
 
 
 
-  <family>qhd_tch</family>
+    <family>qhd_tch</family>
 
   
 
-  <type>template</type>
+    <type>template</type>
 
 
 
-  <!-- interface uid -->
+    <!-- interface uid -->
 
 	<interfaceuid>0x2001f48a</interfaceuid>
 
@@ -58,4 +58,4 @@
 
 
 
-</package>
\ No newline at end of file
+</package>
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/hsps/00/manifest.dat	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/hsps/00/manifest.dat	Wed Mar 31 21:17:19 2010 +0300
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 
-<package version="1.0">
+<package version="2.0">
 
     <family>qhd_tch</family>
     <type>widget</type>
@@ -32,4 +32,4 @@
     <fileresource tag="xuikon">profile.o0000</fileresource>
     </localization>
 
-</package>
\ No newline at end of file
+</package>
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.xml	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.xml	Wed Mar 31 21:17:19 2010 +0300
@@ -106,20 +106,20 @@
                                     </event>
                                 </action>
                             </actions>
-                            <title id="title_vhz" titleindex="0">
+                            <title id="title_sat" titleindex="0">
+                                <property class="SAT/SatIdleModeText"/>
+                                <property class="policy/emptyContent" name="title_sat" value="display: none;" />
+                                <property class="policy/Content" name="title_sat" value="display: block;" />
+                                <property class="policy/Visibility" name="NT_SATVHZ" value="if (title_vhz,title_sat,SatIdleModeIcon) display:block" />
+                                <property class="policy/Visibility" name="NT_SATVHZ" value="if !+(title_vhz,title_sat,SatIdleModeIcon) display:none" />
+                            </title>
+                            <title id="title_vhz" titleindex="1">
                                 <property class="DeviceStatus/VHZText"/>    
                                 <property class="policy/emptyContent" name="title_vhz" value="display: none;" />
                                 <property class="policy/Content" name="title_vhz" value="display: block;" />
                                 <property class="policy/Visibility" name="NT_SATVHZ" value="if (title_vhz,title_sat,SatIdleModeIcon) display:block" />
                                 <property class="policy/Visibility" name="NT_SATVHZ" value="if !+(title_vhz,title_sat,SatIdleModeIcon) display:none" />
                             </title>
-                            <title id="title_sat" titleindex="1">
-                                <property class="SAT/SatIdleModeText"/>
-                                <property class="policy/emptyContent" name="title_sat" value="display: none;" />
-                                <property class="policy/Content" name="title_sat" value="display: block;" />
-                                <property class="policy/Visibility" name="NT_SATVHZ" value="if (title_vhz,title_sat,SatIdleModeIcon) display:block" />
-                                <property class="policy/Visibility" name="NT_SATVHZ" value="if !+(title_vhz,title_sat,SatIdleModeIcon) display:none" />
-                            </title>
                         </newsticker>
                     </box>
                 </box>
Binary file idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.confml has changed
--- a/idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.gcfml	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.gcfml	Wed Mar 31 21:17:19 2010 +0300
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <file xmlns="http://www.s60.com/xml/genconfml/1" name="rootconfiguration.xml" target="\private\200159c0\install\root_2001f482\hsps\00\">
 	<setting ref="HSViews/MaxPages"/>
 	<setting ref="HSViews/Views"/>
--- a/idlehomescreen/data/qhd_tch/root_2001f482/hsps/00/manifest.dat	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/root_2001f482/hsps/00/manifest.dat	Wed Mar 31 21:17:19 2010 +0300
@@ -1,11 +1,11 @@
 <?xml version="1.0"?>
-<package version="1.0">
+<package version="2.0">
 
-  <family>qhd_tch</family>
+    <family>qhd_tch</family>
 
-  <type>application</type>
+    <type>application</type>
     
-  <!-- application uid -->
+    <!-- application uid -->
 	<interfaceuid>0x102750F0</interfaceuid>
 
 	<!-- vendor uid -->
@@ -30,4 +30,4 @@
   <!-- Locale specific resources -->
 	<localization/>
 
-</package>
\ No newline at end of file
+</package>
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/hsps/00/manifest.dat	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/hsps/00/manifest.dat	Wed Mar 31 21:17:19 2010 +0300
@@ -1,8 +1,8 @@
 <?xml version="1.0"?>
-<package version="1.0">
+<package version="2.0">
 
-  <family>qhd_tch</family>
-  <type>view</type>
+    <family>qhd_tch</family>
+    <type>view</type>
 
     <!-- interface uid -->
     <interfaceuid>0x2001f48a</interfaceuid>
@@ -28,4 +28,4 @@
     <fileresource>templateview.o0000</fileresource>
   </localization>
 
-</package>
\ No newline at end of file
+</package>
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.css	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.css	Wed Mar 31 21:17:19 2010 +0300
@@ -29,28 +29,6 @@
     nav-index: appearance;
 }
 
-image.widget_indication
-{
-    display: none;
-    position: absolute;
-
-    left: auto;        
-    right: 3px;
-    top: 5px;
-    
-    height: 26px; 
-    width: 26px;
-    
-    path: "SKIN(270501603 9252)";
-    _s60-aspect-ratio: preserve;
-    z-index: 2;       
-}
-
-image.widget_indication:edit
-{
-    display: block;
-}
-
 trigger#hs_popup_open_hold:edit
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.xml	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.xml	Wed Mar 31 21:17:19 2010 +0300
@@ -21,8 +21,7 @@
                     <property name="class" value="plugins"/>
                 </event>
                 <event name="system/seteditmode">
-                    <property name="id" value="hs_popup_open_hold"/>    
-                    <property name="class" value="widget_indication"/>
+                    <property name="id" value="hs_popup_open_hold"/>
                 </event>                                    
             </action>                
             <action>
@@ -34,8 +33,7 @@
                     <property name="class" value="plugins"/>
                 </event>
                 <event name="system/reseteditmode">
-                    <property name="id" value="hs_popup_open_hold"/>   
-                    <property name="class" value="widget_indication"/>
+                    <property name="id" value="hs_popup_open_hold"/>
                 </event>                                                    
             </action>                                
             <action>
@@ -80,24 +78,12 @@
 
         <!-- Plugins in this view -->
         <box id="plugins_container">
-            <plugin id="plugin1" class="plugins" actionshandler="plugin_actions">
-                <image class="widget_indication" />
-            </plugin>
-            <plugin id="plugin2" class="plugins" actionshandler="plugin_actions">
-                <image class="widget_indication" />
-            </plugin>
-            <plugin id="plugin3" class="plugins" actionshandler="plugin_actions">
-                <image class="widget_indication" />
-            </plugin>
-            <plugin id="plugin4" class="plugins" actionshandler="plugin_actions">
-                <image class="widget_indication" />
-            </plugin>
-            <plugin id="plugin5" class="plugins" actionshandler="plugin_actions">
-                <image class="widget_indication" />
-            </plugin>
-            <plugin id="plugin6" class="plugins" actionshandler="plugin_actions">
-                <image class="widget_indication" />
-            </plugin>
+            <plugin id="plugin1" class="plugins" actionshandler="plugin_actions"/>
+            <plugin id="plugin2" class="plugins" actionshandler="plugin_actions"/>
+            <plugin id="plugin3" class="plugins" actionshandler="plugin_actions"/>
+            <plugin id="plugin4" class="plugins" actionshandler="plugin_actions"/>
+            <plugin id="plugin5" class="plugins" actionshandler="plugin_actions"/>
+            <plugin id="plugin6" class="plugins" actionshandler="plugin_actions"/>
         </box>
 
         <!-- plugins' actions handler -->
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/37/templateview.css	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/37/templateview.css	Wed Mar 31 21:17:19 2010 +0300
@@ -29,28 +29,6 @@
     nav-index: appearance;
 }
 
-image.widget_indication
-{
-    display: none;
-    position: absolute;
-
-    right: auto;        
-    left: 3px;
-    top: 5px;
-    
-    height: 26px; 
-    width: 26px;
-    
-    path: "SKIN(270501603 9252)";
-    _s60-aspect-ratio: preserve;
-    z-index: 2;       
-}
-
-image.widget_indication:edit
-{
-    display: block;
-}
-
 trigger#hs_popup_open_hold:edit
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/50/templateview.css	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/50/templateview.css	Wed Mar 31 21:17:19 2010 +0300
@@ -29,28 +29,6 @@
     nav-index: appearance;
 }
 
-image.widget_indication
-{
-    display: none;
-    position: absolute;
-
-    right: auto;        
-    left: 3px;
-    top: 5px;
-    
-    height: 26px; 
-    width: 26px;
-    
-    path: "SKIN(270501603 9252)";
-    _s60-aspect-ratio: preserve;
-    z-index: 2;       
-}
-
-image.widget_indication:edit
-{
-    display: block;
-}
-
 trigger#hs_popup_open_hold:edit
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/57/templateview.css	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/57/templateview.css	Wed Mar 31 21:17:19 2010 +0300
@@ -29,28 +29,6 @@
     nav-index: appearance;
 }
 
-image.widget_indication
-{
-    display: none;
-    position: absolute;
-
-    right: auto;        
-    left: 3px;
-    top: 5px;
-    
-    height: 26px; 
-    width: 26px;
-    
-    path: "SKIN(270501603 9252)";
-    _s60-aspect-ratio: preserve;
-    z-index: 2;       
-}
-
-image.widget_indication:edit
-{
-    display: block;
-}
-
 trigger#hs_popup_open_hold:edit
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/94/templateview.css	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/94/templateview.css	Wed Mar 31 21:17:19 2010 +0300
@@ -29,28 +29,6 @@
     nav-index: appearance;
 }
 
-image.widget_indication
-{
-    display: none;
-    position: absolute;
-
-    right: auto;        
-    left: 3px;
-    top: 5px;
-    
-    height: 26px; 
-    width: 26px;
-    
-    path: "SKIN(270501603 9252)";
-    _s60-aspect-ratio: preserve;
-    z-index: 2;       
-}
-
-image.widget_indication:edit
-{
-    display: block;
-}
-
 trigger#hs_popup_open_hold:edit
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/threerows_2001f486/hsps/00/manifest.dat	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/threerows_2001f486/hsps/00/manifest.dat	Wed Mar 31 21:17:19 2010 +0300
@@ -1,18 +1,18 @@
 <?xml version="1.0"?>
 
-<package version="1.0">
+<package version="2.0">
 
 
 
-  <family>qhd_tch</family>
+    <family>qhd_tch</family>
 
   
 
-  <type>template</type>
+    <type>template</type>
 
 
 
-  <!-- interface uid -->
+    <!-- interface uid -->
 
 	<interfaceuid>0x2001f48a</interfaceuid>
 
@@ -60,4 +60,4 @@
 
 
 
-</package>
\ No newline at end of file
+</package>
--- a/idlehomescreen/data/qhd_tch/threetextrows_2001f487/hsps/00/manifest.dat	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/threetextrows_2001f487/hsps/00/manifest.dat	Wed Mar 31 21:17:19 2010 +0300
@@ -1,18 +1,18 @@
 <?xml version="1.0"?>
 
-<package version="1.0">
+<package version="2.0">
 
 
 
-  <family>qhd_tch</family>
+    <family>qhd_tch</family>
 
 
 
-  <type>template</type>
+    <type>template</type>
 
 
 
-  <!-- interface uid -->
+    <!-- interface uid -->
 
 	<interfaceuid>0x2001f48a</interfaceuid>
 
@@ -62,4 +62,4 @@
 
 
 
-</package>
\ No newline at end of file
+</package>
--- a/idlehomescreen/data/qhd_tch/tworows_2001f488/hsps/00/manifest.dat	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/tworows_2001f488/hsps/00/manifest.dat	Wed Mar 31 21:17:19 2010 +0300
@@ -1,18 +1,18 @@
 <?xml version="1.0"?>
 
-<package version="1.0">
+<package version="2.0">
 
 
 
-  <family>qhd_tch</family>
+    <family>qhd_tch</family>
 
 
 
-  <type>template</type>
+    <type>template</type>
 
 
 
-  <!-- interface uid -->
+    <!-- interface uid -->
 
 	<interfaceuid>0x2001f48a</interfaceuid>
 
@@ -60,4 +60,4 @@
 
 
 
-</package>
\ No newline at end of file
+</package>
Binary file idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.confml has changed
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.gcfml	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.gcfml	Wed Mar 31 21:17:19 2010 +0300
@@ -1,57 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <file xmlns="http://www.s60.com/xml/genconfml/1" name="viewconfiguration.xml" target="\private\200159c0\install\view_2001f48b\hsps\00\">
-	<setting ref="HomescreenPlugins/MaxWidgets"/>
-	<setting ref="HomescreenPlugins/UseEmptyWidgets"/>
-  <setting ref="HomescreenPlugins/ItemIdEmptyWidgets"/>
-  <setting ref="HomescreenPlugins/PropertyEmptyWidgets"/>
-	<setting ref="HomescreenPlugins/Background"/>
-  <setting ref="HomescreenPlugins/BackGroundPath"/>
-  <setting ref="HomescreenPlugins/ItemIdWallpaper"/>
-  <setting ref="HomescreenPlugins/ItemIdSlideshow"/>
-  <setting ref="HomescreenPlugins/WallpaperPropertyName"/>
-  <setting ref="HomescreenPlugins/SlideshowPropertyName"/>
-	<setting ref="HomescreenPlugins/Shortcut1ItemId"/>
-  <setting ref="HomescreenPlugins/Shortcut1ItemName"/>
-  <setting ref="HomescreenPlugins/Shortcut2ItemId"/>
-  <setting ref="HomescreenPlugins/Shortcut2ItemName"/>
-  <setting ref="HomescreenPlugins/Shortcut3ItemId"/>
-  <setting ref="HomescreenPlugins/Shortcut3ItemName"/>
-  <setting ref="HomescreenPlugins/Shortcut4ItemId"/>
-  <setting ref="HomescreenPlugins/Shortcut4ItemName"/>
-  <setting ref="HomescreenPlugins/ShortcutPropertyNameType"/>
-  <setting ref="HomescreenPlugins/ShortcutPropertyNameUid"/>
-	<setting ref="HomescreenPlugins/Plugins"/>
+	<setting ref="HomescreenPlugins_1/MaxWidgets"/>
+	<setting ref="HomescreenPlugins_1/UseEmptyWidgets"/>
+  <setting ref="HomescreenPlugins_1/ItemIdEmptyWidgets"/>
+  <setting ref="HomescreenPlugins_1/PropertyEmptyWidgets"/>
+	<setting ref="HomescreenPlugins_1/Background"/>
+  <setting ref="HomescreenPlugins_1/BackGroundPath"/>
+  <setting ref="HomescreenPlugins_1/ItemIdWallpaper"/>
+  <setting ref="HomescreenPlugins_1/ItemIdSlideshow"/>
+  <setting ref="HomescreenPlugins_1/WallpaperPropertyName"/>
+  <setting ref="HomescreenPlugins_1/SlideshowPropertyName"/>
+	<setting ref="HomescreenPlugins_1/Shortcut1ItemId"/>
+  <setting ref="HomescreenPlugins_1/Shortcut1ItemName"/>
+  <setting ref="HomescreenPlugins_1/Shortcut2ItemId"/>
+  <setting ref="HomescreenPlugins_1/Shortcut2ItemName"/>
+  <setting ref="HomescreenPlugins_1/Shortcut3ItemId"/>
+  <setting ref="HomescreenPlugins_1/Shortcut3ItemName"/>
+  <setting ref="HomescreenPlugins_1/Shortcut4ItemId"/>
+  <setting ref="HomescreenPlugins_1/Shortcut4ItemName"/>
+  <setting ref="HomescreenPlugins_1/ShortcutPropertyNameType"/>
+  <setting ref="HomescreenPlugins_1/ShortcutPropertyNameUid"/>
+	<setting ref="HomescreenPlugins_1/Plugins"/>
 	<xsl:stylesheet version="1.0" 
                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
                 xmlns:xi="http://www.w3.org/2001/xinclude">
 		<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
 		<xsl:template match="configuration/data">
 			<configuration>
-			 <xsl:attribute name="max_child"><xsl:value-of select="HomescreenPlugins/MaxWidgets"/></xsl:attribute>
+			 <xsl:attribute name="max_child"><xsl:value-of select="HomescreenPlugins_1/MaxWidgets"/></xsl:attribute>
 				<control>
 				  <settings>
 				    <item>
-					    <xsl:attribute name="id"><xsl:value-of select="HomescreenPlugins/ItemIdEmptyWidgets"/></xsl:attribute>
+					    <xsl:attribute name="id"><xsl:value-of select="HomescreenPlugins_1/ItemIdEmptyWidgets"/></xsl:attribute>
 						    <property>
-								  <xsl:attribute name="name"><xsl:value-of select="HomescreenPlugins/PropertyEmptyWidgets"/></xsl:attribute>								             
-  							  <xsl:attribute name="value"><xsl:value-of select="HomescreenPlugins/UseEmptyWidgets"/></xsl:attribute>
+								  <xsl:attribute name="name"><xsl:value-of select="HomescreenPlugins_1/PropertyEmptyWidgets"/></xsl:attribute>								             
+  							  <xsl:attribute name="value"><xsl:value-of select="HomescreenPlugins_1/UseEmptyWidgets"/></xsl:attribute>
 								</property>
 						</item> 
 					  <xsl:choose>
-						  <xsl:when test="HomescreenPlugins/Background = 1">
+						  <xsl:when test="HomescreenPlugins_1/Background = 1">
 							  <item>
-								  <xsl:attribute name="id"><xsl:value-of select="HomescreenPlugins/ItemIdWallpaper"/></xsl:attribute>
+								  <xsl:attribute name="id"><xsl:value-of select="HomescreenPlugins_1/ItemIdWallpaper"/></xsl:attribute>
 								    <property>
-								      <xsl:attribute name="name"><xsl:value-of select="HomescreenPlugins/WallpaperPropertyName"/></xsl:attribute>								             
-  							      <xsl:attribute name="value"><xsl:value-of select="HomescreenPlugins/BackGroundPath"/></xsl:attribute>
+								      <xsl:attribute name="name"><xsl:value-of select="HomescreenPlugins_1/WallpaperPropertyName"/></xsl:attribute>								             
+  							      <xsl:attribute name="value"><xsl:value-of select="HomescreenPlugins_1/BackGroundPath"/></xsl:attribute>
 								    </property>
 								</item>     
 				      </xsl:when>
-				      <xsl:when test="HomescreenPlugins/Background = 2">
+				      <xsl:when test="HomescreenPlugins_1/Background = 2">
 						    <item>
-								  <xsl:attribute name="id"><xsl:value-of select="HomescreenPlugins/ItemIdSlideshow"/></xsl:attribute>
+								  <xsl:attribute name="id"><xsl:value-of select="HomescreenPlugins_1/ItemIdSlideshow"/></xsl:attribute>
 								    <property>
-								      <xsl:attribute name="name"><xsl:value-of select="HomescreenPlugins/SlideshowPropertyName"/></xsl:attribute>								             
-  							      <xsl:attribute name="value"><xsl:value-of select="HomescreenPlugins/BackGroundPath"/></xsl:attribute>
+								      <xsl:attribute name="name"><xsl:value-of select="HomescreenPlugins_1/SlideshowPropertyName"/></xsl:attribute>								             
+  							      <xsl:attribute name="value"><xsl:value-of select="HomescreenPlugins_1/BackGroundPath"/></xsl:attribute>
 								    </property>
 								</item>     
 				      </xsl:when>
@@ -60,7 +61,7 @@
 				    </xsl:choose>
 				  </settings>
 					<plugins>
-						<xsl:for-each select="HomescreenPlugins/Plugins">
+						<xsl:for-each select="HomescreenPlugins_1/Plugins">
 							<plugin>
 								<xsl:attribute name="uid"><xsl:value-of select="Uid"/></xsl:attribute>
 								<xsl:attribute name="bundle_id"><xsl:value-of select="BundleIdentifier"/></xsl:attribute>
Binary file idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bmanifest.confml has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bmanifest.gcfml	Wed Mar 31 21:17:19 2010 +0300
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="manifest.dat" target="\private\200159c0\install\view_2001f48b\hsps\00\">
+	<setting ref="Homescreen1manifest/PackageVersion"/>
+	<setting ref="Homescreen1manifest/DeviceFamily"/>
+	<setting ref="Homescreen1manifest/ConfigurationType"/>
+	<setting ref="Homescreen1manifest/InterfaceUid"/>
+	<setting ref="Homescreen1manifest/ProviderUid"/>
+	<setting ref="Homescreen1manifest/ConfigurationUid"/>
+	<setting ref="Homescreen1manifest/FullName"/>
+	<setting ref="Homescreen1manifest/ShortName"/>
+	<setting ref="Homescreen1manifest/ConfigurationVersion"/>
+	<setting ref="Homescreen1manifest/ConfigurationFile"/>
+	<setting ref="Homescreen1manifest/UiResourceFile"/>
+		<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+                xmlns:xi="http://www.w3.org/2001/xinclude">
+		<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+		<xsl:template match="configuration/data">
+		<package>
+	  <xsl:attribute name="version"><xsl:value-of select="Homescreen1manifest/PackageVersion"/></xsl:attribute>
+    <family>
+    <xsl:value-of select="Homescreen1manifest/DeviceFamily"/>
+    </family>
+    <type>
+    <xsl:value-of select="Homescreen1manifest/ConfigurationType"/>
+    </type>
+    <interfaceuid>
+    <xsl:value-of select="Homescreen1manifest/InterfaceUid"/>
+    </interfaceuid>
+    <provideruid>
+    <xsl:value-of select="Homescreen1manifest/ProviderUid"/>
+    </provideruid>
+    <configurationuid>
+    <xsl:value-of select="Homescreen1manifest/ConfigurationUid"/>
+    </configurationuid>
+    <fullname>
+    <xsl:text>&#x26;</xsl:text>
+    <xsl:value-of select="Homescreen1manifest/FullName"/>
+    <xsl:text>&#x3B;</xsl:text>
+    </fullname>
+    <shortname>
+    <xsl:value-of select="Homescreen1manifest/ShortName"/>
+    </shortname>
+    <version>
+    <xsl:value-of select="Homescreen1manifest/ConfigurationVersion"/>
+    </version>
+    <filexml>
+    <xsl:value-of select="Homescreen1manifest/ConfigurationFile"/>
+    </filexml>
+    <localization>
+        <fileresource>
+        <xsl:value-of select="Homescreen1manifest/UiResourceFile"/>
+        </fileresource>
+    </localization>
+  </package>
+  </xsl:template>
+	</xsl:stylesheet>
+</file>
Binary file idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bxuikon.confml has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48bxuikon.gcfml	Wed Mar 31 21:17:19 2010 +0300
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="empty.foo" target="\private\200159c0\install\view_2001f48b\xuikon\">
+	<setting ref="Homescreen1XuikonFolder/FolderCFG"/>
+		<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+                xmlns:xi="http://www.w3.org/2001/xinclude">
+		<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+		<xsl:template match="configuration/data">
+		<whois>
+	  <xsl:attribute name="dude"><xsl:value-of select="Homescreen1XuikonFolder/FolderCFG"/></xsl:attribute>
+	  </whois>
+  </xsl:template>
+	</xsl:stylesheet>
+</file>
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/group/bld.inf	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/group/bld.inf	Wed Mar 31 21:17:19 2010 +0300
@@ -24,7 +24,7 @@
 PRJ_EXPORTS
 // Support for productization and Carbide.Ui customization
 //********************************************************
-../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/view_2001f48b/hsps/manifest.dat
+//../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/view_2001f48b/hsps/manifest.dat
 //../hsps/00/viewconfiguration.xml /epoc32/data/Z/resource/homescreen/view_2001f48b/hsps/viewconfiguration.xml
 
 ../xuikon/00/View.dat /epoc32/data/Z/resource/homescreen/view_2001f48b/xuikon/view_2001f48b.dat
@@ -44,6 +44,10 @@
 //***********************************
 ../conf/view2001f48b.confml   APP_LAYER_CONFML(view2001f48b.confml)
 ../conf/view2001f48b.gcfml    APP_LAYER_GCFML(view2001f48b.gcfml)
+../conf/view2001f48bmanifest.confml   APP_LAYER_CONFML(view2001f48bmanifest.confml)
+../conf/view2001f48bmanifest.gcfml    APP_LAYER_GCFML(view2001f48bmanifest.gcfml)
+../conf/view2001f48bxuikon.confml   APP_LAYER_CONFML(view2001f48bxuikon.confml)
+../conf/view2001f48bxuikon.gcfml    APP_LAYER_GCFML(view2001f48bxuikon.gcfml)
 
 // Support for S60 localization
 //*****************************
@@ -57,7 +61,7 @@
 ../rom/view_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(view_2001f48b_resources.iby)
 ../rom/view_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view_2001f48b_customer.iby)
 //../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view_2001f48b_variant.iby)
-../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view_2001f48b.iby)
+//../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view_2001f48b.iby)
 
 
 // Dtd-localization
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/hsps/00/manifest.dat	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/hsps/00/manifest.dat	Wed Mar 31 21:17:19 2010 +0300
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 
-<package version="1.0">
+<package version="2.0">
 
 
 
@@ -56,4 +56,4 @@
 
 
 
-</package>
\ No newline at end of file
+</package>
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.css	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.css	Wed Mar 31 21:17:19 2010 +0300
@@ -29,28 +29,6 @@
     nav-index: appearance;
 }
 
-image.widget_indication
-{
-    display: none;
-    position: absolute;
-
-    left: auto;        
-    right: 3px;
-    top: 5px;
-    
-    height: 26px; 
-    width: 26px;
-    
-    path: "SKIN(270501603 9252)";
-    _s60-aspect-ratio: preserve;
-    z-index: 2;       
-}
-
-image.widget_indication:edit
-{
-    display: block;
-}
-
 trigger#hs_popup_open_hold:edit
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.xml	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.xml	Wed Mar 31 21:17:19 2010 +0300
@@ -22,7 +22,6 @@
                 </event>
                 <event name="system/seteditmode">
                     <property name="id" value="hs_popup_open_hold"/>
-                    <property name="class" value="widget_indication"/>                                       
                 </event>                                    
             </action>                
             <action>
@@ -35,7 +34,6 @@
                 </event>
                 <event name="system/reseteditmode">
                     <property name="id" value="hs_popup_open_hold"/>
-                    <property name="class" value="widget_indication"/>                                        
                 </event>                                                    
             </action>                                
             <action>
@@ -80,24 +78,12 @@
 
         <!-- Plugins in this view -->
         <box id="plugins_container">
-            <plugin id="plugin1" class="plugins" actionshandler="plugin_actions">
-                <image class="widget_indication" />
-            </plugin>
-            <plugin id="plugin2" class="plugins" actionshandler="plugin_actions">
-                <image class="widget_indication" />
-            </plugin>
-            <plugin id="plugin3" class="plugins" actionshandler="plugin_actions">
-                <image class="widget_indication" />
-            </plugin>
-            <plugin id="plugin4" class="plugins" actionshandler="plugin_actions">
-                <image class="widget_indication" />
-            </plugin>
-            <plugin id="plugin5" class="plugins" actionshandler="plugin_actions">
-                <image class="widget_indication" />
-            </plugin>
-            <plugin id="plugin6" class="plugins" actionshandler="plugin_actions">
-                <image class="widget_indication" />
-            </plugin>
+            <plugin id="plugin1" class="plugins" actionshandler="plugin_actions"/>
+            <plugin id="plugin2" class="plugins" actionshandler="plugin_actions"/>
+            <plugin id="plugin3" class="plugins" actionshandler="plugin_actions"/>
+            <plugin id="plugin4" class="plugins" actionshandler="plugin_actions"/>
+            <plugin id="plugin5" class="plugins" actionshandler="plugin_actions"/>
+            <plugin id="plugin6" class="plugins" actionshandler="plugin_actions"/>
         </box>
 
         <!-- plugins' actions handler -->
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/37/View.css	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/37/View.css	Wed Mar 31 21:17:19 2010 +0300
@@ -27,28 +27,6 @@
     nav-index: appearance;
 }
 
-image.widget_indication
-{
-    display: none;
-    position: absolute;
-
-    right: auto;        
-    left: 3px;
-    top: 5px;
-    
-    height: 26px; 
-    width: 26px;
-    
-    path: "SKIN(270501603 9252)";
-    _s60-aspect-ratio: preserve;
-    z-index: 2;       
-}
-
-image.widget_indication:edit
-{
-    display: block;
-}
-
 trigger#hs_popup_open_hold:edit
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/50/View.css	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/50/View.css	Wed Mar 31 21:17:19 2010 +0300
@@ -27,28 +27,6 @@
     nav-index: appearance;
 }
 
-image.widget_indication
-{
-    display: none;
-    position: absolute;
-
-    right: auto;        
-    left: 3px;
-    top: 5px;
-    
-    height: 26px; 
-    width: 26px;
-    
-    path: "SKIN(270501603 9252)";
-    _s60-aspect-ratio: preserve;
-    z-index: 2;       
-}
-
-image.widget_indication:edit
-{
-    display: block;
-}
-
 trigger#hs_popup_open_hold:edit
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/57/View.css	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/57/View.css	Wed Mar 31 21:17:19 2010 +0300
@@ -27,28 +27,6 @@
     nav-index: appearance;
 }
 
-image.widget_indication
-{
-    display: none;
-    position: absolute;
-
-    right: auto;        
-    left: 3px;
-    top: 5px;
-    
-    height: 26px; 
-    width: 26px;
-    
-    path: "SKIN(270501603 9252)";
-    _s60-aspect-ratio: preserve;
-    z-index: 2;       
-}
-
-image.widget_indication:edit
-{
-    display: block;
-}
-
 trigger#hs_popup_open_hold:edit
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/94/View.css	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/94/View.css	Wed Mar 31 21:17:19 2010 +0300
@@ -27,28 +27,6 @@
     nav-index: appearance;
 }
 
-image.widget_indication
-{
-    display: none;
-    position: absolute;
-
-    right: auto;        
-    left: 3px;
-    top: 5px;
-    
-    height: 26px; 
-    width: 26px;
-    
-    path: "SKIN(270501603 9252)";
-    _s60-aspect-ratio: preserve;
-    z-index: 2;       
-}
-
-image.widget_indication:edit
-{
-    display: block;
-}
-
 trigger#hs_popup_open_hold:edit
 {
     display: none;
Binary file idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.confml has changed
--- a/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.gcfml	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.gcfml	Wed Mar 31 21:17:19 2010 +0300
@@ -1,57 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <file xmlns="http://www.s60.com/xml/genconfml/1" name="viewconfiguration.xml" target="\private\200159c0\install\view_200286e4\hsps\00\">
-	<setting ref="HomescreenPlugins/MaxWidgets"/>
-	<setting ref="HomescreenPlugins/UseEmptyWidgets"/>
-  <setting ref="HomescreenPlugins/ItemIdEmptyWidgets"/>
-  <setting ref="HomescreenPlugins/PropertyEmptyWidgets"/>
-	<setting ref="HomescreenPlugins/Background"/>
-  <setting ref="HomescreenPlugins/BackGroundPath"/>
-  <setting ref="HomescreenPlugins/ItemIdWallpaper"/>
-  <setting ref="HomescreenPlugins/ItemIdSlideshow"/>
-  <setting ref="HomescreenPlugins/WallpaperPropertyName"/>
-  <setting ref="HomescreenPlugins/SlideshowPropertyName"/>
-	<setting ref="HomescreenPlugins/Shortcut1ItemId"/>
-  <setting ref="HomescreenPlugins/Shortcut1ItemName"/>
-  <setting ref="HomescreenPlugins/Shortcut2ItemId"/>
-  <setting ref="HomescreenPlugins/Shortcut2ItemName"/>
-  <setting ref="HomescreenPlugins/Shortcut3ItemId"/>
-  <setting ref="HomescreenPlugins/Shortcut3ItemName"/>
-  <setting ref="HomescreenPlugins/Shortcut4ItemId"/>
-  <setting ref="HomescreenPlugins/Shortcut4ItemName"/>
-  <setting ref="HomescreenPlugins/ShortcutPropertyNameType"/>
-  <setting ref="HomescreenPlugins/ShortcutPropertyNameUid"/>
-	<setting ref="HomescreenPlugins/Plugins"/>
+	<setting ref="HomescreenPlugins_2/MaxWidgets"/>
+	<setting ref="HomescreenPlugins_2/UseEmptyWidgets"/>
+  <setting ref="HomescreenPlugins_2/ItemIdEmptyWidgets"/>
+  <setting ref="HomescreenPlugins_2/PropertyEmptyWidgets"/>
+	<setting ref="HomescreenPlugins_2/Background"/>
+  <setting ref="HomescreenPlugins_2/BackGroundPath"/>
+  <setting ref="HomescreenPlugins_2/ItemIdWallpaper"/>
+  <setting ref="HomescreenPlugins_2/ItemIdSlideshow"/>
+  <setting ref="HomescreenPlugins_2/WallpaperPropertyName"/>
+  <setting ref="HomescreenPlugins_2/SlideshowPropertyName"/>
+	<setting ref="HomescreenPlugins_2/Shortcut1ItemId"/>
+  <setting ref="HomescreenPlugins_2/Shortcut1ItemName"/>
+  <setting ref="HomescreenPlugins_2/Shortcut2ItemId"/>
+  <setting ref="HomescreenPlugins_2/Shortcut2ItemName"/>
+  <setting ref="HomescreenPlugins_2/Shortcut3ItemId"/>
+  <setting ref="HomescreenPlugins_2/Shortcut3ItemName"/>
+  <setting ref="HomescreenPlugins_2/Shortcut4ItemId"/>
+  <setting ref="HomescreenPlugins_2/Shortcut4ItemName"/>
+  <setting ref="HomescreenPlugins_2/ShortcutPropertyNameType"/>
+  <setting ref="HomescreenPlugins_2/ShortcutPropertyNameUid"/>
+	<setting ref="HomescreenPlugins_2/Plugins"/>
 	<xsl:stylesheet version="1.0" 
                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
                 xmlns:xi="http://www.w3.org/2001/xinclude">
 		<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
 		<xsl:template match="configuration/data">
 			<configuration>
-			 <xsl:attribute name="max_child"><xsl:value-of select="HomescreenPlugins/MaxWidgets"/></xsl:attribute>
+			 <xsl:attribute name="max_child"><xsl:value-of select="HomescreenPlugins_2/MaxWidgets"/></xsl:attribute>
 				<control>
 				  <settings>
 				    <item>
-					    <xsl:attribute name="id"><xsl:value-of select="HomescreenPlugins/ItemIdEmptyWidgets"/></xsl:attribute>
+					    <xsl:attribute name="id"><xsl:value-of select="HomescreenPlugins_2/ItemIdEmptyWidgets"/></xsl:attribute>
 						    <property>
-								  <xsl:attribute name="name"><xsl:value-of select="HomescreenPlugins/PropertyEmptyWidgets"/></xsl:attribute>								             
-  							  <xsl:attribute name="value"><xsl:value-of select="HomescreenPlugins/UseEmptyWidgets"/></xsl:attribute>
+								  <xsl:attribute name="name"><xsl:value-of select="HomescreenPlugins_2/PropertyEmptyWidgets"/></xsl:attribute>								             
+  							  <xsl:attribute name="value"><xsl:value-of select="HomescreenPlugins_2/UseEmptyWidgets"/></xsl:attribute>
 								</property>
 						</item> 
 					  <xsl:choose>
-						  <xsl:when test="HomescreenPlugins/Background = 1">
+						  <xsl:when test="HomescreenPlugins_2/Background = 1">
 							  <item>
-								  <xsl:attribute name="id"><xsl:value-of select="HomescreenPlugins/ItemIdWallpaper"/></xsl:attribute>
+								  <xsl:attribute name="id"><xsl:value-of select="HomescreenPlugins_2/ItemIdWallpaper"/></xsl:attribute>
 								    <property>
-								      <xsl:attribute name="name"><xsl:value-of select="HomescreenPlugins/WallpaperPropertyName"/></xsl:attribute>								             
-  							      <xsl:attribute name="value"><xsl:value-of select="HomescreenPlugins/BackGroundPath"/></xsl:attribute>
+								      <xsl:attribute name="name"><xsl:value-of select="HomescreenPlugins_2/WallpaperPropertyName"/></xsl:attribute>								             
+  							      <xsl:attribute name="value"><xsl:value-of select="HomescreenPlugins_2/BackGroundPath"/></xsl:attribute>
 								    </property>
 								</item>     
 				      </xsl:when>
-				      <xsl:when test="HomescreenPlugins/Background = 2">
+				      <xsl:when test="HomescreenPlugins_2/Background = 2">
 						    <item>
-								  <xsl:attribute name="id"><xsl:value-of select="HomescreenPlugins/ItemIdSlideshow"/></xsl:attribute>
+								  <xsl:attribute name="id"><xsl:value-of select="HomescreenPlugins_2/ItemIdSlideshow"/></xsl:attribute>
 								    <property>
-								      <xsl:attribute name="name"><xsl:value-of select="HomescreenPlugins/SlideshowPropertyName"/></xsl:attribute>								             
-  							      <xsl:attribute name="value"><xsl:value-of select="HomescreenPlugins/BackGroundPath"/></xsl:attribute>
+								      <xsl:attribute name="name"><xsl:value-of select="HomescreenPlugins_2/SlideshowPropertyName"/></xsl:attribute>								             
+  							      <xsl:attribute name="value"><xsl:value-of select="HomescreenPlugins_2/BackGroundPath"/></xsl:attribute>
 								    </property>
 								</item>     
 				      </xsl:when>
@@ -60,7 +61,7 @@
 				    </xsl:choose>
 				  </settings>
 					<plugins>
-						<xsl:for-each select="HomescreenPlugins/Plugins">
+						<xsl:for-each select="HomescreenPlugins_2/Plugins">
 							<plugin>
 								<xsl:attribute name="uid"><xsl:value-of select="Uid"/></xsl:attribute>
 								<xsl:attribute name="bundle_id"><xsl:value-of select="BundleIdentifier"/></xsl:attribute>
Binary file idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4manifest.confml has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4manifest.gcfml	Wed Mar 31 21:17:19 2010 +0300
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="manifest.dat" target="\private\200159c0\install\view_200286e4\hsps\00\">
+	<setting ref="Homescreen2manifest/PackageVersion"/>
+	<setting ref="Homescreen2manifest/DeviceFamily"/>
+	<setting ref="Homescreen2manifest/ConfigurationType"/>
+	<setting ref="Homescreen2manifest/InterfaceUid"/>
+	<setting ref="Homescreen2manifest/ProviderUid"/>
+	<setting ref="Homescreen2manifest/ConfigurationUid"/>
+	<setting ref="Homescreen2manifest/FullName"/>
+	<setting ref="Homescreen2manifest/ShortName"/>
+	<setting ref="Homescreen2manifest/ConfigurationVersion"/>
+	<setting ref="Homescreen2manifest/ConfigurationFile"/>
+	<setting ref="Homescreen2manifest/UiResourceFile"/>
+		<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+                xmlns:xi="http://www.w3.org/2001/xinclude">
+		<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+		<xsl:template match="configuration/data">
+		<package>
+	  <xsl:attribute name="version"><xsl:value-of select="Homescreen2manifest/PackageVersion"/></xsl:attribute>
+    <family>
+    <xsl:value-of select="Homescreen2manifest/DeviceFamily"/>
+    </family>
+    <type>
+    <xsl:value-of select="Homescreen2manifest/ConfigurationType"/>
+    </type>
+    <interfaceuid>
+    <xsl:value-of select="Homescreen2manifest/InterfaceUid"/>
+    </interfaceuid>
+    <provideruid>
+    <xsl:value-of select="Homescreen2manifest/ProviderUid"/>
+    </provideruid>
+    <configurationuid>
+    <xsl:value-of select="Homescreen2manifest/ConfigurationUid"/>
+    </configurationuid>
+    <fullname>
+    <xsl:text>&#x26;</xsl:text>
+    <xsl:value-of select="Homescreen2manifest/FullName"/>
+    <xsl:text>&#x3B;</xsl:text>
+    </fullname>
+    <shortname>
+    <xsl:value-of select="Homescreen2manifest/ShortName"/>
+    </shortname>
+    <version>
+    <xsl:value-of select="Homescreen2manifest/ConfigurationVersion"/>
+    </version>
+    <filexml>
+    <xsl:value-of select="Homescreen2manifest/ConfigurationFile"/>
+    </filexml>
+    <localization>
+        <fileresource>
+        <xsl:value-of select="Homescreen2manifest/UiResourceFile"/>
+        </fileresource>
+    </localization>
+  </package>
+  </xsl:template>
+	</xsl:stylesheet>
+</file>
Binary file idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4xuikon.confml has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4xuikon.gcfml	Wed Mar 31 21:17:19 2010 +0300
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="empty.foo" target="\private\200159c0\install\view_200286e4\xuikon\">
+	<setting ref="Homescreen2XuikonFolder/FolderCFG"/>
+		<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+                xmlns:xi="http://www.w3.org/2001/xinclude">
+		<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+		<xsl:template match="configuration/data">
+		<whois>
+	  <xsl:attribute name="dude"><xsl:value-of select="Homescreen2XuikonFolder/FolderCFG"/></xsl:attribute>
+	  </whois>
+  </xsl:template>
+	</xsl:stylesheet>
+</file>
--- a/idlehomescreen/data/qhd_tch/view_200286e4/group/bld.inf	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/group/bld.inf	Wed Mar 31 21:17:19 2010 +0300
@@ -24,8 +24,8 @@
 PRJ_EXPORTS
 // Support for productization and Carbide.Ui customization
 //********************************************************
-../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/view_200286e4/hsps/manifest.dat
-../hsps/00/viewconfiguration.xml /epoc32/data/Z/resource/homescreen/view_200286e4/hsps/viewconfiguration.xml
+//../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/view_200286e4/hsps/manifest.dat
+//../hsps/00/viewconfiguration.xml /epoc32/data/Z/resource/homescreen/view_200286e4/hsps/viewconfiguration.xml
 
 ../xuikon/00/View.dat /epoc32/data/Z/resource/homescreen/view_200286e4/xuikon/view_200286e4.dat
 ../xuikon/00/View.css /epoc32/data/Z/resource/homescreen/view_200286e4/xuikon/view.css
@@ -43,8 +43,12 @@
 //Confml and cfgml files for the customization
 // starting use confml it is need to remove root_configuration.xml direct exporting (view_200286e4_variant.iby)
 //***********************************
-//../conf/view200286e4.confml   APP_LAYER_CONFML(view200286e4.confml)
-//../conf/view200286e4.gcfml    APP_LAYER_GCFML(view200286e4.gcfml)
+../conf/view200286e4.confml   APP_LAYER_CONFML(view200286e4.confml)
+../conf/view200286e4.gcfml    APP_LAYER_GCFML(view200286e4.gcfml)
+../conf/view200286e4manifest.confml   APP_LAYER_CONFML(view200286e4manifest.confml)
+../conf/view200286e4manifest.gcfml    APP_LAYER_GCFML(view200286e4manifest.gcfml)
+../conf/view200286e4xuikon.confml   APP_LAYER_CONFML(view200286e4xuikon.confml)
+../conf/view200286e4xuikon.gcfml    APP_LAYER_GCFML(view200286e4xuikon.gcfml)
 
 // Support for S60 localization
 //*****************************
@@ -57,8 +61,8 @@
 //***********************
 ../rom/view_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(view_200286e4_resources.iby)
 ../rom/view_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view_200286e4_customer.iby)
-../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view_200286e4_variant.iby)
-../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view_200286e4.iby)
+//../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view_200286e4_variant.iby)
+//../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view_200286e4.iby)
 
 
 // Dtd-localization
--- a/idlehomescreen/data/qhd_tch/view_200286e4/hsps/00/manifest.dat	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/hsps/00/manifest.dat	Wed Mar 31 21:17:19 2010 +0300
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 
-<package version="1.0">
+<package version="2.0">
 
 
 
--- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.css	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.css	Wed Mar 31 21:17:19 2010 +0300
@@ -34,28 +34,6 @@
     background-color:"SKIN(270501603 8582)";
 }
 
-image.widget_indication
-{
-    display: none;
-    position: absolute;
-
-    left: auto;        
-    right: 3px;
-    top: 5px;
-    
-    height: 26px; 
-    width: 26px;
-    
-    path: "SKIN(270501603 9252)";
-    _s60-aspect-ratio: preserve;
-    z-index: 2;       
-}
-
-image.widget_indication:edit
-{
-    display: block;
-}
-
 trigger#hs_popup_open_hold:edit
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.xml	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.xml	Wed Mar 31 21:17:19 2010 +0300
@@ -22,7 +22,6 @@
                 </event>
                 <event name="system/seteditmode">
                     <property name="id" value="hs_popup_open_hold"/>
-                    <property name="class" value="widget_indication"/>                                       
                 </event>                                    
             </action>                
             <action>
@@ -35,7 +34,6 @@
                 </event>
                 <event name="system/reseteditmode">
                     <property name="id" value="hs_popup_open_hold"/>
-                    <property name="class" value="widget_indication"/>                                        
                 </event>                                                    
             </action>                                
             <action>
@@ -80,24 +78,12 @@
 
         <!-- Plugins in this view -->
         <box id="plugins_container">
-            <plugin id="plugin1" class="plugins" actionshandler="plugin_actions">
-                <image class="widget_indication" />
-            </plugin>
-            <plugin id="plugin2" class="plugins" actionshandler="plugin_actions">
-                <image class="widget_indication" />
-            </plugin>
-            <plugin id="plugin3" class="plugins" actionshandler="plugin_actions">
-                <image class="widget_indication" />
-            </plugin>
-            <plugin id="plugin4" class="plugins" actionshandler="plugin_actions">
-                <image class="widget_indication" />
-            </plugin>
-            <plugin id="plugin5" class="plugins" actionshandler="plugin_actions">
-                <image class="widget_indication" />
-            </plugin>
-            <plugin id="plugin6" class="plugins" actionshandler="plugin_actions">
-                <image class="widget_indication" />
-            </plugin>
+            <plugin id="plugin1" class="plugins" actionshandler="plugin_actions"/>
+            <plugin id="plugin2" class="plugins" actionshandler="plugin_actions"/>
+            <plugin id="plugin3" class="plugins" actionshandler="plugin_actions"/>
+            <plugin id="plugin4" class="plugins" actionshandler="plugin_actions"/>
+            <plugin id="plugin5" class="plugins" actionshandler="plugin_actions"/>
+            <plugin id="plugin6" class="plugins" actionshandler="plugin_actions"/>
         </box>
 
         <!-- plugins' actions handler -->
--- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/37/View.css	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/37/View.css	Wed Mar 31 21:17:19 2010 +0300
@@ -32,28 +32,6 @@
     background-color:"SKIN(270501603 8582)";
 }
 
-image.widget_indication
-{
-    display: none;
-    position: absolute;
-
-    right: auto;        
-    left: 3px;
-    top: 5px;
-    
-    height: 26px; 
-    width: 26px;
-    
-    path: "SKIN(270501603 9252)";
-    _s60-aspect-ratio: preserve;
-    z-index: 2;       
-}
-
-image.widget_indication:edit
-{
-    display: block;
-}
-
 trigger#hs_popup_open_hold:edit
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/50/View.css	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/50/View.css	Wed Mar 31 21:17:19 2010 +0300
@@ -32,28 +32,6 @@
     background-color:"SKIN(270501603 8582)";
 }
 
-image.widget_indication
-{
-    display: none;
-    position: absolute;
-
-    right: auto;        
-    left: 3px;
-    top: 5px;
-    
-    height: 26px; 
-    width: 26px;
-    
-    path: "SKIN(270501603 9252)";
-    _s60-aspect-ratio: preserve;
-    z-index: 2;       
-}
-
-image.widget_indication:edit
-{
-    display: block;
-}
-
 trigger#hs_popup_open_hold:edit
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/57/View.css	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/57/View.css	Wed Mar 31 21:17:19 2010 +0300
@@ -32,28 +32,6 @@
     background-color:"SKIN(270501603 8582)";
 }
 
-image.widget_indication
-{
-    display: none;
-    position: absolute;
-
-    right: auto;        
-    left: 3px;
-    top: 5px;
-    
-    height: 26px; 
-    width: 26px;
-    
-    path: "SKIN(270501603 9252)";
-    _s60-aspect-ratio: preserve;
-    z-index: 2;       
-}
-
-image.widget_indication:edit
-{
-    display: block;
-}
-
 trigger#hs_popup_open_hold:edit
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/94/View.css	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/94/View.css	Wed Mar 31 21:17:19 2010 +0300
@@ -32,28 +32,6 @@
     background-color:"SKIN(270501603 8582)";
 }
 
-image.widget_indication
-{
-    display: none;
-    position: absolute;
-
-    right: auto;        
-    left: 3px;
-    top: 5px;
-    
-    height: 26px; 
-    width: 26px;
-    
-    path: "SKIN(270501603 9252)";
-    _s60-aspect-ratio: preserve;
-    z-index: 2;       
-}
-
-image.widget_indication:edit
-{
-    display: block;
-}
-
 trigger#hs_popup_open_hold:edit
 {
     display: none;
Binary file idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.confml has changed
--- a/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.gcfml	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.gcfml	Wed Mar 31 21:17:19 2010 +0300
@@ -1,57 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <file xmlns="http://www.s60.com/xml/genconfml/1" name="viewconfiguration.xml" target="\private\200159c0\install\view_200286e5\hsps\00\">
-	<setting ref="HomescreenPlugins/MaxWidgets"/>
-	<setting ref="HomescreenPlugins/UseEmptyWidgets"/>
-  <setting ref="HomescreenPlugins/ItemIdEmptyWidgets"/>
-  <setting ref="HomescreenPlugins/PropertyEmptyWidgets"/>
-	<setting ref="HomescreenPlugins/Background"/>
-  <setting ref="HomescreenPlugins/BackGroundPath"/>
-  <setting ref="HomescreenPlugins/ItemIdWallpaper"/>
-  <setting ref="HomescreenPlugins/ItemIdSlideshow"/>
-  <setting ref="HomescreenPlugins/WallpaperPropertyName"/>
-  <setting ref="HomescreenPlugins/SlideshowPropertyName"/>
-	<setting ref="HomescreenPlugins/Shortcut1ItemId"/>
-  <setting ref="HomescreenPlugins/Shortcut1ItemName"/>
-  <setting ref="HomescreenPlugins/Shortcut2ItemId"/>
-  <setting ref="HomescreenPlugins/Shortcut2ItemName"/>
-  <setting ref="HomescreenPlugins/Shortcut3ItemId"/>
-  <setting ref="HomescreenPlugins/Shortcut3ItemName"/>
-  <setting ref="HomescreenPlugins/Shortcut4ItemId"/>
-  <setting ref="HomescreenPlugins/Shortcut4ItemName"/>
-  <setting ref="HomescreenPlugins/ShortcutPropertyNameType"/>
-  <setting ref="HomescreenPlugins/ShortcutPropertyNameUid"/>
-	<setting ref="HomescreenPlugins/Plugins"/>
+	<setting ref="HomescreenPlugins_3/MaxWidgets"/>
+	<setting ref="HomescreenPlugins_3/UseEmptyWidgets"/>
+  <setting ref="HomescreenPlugins_3/ItemIdEmptyWidgets"/>
+  <setting ref="HomescreenPlugins_3/PropertyEmptyWidgets"/>
+	<setting ref="HomescreenPlugins_3/Background"/>
+  <setting ref="HomescreenPlugins_3/BackGroundPath"/>
+  <setting ref="HomescreenPlugins_3/ItemIdWallpaper"/>
+  <setting ref="HomescreenPlugins_3/ItemIdSlideshow"/>
+  <setting ref="HomescreenPlugins_3/WallpaperPropertyName"/>
+  <setting ref="HomescreenPlugins_3/SlideshowPropertyName"/>
+	<setting ref="HomescreenPlugins_3/Shortcut1ItemId"/>
+  <setting ref="HomescreenPlugins_3/Shortcut1ItemName"/>
+  <setting ref="HomescreenPlugins_3/Shortcut2ItemId"/>
+  <setting ref="HomescreenPlugins_3/Shortcut2ItemName"/>
+  <setting ref="HomescreenPlugins_3/Shortcut3ItemId"/>
+  <setting ref="HomescreenPlugins_3/Shortcut3ItemName"/>
+  <setting ref="HomescreenPlugins_3/Shortcut4ItemId"/>
+  <setting ref="HomescreenPlugins_3/Shortcut4ItemName"/>
+  <setting ref="HomescreenPlugins_3/ShortcutPropertyNameType"/>
+  <setting ref="HomescreenPlugins_3/ShortcutPropertyNameUid"/>
+	<setting ref="HomescreenPlugins_3/Plugins"/>
 	<xsl:stylesheet version="1.0" 
                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
                 xmlns:xi="http://www.w3.org/2001/xinclude">
 		<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
 		<xsl:template match="configuration/data">
 			<configuration>
-			 <xsl:attribute name="max_child"><xsl:value-of select="HomescreenPlugins/MaxWidgets"/></xsl:attribute>
+			 <xsl:attribute name="max_child"><xsl:value-of select="HomescreenPlugins_3/MaxWidgets"/></xsl:attribute>
 				<control>
 				  <settings>
 				    <item>
-					    <xsl:attribute name="id"><xsl:value-of select="HomescreenPlugins/ItemIdEmptyWidgets"/></xsl:attribute>
+					    <xsl:attribute name="id"><xsl:value-of select="HomescreenPlugins_3/ItemIdEmptyWidgets"/></xsl:attribute>
 						    <property>
-								  <xsl:attribute name="name"><xsl:value-of select="HomescreenPlugins/PropertyEmptyWidgets"/></xsl:attribute>								             
-  							  <xsl:attribute name="value"><xsl:value-of select="HomescreenPlugins/UseEmptyWidgets"/></xsl:attribute>
+								  <xsl:attribute name="name"><xsl:value-of select="HomescreenPlugins_3/PropertyEmptyWidgets"/></xsl:attribute>								             
+  							  <xsl:attribute name="value"><xsl:value-of select="HomescreenPlugins_3/UseEmptyWidgets"/></xsl:attribute>
 								</property>
 						</item> 
 					  <xsl:choose>
-						  <xsl:when test="HomescreenPlugins/Background = 1">
+						  <xsl:when test="HomescreenPlugins_3/Background = 1">
 							  <item>
-								  <xsl:attribute name="id"><xsl:value-of select="HomescreenPlugins/ItemIdWallpaper"/></xsl:attribute>
+								  <xsl:attribute name="id"><xsl:value-of select="HomescreenPlugins_3/ItemIdWallpaper"/></xsl:attribute>
 								    <property>
-								      <xsl:attribute name="name"><xsl:value-of select="HomescreenPlugins/WallpaperPropertyName"/></xsl:attribute>								             
-  							      <xsl:attribute name="value"><xsl:value-of select="HomescreenPlugins/BackGroundPath"/></xsl:attribute>
+								      <xsl:attribute name="name"><xsl:value-of select="HomescreenPlugins_3/WallpaperPropertyName"/></xsl:attribute>								             
+  							      <xsl:attribute name="value"><xsl:value-of select="HomescreenPlugins_3/BackGroundPath"/></xsl:attribute>
 								    </property>
 								</item>     
 				      </xsl:when>
-				      <xsl:when test="HomescreenPlugins/Background = 2">
+				      <xsl:when test="HomescreenPlugins_3/Background = 2">
 						    <item>
-								  <xsl:attribute name="id"><xsl:value-of select="HomescreenPlugins/ItemIdSlideshow"/></xsl:attribute>
+								  <xsl:attribute name="id"><xsl:value-of select="HomescreenPlugins_3/ItemIdSlideshow"/></xsl:attribute>
 								    <property>
-								      <xsl:attribute name="name"><xsl:value-of select="HomescreenPlugins/SlideshowPropertyName"/></xsl:attribute>								             
-  							      <xsl:attribute name="value"><xsl:value-of select="HomescreenPlugins/BackGroundPath"/></xsl:attribute>
+								      <xsl:attribute name="name"><xsl:value-of select="HomescreenPlugins_3/SlideshowPropertyName"/></xsl:attribute>								             
+  							      <xsl:attribute name="value"><xsl:value-of select="HomescreenPlugins_3/BackGroundPath"/></xsl:attribute>
 								    </property>
 								</item>     
 				      </xsl:when>
@@ -60,7 +61,7 @@
 				    </xsl:choose>
 				  </settings>
 					<plugins>
-						<xsl:for-each select="HomescreenPlugins/Plugins">
+						<xsl:for-each select="HomescreenPlugins_3/Plugins">
 							<plugin>
 								<xsl:attribute name="uid"><xsl:value-of select="Uid"/></xsl:attribute>
 								<xsl:attribute name="bundle_id"><xsl:value-of select="BundleIdentifier"/></xsl:attribute>
Binary file idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5manifest.confml has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5manifest.gcfml	Wed Mar 31 21:17:19 2010 +0300
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="manifest.dat" target="\private\200159c0\install\view_200286e5\hsps\00\">
+	<setting ref="Homescreen3manifest/PackageVersion"/>
+	<setting ref="Homescreen3manifest/DeviceFamily"/>
+	<setting ref="Homescreen3manifest/ConfigurationType"/>
+	<setting ref="Homescreen3manifest/InterfaceUid"/>
+	<setting ref="Homescreen3manifest/ProviderUid"/>
+	<setting ref="Homescreen3manifest/ConfigurationUid"/>
+	<setting ref="Homescreen3manifest/FullName"/>
+	<setting ref="Homescreen3manifest/ShortName"/>
+	<setting ref="Homescreen3manifest/ConfigurationVersion"/>
+	<setting ref="Homescreen3manifest/ConfigurationFile"/>
+	<setting ref="Homescreen3manifest/UiResourceFile"/>
+		<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+                xmlns:xi="http://www.w3.org/2001/xinclude">
+		<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+		<xsl:template match="configuration/data">
+		<package>
+	  <xsl:attribute name="version"><xsl:value-of select="Homescreen3manifest/PackageVersion"/></xsl:attribute>
+    <family>
+    <xsl:value-of select="Homescreen3manifest/DeviceFamily"/>
+    </family>
+    <type>
+    <xsl:value-of select="Homescreen3manifest/ConfigurationType"/>
+    </type>
+    <interfaceuid>
+    <xsl:value-of select="Homescreen3manifest/InterfaceUid"/>
+    </interfaceuid>
+    <provideruid>
+    <xsl:value-of select="Homescreen3manifest/ProviderUid"/>
+    </provideruid>
+    <configurationuid>
+    <xsl:value-of select="Homescreen3manifest/ConfigurationUid"/>
+    </configurationuid>
+    <fullname>
+    <xsl:text>&#x26;</xsl:text>
+    <xsl:value-of select="Homescreen3manifest/FullName"/>
+    <xsl:text>&#x3B;</xsl:text>
+    </fullname>
+    <shortname>
+    <xsl:value-of select="Homescreen3manifest/ShortName"/>
+    </shortname>
+    <version>
+    <xsl:value-of select="Homescreen3manifest/ConfigurationVersion"/>
+    </version>
+    <filexml>
+    <xsl:value-of select="Homescreen3manifest/ConfigurationFile"/>
+    </filexml>
+    <localization>
+        <fileresource>
+        <xsl:value-of select="Homescreen3manifest/UiResourceFile"/>
+        </fileresource>
+    </localization>
+  </package>
+  </xsl:template>
+	</xsl:stylesheet>
+</file>
Binary file idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5xuikon.confml has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5xuikon.gcfml	Wed Mar 31 21:17:19 2010 +0300
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="empty.foo" target="\private\200159c0\install\view_200286e5\xuikon\">
+	<setting ref="Homescreen3XuikonFolder/FolderCFG"/>
+		<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+                xmlns:xi="http://www.w3.org/2001/xinclude">
+		<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+		<xsl:template match="configuration/data">
+		<whois>
+	  <xsl:attribute name="dude"><xsl:value-of select="Homescreen3XuikonFolder/FolderCFG"/></xsl:attribute>
+	  </whois>
+  </xsl:template>
+	</xsl:stylesheet>
+</file>
--- a/idlehomescreen/data/qhd_tch/view_200286e5/group/bld.inf	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/group/bld.inf	Wed Mar 31 21:17:19 2010 +0300
@@ -24,8 +24,8 @@
 PRJ_EXPORTS
 // Support for productization and Carbide.Ui customization
 //********************************************************
-../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/view_200286e5/hsps/manifest.dat
-../hsps/00/viewconfiguration.xml /epoc32/data/Z/resource/homescreen/view_200286e5/hsps/viewconfiguration.xml
+//../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/view_200286e5/hsps/manifest.dat
+//../hsps/00/viewconfiguration.xml /epoc32/data/Z/resource/homescreen/view_200286e5/hsps/viewconfiguration.xml
 
 ../xuikon/00/View.dat /epoc32/data/Z/resource/homescreen/view_200286e5/xuikon/view_200286e5.dat
 ../xuikon/00/View.css /epoc32/data/Z/resource/homescreen/view_200286e5/xuikon/view.css
@@ -43,8 +43,12 @@
 //Confml and cfgml files for the customization
 // starting use confml it is need to remove root_configuration.xml direct exporting (view_200286e5_variant.iby)
 //***********************************
-//../conf/view2001f486.confml   APP_LAYER_CONFML(view200286e5.confml)
-//../conf/view2001f486.gcfml    APP_LAYER_GCFML(view200286e5.gcfml)
+../conf/view200286e5.confml   APP_LAYER_CONFML(view200286e5.confml)
+../conf/view200286e5.gcfml    APP_LAYER_GCFML(view200286e5.gcfml)
+../conf/view200286e5manifest.confml   APP_LAYER_CONFML(view200286e5manifest.confml)
+../conf/view200286e5manifest.gcfml    APP_LAYER_GCFML(view200286e5manifest.gcfml)
+../conf/view200286e5xuikon.confml   APP_LAYER_CONFML(view200286e5xuikon.confml)
+../conf/view200286e5xuikon.gcfml    APP_LAYER_GCFML(view200286e5xuikon.gcfml)
 
 // Support for S60 localization
 //*****************************
@@ -57,8 +61,8 @@
 //***********************
 ../rom/view_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(view_200286e5_resources.iby)
 ../rom/view_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view_200286e5_customer.iby)
-../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view_200286e5_variant.iby)
-../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view_200286e5.iby)
+//../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view_200286e5_variant.iby)
+//../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view_200286e5.iby)
 
 
 // Dtd-localization
--- a/idlehomescreen/data/qhd_tch/view_200286e5/hsps/00/manifest.dat	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/hsps/00/manifest.dat	Wed Mar 31 21:17:19 2010 +0300
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 
-<package version="1.0">
+<package version="2.0">
 
 
 
--- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.css	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.css	Wed Mar 31 21:17:19 2010 +0300
@@ -34,28 +34,6 @@
     background-color:"SKIN(270501603 8582)";
 }
 
-image.widget_indication
-{
-    display: none;
-    position: absolute;
-
-    left: auto;        
-    right: 3px;
-    top: 5px;
-    
-    height: 26px; 
-    width: 26px;
-    
-    path: "SKIN(270501603 9252)";
-    _s60-aspect-ratio: preserve;
-    z-index: 2;       
-}
-
-image.widget_indication:edit
-{
-    display: block;
-}
-
 trigger#hs_popup_open_hold:edit
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.xml	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.xml	Wed Mar 31 21:17:19 2010 +0300
@@ -22,7 +22,6 @@
                 </event>
                 <event name="system/seteditmode">
                     <property name="id" value="hs_popup_open_hold"/>
-                    <property name="class" value="widget_indication"/>                                       
                 </event>                                    
             </action>                
             <action>
@@ -35,7 +34,6 @@
                 </event>
                 <event name="system/reseteditmode">
                     <property name="id" value="hs_popup_open_hold"/>
-                    <property name="class" value="widget_indication"/>                                        
                 </event>                                                    
             </action>                                
             <action>
@@ -80,24 +78,12 @@
 
         <!-- Plugins in this view -->
         <box id="plugins_container">
-            <plugin id="plugin1" class="plugins" actionshandler="plugin_actions">
-                <image class="widget_indication" />
-            </plugin>
-            <plugin id="plugin2" class="plugins" actionshandler="plugin_actions">
-                <image class="widget_indication" />
-            </plugin>
-            <plugin id="plugin3" class="plugins" actionshandler="plugin_actions">
-                <image class="widget_indication" />
-            </plugin>
-            <plugin id="plugin4" class="plugins" actionshandler="plugin_actions">
-                <image class="widget_indication" />
-            </plugin>
-            <plugin id="plugin5" class="plugins" actionshandler="plugin_actions">
-                <image class="widget_indication" />
-            </plugin>
-            <plugin id="plugin6" class="plugins" actionshandler="plugin_actions">
-                <image class="widget_indication" />
-            </plugin>
+            <plugin id="plugin1" class="plugins" actionshandler="plugin_actions"/>
+            <plugin id="plugin2" class="plugins" actionshandler="plugin_actions"/>
+            <plugin id="plugin3" class="plugins" actionshandler="plugin_actions"/>
+            <plugin id="plugin4" class="plugins" actionshandler="plugin_actions"/>
+            <plugin id="plugin5" class="plugins" actionshandler="plugin_actions"/>
+            <plugin id="plugin6" class="plugins" actionshandler="plugin_actions"/>
         </box>
 
         <!-- plugins' actions handler -->
--- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/37/View.css	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/37/View.css	Wed Mar 31 21:17:19 2010 +0300
@@ -32,28 +32,6 @@
     background-color:"SKIN(270501603 8582)";
 }
 
-image.widget_indication
-{
-    display: none;
-    position: absolute;
-
-    right: auto;        
-    left: 3px;
-    top: 5px;
-    
-    height: 26px; 
-    width: 26px;
-    
-    path: "SKIN(270501603 9252)";
-    _s60-aspect-ratio: preserve;
-    z-index: 2;       
-}
-
-image.widget_indication:edit
-{
-    display: block;
-}
-
 trigger#hs_popup_open_hold:edit
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/50/View.css	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/50/View.css	Wed Mar 31 21:17:19 2010 +0300
@@ -32,28 +32,6 @@
     background-color:"SKIN(270501603 8582)";
 }
 
-image.widget_indication
-{
-    display: none;
-    position: absolute;
-
-    right: auto;        
-    left: 3px;
-    top: 5px;
-    
-    height: 26px; 
-    width: 26px;
-    
-    path: "SKIN(270501603 9252)";
-    _s60-aspect-ratio: preserve;
-    z-index: 2;       
-}
-
-image.widget_indication:edit
-{
-    display: block;
-}
-
 trigger#hs_popup_open_hold:edit
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/57/View.css	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/57/View.css	Wed Mar 31 21:17:19 2010 +0300
@@ -32,28 +32,6 @@
     background-color:"SKIN(270501603 8582)";
 }
 
-image.widget_indication
-{
-    display: none;
-    position: absolute;
-
-    right: auto;        
-    left: 3px;
-    top: 5px;
-    
-    height: 26px; 
-    width: 26px;
-    
-    path: "SKIN(270501603 9252)";
-    _s60-aspect-ratio: preserve;
-    z-index: 2;       
-}
-
-image.widget_indication:edit
-{
-    display: block;
-}
-
 trigger#hs_popup_open_hold:edit
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/94/View.css	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/94/View.css	Wed Mar 31 21:17:19 2010 +0300
@@ -32,28 +32,6 @@
     background-color:"SKIN(270501603 8582)";
 }
 
-image.widget_indication
-{
-    display: none;
-    position: absolute;
-
-    right: auto;        
-    left: 3px;
-    top: 5px;
-    
-    height: 26px; 
-    width: 26px;
-    
-    path: "SKIN(270501603 9252)";
-    _s60-aspect-ratio: preserve;
-    z-index: 2;       
-}
-
-image.widget_indication:edit
-{
-    display: block;
-}
-
 trigger#hs_popup_open_hold:edit
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/wideimage_2001f489/hsps/00/manifest.dat	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/wideimage_2001f489/hsps/00/manifest.dat	Wed Mar 31 21:17:19 2010 +0300
@@ -1,18 +1,18 @@
 <?xml version="1.0"?>
 
-<package version="1.0">
+<package version="2.0">
 
 
 
-  <family>qhd_tch</family>
+    <family>qhd_tch</family>
 
 
 
-  <type>template</type>
+    <type>template</type>
 
 
 
-  <!-- interface uid -->
+    <!-- interface uid -->
 
 	<interfaceuid>0x2001f48a</interfaceuid>
 
@@ -56,4 +56,4 @@
 
 
 
-</package>
\ No newline at end of file
+</package>
--- a/idlehomescreen/data/vga_tch/desktop_20018eee/hsps/00/manifest.dat	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/vga_tch/desktop_20018eee/hsps/00/manifest.dat	Wed Mar 31 21:17:19 2010 +0300
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<package version="1.0">
+<package version="2.0">
 
     <family>vga_tch</family>
     
--- a/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/hsps/00/manifest.dat	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/hsps/00/manifest.dat	Wed Mar 31 21:17:19 2010 +0300
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<package version="1.0">
+<package version="2.0">
 
     <family>vga_tch</family>
 
--- a/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/hsps/00/manifest.dat	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/hsps/00/manifest.dat	Wed Mar 31 21:17:19 2010 +0300
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<package version="1.0">
+<package version="2.0">
 
     <family>vga_tch</family>
 
--- a/idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/manifest.dat	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/manifest.dat	Wed Mar 31 21:17:19 2010 +0300
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<package version="1.0">
+<package version="2.0">
 
     <family>vga_tch</family>
     
--- a/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/hsps/00/manifest.dat	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/hsps/00/manifest.dat	Wed Mar 31 21:17:19 2010 +0300
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<package version="1.0">
+<package version="2.0">
 
     <family>vga_tch</family>
 
--- a/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/hsps/00/manifest.dat	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/hsps/00/manifest.dat	Wed Mar 31 21:17:19 2010 +0300
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<package version="1.0">
+<package version="2.0">
 
     <family>vga_tch</family>
 
--- a/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/hsps/00/manifest.dat	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/hsps/00/manifest.dat	Wed Mar 31 21:17:19 2010 +0300
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<package version="1.0">
+<package version="2.0">
 
     <family>vga_tch</family>
 
--- a/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/hsps/00/manifest.dat	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/hsps/00/manifest.dat	Wed Mar 31 21:17:19 2010 +0300
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<package version="1.0">
+<package version="2.0">
 
     <family>vga_tch</family>
 
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/hsps/00/manifest.dat	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/hsps/00/manifest.dat	Wed Mar 31 21:17:19 2010 +0300
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<package version="1.0">
+<package version="2.0">
 
     <family>vga_tch</family>
     
--- a/idlehomescreen/data/vga_tch/wideimage_10009dff/hsps/00/manifest.dat	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/hsps/00/manifest.dat	Wed Mar 31 21:17:19 2010 +0300
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<package version="1.0">
+<package version="2.0">
 
     <family>vga_tch</family>
   
--- a/idlehomescreen/exths/group/backup_registration.xml	Mon Mar 15 12:39:47 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-<?xml version="1.0" standalone="yes"?>
-<backup_registration>
-    <proxy_data_manager sid = "0x10202BE9" /> 
-    <restore requires_reboot = "no"/>
-</backup_registration>
-  
\ No newline at end of file
--- a/idlehomescreen/exths/group/bld.inf	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/exths/group/bld.inf	Wed Mar 31 21:17:19 2010 +0300
@@ -27,11 +27,6 @@
 
 ../rom/aicontainer.iby CORE_APP_LAYER_IBY_EXPORT_PATH(aicontainer.iby)
 
-// Backup registration
-//backup_registration.xml  /epoc32/data/z/private/101fd657/backup_registration.xml
-//backup_registration.xml  /epoc32/release/winscw/udeb/z/private/101fd657/backup_registration.xml
-//backup_registration.xml  /epoc32/release/winscw/urel/z/private/101fd657/backup_registration.xml
-
 // Generic configuration interface for component cenrep settings
 ../conf/activeidle.confml                  APP_LAYER_CONFML(activeidle.confml)
 ../conf/activeidle_10207467.crml           APP_LAYER_CRML(activeidle_10207467.crml)
--- a/idlehomescreen/exths/rom/aicontainer.iby	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/exths/rom/aicontainer.iby	Wed Mar 31 21:17:19 2010 +0300
@@ -23,7 +23,6 @@
 
 #ifdef RD_CUSTOMIZABLE_AI
 ECOM_PLUGIN(aicontainer.dll,101FD657.rsc)
-data=ZPRIVATE\101FD657\backup_registration.xml	private\101FD657\backup_registration.xml
 #endif // RD_CUSTOMIZABLE_AI
 
 #endif // AIPLUGINTEST_IBY
--- a/idlehomescreen/hscontentcontrol/group/hscontentcontrol.mmp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/hscontentcontrol/group/hscontentcontrol.mmp	Wed Mar 31 21:17:19 2010 +0300
@@ -33,7 +33,7 @@
 SOURCE            hscontentcontrolfactory.cpp 
 SOURCE            hscontentcontrolui.cpp 
 SOURCE            hscontentcontrolecomlistener.cpp
-SOURCE            hscontentcontroluninstallmonitor.cpp
+SOURCE            hscontentcontrolswilistener.cpp
 
 //By default, the build tools look for the WINSCW def file in a BWINS directory
 //(at the same level as the directory containing the mmp file), 
@@ -60,7 +60,8 @@
 LIBRARY           estor.lib
 LIBRARY           ecom.lib
 LIBRARY           charconv.lib
-LIBRARY           xn3layoutengine.lib	
+LIBRARY           swiutils.lib
+LIBRARY           xn3layoutengine.lib
 
 #ifdef ENABLE_ABIV2_MODE
 DEBUGGABLE
--- a/idlehomescreen/hscontentcontrol/inc/hscontentcontrolfactory.h	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/hscontentcontrol/inc/hscontentcontrolfactory.h	Wed Mar 31 21:17:19 2010 +0300
@@ -24,11 +24,11 @@
 
 // User includes
 #include "hscontentcontrolecomobserver.h"
-#include "hscontentcontroluninstallobserver.h"
+#include "hscontentcontrolswiobserver.h"
 
 // Forward declarations
 class CHsContentControlEComListener;
-class CHsContentControlUninstallMonitor;
+class CHsContentControlSwiListener;
 class CXnAppUiAdapter;
 
 /**
@@ -44,7 +44,7 @@
  */
 NONSHARABLE_CLASS( CHsContentControlFactory ) : public CBase,
                                                 public MHsContentControlEComObserver,
-                                                public MHsContentControlUninstallObserver
+                                                public MHsContentControlSwiObserver
     {
 public: // Constructor and destructor
     /**
@@ -64,14 +64,14 @@
      */
      void HandleEComChangeEvent();
 
-private: // from MHsContentControlUninstallObserver
+private: // from MHsContentControlSwiObserver
     
     /**
-     * Notification of Uninstall event from SWI.
-     * @param aPkgUid The package UID which is being uninstalled.
+     * Notification of Install/Uninstall event from SWI.
+     * @param aUidList The package UID list which is being processed.
      */
-     void HandleUninstallEvent( const TUid& aPkgUid );
-
+     void HandleSwiEvent( const RArray<TUid>& aUidList );
+    
 private: // Constructors
     /**
      * Constructor
@@ -150,9 +150,9 @@
     CHsContentControlEComListener*  iHsContentControlEComListener;
 
     /**
-     * An object of type CHsContentControlUninstallMonitor ( Owned ).
+     * An object of type CHsContentControlSwiListener ( Owned ).
      */
-    CHsContentControlUninstallMonitor*  iHsContentControlUninstallMonitor;
+    CHsContentControlSwiListener*  iHsContentControlSwiListener;
     };
 
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/hscontentcontrol/inc/hscontentcontrolswilistener.h	Wed Mar 31 21:17:19 2010 +0300
@@ -0,0 +1,61 @@
+/*
+* 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:   Utility class to listen SWI operations.
+*
+*/
+
+#ifndef HSCONTENTCONTROLSWILISTENER_H
+#define HSCONTENTCONTROLSWILISTENER_H
+
+// System includes
+#include <e32base.h>
+#include <e32property.h>
+
+// User includes
+#include "hscontentcontrolswiobserver.h"
+
+// Forward declarations
+
+// Class declaration
+/** 
+* @class CHsContentControlSwiListener
+* 
+* @brief An instance of class CHsContentControlSwiListener which listens for 
+*  SWI operations (installation, uninstallation , restore).
+*  
+* @lib hscontentcontrol.lib
+*/
+NONSHARABLE_CLASS( CHsContentControlSwiListener ) : public CActive
+    {
+public:     // constructors and destructor
+    static CHsContentControlSwiListener* NewL( 
+                MHsContentControlSwiObserver& aObs );
+    ~CHsContentControlSwiListener();
+
+protected:  // from CActive
+    void DoCancel();
+    void RunL();
+
+private:    // new functions
+   CHsContentControlSwiListener( 
+            MHsContentControlSwiObserver& aObs );
+    void ConstructL();
+
+private:     // data
+    MHsContentControlSwiObserver& iObs;
+    RProperty iSwInstallKey;
+    };
+
+#endif // HSCONTENTCONTROLSWILISTENER_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/hscontentcontrol/inc/hscontentcontrolswiobserver.h	Wed Mar 31 21:17:19 2010 +0300
@@ -0,0 +1,42 @@
+/*
+* Copyright (c) 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: Interface for getting notified for Swi events.
+*
+*/
+
+
+#ifndef HSCONTENTCONTROLSWIOBSERVER_H
+#define HSCONTENTCONTROLSWIOBSERVER_H
+
+/**
+* MHsContentControlSwiObserver
+* 
+* @brief The observer of Swi operations. The derived class needs to implement
+*  the functions below and will be notified by CHsContentControlSwiListener
+*  
+* @see CHsContentControlSwiListener
+*/
+class MHsContentControlSwiObserver
+	{
+public:
+    /**
+     * Notification of Swi event ( install/uninstall/restore)
+     * @param aUidList list of package UID which is being processed.
+     */
+    virtual void HandleSwiEvent( const RArray<TUid>& aUidList ) = 0;
+	};
+
+#endif  // HSCONTENTCONTROLSWIOBSERVER_H
+
+// End of file
--- a/idlehomescreen/hscontentcontrol/inc/hscontentcontroluninstallmonitor.h	Mon Mar 15 12:39:47 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +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:   Class to listen SWI uninstall operation.
-*
-*/
-
-#ifndef HSCONTENTCONTROLUNINSTALLMONITOR_H
-#define HSCONTENTCONTROLUNINSTALLMONITOR_H
-
-// System includes
-#include <e32base.h>
-#include <e32property.h>
-
-// User includes
-#include "hscontentcontroluninstallobserver.h"
-
-// Forward declarations
-
-// Class declaration
-/** 
-* @class CHsContentControlUninstallMonitor
-* 
-* @brief An instance of class CHsContentControlUninstallMonitor which listens for 
-*  uninstall event from SWI.
-*  
-* @lib hscontentcontrol.lib
-*/
-NONSHARABLE_CLASS( CHsContentControlUninstallMonitor ) : public CActive
-    {
-public:     // constructors and destructor
-    static CHsContentControlUninstallMonitor* NewL( 
-                MHsContentControlUninstallObserver& aObs );
-    ~CHsContentControlUninstallMonitor();
-
-protected:  // from CActive
-    void DoCancel();
-    void RunL();
-    
-private:    // new functions
-    CHsContentControlUninstallMonitor( 
-            MHsContentControlUninstallObserver& aObs );
-    void ConstructL();
-
-private:     // data
-    MHsContentControlUninstallObserver& iObs;
-    RProperty iSwUninstallKey;
-    };
-
-#endif // HSCONTENTCONTROLUNINSTALLMONITOR_H
-
--- a/idlehomescreen/hscontentcontrol/inc/hscontentcontroluninstallobserver.h	Mon Mar 15 12:39:47 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
-* Copyright (c) 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: Interface for getting notified for SWI uninstall event.
-*
-*/
-
-
-#ifndef HSCONTENTCONTROLUNINSTALLOBSERVER_H
-#define HSCONTENTCONTROLUNINSTALLOBSERVER_H
-
-/**
-* MHsContentControlUninstallObserver
-* 
-* @brief The observer of uninstall operations. The derived class needs to implement
-*  the functions below and will be notified by CHsContentControlUninstallMonitor.
-*  
-* @see CHsContentControlUninstallMonitor
-*/
-class MHsContentControlUninstallObserver
-	{
-public:
-    /**
-     * Notification of Uninstall event from SWI.
-     * @param aPkgUid The package UID which is being uninstalled. 
-     */
-    virtual void HandleUninstallEvent( const TUid& aPkgUid ) = 0;
-	};
-
-#endif  // HSCONTENTCONTROLUNINSTALLOBSERVER_H
-
-// End of file
--- a/idlehomescreen/hscontentcontrol/src/hscontentcontrolfactory.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/hscontentcontrol/src/hscontentcontrolfactory.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -24,7 +24,7 @@
 #include "xnappuiadapter.h"
 #include "hscontentcontrolfactory.h"
 #include "hscontentcontrolecomlistener.h"
-#include "hscontentcontroluninstallmonitor.h"
+#include "hscontentcontrolswilistener.h"
 
 // Local constants
 
@@ -81,11 +81,11 @@
     {
     iHsContentControlEComListener = 
             CHsContentControlEComListener::NewL( *this );
+    iHsContentControlSwiListener = 
+            CHsContentControlSwiListener::NewL( *this );
+
     REComSession::ListImplementationsL( 
-            KInterfaceUidContentController, iImplArray );
-    
-    iHsContentControlUninstallMonitor = 
-            CHsContentControlUninstallMonitor::NewL( *this );
+        KInterfaceUidContentController, iImplArray );
     }
 
 // ----------------------------------------------------------------------------
@@ -102,13 +102,13 @@
 // ----------------------------------------------------------------------------
 //
 EXPORT_C CHsContentControlFactory::~CHsContentControlFactory()
-    {
-    delete iHsContentControlEComListener;
-    delete iHsContentControlUninstallMonitor;
+    {    
+	delete iHsContentControlEComListener;
+    delete iHsContentControlSwiListener;
     
     iImplArray.ResetAndDestroy();
     iImplArray.Close();
-    
+
     iHsContentControlUis.ResetAndDestroy();
     }
 
@@ -208,25 +208,29 @@
     }
 
 // ----------------------------------------------------------------------------
-// CHsContentControlFactory::HandleUninstallEvent()
+// CHsContentControlFactory::HandleSwiEvent()
 // ----------------------------------------------------------------------------
 //
-void CHsContentControlFactory::HandleUninstallEvent( const TUid& aPkgUid )
+void CHsContentControlFactory::HandleSwiEvent( const RArray<TUid>& aUidList )
     {
     // ignore event if no plugin loaded.
-    if ( iHsContentControlUis.Count() > 0 )
+    if ( iHsContentControlUis.Count() > 0 && aUidList.Count() > 0 )
         {
         for( TInt index( iHsContentControlUis.Count() - 1 ); index >= 0; --index )
             {
             CHsContentControlUi* cc( iHsContentControlUis[ index ] );
-            // ImplUid of plugin must match Sis pkg uid
-            if ( cc && cc->ImplUid() == aPkgUid )
+            for( TInt uidIndex( aUidList.Count() - 1 ); uidIndex >= 0 && cc; --uidIndex )
                 {
-                ReleaseHsCcUi( cc );
-                iHsContentControlUis.Remove( index );
-                delete cc;
-                cc = NULL;
-                break;
+                // ImplUid of plugin must match Sis pkg uid            
+                if ( cc->ImplUid() == aUidList[uidIndex] )
+                    {
+                    // release ui and keep checking, multiple package might be being
+                    // processed by SWI, this events comes once for all packages. 
+                    ReleaseHsCcUi( cc );
+                    iHsContentControlUis.Remove( index );
+                    delete cc;
+                    cc = NULL;                    
+                    }                
                 }
             }
         }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/hscontentcontrol/src/hscontentcontrolswilistener.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -0,0 +1,109 @@
+/*
+* 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:   Class to listen SWI operations (install/uninstall/restore).
+*
+*/
+#include <swi/swiutils.h>
+#include <sacls.h> // KSWIUidsCurrentlyBeingProcessed
+
+#include "hscontentcontrolswilistener.h"
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CHsContentControlSwiListener::NewL()
+// ---------------------------------------------------------------------------
+//
+CHsContentControlSwiListener* CHsContentControlSwiListener::NewL( 
+            MHsContentControlSwiObserver& aObs )
+    {
+    CHsContentControlSwiListener* self = 
+                new( ELeave ) CHsContentControlSwiListener( aObs );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// CHsContentControlSwiListener::~CHsContentControlSwiListener()
+// ---------------------------------------------------------------------------
+//
+CHsContentControlSwiListener::~CHsContentControlSwiListener()
+    {
+    Cancel();
+    iSwInstallKey.Close();
+    }
+
+// ---------------------------------------------------------------------------
+// CHsContentControlSwiListener::DoCancel()
+// ---------------------------------------------------------------------------
+//
+void CHsContentControlSwiListener::DoCancel()
+    {
+    if ( IsActive() )
+        {
+        iSwInstallKey.Cancel();
+        }    
+    }
+
+// ---------------------------------------------------------------------------
+// CHsContentControlSwiListener::RunL()
+// ---------------------------------------------------------------------------
+//
+void CHsContentControlSwiListener::RunL()
+    {    
+    RArray<TUid> uidList;
+    
+    // get list of uids being processed.
+    if ( Swi::GetAllUids( uidList ) == KErrNone )
+        {
+        iObs.HandleSwiEvent( uidList );
+        uidList.Reset();
+        }
+
+    // close array
+    uidList.Close();
+
+    // keep monitoring
+    iSwInstallKey.Subscribe( iStatus );
+    SetActive();
+    }
+
+// ---------------------------------------------------------------------------
+// CHsContentControlSwiListener::CHsContentControlSwiListener()
+// ---------------------------------------------------------------------------
+//
+CHsContentControlSwiListener::CHsContentControlSwiListener( 
+    MHsContentControlSwiObserver& aObs )
+    : CActive( CActive::EPriorityStandard ),
+    iObs( aObs )
+    {
+    CActiveScheduler::Add( this );
+    }
+
+// ---------------------------------------------------------------------------
+// CHsContentControlSwiListener::ConstructL()
+// ---------------------------------------------------------------------------
+//
+void CHsContentControlSwiListener::ConstructL()
+    {
+    if ( KErrNone == iSwInstallKey.Attach( 
+        KUidSystemCategory, KSWIUidsCurrentlyBeingProcessed ) )
+        {
+        iSwInstallKey.Subscribe( iStatus );
+        SetActive();
+        }
+    }
+
--- a/idlehomescreen/hscontentcontrol/src/hscontentcontroluninstallmonitor.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +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:   Class to listen SWI uninstall operation.
-*
-*/
-
-#include "hscontentcontroluninstallmonitor.h"
-#include <SWInstallerInternalPSKeys.h>
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CHsContentControlUninstallMonitor::NewL()
-// ---------------------------------------------------------------------------
-//
-CHsContentControlUninstallMonitor* CHsContentControlUninstallMonitor::NewL( 
-        MHsContentControlUninstallObserver& aObs )
-    {
-    CHsContentControlUninstallMonitor* self = 
-        new ( ELeave ) CHsContentControlUninstallMonitor( aObs );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CHsContentControlUninstallMonitor::~CHsContentControlUninstallMonitor()
-// ---------------------------------------------------------------------------
-//
-CHsContentControlUninstallMonitor::~CHsContentControlUninstallMonitor()
-    {
-    Cancel();
-    iSwUninstallKey.Close();
-    }
-
-// ---------------------------------------------------------------------------
-// CHsContentControlUninstallMonitor::DoCancel()
-// ---------------------------------------------------------------------------
-//
-void CHsContentControlUninstallMonitor::DoCancel()
-    {
-    if ( IsActive() )
-        {
-        iSwUninstallKey.Cancel();
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CHsContentControlUninstallMonitor::RunL()
-// ---------------------------------------------------------------------------
-//
-void CHsContentControlUninstallMonitor::RunL()
-    {
-    iSwUninstallKey.Subscribe( iStatus );
-    SetActive();
-    
-    TInt value = 0;
-    if( iSwUninstallKey.Get( value ) == KErrNone )
-        {
-        TUid uid( KNullUid );
-        uid.iUid = value;
-        iObs.HandleUninstallEvent( uid );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CHsContentControlUninstallMonitor::CHsContentControlUninstallMonitor()
-// ---------------------------------------------------------------------------
-//
-CHsContentControlUninstallMonitor::CHsContentControlUninstallMonitor( 
-    MHsContentControlUninstallObserver& aObs )
-    : CActive( CActive::EPriorityStandard ),
-    iObs( aObs )
-    {
-    CActiveScheduler::Add( this );
-    }
-
-// ---------------------------------------------------------------------------
-// CHsContentControlUninstallMonitor::ConstructL()
-// ---------------------------------------------------------------------------
-//
-void CHsContentControlUninstallMonitor::ConstructL()
-    {
-    if ( KErrNone == iSwUninstallKey.Attach( 
-        KPSUidSWInstallerUiNotification, KSWInstallerUninstallation ) )
-        {
-        iSwUninstallKey.Subscribe( iStatus );
-        SetActive();
-        }
-    }
-
-// End of file
--- a/idlehomescreen/inc/xnappuiadapter.h	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/inc/xnappuiadapter.h	Wed Mar 31 21:17:19 2010 +0300
@@ -160,12 +160,12 @@
         CXnNodeAppIf& aDestination );
     
     /**
-     * This is called when initial view is activated
+     * This is called when (initial) view is ready
      * To be overriden by subclass.
      * 
      * @since S60 5.2
      */
-    IMPORT_C virtual void UiActivated();
+    IMPORT_C virtual void HandleUiReadyEventL();
     
     /**     
      * Second-phase constructor
--- a/idlehomescreen/inc/xnviewmanager.h	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/inc/xnviewmanager.h	Wed Mar 31 21:17:19 2010 +0300
@@ -264,11 +264,11 @@
     void ResetCrashCount();    
 
     /**
-     * Show error note
-     * 
-     * @param aResourceId   Resource id for string to be displayed.
+     * Show error note from resource.
      */
-    void ShowErrorNoteL( const TInt aResourceId );        
+    void ShowErrorNoteL();   
+    
+    void DoRobustnessCheckL();
     
 private:
     // data
--- a/idlehomescreen/loc/activeidle3.loc	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/loc/activeidle3.loc	Wed Mar 31 21:17:19 2010 +0300
@@ -297,3 +297,9 @@
 // r: TB9.2
 //
 #define qtn_hs_corrupted_image_note "Unable to select. Image corrupted or format not supported."
+
+// d: Show when default configuration is loaded (critical error case)
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_error_content_removed "Critical error occurred. Content removed."
--- a/idlehomescreen/sapiwrapper/hspswrapper/bwins/hspswrapper.def	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/sapiwrapper/hspswrapper/bwins/hspswrapper.def	Wed Mar 31 21:17:19 2010 +0300
@@ -44,59 +44,59 @@
 	?NewLC@CHspsWrapper@hspswrapper@@SAPAV12@ABVTDesC8@@PAVMHspsWrapperObserver@2@@Z @ 43 NONAME ; class hspswrapper::CHspsWrapper * hspswrapper::CHspsWrapper::NewLC(class TDesC8 const &, class hspswrapper::MHspsWrapperObserver *)
 	?SetNameL@CPropertyMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 44 NONAME ; class hspswrapper::CPropertyMap & hspswrapper::CPropertyMap::SetNameL(class TDesC8 const &)
 	?SetConfStateL@CHspsWrapper@hspswrapper@@QAEHABVTDesC8@@0H@Z @ 45 NONAME ; int hspswrapper::CHspsWrapper::SetConfStateL(class TDesC8 const &, class TDesC8 const &, int)
-	?MediaType@CObjectMap@hspswrapper@@QBEABVTDesC8@@XZ @ 46 NONAME ; class TDesC8 const & hspswrapper::CObjectMap::MediaType(void) const
-	?SetTypeL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 47 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetTypeL(class TDesC8 const &)
-	?AddPropertyMapL@CItemMap@hspswrapper@@QAEAAV12@PAVCPropertyMap@2@@Z @ 48 NONAME ; class hspswrapper::CItemMap & hspswrapper::CItemMap::AddPropertyMapL(class hspswrapper::CPropertyMap *)
-	?NewLC@CObjectMap@hspswrapper@@SAPAV12@XZ @ 49 NONAME ; class hspswrapper::CObjectMap * hspswrapper::CObjectMap::NewLC(void)
-	?GetAppConfigurationsL@CHspsWrapper@hspswrapper@@QAEXAAV?$RPointerArray@VCPluginInfo@hspswrapper@@@@@Z @ 50 NONAME ; void hspswrapper::CHspsWrapper::GetAppConfigurationsL(class RPointerArray<class hspswrapper::CPluginInfo> &)
-	?NewL@CPluginInfo@hspswrapper@@SAPAV12@XZ @ 51 NONAME ; class hspswrapper::CPluginInfo * hspswrapper::CPluginInfo::NewL(void)
-	?SetItemNameL@CItemMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 52 NONAME ; class hspswrapper::CItemMap & hspswrapper::CItemMap::SetItemNameL(class TDesC8 const &)
-	?AddPluginL@CHspsWrapper@hspswrapper@@QAEPAVCAddPluginResult@2@ABVTDesC8@@0@Z @ 53 NONAME ; class hspswrapper::CAddPluginResult * hspswrapper::CHspsWrapper::AddPluginL(class TDesC8 const &, class TDesC8 const &)
-	?NewL@CHspsConfiguration@hspswrapper@@SAPAV12@XZ @ 54 NONAME ; class hspswrapper::CHspsConfiguration * hspswrapper::CHspsConfiguration::NewL(void)
-	?SetLogoIconL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 55 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetLogoIconL(class TDesC8 const &)
-	?SetPluginUidL@CPluginMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 56 NONAME ; class hspswrapper::CPluginMap & hspswrapper::CPluginMap::SetPluginUidL(class TDesC8 const &)
-	?SetValueL@CPropertyMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 57 NONAME ; class hspswrapper::CPropertyMap & hspswrapper::CPropertyMap::SetValueL(class TDesC8 const &)
-	??1CObjectMap@hspswrapper@@UAE@XZ @ 58 NONAME ; hspswrapper::CObjectMap::~CObjectMap(void)
-	??1CItemMap@hspswrapper@@UAE@XZ @ 59 NONAME ; hspswrapper::CItemMap::~CItemMap(void)
-	?Name@CPropertyMap@hspswrapper@@QBEABVTDesC8@@XZ @ 60 NONAME ; class TDesC8 const & hspswrapper::CPropertyMap::Name(void) const
-	?SetPluginSettingsL@CHspsWrapper@hspswrapper@@QAEHABVTDesC8@@ABV?$RPointerArray@VCItemMap@hspswrapper@@@@@Z @ 61 NONAME ; int hspswrapper::CHspsWrapper::SetPluginSettingsL(class TDesC8 const &, class RPointerArray<class hspswrapper::CItemMap> const &)
-	?ConfId@CHspsConfiguration@hspswrapper@@QBEABVTDesC8@@XZ @ 62 NONAME ; class TDesC8 const & hspswrapper::CHspsConfiguration::ConfId(void) const
-	?GetPluginsL@CHspsWrapper@hspswrapper@@QAEXAAV?$RPointerArray@VCPluginInfo@hspswrapper@@@@ABVTDesC8@@1@Z @ 63 NONAME ; void hspswrapper::CHspsWrapper::GetPluginsL(class RPointerArray<class hspswrapper::CPluginInfo> &, class TDesC8 const &, class TDesC8 const &)
-	?ItemId@CItemMap@hspswrapper@@QBEABVTDesC8@@XZ @ 64 NONAME ; class TDesC8 const & hspswrapper::CItemMap::ItemId(void) const
-	?GetAppConfigurationL@CHspsWrapper@hspswrapper@@QAEPAVCHspsConfiguration@2@XZ @ 65 NONAME ; class hspswrapper::CHspsConfiguration * hspswrapper::CHspsWrapper::GetAppConfigurationL(void)
-	?NewL@CItemMap@hspswrapper@@SAPAV12@XZ @ 66 NONAME ; class hspswrapper::CItemMap * hspswrapper::CItemMap::NewL(void)
-	?SetPathL@CObjectMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 67 NONAME ; class hspswrapper::CObjectMap & hspswrapper::CObjectMap::SetPathL(class TDesC8 const &)
-	?PluginId@CAddPluginResult@hspswrapper@@QBEABVTDesC8@@XZ @ 68 NONAME ; class TDesC8 const & hspswrapper::CAddPluginResult::PluginId(void) const
-	??1CAddPluginResult@hspswrapper@@UAE@XZ @ 69 NONAME ; hspswrapper::CAddPluginResult::~CAddPluginResult(void)
-	?NewLC@CPluginMap@hspswrapper@@SAPAV12@XZ @ 70 NONAME ; class hspswrapper::CPluginMap * hspswrapper::CPluginMap::NewLC(void)
-	?ReplacePluginL@CHspsWrapper@hspswrapper@@QAEHABVTDesC8@@0@Z @ 71 NONAME ; int hspswrapper::CHspsWrapper::ReplacePluginL(class TDesC8 const &, class TDesC8 const &)
-	?Resources@CHspsConfiguration@hspswrapper@@QAEAAV?$RPointerArray@VCObjectMap@hspswrapper@@@@XZ @ 72 NONAME ; class RPointerArray<class hspswrapper::CObjectMap> & hspswrapper::CHspsConfiguration::Resources(void)
-	?MaxChild@CPluginInfo@hspswrapper@@QBEABJXZ @ 73 NONAME ; long const & hspswrapper::CPluginInfo::MaxChild(void) const
-	?SetLockingStatusL@CPluginMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 74 NONAME ; class hspswrapper::CPluginMap & hspswrapper::CPluginMap::SetLockingStatusL(class TDesC8 const &)
-	?ServiceHandler@CHspsWrapper@hspswrapper@@QBEPAVCLiwServiceHandler@@XZ @ 75 NONAME ; class CLiwServiceHandler * hspswrapper::CHspsWrapper::ServiceHandler(void) const
-	?Interface@CPluginInfo@hspswrapper@@QBEABVTDesC8@@XZ @ 76 NONAME ; class TDesC8 const & hspswrapper::CPluginInfo::Interface(void) const
-	?SetActivePluginL@CHspsWrapper@hspswrapper@@QAEHABVTDesC8@@@Z @ 77 NONAME ; int hspswrapper::CHspsWrapper::SetActivePluginL(class TDesC8 const &)
-	?SetDescriptionL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 78 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetDescriptionL(class TDesC8 const &)
-	?AddPluginL@CHspsWrapper@hspswrapper@@QAEPAVCAddPluginResult@2@ABVTDesC8@@0H@Z @ 79 NONAME ; class hspswrapper::CAddPluginResult * hspswrapper::CHspsWrapper::AddPluginL(class TDesC8 const &, class TDesC8 const &, int)
-	?SetPluginIdL@CAddPluginResult@hspswrapper@@QAEXABVTDesC8@@@Z @ 80 NONAME ; void hspswrapper::CAddPluginResult::SetPluginIdL(class TDesC8 const &)
-	?SetUidL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 81 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetUidL(class TDesC8 const &)
-	?SetTagL@CObjectMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 82 NONAME ; class hspswrapper::CObjectMap & hspswrapper::CObjectMap::SetTagL(class TDesC8 const &)
-	?NewLC@CPluginInfo@hspswrapper@@SAPAV12@XZ @ 83 NONAME ; class hspswrapper::CPluginInfo * hspswrapper::CPluginInfo::NewLC(void)
-	?SetNameL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 84 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetNameL(class TDesC8 const &)
-	?SetMediaTypeL@CObjectMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 85 NONAME ; class hspswrapper::CObjectMap & hspswrapper::CObjectMap::SetMediaTypeL(class TDesC8 const &)
-	?Tag@CObjectMap@hspswrapper@@QBEABVTDesC8@@XZ @ 86 NONAME ; class TDesC8 const & hspswrapper::CObjectMap::Tag(void) const
-	?SetItemIdL@CItemMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 87 NONAME ; class hspswrapper::CItemMap & hspswrapper::CItemMap::SetItemIdL(class TDesC8 const &)
-	?NewLC@CItemMap@hspswrapper@@SAPAV12@XZ @ 88 NONAME ; class hspswrapper::CItemMap * hspswrapper::CItemMap::NewLC(void)
-	?SetLogoIconL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC16@@@Z @ 89 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetLogoIconL(class TDesC16 const &)
-	?SetInterfaceL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 90 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetInterfaceL(class TDesC8 const &)
-	?AddPluginMapL@CHspsConfiguration@hspswrapper@@QAEAAV12@PAVCPluginMap@2@@Z @ 91 NONAME ; class hspswrapper::CHspsConfiguration & hspswrapper::CHspsConfiguration::AddPluginMapL(class hspswrapper::CPluginMap *)
-	?RemovePluginL@CHspsWrapper@hspswrapper@@QAEHABVTDesC8@@@Z @ 92 NONAME ; int hspswrapper::CHspsWrapper::RemovePluginL(class TDesC8 const &)
-	?LockingStatus@CPluginMap@hspswrapper@@QBEABVTDesC8@@XZ @ 93 NONAME ; class TDesC8 const & hspswrapper::CPluginMap::LockingStatus(void) const
-	?SetActivationStateL@CPluginMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 94 NONAME ; class hspswrapper::CPluginMap & hspswrapper::CPluginMap::SetActivationStateL(class TDesC8 const &)
-	?Type@CPluginInfo@hspswrapper@@QBEABVTDesC8@@XZ @ 95 NONAME ; class TDesC8 const & hspswrapper::CPluginInfo::Type(void) const
-	?SetConfIdL@CHspsConfiguration@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 96 NONAME ; class hspswrapper::CHspsConfiguration & hspswrapper::CHspsConfiguration::SetConfIdL(class TDesC8 const &)
-	?NewLC@CPropertyMap@hspswrapper@@SAPAV12@XZ @ 97 NONAME ; class hspswrapper::CPropertyMap * hspswrapper::CPropertyMap::NewLC(void)
-	??0CAddPluginResult@hspswrapper@@AAE@XZ @ 98 NONAME ; hspswrapper::CAddPluginResult::CAddPluginResult(void)
-	?RestoreActiveViewL@CHspsWrapper@hspswrapper@@QAEHXZ @ 99 NONAME ; int hspswrapper::CHspsWrapper::RestoreActiveViewL(void)
-	?RestoreRootL@CHspsWrapper@hspswrapper@@QAEHXZ @ 100 NONAME ; int hspswrapper::CHspsWrapper::RestoreRootL(void)
+	?RestoreDefaultConfL@CHspsWrapper@hspswrapper@@QAEHXZ @ 46 NONAME ; int hspswrapper::CHspsWrapper::RestoreDefaultConfL(void)
+	?MediaType@CObjectMap@hspswrapper@@QBEABVTDesC8@@XZ @ 47 NONAME ; class TDesC8 const & hspswrapper::CObjectMap::MediaType(void) const
+	?SetTypeL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 48 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetTypeL(class TDesC8 const &)
+	?AddPropertyMapL@CItemMap@hspswrapper@@QAEAAV12@PAVCPropertyMap@2@@Z @ 49 NONAME ; class hspswrapper::CItemMap & hspswrapper::CItemMap::AddPropertyMapL(class hspswrapper::CPropertyMap *)
+	?NewLC@CObjectMap@hspswrapper@@SAPAV12@XZ @ 50 NONAME ; class hspswrapper::CObjectMap * hspswrapper::CObjectMap::NewLC(void)
+	?GetAppConfigurationsL@CHspsWrapper@hspswrapper@@QAEXAAV?$RPointerArray@VCPluginInfo@hspswrapper@@@@@Z @ 51 NONAME ; void hspswrapper::CHspsWrapper::GetAppConfigurationsL(class RPointerArray<class hspswrapper::CPluginInfo> &)
+	?NewL@CPluginInfo@hspswrapper@@SAPAV12@XZ @ 52 NONAME ; class hspswrapper::CPluginInfo * hspswrapper::CPluginInfo::NewL(void)
+	?SetItemNameL@CItemMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 53 NONAME ; class hspswrapper::CItemMap & hspswrapper::CItemMap::SetItemNameL(class TDesC8 const &)
+	?AddPluginL@CHspsWrapper@hspswrapper@@QAEPAVCAddPluginResult@2@ABVTDesC8@@0@Z @ 54 NONAME ; class hspswrapper::CAddPluginResult * hspswrapper::CHspsWrapper::AddPluginL(class TDesC8 const &, class TDesC8 const &)
+	?NewL@CHspsConfiguration@hspswrapper@@SAPAV12@XZ @ 55 NONAME ; class hspswrapper::CHspsConfiguration * hspswrapper::CHspsConfiguration::NewL(void)
+	?SetLogoIconL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 56 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetLogoIconL(class TDesC8 const &)
+	?SetPluginUidL@CPluginMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 57 NONAME ; class hspswrapper::CPluginMap & hspswrapper::CPluginMap::SetPluginUidL(class TDesC8 const &)
+	?SetValueL@CPropertyMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 58 NONAME ; class hspswrapper::CPropertyMap & hspswrapper::CPropertyMap::SetValueL(class TDesC8 const &)
+	??1CObjectMap@hspswrapper@@UAE@XZ @ 59 NONAME ; hspswrapper::CObjectMap::~CObjectMap(void)
+	??1CItemMap@hspswrapper@@UAE@XZ @ 60 NONAME ; hspswrapper::CItemMap::~CItemMap(void)
+	?Name@CPropertyMap@hspswrapper@@QBEABVTDesC8@@XZ @ 61 NONAME ; class TDesC8 const & hspswrapper::CPropertyMap::Name(void) const
+	?SetPluginSettingsL@CHspsWrapper@hspswrapper@@QAEHABVTDesC8@@ABV?$RPointerArray@VCItemMap@hspswrapper@@@@@Z @ 62 NONAME ; int hspswrapper::CHspsWrapper::SetPluginSettingsL(class TDesC8 const &, class RPointerArray<class hspswrapper::CItemMap> const &)
+	?ConfId@CHspsConfiguration@hspswrapper@@QBEABVTDesC8@@XZ @ 63 NONAME ; class TDesC8 const & hspswrapper::CHspsConfiguration::ConfId(void) const
+	?GetPluginsL@CHspsWrapper@hspswrapper@@QAEXAAV?$RPointerArray@VCPluginInfo@hspswrapper@@@@ABVTDesC8@@1@Z @ 64 NONAME ; void hspswrapper::CHspsWrapper::GetPluginsL(class RPointerArray<class hspswrapper::CPluginInfo> &, class TDesC8 const &, class TDesC8 const &)
+	?ItemId@CItemMap@hspswrapper@@QBEABVTDesC8@@XZ @ 65 NONAME ; class TDesC8 const & hspswrapper::CItemMap::ItemId(void) const
+	?GetAppConfigurationL@CHspsWrapper@hspswrapper@@QAEPAVCHspsConfiguration@2@XZ @ 66 NONAME ; class hspswrapper::CHspsConfiguration * hspswrapper::CHspsWrapper::GetAppConfigurationL(void)
+	?NewL@CItemMap@hspswrapper@@SAPAV12@XZ @ 67 NONAME ; class hspswrapper::CItemMap * hspswrapper::CItemMap::NewL(void)
+	?SetPathL@CObjectMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 68 NONAME ; class hspswrapper::CObjectMap & hspswrapper::CObjectMap::SetPathL(class TDesC8 const &)
+	?PluginId@CAddPluginResult@hspswrapper@@QBEABVTDesC8@@XZ @ 69 NONAME ; class TDesC8 const & hspswrapper::CAddPluginResult::PluginId(void) const
+	?RestoreRootL@CHspsWrapper@hspswrapper@@QAEHXZ @ 70 NONAME ; int hspswrapper::CHspsWrapper::RestoreRootL(void)
+	??1CAddPluginResult@hspswrapper@@UAE@XZ @ 71 NONAME ; hspswrapper::CAddPluginResult::~CAddPluginResult(void)
+	?NewLC@CPluginMap@hspswrapper@@SAPAV12@XZ @ 72 NONAME ; class hspswrapper::CPluginMap * hspswrapper::CPluginMap::NewLC(void)
+	?ReplacePluginL@CHspsWrapper@hspswrapper@@QAEHABVTDesC8@@0@Z @ 73 NONAME ; int hspswrapper::CHspsWrapper::ReplacePluginL(class TDesC8 const &, class TDesC8 const &)
+	?Resources@CHspsConfiguration@hspswrapper@@QAEAAV?$RPointerArray@VCObjectMap@hspswrapper@@@@XZ @ 74 NONAME ; class RPointerArray<class hspswrapper::CObjectMap> & hspswrapper::CHspsConfiguration::Resources(void)
+	?MaxChild@CPluginInfo@hspswrapper@@QBEABJXZ @ 75 NONAME ; long const & hspswrapper::CPluginInfo::MaxChild(void) const
+	?SetLockingStatusL@CPluginMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 76 NONAME ; class hspswrapper::CPluginMap & hspswrapper::CPluginMap::SetLockingStatusL(class TDesC8 const &)
+	?ServiceHandler@CHspsWrapper@hspswrapper@@QBEPAVCLiwServiceHandler@@XZ @ 77 NONAME ; class CLiwServiceHandler * hspswrapper::CHspsWrapper::ServiceHandler(void) const
+	?Interface@CPluginInfo@hspswrapper@@QBEABVTDesC8@@XZ @ 78 NONAME ; class TDesC8 const & hspswrapper::CPluginInfo::Interface(void) const
+	?SetActivePluginL@CHspsWrapper@hspswrapper@@QAEHABVTDesC8@@@Z @ 79 NONAME ; int hspswrapper::CHspsWrapper::SetActivePluginL(class TDesC8 const &)
+	?SetDescriptionL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 80 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetDescriptionL(class TDesC8 const &)
+	?AddPluginL@CHspsWrapper@hspswrapper@@QAEPAVCAddPluginResult@2@ABVTDesC8@@0H@Z @ 81 NONAME ; class hspswrapper::CAddPluginResult * hspswrapper::CHspsWrapper::AddPluginL(class TDesC8 const &, class TDesC8 const &, int)
+	?SetPluginIdL@CAddPluginResult@hspswrapper@@QAEXABVTDesC8@@@Z @ 82 NONAME ; void hspswrapper::CAddPluginResult::SetPluginIdL(class TDesC8 const &)
+	?SetUidL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 83 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetUidL(class TDesC8 const &)
+	?SetTagL@CObjectMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 84 NONAME ; class hspswrapper::CObjectMap & hspswrapper::CObjectMap::SetTagL(class TDesC8 const &)
+	?NewLC@CPluginInfo@hspswrapper@@SAPAV12@XZ @ 85 NONAME ; class hspswrapper::CPluginInfo * hspswrapper::CPluginInfo::NewLC(void)
+	?SetNameL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 86 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetNameL(class TDesC8 const &)
+	?SetMediaTypeL@CObjectMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 87 NONAME ; class hspswrapper::CObjectMap & hspswrapper::CObjectMap::SetMediaTypeL(class TDesC8 const &)
+	?Tag@CObjectMap@hspswrapper@@QBEABVTDesC8@@XZ @ 88 NONAME ; class TDesC8 const & hspswrapper::CObjectMap::Tag(void) const
+	?SetItemIdL@CItemMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 89 NONAME ; class hspswrapper::CItemMap & hspswrapper::CItemMap::SetItemIdL(class TDesC8 const &)
+	?NewLC@CItemMap@hspswrapper@@SAPAV12@XZ @ 90 NONAME ; class hspswrapper::CItemMap * hspswrapper::CItemMap::NewLC(void)
+	?SetLogoIconL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC16@@@Z @ 91 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetLogoIconL(class TDesC16 const &)
+	?SetInterfaceL@CPluginInfo@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 92 NONAME ; class hspswrapper::CPluginInfo & hspswrapper::CPluginInfo::SetInterfaceL(class TDesC8 const &)
+	?AddPluginMapL@CHspsConfiguration@hspswrapper@@QAEAAV12@PAVCPluginMap@2@@Z @ 93 NONAME ; class hspswrapper::CHspsConfiguration & hspswrapper::CHspsConfiguration::AddPluginMapL(class hspswrapper::CPluginMap *)
+	?RemovePluginL@CHspsWrapper@hspswrapper@@QAEHABVTDesC8@@@Z @ 94 NONAME ; int hspswrapper::CHspsWrapper::RemovePluginL(class TDesC8 const &)
+	?LockingStatus@CPluginMap@hspswrapper@@QBEABVTDesC8@@XZ @ 95 NONAME ; class TDesC8 const & hspswrapper::CPluginMap::LockingStatus(void) const
+	?SetActivationStateL@CPluginMap@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 96 NONAME ; class hspswrapper::CPluginMap & hspswrapper::CPluginMap::SetActivationStateL(class TDesC8 const &)
+	?Type@CPluginInfo@hspswrapper@@QBEABVTDesC8@@XZ @ 97 NONAME ; class TDesC8 const & hspswrapper::CPluginInfo::Type(void) const
+	?SetConfIdL@CHspsConfiguration@hspswrapper@@QAEAAV12@ABVTDesC8@@@Z @ 98 NONAME ; class hspswrapper::CHspsConfiguration & hspswrapper::CHspsConfiguration::SetConfIdL(class TDesC8 const &)
+	?NewLC@CPropertyMap@hspswrapper@@SAPAV12@XZ @ 99 NONAME ; class hspswrapper::CPropertyMap * hspswrapper::CPropertyMap::NewLC(void)
+	??0CAddPluginResult@hspswrapper@@AAE@XZ @ 100 NONAME ; hspswrapper::CAddPluginResult::CAddPluginResult(void)
 
--- a/idlehomescreen/sapiwrapper/hspswrapper/eabi/hspswrapper.def	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/sapiwrapper/hspswrapper/eabi/hspswrapper.def	Wed Mar 31 21:17:19 2010 +0300
@@ -36,100 +36,100 @@
 	_ZN11hspswrapper12CHspsWrapper10AddPluginLERK6TDesC8S3_i @ 35 NONAME
 	_ZN11hspswrapper12CHspsWrapper11GetPluginsLER13RPointerArrayINS_11CPluginInfoEERK6TDesC8S7_ @ 36 NONAME
 	_ZN11hspswrapper12CHspsWrapper12MovePluginsLERK6TDesC8RK11MDesC8Array @ 37 NONAME
-	_ZN11hspswrapper12CHspsWrapper13RemovePluginLERK6TDesC8 @ 38 NONAME
-	_ZN11hspswrapper12CHspsWrapper13SetConfStateLERK6TDesC8S3_i @ 39 NONAME
-	_ZN11hspswrapper12CHspsWrapper14ReplacePluginLERK6TDesC8S3_ @ 40 NONAME
-	_ZN11hspswrapper12CHspsWrapper16SetActivePluginLERK6TDesC8 @ 41 NONAME
-	_ZN11hspswrapper12CHspsWrapper18SetPluginSettingsLERK6TDesC8RK13RPointerArrayINS_8CItemMapEE @ 42 NONAME
-	_ZN11hspswrapper12CHspsWrapper20GetAppConfigurationLEv @ 43 NONAME
-	_ZN11hspswrapper12CHspsWrapper20SetAppConfigurationLERK6TDesC8 @ 44 NONAME
-	_ZN11hspswrapper12CHspsWrapper21GetAppConfigurationsLER13RPointerArrayINS_11CPluginInfoEE @ 45 NONAME
-	_ZN11hspswrapper12CHspsWrapper23GetPluginConfigurationLERK6TDesC8 @ 46 NONAME
-	_ZN11hspswrapper12CHspsWrapper4NewLERK6TDesC8PNS_20MHspsWrapperObserverE @ 47 NONAME
-	_ZN11hspswrapper12CHspsWrapper5NewLCERK6TDesC8PNS_20MHspsWrapperObserverE @ 48 NONAME
-	_ZN11hspswrapper12CHspsWrapperD0Ev @ 49 NONAME
-	_ZN11hspswrapper12CHspsWrapperD1Ev @ 50 NONAME
-	_ZN11hspswrapper12CHspsWrapperD2Ev @ 51 NONAME
-	_ZN11hspswrapper12CPropertyMap4NewLEv @ 52 NONAME
-	_ZN11hspswrapper12CPropertyMap5NewLCEv @ 53 NONAME
-	_ZN11hspswrapper12CPropertyMap8SetNameLERK6TDesC8 @ 54 NONAME
-	_ZN11hspswrapper12CPropertyMap9SetValueLERK6TDesC8 @ 55 NONAME
-	_ZN11hspswrapper12CPropertyMapD0Ev @ 56 NONAME
-	_ZN11hspswrapper12CPropertyMapD1Ev @ 57 NONAME
-	_ZN11hspswrapper12CPropertyMapD2Ev @ 58 NONAME
-	_ZN11hspswrapper16CAddPluginResult12SetPluginIdLERK6TDesC8 @ 59 NONAME
-	_ZN11hspswrapper16CAddPluginResult4NewLEv @ 60 NONAME
-	_ZN11hspswrapper16CAddPluginResult9SetStatusEi @ 61 NONAME
-	_ZN11hspswrapper16CAddPluginResultC1Ev @ 62 NONAME
-	_ZN11hspswrapper16CAddPluginResultC2Ev @ 63 NONAME
-	_ZN11hspswrapper16CAddPluginResultD0Ev @ 64 NONAME
-	_ZN11hspswrapper16CAddPluginResultD1Ev @ 65 NONAME
-	_ZN11hspswrapper16CAddPluginResultD2Ev @ 66 NONAME
-	_ZN11hspswrapper18CHspsConfiguration10PluginInfoEv @ 67 NONAME
-	_ZN11hspswrapper18CHspsConfiguration10PluginMapsEv @ 68 NONAME
-	_ZN11hspswrapper18CHspsConfiguration10SetConfIdLERK6TDesC8 @ 69 NONAME
-	_ZN11hspswrapper18CHspsConfiguration11AddItemMapLEPNS_8CItemMapE @ 70 NONAME
-	_ZN11hspswrapper18CHspsConfiguration13AddObjectMapLEPNS_10CObjectMapE @ 71 NONAME
-	_ZN11hspswrapper18CHspsConfiguration13AddPluginMapLEPNS_10CPluginMapE @ 72 NONAME
-	_ZN11hspswrapper18CHspsConfiguration4NewLEv @ 73 NONAME
-	_ZN11hspswrapper18CHspsConfiguration5NewLCEv @ 74 NONAME
-	_ZN11hspswrapper18CHspsConfiguration8SettingsEv @ 75 NONAME
-	_ZN11hspswrapper18CHspsConfiguration9ResourcesEv @ 76 NONAME
-	_ZN11hspswrapper18CHspsConfigurationD0Ev @ 77 NONAME
-	_ZN11hspswrapper18CHspsConfigurationD1Ev @ 78 NONAME
-	_ZN11hspswrapper18CHspsConfigurationD2Ev @ 79 NONAME
-	_ZN11hspswrapper8CItemMap10SetItemIdLERK6TDesC8 @ 80 NONAME
-	_ZN11hspswrapper8CItemMap12SetItemNameLERK6TDesC8 @ 81 NONAME
-	_ZN11hspswrapper8CItemMap15AddPropertyMapLEPNS_12CPropertyMapE @ 82 NONAME
-	_ZN11hspswrapper8CItemMap4NewLEv @ 83 NONAME
-	_ZN11hspswrapper8CItemMap5NewLCEv @ 84 NONAME
-	_ZN11hspswrapper8CItemMapD0Ev @ 85 NONAME
-	_ZN11hspswrapper8CItemMapD1Ev @ 86 NONAME
-	_ZN11hspswrapper8CItemMapD2Ev @ 87 NONAME
-	_ZNK11hspswrapper10CObjectMap3TagEv @ 88 NONAME
-	_ZNK11hspswrapper10CObjectMap4PathEv @ 89 NONAME
-	_ZNK11hspswrapper10CObjectMap5NameLEv @ 90 NONAME
-	_ZNK11hspswrapper10CObjectMap9MediaTypeEv @ 91 NONAME
-	_ZNK11hspswrapper10CPluginMap13LockingStatusEv @ 92 NONAME
-	_ZNK11hspswrapper10CPluginMap15ActivationStateEv @ 93 NONAME
-	_ZNK11hspswrapper10CPluginMap8PluginIdEv @ 94 NONAME
-	_ZNK11hspswrapper10CPluginMap9PluginUidEv @ 95 NONAME
-	_ZNK11hspswrapper11CPluginInfo11DescriptionEv @ 96 NONAME
-	_ZNK11hspswrapper11CPluginInfo13MultiInstanceEv @ 97 NONAME
-	_ZNK11hspswrapper11CPluginInfo18ConfigurationStateEv @ 98 NONAME
-	_ZNK11hspswrapper11CPluginInfo3UidEv @ 99 NONAME
-	_ZNK11hspswrapper11CPluginInfo4NameEv @ 100 NONAME
-	_ZNK11hspswrapper11CPluginInfo4TypeEv @ 101 NONAME
-	_ZNK11hspswrapper11CPluginInfo8LogoIconEv @ 102 NONAME
-	_ZNK11hspswrapper11CPluginInfo8MaxChildEv @ 103 NONAME
-	_ZNK11hspswrapper11CPluginInfo9InterfaceEv @ 104 NONAME
-	_ZNK11hspswrapper12CHspsWrapper11HspsServiceEv @ 105 NONAME
-	_ZNK11hspswrapper12CHspsWrapper13HspsInterfaceEv @ 106 NONAME
-	_ZNK11hspswrapper12CHspsWrapper14ServiceHandlerEv @ 107 NONAME
-	_ZNK11hspswrapper12CPropertyMap4NameEv @ 108 NONAME
-	_ZNK11hspswrapper12CPropertyMap5ValueEv @ 109 NONAME
-	_ZNK11hspswrapper16CAddPluginResult6StatusEv @ 110 NONAME
-	_ZNK11hspswrapper16CAddPluginResult8PluginIdEv @ 111 NONAME
-	_ZNK11hspswrapper18CHspsConfiguration6ConfIdEv @ 112 NONAME
-	_ZNK11hspswrapper8CItemMap10PropertiesEv @ 113 NONAME
-	_ZNK11hspswrapper8CItemMap6ItemIdEv @ 114 NONAME
-	_ZNK11hspswrapper8CItemMap8ItemNameEv @ 115 NONAME
-	_ZTIN11hspswrapper10CObjectMapE @ 116 NONAME
-	_ZTIN11hspswrapper10CPluginMapE @ 117 NONAME
-	_ZTIN11hspswrapper11CPluginInfoE @ 118 NONAME
-	_ZTIN11hspswrapper12CHspsWrapperE @ 119 NONAME
-	_ZTIN11hspswrapper12CPropertyMapE @ 120 NONAME
-	_ZTIN11hspswrapper16CAddPluginResultE @ 121 NONAME
-	_ZTIN11hspswrapper18CHspsConfigurationE @ 122 NONAME
-	_ZTIN11hspswrapper8CItemMapE @ 123 NONAME
-	_ZTVN11hspswrapper10CObjectMapE @ 124 NONAME
-	_ZTVN11hspswrapper10CPluginMapE @ 125 NONAME
-	_ZTVN11hspswrapper11CPluginInfoE @ 126 NONAME
-	_ZTVN11hspswrapper12CHspsWrapperE @ 127 NONAME
-	_ZTVN11hspswrapper12CPropertyMapE @ 128 NONAME
-	_ZTVN11hspswrapper16CAddPluginResultE @ 129 NONAME
-	_ZTVN11hspswrapper18CHspsConfigurationE @ 130 NONAME
-	_ZTVN11hspswrapper8CItemMapE @ 131 NONAME
-	_ZN11hspswrapper12CHspsWrapper18RestoreActiveViewLEv @ 132 NONAME
-	_ZN11hspswrapper12CHspsWrapper12RestoreRootLEv @ 133 NONAME
+	_ZN11hspswrapper12CHspsWrapper12RestoreRootLEv @ 38 NONAME
+	_ZN11hspswrapper12CHspsWrapper13RemovePluginLERK6TDesC8 @ 39 NONAME
+	_ZN11hspswrapper12CHspsWrapper13SetConfStateLERK6TDesC8S3_i @ 40 NONAME
+	_ZN11hspswrapper12CHspsWrapper14ReplacePluginLERK6TDesC8S3_ @ 41 NONAME
+	_ZN11hspswrapper12CHspsWrapper16SetActivePluginLERK6TDesC8 @ 42 NONAME
+	_ZN11hspswrapper12CHspsWrapper18SetPluginSettingsLERK6TDesC8RK13RPointerArrayINS_8CItemMapEE @ 43 NONAME
+	_ZN11hspswrapper12CHspsWrapper19RestoreDefaultConfLEv @ 44 NONAME
+	_ZN11hspswrapper12CHspsWrapper20GetAppConfigurationLEv @ 45 NONAME
+	_ZN11hspswrapper12CHspsWrapper20SetAppConfigurationLERK6TDesC8 @ 46 NONAME
+	_ZN11hspswrapper12CHspsWrapper21GetAppConfigurationsLER13RPointerArrayINS_11CPluginInfoEE @ 47 NONAME
+	_ZN11hspswrapper12CHspsWrapper23GetPluginConfigurationLERK6TDesC8 @ 48 NONAME
+	_ZN11hspswrapper12CHspsWrapper4NewLERK6TDesC8PNS_20MHspsWrapperObserverE @ 49 NONAME
+	_ZN11hspswrapper12CHspsWrapper5NewLCERK6TDesC8PNS_20MHspsWrapperObserverE @ 50 NONAME
+	_ZN11hspswrapper12CHspsWrapperD0Ev @ 51 NONAME
+	_ZN11hspswrapper12CHspsWrapperD1Ev @ 52 NONAME
+	_ZN11hspswrapper12CHspsWrapperD2Ev @ 53 NONAME
+	_ZN11hspswrapper12CPropertyMap4NewLEv @ 54 NONAME
+	_ZN11hspswrapper12CPropertyMap5NewLCEv @ 55 NONAME
+	_ZN11hspswrapper12CPropertyMap8SetNameLERK6TDesC8 @ 56 NONAME
+	_ZN11hspswrapper12CPropertyMap9SetValueLERK6TDesC8 @ 57 NONAME
+	_ZN11hspswrapper12CPropertyMapD0Ev @ 58 NONAME
+	_ZN11hspswrapper12CPropertyMapD1Ev @ 59 NONAME
+	_ZN11hspswrapper12CPropertyMapD2Ev @ 60 NONAME
+	_ZN11hspswrapper16CAddPluginResult12SetPluginIdLERK6TDesC8 @ 61 NONAME
+	_ZN11hspswrapper16CAddPluginResult4NewLEv @ 62 NONAME
+	_ZN11hspswrapper16CAddPluginResult9SetStatusEi @ 63 NONAME
+	_ZN11hspswrapper16CAddPluginResultC1Ev @ 64 NONAME
+	_ZN11hspswrapper16CAddPluginResultC2Ev @ 65 NONAME
+	_ZN11hspswrapper16CAddPluginResultD0Ev @ 66 NONAME
+	_ZN11hspswrapper16CAddPluginResultD1Ev @ 67 NONAME
+	_ZN11hspswrapper16CAddPluginResultD2Ev @ 68 NONAME
+	_ZN11hspswrapper18CHspsConfiguration10PluginInfoEv @ 69 NONAME
+	_ZN11hspswrapper18CHspsConfiguration10PluginMapsEv @ 70 NONAME
+	_ZN11hspswrapper18CHspsConfiguration10SetConfIdLERK6TDesC8 @ 71 NONAME
+	_ZN11hspswrapper18CHspsConfiguration11AddItemMapLEPNS_8CItemMapE @ 72 NONAME
+	_ZN11hspswrapper18CHspsConfiguration13AddObjectMapLEPNS_10CObjectMapE @ 73 NONAME
+	_ZN11hspswrapper18CHspsConfiguration13AddPluginMapLEPNS_10CPluginMapE @ 74 NONAME
+	_ZN11hspswrapper18CHspsConfiguration4NewLEv @ 75 NONAME
+	_ZN11hspswrapper18CHspsConfiguration5NewLCEv @ 76 NONAME
+	_ZN11hspswrapper18CHspsConfiguration8SettingsEv @ 77 NONAME
+	_ZN11hspswrapper18CHspsConfiguration9ResourcesEv @ 78 NONAME
+	_ZN11hspswrapper18CHspsConfigurationD0Ev @ 79 NONAME
+	_ZN11hspswrapper18CHspsConfigurationD1Ev @ 80 NONAME
+	_ZN11hspswrapper18CHspsConfigurationD2Ev @ 81 NONAME
+	_ZN11hspswrapper8CItemMap10SetItemIdLERK6TDesC8 @ 82 NONAME
+	_ZN11hspswrapper8CItemMap12SetItemNameLERK6TDesC8 @ 83 NONAME
+	_ZN11hspswrapper8CItemMap15AddPropertyMapLEPNS_12CPropertyMapE @ 84 NONAME
+	_ZN11hspswrapper8CItemMap4NewLEv @ 85 NONAME
+	_ZN11hspswrapper8CItemMap5NewLCEv @ 86 NONAME
+	_ZN11hspswrapper8CItemMapD0Ev @ 87 NONAME
+	_ZN11hspswrapper8CItemMapD1Ev @ 88 NONAME
+	_ZN11hspswrapper8CItemMapD2Ev @ 89 NONAME
+	_ZNK11hspswrapper10CObjectMap3TagEv @ 90 NONAME
+	_ZNK11hspswrapper10CObjectMap4PathEv @ 91 NONAME
+	_ZNK11hspswrapper10CObjectMap5NameLEv @ 92 NONAME
+	_ZNK11hspswrapper10CObjectMap9MediaTypeEv @ 93 NONAME
+	_ZNK11hspswrapper10CPluginMap13LockingStatusEv @ 94 NONAME
+	_ZNK11hspswrapper10CPluginMap15ActivationStateEv @ 95 NONAME
+	_ZNK11hspswrapper10CPluginMap8PluginIdEv @ 96 NONAME
+	_ZNK11hspswrapper10CPluginMap9PluginUidEv @ 97 NONAME
+	_ZNK11hspswrapper11CPluginInfo11DescriptionEv @ 98 NONAME
+	_ZNK11hspswrapper11CPluginInfo13MultiInstanceEv @ 99 NONAME
+	_ZNK11hspswrapper11CPluginInfo18ConfigurationStateEv @ 100 NONAME
+	_ZNK11hspswrapper11CPluginInfo3UidEv @ 101 NONAME
+	_ZNK11hspswrapper11CPluginInfo4NameEv @ 102 NONAME
+	_ZNK11hspswrapper11CPluginInfo4TypeEv @ 103 NONAME
+	_ZNK11hspswrapper11CPluginInfo8LogoIconEv @ 104 NONAME
+	_ZNK11hspswrapper11CPluginInfo8MaxChildEv @ 105 NONAME
+	_ZNK11hspswrapper11CPluginInfo9InterfaceEv @ 106 NONAME
+	_ZNK11hspswrapper12CHspsWrapper11HspsServiceEv @ 107 NONAME
+	_ZNK11hspswrapper12CHspsWrapper13HspsInterfaceEv @ 108 NONAME
+	_ZNK11hspswrapper12CHspsWrapper14ServiceHandlerEv @ 109 NONAME
+	_ZNK11hspswrapper12CPropertyMap4NameEv @ 110 NONAME
+	_ZNK11hspswrapper12CPropertyMap5ValueEv @ 111 NONAME
+	_ZNK11hspswrapper16CAddPluginResult6StatusEv @ 112 NONAME
+	_ZNK11hspswrapper16CAddPluginResult8PluginIdEv @ 113 NONAME
+	_ZNK11hspswrapper18CHspsConfiguration6ConfIdEv @ 114 NONAME
+	_ZNK11hspswrapper8CItemMap10PropertiesEv @ 115 NONAME
+	_ZNK11hspswrapper8CItemMap6ItemIdEv @ 116 NONAME
+	_ZNK11hspswrapper8CItemMap8ItemNameEv @ 117 NONAME
+	_ZTIN11hspswrapper10CObjectMapE @ 118 NONAME
+	_ZTIN11hspswrapper10CPluginMapE @ 119 NONAME
+	_ZTIN11hspswrapper11CPluginInfoE @ 120 NONAME
+	_ZTIN11hspswrapper12CHspsWrapperE @ 121 NONAME
+	_ZTIN11hspswrapper12CPropertyMapE @ 122 NONAME
+	_ZTIN11hspswrapper16CAddPluginResultE @ 123 NONAME
+	_ZTIN11hspswrapper18CHspsConfigurationE @ 124 NONAME
+	_ZTIN11hspswrapper8CItemMapE @ 125 NONAME
+	_ZTVN11hspswrapper10CObjectMapE @ 126 NONAME
+	_ZTVN11hspswrapper10CPluginMapE @ 127 NONAME
+	_ZTVN11hspswrapper11CPluginInfoE @ 128 NONAME
+	_ZTVN11hspswrapper12CHspsWrapperE @ 129 NONAME
+	_ZTVN11hspswrapper12CPropertyMapE @ 130 NONAME
+	_ZTVN11hspswrapper16CAddPluginResultE @ 131 NONAME
+	_ZTVN11hspswrapper18CHspsConfigurationE @ 132 NONAME
+	_ZTVN11hspswrapper8CItemMapE @ 133 NONAME
 
--- a/idlehomescreen/sapiwrapper/hspswrapper/inc/hspswrapper.h	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/sapiwrapper/hspswrapper/inc/hspswrapper.h	Wed Mar 31 21:17:19 2010 +0300
@@ -237,19 +237,18 @@
     IMPORT_C TInt SetActivePluginL(const TDesC8& aPluginId);     
     
     /**
-      * Restore active view. Will remove all plugins in active view.
+      * Removes all but one view and removes all plugins from it.
       *
       * @return Operation status. KErrNone (success), KErrNotFound
       */
-    IMPORT_C TInt RestoreActiveViewL();        
+    IMPORT_C TInt RestoreRootL();        
 
      /**
-       * Restore whole root configuration. Will remove
-       * everything except one view.
+       * Restore (re-install) default configuration from ROM.
        *
        * @return Operation status. KErrNone (success), KErrNotFound
        */
-    IMPORT_C TInt RestoreRootL();      
+    IMPORT_C TInt RestoreDefaultConfL();      
      
     /**
      * Replace plugin in the active configuration.
--- a/idlehomescreen/sapiwrapper/hspswrapper/src/hspswrapper.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/sapiwrapper/hspswrapper/src/hspswrapper.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -56,6 +56,7 @@
 _LIT8( KKeyConfUid, "confUid" );
 _LIT8( KInterface, "interface" );
 _LIT8( KType, "type" );
+_LIT8( KCopyLogos, "copylogos" );
 _LIT8( KKeyPlugins, "plugins" );
 _LIT8( KKeyItemId, "itemId" );
 _LIT8( KKeyName, "name" );
@@ -369,6 +370,8 @@
                     CleanupStack::Pop(&confVar);
                     confVar.Reset();
                     
+                    plugin->SetTypeL( _L8("application") );
+                    
                     aPlugins.AppendL( plugin );
                     CleanupStack::Pop( plugin );
                     }
@@ -498,6 +501,13 @@
     inParamList.AppendL( typeParam );
     CleanupStack::Pop(&typeParam);
     typeParam.Reset();
+    
+    TLiwGenericParam logosParam;
+    logosParam.SetNameAndValueL( KCopyLogos, TLiwVariant( ETrue ) );
+    logosParam.PushL();
+    inParamList.AppendL( logosParam );
+    CleanupStack::Pop(&logosParam);
+    logosParam.Reset();
 
     iHspsInterface->ExecuteCmdL( KHSPSCommandGetPlugins, inParamList, outParamList ); 
     inParamList.Reset();
@@ -512,7 +522,17 @@
             ProcessPluginsL(*list,aPlugins);
             }
         }
-    outParamList.Reset();
+    
+    // check success         
+    TInt pos(0);    
+    const TLiwGenericParam* outParam = 
+            outParamList.FindFirst( pos, KOutKeyStatus );               
+    if ( outParam )
+        {        
+        User::LeaveIfError( outParam->Value().AsTInt32() );
+        }
+    
+    outParamList.Reset();    
     }
     
 // ---------------------------------------------------------------------------
@@ -765,14 +785,14 @@
 // ---------------------------------------------------------------------------
 // ---------------------------------------------------------------------------
 //
-EXPORT_C TInt CHspsWrapper::RestoreActiveViewL()
+EXPORT_C TInt CHspsWrapper::RestoreRootL()
     {
     CLiwGenericParamList& inParamList = iServiceHandler->InParamListL();
     CLiwGenericParamList& outParamList = iServiceHandler->OutParamListL();
          
     // Compose Liw message
     TLiwGenericParam restoreTypeParam;
-    restoreTypeParam.SetNameAndValueL( KRestore, TLiwVariant( KActive ) );
+    restoreTypeParam.SetNameAndValueL( KRestore, TLiwVariant( KAll ) );
     restoreTypeParam.PushL();
     inParamList.AppendL( restoreTypeParam );
     CleanupStack::Pop( &restoreTypeParam );
@@ -801,14 +821,14 @@
 // ---------------------------------------------------------------------------
 // ---------------------------------------------------------------------------
 //
-EXPORT_C TInt CHspsWrapper::RestoreRootL()
+EXPORT_C TInt CHspsWrapper::RestoreDefaultConfL()
     {
     CLiwGenericParamList& inParamList = iServiceHandler->InParamListL();
     CLiwGenericParamList& outParamList = iServiceHandler->OutParamListL();
          
     // Compose Liw message
     TLiwGenericParam restoreTypeParam;
-    restoreTypeParam.SetNameAndValueL( KRestore, TLiwVariant( KAll ) );
+    restoreTypeParam.SetNameAndValueL( KRestore, TLiwVariant( KActive ) );
     restoreTypeParam.PushL();
     inParamList.AppendL( restoreTypeParam );
     CleanupStack::Pop( &restoreTypeParam );
--- a/idlehomescreen/widgetmanager/gfx/add_widget_button.svg	Mon Mar 15 12:39:47 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948)  -->
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="50px"
-	 height="36px" viewBox="0 0 50 36" enable-background="new 0 0 50 36" xml:space="preserve">
-<g id="Layer_2">
-</g>
-<g id="Layer_1">
-	<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="24.9995" y1="0" x2="24.9995" y2="36.0005">
-		<stop  offset="0" style="stop-color:#79CD19"/>
-		<stop  offset="1" style="stop-color:#4A9826"/>
-	</linearGradient>
-	<path fill="url(#SVGID_1_)" d="M50,31c0,2.762-2.239,5-5,5H5c-2.762,0-5-2.238-5-5V5c0-2.761,2.238-5,5-5h40c2.761,0,5,2.239,5,5
-		V31z"/>
-	<polygon fill="#E6E6E6" points="16.515,21.084 22.015,21.084 22.015,26.585 22.015,27.586 23.015,27.586 27.015,27.586 
-		28.016,27.586 28.016,26.585 28.016,21.084 33.515,21.084 34.516,21.084 34.516,20.083 34.516,16.083 34.516,15.082 33.515,15.082 
-		28.016,15.082 28.016,9.583 28.016,8.582 27.015,8.582 23.015,8.582 22.015,8.582 22.015,9.583 22.015,15.082 16.515,15.082 
-		15.515,15.082 15.515,16.083 15.515,20.082 15.515,21.084 	"/>
-	<path opacity="0.5" fill="#FFFFFF" d="M2.033,33.656C1.398,32.947,1.001,32.023,1.001,31V5c0-2.205,1.795-4,4-4h40
-		c1.15,0,2.182,0.496,2.912,1.276l0.708-0.708C47.711,0.606,46.43,0,45.001,0h-40c-2.762,0-5,2.238-5,5v26
-		c0,1.301,0.509,2.475,1.323,3.365L2.033,33.656z"/>
-	<path opacity="0.2" d="M50.001,31V5c0-1.333-0.529-2.536-1.379-3.433l-0.709,0.708c0.67,0.716,1.088,1.669,1.088,2.724v26
-		c0,2.205-1.795,4-4,4h-40c-1.182,0-2.235-0.525-2.968-1.344l-0.709,0.709C2.238,35.363,3.541,36,5.001,36h40
-		C47.763,36,50.001,33.762,50.001,31z"/>
-	<polygon opacity="0.3" points="22.034,27.578 22.056,27.578 23.058,26.576 23.034,26.576 23.034,20.093 22.034,21.094 
-		22.034,26.577 	"/>
-	<polygon fill="#FFFFFF" points="15.507,21.08 15.507,21.084 16.507,21.084 22.005,21.085 22.005,21.103 23.007,20.102 
-		23.007,20.085 16.507,20.084 16.507,20.08 	"/>
-	<polygon opacity="0.3" points="16.495,20.08 16.495,16.086 22.995,16.086 22.995,9.586 26.994,9.586 26.994,9.613 27.995,8.612 
-		27.995,8.584 26.993,8.584 22.995,8.584 21.993,8.584 21.993,9.585 21.993,15.084 16.495,15.084 15.495,15.084 15.495,16.085 
-		15.495,20.084 15.495,21.08 	"/>
-	<polygon fill="#FFFFFF" points="28.016,8.596 27.015,9.597 27.015,16.069 27.028,16.069 28.029,15.068 28.016,15.068 28.016,9.568 
-			"/>
-	<polygon fill="#FFFFFF" points="23.034,27.584 27.033,27.584 28.035,27.584 28.035,26.583 28.035,21.082 33.533,21.082 
-		34.535,21.082 34.535,20.081 34.535,16.082 34.535,15.088 33.534,16.088 33.534,20.082 27.034,20.082 27.034,26.582 23.058,26.582 
-		22.056,27.584 	"/>
-	<polygon opacity="0.3" points="33.524,16.091 34.525,15.09 34.525,15.084 33.523,15.084 28.039,15.084 27.038,16.085 
-		33.524,16.085 	"/>
-</g>
-</svg>
--- a/idlehomescreen/widgetmanager/inc/wminstaller.h	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/widgetmanager/inc/wminstaller.h	Wed Mar 31 21:17:19 2010 +0300
@@ -105,8 +105,10 @@
      * wrt widget that is currently been uninstalled
      */    
     TUid iUid;
-    
-    
+
+    /**
+     * mime type of widget currently being uninstalled.
+     */    
     HBufC8* iMime;
     
     /** reference to plugin root */
--- a/idlehomescreen/widgetmanager/inc/wmmaincontainer.h	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/widgetmanager/inc/wmmaincontainer.h	Wed Mar 31 21:17:19 2010 +0300
@@ -153,7 +153,7 @@
 	/** 
 	 * executes findbox activation 
 	 */
-	void ActivateFindPaneL( TBool aActivateAdabtive = EFalse );
+	void ActivateFindPaneL( TBool aActivateAdaptive = EFalse );
 
     /** 
 	 * executes findbox deactivation 
@@ -302,6 +302,7 @@
     void StartLoadingWidgetsL();
     void RemoveCtrlsFromStack();
     void UpdateFocusMode();
+    void ResetFocus( TDrawNow aDrawNow = ENoDrawNow );
     CCoeControl* FindChildControlByPoint( const TPoint& aPoint );
     void HandleFindSizeChanged();
     TKeyResponse MoveFocusByKeys(
--- a/idlehomescreen/widgetmanager/inc/wmwidgetdata.h	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/widgetmanager/inc/wmwidgetdata.h	Wed Mar 31 21:17:19 2010 +0300
@@ -59,6 +59,14 @@
             ECps // wrt widgets included in this category
             };
 
+    /** wrt widget type */
+    enum TWrtType
+            {
+            EUnIdentified,
+            EWgz,                    
+            EWgt
+            };
+
 public: // construction
     /**
      * static constructor
@@ -199,6 +207,9 @@
     /** widget type */
     inline TWidgetType WidgetType() const;
 
+    /** wrt widget type */
+    inline TWrtType WrtType() const;
+    
     /** running install animation index */
     inline TInt InstallAnimationIndex() const;
 
@@ -265,8 +276,11 @@
     /** The CHsContentInfo that corresponds to this list row */
     CHsContentInfo*     iHsContentInfo;
 
-    /** type oif the widget */
+    /** type of the widget */
     TWidgetType         iWidgetType;
+    
+    /** type of the wrt widget */    
+    TWrtType            iWrtType;
 
     /** persistent order of widgets (used in sorting) */
     const CWmPersistentWidgetOrder* iPersistentWidgetOrder;
--- a/idlehomescreen/widgetmanager/inc/wmwidgetdata.inl	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/widgetmanager/inc/wmwidgetdata.inl	Wed Mar 31 21:17:19 2010 +0300
@@ -43,6 +43,10 @@
     inline CWmWidgetData::TWidgetType CWmWidgetData::WidgetType() const
         { return iWidgetType; }
 
+    /** wrt widget type */
+    inline CWmWidgetData::TWrtType CWmWidgetData::WrtType() const
+        { return iWrtType; }
+    
     /** the logo bitmap */
     inline const CFbsBitmap* CWmWidgetData::LogoImage()
         { return iLogoImage; }
--- a/idlehomescreen/widgetmanager/src/wmeffectmanager.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/widgetmanager/src/wmeffectmanager.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -126,6 +126,12 @@
         RemoveEffect( &aEffect );
         return;
         }
+    
+    // Must give some time before starting effect, because otherwise
+    // fullscreen effect may contain unwanted parts (dialog, note, etc.)
+    // which was shown when fullscreen effect is about to be started
+    iCoeEnv.WsSession().Finish();
+    User::After( 1000 );
 
     const TInt flags( AknTransEffect::TParameter::EActivateExplicitCancel );
     const TUid targetAppUid( iAvkonAppUi->Application()->AppDllUid() );
--- a/idlehomescreen/widgetmanager/src/wminstaller.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/widgetmanager/src/wminstaller.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -17,6 +17,7 @@
 */
 
 #include <e32base.h>
+#include <eikenv.h>
 
 #include "wminstaller.h"
 #include "wmwidgetdata.h"
@@ -26,6 +27,14 @@
 // CONSTANTS
 _LIT8( KWrtMime, "application/x-nokia-widget");
 
+/* 
+  Note: 
+  same mime type as above is used for wgz & wgt in wk9.
+  \ext\mw\cwrt\app\platform\s60\WidgetRecognizer\
+  Uninstalltion will fail with KErrNotFound for now.
+*/
+_LIT8( KCWrtMime, "application/widget");
+
 // ---------------------------------------------------------
 // CWmInstaller::NewL
 // ---------------------------------------------------------
@@ -68,7 +77,6 @@
 //
 void CWmInstaller::ConstructL()
     {
-    iMime = KWrtMime().AllocL();
     iIdle = CIdle::NewL( CActive::EPriorityStandard );
     }
 
@@ -110,14 +118,18 @@
 //
 void CWmInstaller::RunL()
     {
-    // error has occurred, stop uninstallation animation.
-    if ( iStatus != KErrNone )
-        { 
-        CWmWidgetData* widget = iWmPlugin.GetUninstalledWidgetByUid( iUid );
+    // if error has occurred, stop uninstallation animation.
+    if ( iStatus.Int() != KErrNone )
+        {
+        CWmWidgetData* widget = 
+                iWmPlugin.GetUninstalledWidgetByUid( iUid );
         if ( widget )
             {
             widget->StopUninstallAnimationL();
             }
+        
+        // display error note
+        CEikonEnv::Static()->HandleError( iStatus.Int() );
         }
     
     // close SWI session
@@ -172,9 +184,18 @@
         {
         User::Leave( KErrInUse );
         }
+    else if ( !aData || aData->PublisherUid() == KNullUid ||
+        aData->WrtType() == CWmWidgetData::EUnIdentified )
+        {
+        User::Leave( KErrArgument );
+        }
     else
         {
+        delete iMime;
+        iMime = NULL;
         User::LeaveIfError( iInstaller.Connect() );
+        iMime = ( ( aData->WrtType() == CWmWidgetData::EWgt ) ?
+            KCWrtMime().AllocL() : KWrtMime().AllocL() );
         iUid = aData->PublisherUid();
         SwiUI::TUninstallOptions optionsUninstall;
         optionsUninstall.iBreakDependency = SwiUI::EPolicyAllowed;
--- a/idlehomescreen/widgetmanager/src/wmmaincontainer.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/widgetmanager/src/wmmaincontainer.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -724,7 +724,9 @@
     {
     if ( !iClosingDown  )
         {
-		
+        TBool eatEvent( EFalse );
+        TPointerEvent event( aPointerEvent );
+
 		if (aPointerEvent.iType == TPointerEvent::EButton1Down)
 			{
 	        // Check if user clicked a child control
@@ -748,9 +750,37 @@
 	            // repaint
 	            DrawDeferred();
 	            }
+	        
+	        // stylus popup should not be opened when uninstalling. 
+	        // ou1cimx1#302973
+	        if ( control == iWidgetsList && iWidgetsList->IsFocused() )
+	             {
+	             TInt itemIndex = iWidgetsList->CurrentListBoxItemIndex();
+	             TBool itemPointed = iWidgetsList->View()->XYPosToItemIndex(
+	                                     aPointerEvent.iPosition,
+	                                     itemIndex );
+	             if ( itemIndex >= 0 && itemPointed )
+	                 {
+	                 CWmWidgetData& data = iWidgetsList->WidgetData( itemIndex );                
+	                 if ( &data && data.IsUninstalling() )
+	                     {
+                         event.iType = TPointerEvent::EButton1Up;
+	                     eatEvent = ETrue;
+	                     }
+	                 }
+	             }
+	        
 			}
-        
-        CCoeControl::HandlePointerEventL( aPointerEvent );
+		
+		// set downkey event to base class
+		CCoeControl::HandlePointerEventL( aPointerEvent );
+		
+		// send key up event if selected widget is being uninstalled.
+		// stylus popup shouldn't be displayed for this item.
+		if ( eatEvent )
+		    {
+            CCoeControl::HandlePointerEventL( event );
+		    }
         }
     }
 
@@ -950,7 +980,8 @@
     if ( WidgetSelected() && data && !data->IsUninstalling() )
         {
         if ( data->WidgetType() == CWmWidgetData::ECps &&
-                data->PublisherUid() != KNullUid )
+            data->PublisherUid() != KNullUid && 
+            data->WrtType() != CWmWidgetData::EUnIdentified )
             {
             retVal = ETrue;
             }
@@ -1025,37 +1056,20 @@
 void CWmMainContainer::AddWidgetToHomeScreenL()
     {
     CWmWidgetData* data = iWidgetsList->WidgetData();
-    if ( !iClosingDown && data && !data->IsUninstalling() )
+    if ( !iClosingDown )
         {
         if ( iFindbox && iFindPaneIsVisible )
             {
             DeactivateFindPaneL();
             }
-
-        // set add to homescreen to be executed later
-        iWmPlugin.SetPostponedCommandL(
-            CWmPlugin::EAddToHomescreen,
-            data->HsContentInfo() );
-
-        // check if we can add any widgets to hs. 
-        TBool hsContentFull = ETrue;
-        for ( TInt i=0; i<iWidgetsList->WidgetDataCount(); i++ )
+        
+        if ( data && !data->IsUninstalling() )
             {
-            CHsContentInfo& info = iWidgetsList->WidgetData(i).HsContentInfo();
-            if ( info.CanBeAdded() ) 
-                {
-                hsContentFull = EFalse;
-                break;
-                }
-            }
-        
-        // deactivate wm if there's not enough space to add widget to hs.
-        if ( !data->HsContentInfo().CanBeAdded() && !hsContentFull )
-            {
-            iWmPlugin.ExecuteCommandL();
-            }
-        else
-            {
+            // set add to homescreen to be executed later
+            iWmPlugin.SetPostponedCommandL(
+                        CWmPlugin::EAddToHomescreen,
+                        data->HsContentInfo() );
+
             iWmPlugin.CloseView();
             }
         }
@@ -1089,11 +1103,14 @@
 // CWmMainContainer::ActivateFindPaneL
 // ---------------------------------------------------------------------------
 //
-void CWmMainContainer::ActivateFindPaneL( TBool aActivateAdabtive )
+void CWmMainContainer::ActivateFindPaneL( TBool aActivateAdaptive )
     {
     if ( iFindbox && !iFindPaneIsVisible &&
             iWidgetsList->Model()->NumberOfItems() > KMinWidgets )
         {
+        // reset focus
+        ResetFocus();
+        
         // set column filter flag
         TBitFlags32 bitFlag;
         bitFlag.ClearAll(); // clear all columns
@@ -1122,7 +1139,7 @@
         // layout listbox and findbox
         LayoutControls();        
         
-        if ( aActivateAdabtive )
+        if ( aActivateAdaptive )
             {
             iFindbox->ShowAdaptiveSearchGrid();
             }
@@ -1162,11 +1179,12 @@
             m->Filter()->ResetFilteringL();
             m->RemoveFilter();
             }
+        
+        ResetFocus();
 
-        iFindbox->MakeVisible( EFalse );
-        iFindbox->SetFocus( EFalse );
-        iFindPaneIsVisible = EFalse;
-        iWidgetsList->SetFindPaneIsVisible( EFalse );
+        iFindbox->MakeVisible( EFalse );        
+        iFindPaneIsVisible = EFalse;        
+        iWidgetsList->SetFindPaneIsVisible( EFalse );       
         
         LayoutControls();
 
@@ -1407,22 +1425,36 @@
 //
 void CWmMainContainer::ProcessForegroundEvent( TBool aForeground )
     {
-    if ( 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.
-        CCoeControl* control = NULL;
-        CCoeControlArray::TCursor cursor = Components().Begin();
-        while( ( control = cursor.Control<CCoeControl>() ) != NULL )
+        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() )
             {
-            if( control->IsVisible() && control->IsFocused() )
-                {
-                control->SetFocus( EFalse, EDrawNow );
-                }
-            cursor.Next();
+            control->SetFocus( EFalse, aDrawNow );
             }
-        UpdateFocusMode();
+        cursor.Next();
         }
+    UpdateFocusMode();
     }
 
 // ----------------------------------------------------
--- a/idlehomescreen/widgetmanager/src/wmplugin.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/widgetmanager/src/wmplugin.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -86,7 +86,8 @@
 void CWmPlugin::ConstructL()
     {
     iWmMainContainer = NULL;
-	
+    iPostponedCommand = ENone;
+    
     // store static view app ui
     CEikonEnv* eikonEnv = CEikonEnv::Static();
     if ( !eikonEnv ) User::Leave( KErrUnknown );
@@ -164,11 +165,12 @@
     if ( iViewAppUi->GetActiveViewId( activeViewId ) == KErrNone &&
         activeViewId.iViewUid == TUid::Uid( EWmMainContainerViewId ) )
         {
-        if ( iPreviousViewUid.iViewUid == KNullUid )
+        if ( iPreviousViewUid.iViewUid == KNullUid && 
+            iViewAppUi->GetDefaultViewId( iPreviousViewUid ) != KErrNone ) 
             {            
             iPreviousViewUid.iAppUid = iViewAppUi->Application()->AppDllUid();
             iPreviousViewUid.iViewUid = TUid::Uid( 1 );
-            }        
+            }
         return ETrue;
         }
 
@@ -184,12 +186,16 @@
     if ( IsActive() )
         {
         iWmMainContainer->SetClosingDown( ETrue );
-        TRAP_IGNORE( 
+        TRAPD( err, 
             iEffectManager->BeginFullscreenEffectL(
                 KAppExitEffectStyle );
             iViewAppUi->ActivateLocalViewL(
                 iPreviousViewUid.iViewUid ); 
             );
+        if ( KErrNone != err )
+            {
+            iWmMainContainer->SetClosingDown( EFalse );
+            }
         }
     }
 
@@ -198,12 +204,11 @@
 // ---------------------------------------------------------
 //
 void CWmPlugin::MainViewActivated( 
-                    const TVwsViewId& aViewId,
+                    const TVwsViewId& /*aViewId*/,
                     CWmMainContainer* aWmMainContainer )
     {
-    iPreviousViewUid = aViewId;
-    // verify if we have correct viewid to activate.
-    if ( iPreviousViewUid.iViewUid == KNullUid )
+    // previous view for Wm is always default view.
+    if ( iViewAppUi->GetDefaultViewId( iPreviousViewUid ) != KErrNone )
         {
         // use default if we got wrong viewid as previous view
         iPreviousViewUid.iAppUid = iViewAppUi->Application()->AppDllUid();
@@ -234,7 +239,13 @@
         iEffectManager->UiRendered();
         }
 
-    TRAP_IGNORE( ExecuteCommandL(); );
+    TRAPD( err, ExecuteCommandL(); );
+    if ( KErrNone != err )
+        {
+        delete iPostponedContent;
+        iPostponedContent = NULL;
+        iPostponedCommand = ENone;
+        }
     }
 
 // ---------------------------------------------------------
--- a/idlehomescreen/widgetmanager/src/wmportalbutton.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/widgetmanager/src/wmportalbutton.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -525,36 +525,15 @@
     
     MAknsSkinInstance* skin = AknsUtils::SkinInstance();
     
-    TRgb textColor( layoutText.Color() );
-
-    if ( IsDimmed() )
-        {
-        const TInt KAlpha = 77;
-        textColor = iEikonEnv->ControlColor( EColorButtonText, *this );        
-        // try over-writing color from theme, ignore error.
-        AknsUtils::GetCachedColor( 
-                skin, textColor, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6 );
-        textColor.SetAlpha( KAlpha );
-        }
-    else if ( IsFocused() || iButtonPressed )
+    TRgb textColor;
+    TInt err = AknsUtils::GetCachedColor( 
+                    skin, 
+                    textColor, 
+                    KAknsIIDQsnTextColors, 
+                    EAknsCIQsnTextColorsCG63 );
+    if ( err != KErrNone )
         {
-        textColor = iEikonEnv->ControlColor( EColorButtonTextPressed, *this );
-        // try over-writing color from theme, ignore error.
-        AknsUtils::GetCachedColor( 
-                skin, textColor, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG10 );
-        }
-    else if ( textColor.Internal() <= 0 )
-        {
-        textColor = iEikonEnv->ControlColor( EColorButtonText, *this );
-        // try over-writing color from theme, ignore error.
-        AknsUtils::GetCachedColor( 
-                skin, textColor, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6 );        
-        }
-    else
-        {
-        // default for button
-        AknsUtils::GetCachedColor( 
-                skin, textColor, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG80 ); 
+        textColor = layoutText.Color(); 
         }
     aGc.SetPenColor( textColor);
     
--- a/idlehomescreen/widgetmanager/src/wmwidgetdata.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/widgetmanager/src/wmwidgetdata.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -83,6 +83,7 @@
     iLogoImageMask = NULL;
     iHsContentInfo = NULL;
     iWidgetType = CWmWidgetData::EUnknown;
+    iWrtType = CWmWidgetData::EUnIdentified;
     iPublisherUid = KNullUid;
     iLogoSize = aLogoSize;
     iAnimationTimer = NULL;
@@ -385,7 +386,28 @@
         if ( widgetUid != 0 )
             {
             // WRT widget
-            iPublisherUid = TUid::Uid( widgetUid );            
+            iPublisherUid = TUid::Uid( widgetUid );
+            
+            // wrt widget type  
+            CWidgetPropertyValue* value( NULL );
+            value = aRegistryClientSession->GetWidgetPropertyValueL( 
+                    iPublisherUid, ENokiaWidget );
+            if ( value && *value == 1 )
+                {
+                iWrtType = CWmWidgetData::EWgz;
+                }
+            else if ( value && *value == 2 )
+                {
+                iWrtType = CWmWidgetData::EWgt;
+                }
+            else
+                {
+                iWrtType = CWmWidgetData::EUnIdentified;
+                }
+
+            delete value;
+            value = NULL;
+
             }
         else
             {
@@ -670,6 +692,7 @@
 //
 void CWmWidgetData::StopUninstallAnimationL()
     {
+    iAsyncUninstalling = EFalse;
     DestroyAnimData();
     // restore widget name
     if ( iWidgetName )
@@ -680,7 +703,6 @@
         }
     
     FireDataChanged(); //redraw
-    iAsyncUninstalling = EFalse;
     }
 
 // End of file
--- a/idlehomescreen/xmluicontroller/inc/appui.h	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluicontroller/inc/appui.h	Wed Mar 31 21:17:19 2010 +0300
@@ -80,6 +80,8 @@
     
     void HandleEnterEditModeL( TBool aEnter );
        
+    void HandleUiReadyEventL();
+    
 private:
     // new functions
     
--- a/idlehomescreen/xmluicontroller/inc/onlineofflinehelper.h	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluicontroller/inc/onlineofflinehelper.h	Wed Mar 31 21:17:19 2010 +0300
@@ -193,9 +193,12 @@
     
     enum
         {
+        // if defined Home Screen is in online mode.
         EOnline,
-        EUtilizeOnline,
+        // if defined there is no need to show automatic offline note 
+        // and automatic offline setting is disabled.
         ERoamingShown,
+        // if defined phone profile is offline.
         EOfflineProfile
         };
 private: 
--- a/idlehomescreen/xmluicontroller/src/appui.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluicontroller/src/appui.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -85,14 +85,14 @@
     // Always reset the phoneforward P&S key on startup just in case
     RProperty::Set( KPSUidAiInformation,
       KActiveIdleForwardNumericKeysToPhone, EPSAiForwardNumericKeysToPhone );
-
+        
     iEditModeTitle = StringLoader::LoadL( R_QTN_HS_TITLE_EDITMODE );
     
     // Initialize with empty title pane so it's not shown on startup.                  
     __HEAP("XML UI: Init - Construct App UI")
+    
     __TIME("XML UI: CXnAppUiAdapter::ConstructL",
-        CXnAppUiAdapter::ConstructL();       
-    ) 
+        CXnAppUiAdapter::ConstructL() );       
       
     CAknAppUiBase::SetKeyEventFlags( CAknAppUiBase::EDisableSendKeyShort |
                                      CAknAppUiBase::EDisableSendKeyLong );
@@ -167,20 +167,8 @@
 //
 void CAppUi::ActivateUi()
     {
-    __TICK( "CAppUi::ActivateUi" );
-    
-    TVwsViewId activeViewId;
-        
-    TInt err( GetActiveViewId( activeViewId ) );
-    
-    if ( err == KErrNotFound )
-        {    
-        // Get Xml Ui view id
-        TVwsViewId xmlViewId( View().ViewId() );
-    
-        TRAP_IGNORE( ActivateLocalViewL( xmlViewId.iViewUid ) );              
-        }                  
-
+    __PRINTS( "*** CAppUi::ActivateUi" );
+       
     if ( iDeviceStatusInfo.Uid() == TUid::Null() )
         {
         __PRINTS( "*** CAppUi::ActivateUI - Loading DeviceStatus plugin" );
@@ -192,15 +180,26 @@
             KDeviceStatusPluginName, KNs ); 
                            
         iUiCtl.FwStateHandler()->LoadPlugin( 
-            iDeviceStatusInfo, EAiFwSystemStartup );                                       
-        }
-    
-    TRAP_IGNORE( iUiCtl.FwEventHandler()->HandleUiReadyEventL( iUiCtl ) );
+            iDeviceStatusInfo, EAiFwSystemStartup );                                           
+        }        
     
     __PRINTS( "*** CAppUi::ActivateUi - done" );
     }
 
 // ----------------------------------------------------------------------------
+// CAppUi::HandleUiReadyEventL()
+// ----------------------------------------------------------------------------
+//
+void CAppUi::HandleUiReadyEventL()
+    {
+    __PRINTS( "*** CAppUi::HandleUiReadyEventL" );
+    
+    iUiCtl.FwEventHandler()->HandleUiReadyEventL( iUiCtl );
+    
+    __PRINTS( "*** CAppUi::HandleUiReadyEventL - done" );    
+    }
+
+// ----------------------------------------------------------------------------
 // CAppUi::PrepareToExit()
 // ----------------------------------------------------------------------------
 //
--- a/idlehomescreen/xmluicontroller/src/contentrenderer.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluicontroller/src/contentrenderer.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -268,11 +268,10 @@
                 {
                 HBufC* id2( PropertyValueL( aArray[j].Target(), 
                    AiUiDef::xml::property::KId ) );
+                CleanupStack::PushL( id2 );
                 
                 if ( id2 )
                     {
-                    CleanupStack::PushL( id2 );
-                
                     // Same id and same policy
                     if ( i != j && id->Compare( *id2 ) == 0 &&                          
                      ( aArray[i].Policy().Compare( aArray[j].Policy()) == 0 ) ) 
@@ -571,15 +570,22 @@
     {
     TInt error( KErrNone );
     TInt retval( KErrNone );
+        
+    __PRINTS("*** XML UI: CContentRenderer::CanPublish ***");
     
-    __PRINTS("*** UC: Init - Content Validation ***");
+    __PRINT( __DBG_FORMAT( "* Publisher name: %S, uid: 0x%x" ),          
+        &aPlugin.PublisherInfo().Name(), aPlugin.PublisherInfo().Uid().iUid ); 
+                                  
 	__TIME("UC: Content Validation",
-        TRAP( error, retval = CanPublishL( aPlugin, aContent, aIndex ) );
-        );
-    __HEAP("UC: Content Validation");
-    __PRINTS("*** UC: Done - Content Validation ***");
-
-    return ( error == KErrNone && retval == KErrNone );
+        TRAP( error, retval = CanPublishL( aPlugin, aContent, aIndex ) ) );
+            
+	__HEAP("UC: Content Validation");
+    
+	TBool ret( error == KErrNone && retval == KErrNone );
+	
+	__PRINT( __DBG_FORMAT("*** XML UI: CContentRenderer::CanPublish - done, CanPublish: %d ***"), ret );
+    
+    return ret;
     }
 
 // ----------------------------------------------------------------------------
@@ -593,18 +599,23 @@
 	TInt error( KErrNone );
 	TInt retval( KErrNone );
 	
-	__PRINTS("*** UC: Init - Content Publishing (Resource) ***");
+	__PRINTS("*** XML UI: CContentRenderer::Publish (Resource) ***");
+	
+    __PRINT( __DBG_FORMAT( "* Publisher name: %S, uid: 0x%x" ),          
+        &aPlugin.PublisherInfo().Name(), aPlugin.PublisherInfo().Uid().iUid ); 
+		
 	__TIME("UC: Content Publishing (Resource)",
-    	TRAP( error, retval = DoPublishL( aPlugin, aContent, aResource, aIndex ) );
-    );
+    	TRAP( error, retval = DoPublishL( aPlugin, aContent, aResource, aIndex ) ) );
+    
     __HEAP("UC: Content Publishing (Resource)");
-    __PRINTS("*** UC: Done - Content Publishing (Resource) ***");
-
+    
     if( !error && retval )
         {
         error = retval;
         }
     
+    __PRINT( __DBG_FORMAT("*** XML UI: CContentRenderer::Publish (Resource) - done, error: %d ***"), error );
+            
     return error;
     }
 
@@ -619,18 +630,23 @@
     TInt error( KErrNone );
     TInt retval( KErrNone );
     
-    __PRINTS("*** UC: Init - Content Publishing (Value-Text) ***");
+    __PRINTS("*** XML UI: CContentRenderer::Publish (Value-Text) ***");
+    
+    __PRINT( __DBG_FORMAT( "* Publisher name: %S, uid: 0x%x" ),          
+        &aPlugin.PublisherInfo().Name(), aPlugin.PublisherInfo().Uid().iUid ); 
+    
    	__TIME("UC: Content Publishing (Value-Text)",
-    	TRAP( error, retval = DoPublishL( aPlugin, aContent, aText, aIndex ) );
-    );
+    	TRAP( error, retval = DoPublishL( aPlugin, aContent, aText, aIndex ) ) );
+       	
     __HEAP("UC: Content Publishing (Value-Text)");
-    __PRINTS("*** UC: Done - Content Publishing (Value-Text) ***");
-
+        
     if( !error && retval )
         {
         error = retval;
         }
 
+    __PRINT( __DBG_FORMAT("*** XML UI: CContentRenderer::Publish (Value-Text) - done, error: %d ***"), error );
+    
     return error;
     }
 
@@ -645,18 +661,23 @@
     TInt error( KErrNone );
     TInt retval( KErrNone );
     
-    __PRINTS("*** UC: Init - Content Publishing (Value-Buf) ***");
+    __PRINTS("*** XML UI: CContentRenderer::Publish (Value-Buf) ***");
+    
+    __PRINT( __DBG_FORMAT( "* Publisher name: %S, uid: 0x%x" ),          
+        &aPlugin.PublisherInfo().Name(), aPlugin.PublisherInfo().Uid().iUid ); 
+    
     __TIME("UC: Content Publishing (Value-Buf)",
-    	TRAP( error, retval = DoPublishL( aPlugin, aContent, aBuf, aIndex ) );
-    )
+    	TRAP( error, retval = DoPublishL( aPlugin, aContent, aBuf, aIndex ) ) );
+    
     __HEAP("UC: Content Publishing (Value-Buf)");
-    __PRINTS("*** UC: Done - Content Publishing (Value-Buf) ***");
-
+       
     if( !error && retval )
         {
         error = retval;
         }
     
+    __PRINT( __DBG_FORMAT("*** XML UI: CContentRenderer::Publish (Value-Buf) - done, error: %d ***"), error );
+    
     return error;
     }
 
@@ -671,18 +692,23 @@
     TInt error( KErrNone );
     TInt retval( KErrNone );
     	
-	__PRINTS("*** UC: Init - Content Publishing (Value-RFile) ***");
+	__PRINTS("*** XML UI: CContentRenderer::Publish (Value-RFile) ***");
+	
+    __PRINT( __DBG_FORMAT( "* Publisher name: %S, uid: 0x%x" ),          
+        &aPlugin.PublisherInfo().Name(), aPlugin.PublisherInfo().Uid().iUid ); 
+	
     __TIME("UC: Content Publishing (Value-RFile)",
-    	TRAP( error, retval = DoPublishL( aPlugin, aContent, aFile, aIndex ) );
-    );
+    	TRAP( error, retval = DoPublishL( aPlugin, aContent, aFile, aIndex ) ) );
+
     __HEAP("UC: Content Publishing (Value-RFile)");
-    __PRINTS("*** UC: Done - Content Publishing (Value-RFile) ***");
-
+        
     if( !error && retval )
         {
         error = retval;
         }
     
+    __PRINT( __DBG_FORMAT("*** XML UI: CContentRenderer::Publish (Value-RFile) - done, error: %d ***"), error );
+    
     return error;
     }
 
@@ -697,18 +723,23 @@
     TInt error( KErrNone );
     TInt retval( KErrNone );
             
-    __PRINTS("*** UC: Init - Content Publishing (Clean) ***");
+    __PRINTS("*** XML UI: CContentRenderer::Clean (Clean) ***");
+    
+    __PRINT( __DBG_FORMAT( "* Publisher name: %S, uid: 0x%x" ),          
+        &aPlugin.PublisherInfo().Name(), aPlugin.PublisherInfo().Uid().iUid ); 
+        
     __TIME("UC: Content Publishing (Clean)",
-    	TRAP( error, retval = DoCleanL( aPlugin, aContent, aIndex ) );
-    );
+    	TRAP( error, retval = DoCleanL( aPlugin, aContent, aIndex ) ) );
+    
     __HEAP("UC: Content Publishing (Clean)");
-    __PRINTS("*** UC: Done - Content Publishing (Clean) ***");
-
+       
     if( !error && retval )
         {
         error = retval;
         }
     
+    __PRINT( __DBG_FORMAT("*** XML UI: CContentRenderer::Clean (Clean) - done, error: %d ***"), error );
+    
     return error;
     }
 
@@ -1275,8 +1306,12 @@
     {
     LeaveIfNull( aElement, KErrArgument );
     
+    __PRINTS("*** XML UI: CContentRenderer::ProcessTransactionElementL ***");
+    
     if ( IsImmediateMode() || iStack->IsEmpty() )
-        {
+        {      
+        __PRINTS("* Immediate transaction mode, or transaction stack is empty" );
+        
         // No transaction. Commit element immediately
         TBool layoutChanged( EFalse );
         
@@ -1297,9 +1332,13 @@
     else
         {
         // Append transaction element to transaction
+        __PRINTS("* Adding transaction element to stack");
+        
         MTransaction* tr( iStack->Top() );
         tr->Append( *aElement );
         }
+    
+    __PRINTS("*** XML UI: CContentRenderer::ProcessTransactionElementL - done ***");
     }
 
 // ----------------------------------------------------------------------------
--- a/idlehomescreen/xmluicontroller/src/onlineofflinehelper.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluicontroller/src/onlineofflinehelper.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -166,14 +166,11 @@
 //
 TBool COnlineOfflineHelper::ShowOnlineItem() const
     {    
-    if ( iUiCtl.FwStateHandler()->OnlineStateInUse() )
-    	{
-    	TInt value ( KErrNotFound );
-    	if ( iUiCtl.SettingsRepository().Get(  KAIWebStatus, value ) == KErrNone )
-    		{
-    		return ( !value );
-    		}
-    	}
+    TInt value ( KErrNotFound );
+    if ( iUiCtl.SettingsRepository().Get(  KAIWebStatus, value ) == KErrNone )
+        {
+        return ( !value );
+        }
     return EFalse;
     }
 
@@ -183,14 +180,11 @@
 //
 TBool COnlineOfflineHelper::ShowOfflineItem() const
     {
-    if ( iUiCtl.FwStateHandler()->OnlineStateInUse() )
-		{
-		TInt value ( KErrNotFound );
-		if ( iUiCtl.SettingsRepository().Get(  KAIWebStatus, value ) == KErrNone )
-			{
-			return ( value );
-			}
-		}
+    TInt value ( KErrNotFound );
+    if ( iUiCtl.SettingsRepository().Get(  KAIWebStatus, value ) == KErrNone )
+        {
+        return ( value );
+        }
      return EFalse;
     }
 
@@ -201,20 +195,24 @@
 void COnlineOfflineHelper::ProcessOnlineStateL( TBool aOnline )
     {
     // User has selected online/offline item from menu
-    if( iUiCtl.FwStateHandler()->OnlineStateInUse() )
-    	{
-    	// Don't show R_YES_NO_HS_ONLINE query as user selected online
-    	if ( aOnline )
-    	    {
-			iFlags.Set( EOnline );
-			}
-    	else
-    	    {
-    		iFlags.Clear( EOnline );
-    		}
-    	 
-    	SetOnline( aOnline );
-    	}
+    // Don't show R_YES_NO_HS_ONLINE query as user selected online
+    if ( aOnline )
+        {
+        iFlags.Set( EOnline );
+        if ( iCurrentNwStatus == ENWRegisteredRoaming )
+            {
+            // When user allready is in foreing network and sets
+            // HS online we want to disable automatic offline setting and not
+            // show note QTN_HS_AUTOMATIC_OFFLINE
+            iFlags.Set( ERoamingShown );
+            }
+        }
+    else
+        {
+        iFlags.Clear( EOnline );
+        }
+     
+    SetOnline( aOnline );
     }
 
 // ----------------------------------------------------------------------------
@@ -264,22 +262,38 @@
                     CurrentNetworkSetting();
                     if( ( iRoamingNetwork == ECmCellularDataUsageConfirm
                           || iRoamingNetwork == ECmCellularDataUsageDisabled )
-                            && iFlags.IsSet( EOnline ) )
+                          && iFlags.IsSet( EOnline )
+                          && iFlags.IsClear( ERoamingShown ) )
                         {
                         // Process to offline state. 
                         // Don't change the user selection.
                         SetOnline( EFalse );
                         // Show roaming notification
 						CAknGlobalNote* note = CAknGlobalNote::NewLC();
-						HBufC* msg( StringLoader::LoadLC( R_QTN_HS_AUTOMATIC_OFFLINE ) );
+						HBufC* msg( StringLoader::LoadLC( 
+						        R_QTN_HS_AUTOMATIC_OFFLINE ) );
 						note->SetSoftkeys(R_AVKON_SOFTKEYS_OK_EMPTY); 
 						note->ShowNoteL( EAknGlobalInformationNote, *msg );
-						CleanupStack::PopAndDestroy( 2, note ); // msg    
+						CleanupStack::PopAndDestroy( 2, note ); // msg
+						
+						// set roming shown flag. We want to show 
+						// romign note only once while user stays in foreign
+						// network. If user sets the HS to online this note is 
+						// not showed again and HS will stay online in foreign
+						// network.
+						iFlags.Set( ERoamingShown );
                         }
                     break;
 
                 case ENWRegisteredOnHomeNetwork:
                     _LOG1( _L(" Home Network Activated "));
+                    if ( iFlags.IsSet( ERoamingShown  ) )
+                        {
+                        // Clear ERoamingShown when user returns to home 
+                        // network.
+                        iFlags.Clear( ERoamingShown );
+                        }
+                    
                     iCurrentNwStatus = aNWInfo.iRegistrationStatus;
                     CurrentNetworkSetting();
                     if( iHomeNetwork == ECmCellularDataUsageAutomatic )
--- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockface.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockface.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -113,16 +113,6 @@
 
     CXnNodePluginIf* date( aAdapter.Date() );
 
-    TInt ampmWidth( 0 );
-
-    if( TLocale().TimeFormat() == ETime12 )
-        {
-        // Measure the full width of the ampm string 
-        ampmWidth = AknBidiTextUtils::MeasureTextBoundsWidth( *ampmFont, ampm, 
-            CFont::TMeasureTextInput::EFVisualOrder );
-        }
-
-
     const TInt deltaHeight( aRect.Height() - clockFont->TextPaneHeight() );
     TInt offset( clockFont->TextPaneTopToBaseline() + deltaHeight / 2 );
 
--- a/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/inc/xnnewstickercontrol.h	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/inc/xnnewstickercontrol.h	Wed Mar 31 21:17:19 2010 +0300
@@ -90,7 +90,13 @@
     	 * @return The title of the given index.
     	 */
         const TDesC& Title(TInt aIndex) const;
-
+		
+		/**
+		 * Returns last index from iTitleTexts
+		 * Which is not empty string
+		 */
+        TInt LastIndexWithContent();
+        
         /**
          * Delete all titles.
          */
--- a/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewstickercontrol.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewstickercontrol.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -174,6 +174,22 @@
     }
 
 // -----------------------------------------------------------------------------
+// CXnNewstickerControl::LastIndexWithContent
+// -----------------------------------------------------------------------------
+//
+TInt CXnNewstickerControl::LastIndexWithContent()
+    {
+    for( TInt i(iTitleTexts.Count()-1); i>=0; --i )
+        {
+        if ( iTitleTexts[ i ]->Des().Length() > 0 )
+            {
+            return i;
+            }
+        }
+    return KErrNotFound;
+    }
+
+// -----------------------------------------------------------------------------
 // CXnNewstickerControl::ClearTitles
 // -----------------------------------------------------------------------------
 //
@@ -252,22 +268,38 @@
     {
     TBool ret( EFalse );
     TInt lastIndex( iTitleTexts.Count() - 1 );
+    TInt lastIndexWithContent = LastIndexWithContent();
     
     if( aSetDefault )
         {
+        // set last index as default
         iCurrentTitleIndex = GetNextTitleWithContent( lastIndex, ETrue );
         }
     else if( iCurrentTitleIndex >= lastIndex )
         {
+        // if iCurrentTitleIndex is in last position start from beginning
         iCurrentTitleIndex = GetNextTitleWithContent( 0 );
         }
     else
         {
-        iCurrentTitleIndex = GetNextTitleWithContent( iCurrentTitleIndex + 1 );
+        if ( iCurrentTitleIndex + 1 > lastIndexWithContent )
+            {
+            // if lastIndexWithContent is creater than next item 
+            // it means all next items are empty strings
+            iCurrentTitleIndex = lastIndexWithContent;
+            }
+        else
+            {
+            // find next index with content
+            iCurrentTitleIndex
+                = GetNextTitleWithContent( iCurrentTitleIndex + 1 );
+            }
         }
     
-    if( iCurrentTitleIndex == lastIndex)
+    if( iCurrentTitleIndex == lastIndexWithContent || 
+            lastIndexWithContent == KErrNotFound )
         {
+        // loop done stop periodic timer.
         ret = ETrue;
         }
     
--- a/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditoradapter.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditoradapter.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -226,7 +226,13 @@
         iEditor->SetAknEditorFlags( EAknEditorFlagEnablePartialScreen );
         SetFlag( iSplitInputFlags, ESplitInputEnabled );
         }
-    
+
+    // for RTL languages
+    iEditor->SetAknEditorLocalLanguage( User::Language() );
+    ( AknLayoutUtils::LayoutMirrored() ? 
+                        iEditor->SetAlignment( EHRightVCenter ) : 
+                        iEditor->SetAlignment( EHLeftVCenter ) );
+
     iEditor->SetObserver( this );
                                         
     // Default not focused                                  
--- a/idlehomescreen/xmluirendering/uiengine/bwins/xn3layoutengineu.def	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/bwins/xn3layoutengineu.def	Wed Mar 31 21:17:19 2010 +0300
@@ -40,198 +40,198 @@
 	?SetDataL@CXnControlAdapter@@UAEXABVTDesC8@@ABVTDesC16@@H@Z @ 39 NONAME ; void CXnControlAdapter::SetDataL(class TDesC8 const &, class TDesC16 const &, int)
 	?ComponentNodeImpl@CXnNodePluginIf@@QAEPAVCXnComponentNodeImpl@@XZ @ 40 NONAME ; class CXnComponentNodeImpl * CXnNodePluginIf::ComponentNodeImpl(void)
 	??0CXnViewsNodeImpl@@IAE@XZ @ 41 NONAME ; CXnViewsNodeImpl::CXnViewsNodeImpl(void)
-	?HandlePointerEventL@CXnControlAdapter@@UAEXABUTPointerEvent@@@Z @ 42 NONAME ; void CXnControlAdapter::HandlePointerEventL(struct TPointerEvent const &)
-	??1CXnDocument@@UAE@XZ @ 43 NONAME ; CXnDocument::~CXnDocument(void)
-	?HandleResourceChangeL@CXnAppUiAdapter@@MAEXH@Z @ 44 NONAME ; void CXnAppUiAdapter::HandleResourceChangeL(int)
-	?DoEnterPowerSaveModeL@CXnControlAdapter@@UAEXW4TModeEvent@1@@Z @ 45 NONAME ; void CXnControlAdapter::DoEnterPowerSaveModeL(enum CXnControlAdapter::TModeEvent)
-	?CloneL@CXnProperty@@QAEPAV1@XZ @ 46 NONAME ; class CXnProperty * CXnProperty::CloneL(void)
-	?ReportTriggerEventL@CXnNodePluginIf@@QAEXABVTDesC8@@00@Z @ 47 NONAME ; void CXnNodePluginIf::ReportTriggerEventL(class TDesC8 const &, class TDesC8 const &, class TDesC8 const &)
-	?FocusedNodeL@TXnUiEnginePluginIf@@QAEPAVCXnNodePluginIf@@XZ @ 48 NONAME ; class CXnNodePluginIf * TXnUiEnginePluginIf::FocusedNodeL(void)
-	?FindContentSourceNodesL@TXnUiEngineAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@ABVTDesC8@@@Z @ 49 NONAME ; class RPointerArray<class CXnNodeAppIf> TXnUiEngineAppIf::FindContentSourceNodesL(class TDesC8 const &)
-	?EqualsL@CXnProperty@@QBEHAAV1@@Z @ 50 NONAME ; int CXnProperty::EqualsL(class CXnProperty &) const
-	?ScreenDeviceSize@TXnUiEnginePluginIf@@QAE?AVTSize@@XZ @ 51 NONAME ; class TSize TXnUiEnginePluginIf::ScreenDeviceSize(void)
-	??0CXnControlAdapter@@IAE@XZ @ 52 NONAME ; CXnControlAdapter::CXnControlAdapter(void)
-	?UiEngineL@CXnNodeAppIf@@QAEPAVTXnUiEngineAppIf@@XZ @ 53 NONAME ; class TXnUiEngineAppIf * CXnNodeAppIf::UiEngineL(void)
-	?LongTapDetector@CXnControlAdapter@@QBEPAVCAknLongTapDetector@@XZ @ 54 NONAME ; class CAknLongTapDetector * CXnControlAdapter::LongTapDetector(void) const
-	??0CXnAppUiAdapter@@QAE@VTUid@@@Z @ 55 NONAME ; CXnAppUiAdapter::CXnAppUiAdapter(class TUid)
-	?Rect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 56 NONAME ; class TRect CXnNodePluginIf::Rect(void)
-	?AddChildL@CXnNodePluginIf@@QAEXPAV1@@Z @ 57 NONAME ; void CXnNodePluginIf::AddChildL(class CXnNodePluginIf *)
-	?SetNode@CXnComponent@@QAEXAAVCXnNodePluginIf@@@Z @ 58 NONAME ; void CXnComponent::SetNode(class CXnNodePluginIf &)
-	?ResetStylusCounter@CXnControlAdapter@@QAEXXZ @ 59 NONAME ; void CXnControlAdapter::ResetStylusCounter(void)
-	?SetComponent@CXnComponentNodeImpl@@QAEXPAVCXnComponent@@@Z @ 60 NONAME ; void CXnComponentNodeImpl::SetComponent(class CXnComponent *)
-	?LayoutUIL@TXnUiEnginePluginIf@@QAEXPAVCXnNodePluginIf@@@Z @ 61 NONAME ; void TXnUiEnginePluginIf::LayoutUIL(class CXnNodePluginIf *)
-	?FocusVisible@TXnUiEnginePluginIf@@QAEHXZ @ 62 NONAME ; int TXnUiEnginePluginIf::FocusVisible(void)
-	?ExitPowerSaveModeL@CXnControlAdapter@@QAEXW4TModeEvent@1@@Z @ 63 NONAME ; void CXnControlAdapter::ExitPowerSaveModeL(enum CXnControlAdapter::TModeEvent)
-	?GetThemeResource@TXnUiEngineAppIf@@QAEHABVTDesC16@@AAVRFile@@@Z @ 64 NONAME ; int TXnUiEngineAppIf::GetThemeResource(class TDesC16 const &, class RFile &)
-	?ConstructL@CXnComponent@@IAEXXZ @ 65 NONAME ; void CXnComponent::ConstructL(void)
-	?FindResource@CXnUtils@@SAPAVCXnResource@@AAV?$CArrayPtrSeg@VCXnResource@@@@ABVTDesC16@@AAH@Z @ 66 NONAME ; class CXnResource * CXnUtils::FindResource(class CArrayPtrSeg<class CXnResource> &, class TDesC16 const &, int &)
-	?UnsetStateL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 67 NONAME ; void CXnNodeAppIf::UnsetStateL(class TDesC8 const &)
-	?Uid@CXnDocument@@QAE?AVTUid@@XZ @ 68 NONAME ; class TUid CXnDocument::Uid(void)
-	?FocusChanged@CXnControlAdapter@@UAEXW4TDrawNow@@@Z @ 69 NONAME ; void CXnControlAdapter::FocusChanged(enum TDrawNow)
-	?SetBlank@CXnControlAdapter@@QAEXH@Z @ 70 NONAME ; void CXnControlAdapter::SetBlank(int)
-	?Component@CXnNodeAppIf@@QAEAAVCXnComponent@@XZ @ 71 NONAME ; class CXnComponent & CXnNodeAppIf::Component(void)
-	?SetLayoutCapable@CXnNodePluginIf@@QAEXH@Z @ 72 NONAME ; void CXnNodePluginIf::SetLayoutCapable(int)
-	?MarginRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 73 NONAME ; class TRect CXnNodePluginIf::MarginRect(void)
-	?UiEngineL@CXnAppUiAdapter@@QAEPAVTXnUiEngineAppIf@@XZ @ 74 NONAME ; class TXnUiEngineAppIf * CXnAppUiAdapter::UiEngineL(void)
-	?SwipeEnabledL@TXnUiEnginePluginIf@@QAEHXZ @ 75 NONAME ; int TXnUiEnginePluginIf::SwipeEnabledL(void)
-	?SetFocusVisibleL@TXnUiEnginePluginIf@@QAEXH@Z @ 76 NONAME ; void TXnUiEnginePluginIf::SetFocusVisibleL(int)
-	?ActiveView@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@XZ @ 77 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::ActiveView(void)
-	?HandleXuikonEventL@CXnAppUiAdapter@@UAEXAAVCXnNodeAppIf@@0AAVCXnDomNode@@1@Z @ 78 NONAME ; void CXnAppUiAdapter::HandleXuikonEventL(class CXnNodeAppIf &, class CXnNodeAppIf &, class CXnDomNode &, class CXnDomNode &)
-	?RenderUIL@TXnUiEngineAppIf@@QAEXPAVCXnNodeAppIf@@@Z @ 79 NONAME ; void TXnUiEngineAppIf::RenderUIL(class CXnNodeAppIf *)
-	?PrepareToExit@CXnAppUiAdapter@@MAEXXZ @ 80 NONAME ; void CXnAppUiAdapter::PrepareToExit(void)
-	?DoHandlePropertyChangeL@CXnControlAdapter@@UAEXPAVCXnProperty@@@Z @ 81 NONAME ; void CXnControlAdapter::DoHandlePropertyChangeL(class CXnProperty *)
-	?ConstructL@CXnControlAdapter@@IAEXAAVCXnNodePluginIf@@@Z @ 82 NONAME ; void CXnControlAdapter::ConstructL(class CXnNodePluginIf &)
-	?FocusedNode@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@XZ @ 83 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FocusedNode(void)
-	?SetDataL@CXnComponent@@QAEXABVTDesC8@@ABVTDesC16@@H@Z @ 84 NONAME ; void CXnComponent::SetDataL(class TDesC8 const &, class TDesC16 const &, int)
-	?OfferKeyEventL@CXnControlAdapter@@UAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 85 NONAME ; enum TKeyResponse CXnControlAdapter::OfferKeyEventL(struct TKeyEvent const &, enum TEventCode)
-	?IsDrawingAllowed@CXnControlAdapter@@QBEHXZ @ 86 NONAME ; int CXnControlAdapter::IsDrawingAllowed(void) const
-	?DisplayL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 87 NONAME ; class CXnProperty * CXnNodePluginIf::DisplayL(void)
-	?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@PAVCXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 88 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class CXnDomPropertyValue *, class CXnDomStringPool &)
-	?Rect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 89 NONAME ; class TRect CXnNodeAppIf::Rect(void)
-	?NewL@CXnComponentNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 90 NONAME ; class CXnComponentNodeImpl * CXnComponentNodeImpl::NewL(class CXnType *)
-	?WidgetsVisible@TXnUiEngineAppIf@@QBEHXZ @ 91 NONAME ; int TXnUiEngineAppIf::WidgetsVisible(void) const
-	?Type@CXnNodePluginIf@@QAEPAVCXnType@@XZ @ 92 NONAME ; class CXnType * CXnNodePluginIf::Type(void)
-	?MakeXnComponentL@MXnComponentFactory@@EAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 93 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::MakeXnComponentL(class CXnNodePluginIf &, class CXnComponent * &)
-	?ActivateViewL@TXnUiEngineAppIf@@QAEXAAVCXnNodeAppIf@@@Z @ 94 NONAME ; void TXnUiEngineAppIf::ActivateViewL(class CXnNodeAppIf &)
-	?UnsetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 95 NONAME ; void CXnNodePluginIf::UnsetStateL(class TDesC8 const &)
-	?StringValueL@CXnProperty@@QAEPAVHBufC16@@XZ @ 96 NONAME ; class HBufC16 * CXnProperty::StringValueL(void)
-	?DisableRenderUiLC@TXnUiEnginePluginIf@@QAEXXZ @ 97 NONAME ; void TXnUiEnginePluginIf::DisableRenderUiLC(void)
-	?SetPropertyL@CXnNodeAppIf@@QAEXPAVCXnProperty@@@Z @ 98 NONAME ; void CXnNodeAppIf::SetPropertyL(class CXnProperty *)
-	?View@CXnAppUiAdapter@@QBEAAVCAknView@@XZ @ 99 NONAME ; class CAknView & CXnAppUiAdapter::View(void) const
-	?ViewNodeImpl@CXnNodePluginIf@@QAEPAVCXnViewNodeImpl@@XZ @ 100 NONAME ; class CXnViewNodeImpl * CXnNodePluginIf::ViewNodeImpl(void)
-	?StripQuotes@CXnUtils@@SAXAAPAVHBufC16@@@Z @ 101 NONAME ; void CXnUtils::StripQuotes(class HBufC16 * &)
-	?SetPCDataL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 102 NONAME ; void CXnNodePluginIf::SetPCDataL(class TDesC8 const &)
-	?VisibilityL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 103 NONAME ; class CXnProperty * CXnNodePluginIf::VisibilityL(void)
-	?Draw@CXnControlAdapter@@MBEXABVTRect@@@Z @ 104 NONAME ; void CXnControlAdapter::Draw(class TRect const &) const
-	??1CXnApplication@@UAE@XZ @ 105 NONAME ; CXnApplication::~CXnApplication(void)
-	?DoesNodeNeedComponentImplL@MXnComponentFactory@@QAEHABVTDesC8@@@Z @ 106 NONAME ; int MXnComponentFactory::DoesNodeNeedComponentImplL(class TDesC8 const &)
-	?ConstructL@CXnViewsNodeImpl@@IAEXPAVCXnType@@@Z @ 107 NONAME ; void CXnViewsNodeImpl::ConstructL(class CXnType *)
-	?StringPool@TXnUiEngineAppIf@@QAEAAVCXnDomStringPool@@XZ @ 108 NONAME ; class CXnDomStringPool & TXnUiEngineAppIf::StringPool(void)
-	?UiEngineL@CXnNodePluginIf@@QAEPAVTXnUiEnginePluginIf@@XZ @ 109 NONAME ; class TXnUiEnginePluginIf * CXnNodePluginIf::UiEngineL(void)
-	?ShowFocus@TXnUiEnginePluginIf@@QAEHXZ @ 110 NONAME ; int TXnUiEnginePluginIf::ShowFocus(void)
-	?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@@Z @ 111 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &)
-	?PluginNodeL@TXnUiEnginePluginIf@@QAEAAVCXnNodePluginIf@@PAV2@@Z @ 112 NONAME ; class CXnNodePluginIf & TXnUiEnginePluginIf::PluginNodeL(class CXnNodePluginIf *)
-	?VerticalPixelValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 113 NONAME ; int TXnUiEnginePluginIf::VerticalPixelValueL(class CXnProperty *, int)
-	?SetComponent@CXnControlAdapter@@QAEXPAVCXnComponent@@@Z @ 114 NONAME ; void CXnControlAdapter::SetComponent(class CXnComponent *)
-	??0MXnNodePredicate@@QAE@XZ @ 115 NONAME ; MXnNodePredicate::MXnNodePredicate(void)
-	??1CXnViewsNodeImpl@@UAE@XZ @ 116 NONAME ; CXnViewsNodeImpl::~CXnViewsNodeImpl(void)
-	?HandleControlEventL@CXnControlAdapter@@UAEXPAVCCoeControl@@W4TCoeEvent@MCoeControlObserver@@@Z @ 117 NONAME ; void CXnControlAdapter::HandleControlEventL(class CCoeControl *, enum MCoeControlObserver::TCoeEvent)
-	?ActivateViewL@TXnUiEnginePluginIf@@QAEXAAVCXnNodePluginIf@@@Z @ 118 NONAME ; void TXnUiEnginePluginIf::ActivateViewL(class CXnNodePluginIf &)
-	?HandleScreenDeviceChangedL@CXnControlAdapter@@UAEXXZ @ 119 NONAME ; void CXnControlAdapter::HandleScreenDeviceChangedL(void)
-	?SizeChanged@CXnControlAdapter@@MAEXXZ @ 120 NONAME ; void CXnControlAdapter::SizeChanged(void)
-	?CountComponentControls@CXnControlAdapter@@MBEHXZ @ 121 NONAME ; int CXnControlAdapter::CountComponentControls(void) const
-	?HideTooltipsL@CXnNodeAppIf@@QAEXXZ @ 122 NONAME ; void CXnNodeAppIf::HideTooltipsL(void)
-	?GetPropertyL@CXnNodeAppIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 123 NONAME ; class CXnProperty * CXnNodeAppIf::GetPropertyL(class TDesC8 const &) const
-	?DeactivateFocusedNodeL@TXnUiEnginePluginIf@@QAEXXZ @ 124 NONAME ; void TXnUiEnginePluginIf::DeactivateFocusedNodeL(void)
-	?FindNodeByClassL@TXnUiEngineAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@ABVTDesC8@@0@Z @ 125 NONAME ; class RPointerArray<class CXnNodeAppIf> TXnUiEngineAppIf::FindNodeByClassL(class TDesC8 const &, class TDesC8 const &)
-	?Match@MXnNodePredicate@@UAEHAAVCXnNode@@@Z @ 126 NONAME ; int MXnNodePredicate::Match(class CXnNode &)
-	?GetBitmapAndMask@CXnControlAdapter@@QAEXABVTDesC16@@0AAPAVCFbsBitmap@@1@Z @ 127 NONAME ; void CXnControlAdapter::GetBitmapAndMask(class TDesC16 const &, class TDesC16 const &, class CFbsBitmap * &, class CFbsBitmap * &)
-	?NewL@CXnViewsNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 128 NONAME ; class CXnViewsNodeImpl * CXnViewsNodeImpl::NewL(class CXnType *)
-	?PaddingRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 129 NONAME ; class TRect CXnNodeAppIf::PaddingRect(void)
-	?SetMarginRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 130 NONAME ; void CXnNodePluginIf::SetMarginRect(class TRect const &)
-	?IsDialogDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 131 NONAME ; int TXnUiEnginePluginIf::IsDialogDisplaying(void)
-	?HandleEventL@CXnAppUiAdapter@@UAEXABVTDesC16@@AAVCXnNodeAppIf@@@Z @ 132 NONAME ; void CXnAppUiAdapter::HandleEventL(class TDesC16 const &, class CXnNodeAppIf &)
-	?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 133 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class TDesC8 const &) const
-	?SetPropertyArrayL@CXnNodeAppIf@@QAEXPAV?$RPointerArray@VCXnProperty@@@@@Z @ 134 NONAME ; void CXnNodeAppIf::SetPropertyArrayL(class RPointerArray<class CXnProperty> *)
-	?RestorePreviousFocusedNode@TXnUiEnginePluginIf@@QAEXXZ @ 135 NONAME ; void TXnUiEnginePluginIf::RestorePreviousFocusedNode(void)
-	?RemoveViewL@CXnAppUiAdapter@@QAEXAAVCAknView@@@Z @ 136 NONAME ; void CXnAppUiAdapter::RemoveViewL(class CAknView &)
-	?EnterPowerSaveModeL@CXnComponent@@UAEXXZ @ 137 NONAME ; void CXnComponent::EnterPowerSaveModeL(void)
-	?SetRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 138 NONAME ; void CXnNodePluginIf::SetRect(class TRect const &)
-	??0CXnComponent@@IAE@XZ @ 139 NONAME ; CXnComponent::CXnComponent(void)
-	?CollapseWhiteSpace@CXnUtils@@SAXAAVCXnNodePluginIf@@AAVTDes16@@@Z @ 140 NONAME ; void CXnUtils::CollapseWhiteSpace(class CXnNodePluginIf &, class TDes16 &)
-	?SetHandleTooltip@CXnNodePluginIf@@QAEXH@Z @ 141 NONAME ; void CXnNodePluginIf::SetHandleTooltip(int)
-	??1CXnAppUiAdapter@@UAE@XZ @ 142 NONAME ; CXnAppUiAdapter::~CXnAppUiAdapter(void)
-	?NewL@CXnControlAdapter@@SAPAV1@AAVCXnNodePluginIf@@@Z @ 143 NONAME ; class CXnControlAdapter * CXnControlAdapter::NewL(class CXnNodePluginIf &)
-	?EnableLongTapAnimation@CXnControlAdapter@@QAEXH@Z @ 144 NONAME ; void CXnControlAdapter::EnableLongTapAnimation(int)
-	?SetPaddingRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 145 NONAME ; void CXnNodePluginIf::SetPaddingRect(class TRect const &)
-	?SetFocusedNode@TXnUiEnginePluginIf@@QAEXPAVCXnNodePluginIf@@@Z @ 146 NONAME ; void TXnUiEnginePluginIf::SetFocusedNode(class CXnNodePluginIf *)
-	?ExitPowerSaveModeL@CXnComponent@@UAEXXZ @ 147 NONAME ; void CXnComponent::ExitPowerSaveModeL(void)
-	?EnableSwipeL@TXnUiEnginePluginIf@@QAEXH@Z @ 148 NONAME ; void TXnUiEnginePluginIf::EnableSwipeL(int)
-	?GetPCData@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 149 NONAME ; class TDesC8 const & CXnNodeAppIf::GetPCData(void) const
-	?Namespace@CXnNodeAppIf@@QAEABVTDesC8@@XZ @ 150 NONAME ; class TDesC8 const & CXnNodeAppIf::Namespace(void)
-	??1CXnComponentNodeImpl@@UAE@XZ @ 151 NONAME ; CXnComponentNodeImpl::~CXnComponentNodeImpl(void)
-	?SetPropertyWithoutNotificationL@CXnNodePluginIf@@QAEXPAVCXnProperty@@@Z @ 152 NONAME ; void CXnNodePluginIf::SetPropertyWithoutNotificationL(class CXnProperty *)
-	?GetPCData@CXnNodePluginIf@@QBEABVTDesC8@@XZ @ 153 NONAME ; class TDesC8 const & CXnNodePluginIf::GetPCData(void) const
-	?SetPCDataL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 154 NONAME ; void CXnNodeAppIf::SetPCDataL(class TDesC8 const &)
-	?Resources@TXnUiEnginePluginIf@@QAEAAV?$CArrayPtrSeg@VCXnResource@@@@XZ @ 155 NONAME ; class CArrayPtrSeg<class CXnResource> & TXnUiEnginePluginIf::Resources(void)
-	?SetContentBitmaps@CXnControlAdapter@@QAEXABVTDesC16@@0@Z @ 156 NONAME ; void CXnControlAdapter::SetContentBitmaps(class TDesC16 const &, class TDesC16 const &)
-	??1CXnControlAdapter@@UAE@XZ @ 157 NONAME ; CXnControlAdapter::~CXnControlAdapter(void)
-	??1MXnNodePredicate@@UAE@XZ @ 158 NONAME ; MXnNodePredicate::~MXnNodePredicate(void)
-	?HorizontalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 159 NONAME ; int TXnUiEnginePluginIf::HorizontalTwipValueL(class CXnProperty *, int)
-	?ConstructL@CXnAppUiAdapter@@UAEXXZ @ 160 NONAME ; void CXnAppUiAdapter::ConstructL(void)
-	?CreateFontL@CXnUtils@@SAXAAVCXnNodePluginIf@@AAPAVCFont@@AAH@Z @ 161 NONAME ; void CXnUtils::CreateFontL(class CXnNodePluginIf &, class CFont * &, int &)
-	??0CXnApplication@@QAE@VTUid@@@Z @ 162 NONAME ; CXnApplication::CXnApplication(class TUid)
-	?ComponentControl@CXnControlAdapter@@MBEPAVCCoeControl@@H@Z @ 163 NONAME ; class CCoeControl * CXnControlAdapter::ComponentControl(int) const
-	?HandleLongTapEventL@CXnControlAdapter@@UAEXABVTPoint@@0@Z @ 164 NONAME ; void CXnControlAdapter::HandleLongTapEventL(class TPoint const &, class TPoint const &)
-	?ParentL@CXnNodeAppIf@@QBEPAV1@XZ @ 165 NONAME ; class CXnNodeAppIf * CXnNodeAppIf::ParentL(void) const
-	??1CXnComponent@@UAE@XZ @ 166 NONAME ; CXnComponent::~CXnComponent(void)
-	?ControlAdapter@CXnComponent@@QAEPAVCXnControlAdapter@@XZ @ 167 NONAME ; class CXnControlAdapter * CXnComponent::ControlAdapter(void)
-	?DrawContentImage@CXnControlAdapter@@IBEXXZ @ 168 NONAME ; void CXnControlAdapter::DrawContentImage(void) const
-	?Component@CXnComponentNodeImpl@@QAEPAVCXnComponent@@XZ @ 169 NONAME ; class CXnComponent * CXnComponentNodeImpl::Component(void)
-	?WidgetsVisible@TXnUiEnginePluginIf@@QBEHXZ @ 170 NONAME ; int TXnUiEnginePluginIf::WidgetsVisible(void) const
-	?SetControlAdapter@CXnComponent@@QAEXPAVCXnControlAdapter@@@Z @ 171 NONAME ; void CXnComponent::SetControlAdapter(class CXnControlAdapter *)
-	?SetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 172 NONAME ; void CXnNodePluginIf::SetStateL(class TDesC8 const &)
-	?DoesComponentNeedCreation@CXnComponentNodeImpl@@QBEHXZ @ 173 NONAME ; int CXnComponentNodeImpl::DoesComponentNeedCreation(void) const
-	??0CXnDocument@@QAE@AAVCEikApplication@@VTUid@@@Z @ 174 NONAME ; CXnDocument::CXnDocument(class CEikApplication &, class TUid)
-	?FindNodeByClassL@TXnUiEnginePluginIf@@QAE?AV?$RPointerArray@VCXnNodePluginIf@@@@ABVTDesC16@@@Z @ 175 NONAME ; class RPointerArray<class CXnNodePluginIf> TXnUiEnginePluginIf::FindNodeByClassL(class TDesC16 const &)
-	?InternalDomNodeType@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 176 NONAME ; class TDesC8 const & CXnNodeAppIf::InternalDomNodeType(void) const
-	?UiActivated@CXnAppUiAdapter@@UAEXXZ @ 177 NONAME ; void CXnAppUiAdapter::UiActivated(void)
-	?StringPool@TXnUiEnginePluginIf@@QAEAAVCXnDomStringPool@@XZ @ 178 NONAME ; class CXnDomStringPool & TXnUiEnginePluginIf::StringPool(void)
-	?SetStateL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 179 NONAME ; void CXnNodeAppIf::SetStateL(class TDesC8 const &)
-	?Type@CXnNodeAppIf@@QAEPAVCXnType@@XZ @ 180 NONAME ; class CXnType * CXnNodeAppIf::Type(void)
-	?BorderRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 181 NONAME ; class TRect CXnNodeAppIf::BorderRect(void)
-	?IdL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 182 NONAME ; class CXnProperty * CXnNodePluginIf::IdL(void)
-	?RootNodeL@TXnUiEngineAppIf@@QAEAAVCXnNodeAppIf@@XZ @ 183 NONAME ; class CXnNodeAppIf & TXnUiEngineAppIf::RootNodeL(void)
-	?CreateXnComponentL@MXnComponentFactory@@QAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 184 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::CreateXnComponentL(class CXnNodePluginIf &, class CXnComponent * &)
-	?RefreshMenuL@TXnUiEngineAppIf@@QAEXXZ @ 185 NONAME ; void TXnUiEngineAppIf::RefreshMenuL(void)
-	?PaddingRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 186 NONAME ; class TRect CXnNodePluginIf::PaddingRect(void)
-	?MeasureAdaptiveContentL@CXnControlAdapter@@UAE?AVTSize@@ABV2@@Z @ 187 NONAME ; class TSize CXnControlAdapter::MeasureAdaptiveContentL(class TSize const &)
-	?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@0W4TPrimitiveValueType@CXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 188 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class TDesC8 const &, enum CXnDomPropertyValue::TPrimitiveValueType, class CXnDomStringPool &)
-	?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@AAV2@@Z @ 189 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class CXnProperty &) const
-	?HitRegion@TXnUiEnginePluginIf@@QBEPAVCXnControlAdapter@@XZ @ 190 NONAME ; class CXnControlAdapter * TXnUiEnginePluginIf::HitRegion(void) const
-	?MarginRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 191 NONAME ; class TRect CXnNodeAppIf::MarginRect(void)
-	?EditMode@TXnUiEnginePluginIf@@QAEHXZ @ 192 NONAME ; int TXnUiEnginePluginIf::EditMode(void)
-	?FindNodeByIdL@TXnUiEnginePluginIf@@QAEPAVCXnNodePluginIf@@ABVTDesC8@@0@Z @ 193 NONAME ; class CXnNodePluginIf * TXnUiEnginePluginIf::FindNodeByIdL(class TDesC8 const &, class TDesC8 const &)
-	?MakeInterfaceL@CXnComponent@@UAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 194 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnComponent::MakeInterfaceL(class TDesC8 const &)
-	?EnableRenderUi@CXnUiEngineImpl@@CAXPAX@Z @ 195 NONAME ; void CXnUiEngineImpl::EnableRenderUi(void *)
-	?IsMenuDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 196 NONAME ; int TXnUiEnginePluginIf::IsMenuDisplaying(void)
-	?IsMenuDisplaying@TXnUiEngineAppIf@@QAEHXZ @ 197 NONAME ; int TXnUiEngineAppIf::IsMenuDisplaying(void)
-	?NewL@CXnProperty@@SAPAV1@PAVCXnDomProperty@@@Z @ 198 NONAME ; class CXnProperty * CXnProperty::NewL(class CXnDomProperty *)
-	?ConstructL@CXnComponentNodeImpl@@IAEXPAVCXnType@@@Z @ 199 NONAME ; void CXnComponentNodeImpl::ConstructL(class CXnType *)
-	?ChildrenL@CXnNodeAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@XZ @ 200 NONAME ; class RPointerArray<class CXnNodeAppIf> CXnNodeAppIf::ChildrenL(void)
-	?ConvertHslToRgb@CXnUtils@@SA?AVTRgb@@HHH@Z @ 201 NONAME ; class TRgb CXnUtils::ConvertHslToRgb(int, int, int)
+	?IsTextEditorActive@TXnUiEnginePluginIf@@QAEHXZ @ 42 NONAME ; int TXnUiEnginePluginIf::IsTextEditorActive(void)
+	?HandlePointerEventL@CXnControlAdapter@@UAEXABUTPointerEvent@@@Z @ 43 NONAME ; void CXnControlAdapter::HandlePointerEventL(struct TPointerEvent const &)
+	??1CXnDocument@@UAE@XZ @ 44 NONAME ; CXnDocument::~CXnDocument(void)
+	?HandleResourceChangeL@CXnAppUiAdapter@@MAEXH@Z @ 45 NONAME ; void CXnAppUiAdapter::HandleResourceChangeL(int)
+	?DoEnterPowerSaveModeL@CXnControlAdapter@@UAEXW4TModeEvent@1@@Z @ 46 NONAME ; void CXnControlAdapter::DoEnterPowerSaveModeL(enum CXnControlAdapter::TModeEvent)
+	?CloneL@CXnProperty@@QAEPAV1@XZ @ 47 NONAME ; class CXnProperty * CXnProperty::CloneL(void)
+	?ReportTriggerEventL@CXnNodePluginIf@@QAEXABVTDesC8@@00@Z @ 48 NONAME ; void CXnNodePluginIf::ReportTriggerEventL(class TDesC8 const &, class TDesC8 const &, class TDesC8 const &)
+	?FocusedNodeL@TXnUiEnginePluginIf@@QAEPAVCXnNodePluginIf@@XZ @ 49 NONAME ; class CXnNodePluginIf * TXnUiEnginePluginIf::FocusedNodeL(void)
+	?FindContentSourceNodesL@TXnUiEngineAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@ABVTDesC8@@@Z @ 50 NONAME ; class RPointerArray<class CXnNodeAppIf> TXnUiEngineAppIf::FindContentSourceNodesL(class TDesC8 const &)
+	?EqualsL@CXnProperty@@QBEHAAV1@@Z @ 51 NONAME ; int CXnProperty::EqualsL(class CXnProperty &) const
+	?ScreenDeviceSize@TXnUiEnginePluginIf@@QAE?AVTSize@@XZ @ 52 NONAME ; class TSize TXnUiEnginePluginIf::ScreenDeviceSize(void)
+	??0CXnControlAdapter@@IAE@XZ @ 53 NONAME ; CXnControlAdapter::CXnControlAdapter(void)
+	?UiEngineL@CXnNodeAppIf@@QAEPAVTXnUiEngineAppIf@@XZ @ 54 NONAME ; class TXnUiEngineAppIf * CXnNodeAppIf::UiEngineL(void)
+	?LongTapDetector@CXnControlAdapter@@QBEPAVCAknLongTapDetector@@XZ @ 55 NONAME ; class CAknLongTapDetector * CXnControlAdapter::LongTapDetector(void) const
+	??0CXnAppUiAdapter@@QAE@VTUid@@@Z @ 56 NONAME ; CXnAppUiAdapter::CXnAppUiAdapter(class TUid)
+	?Rect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 57 NONAME ; class TRect CXnNodePluginIf::Rect(void)
+	?AddChildL@CXnNodePluginIf@@QAEXPAV1@@Z @ 58 NONAME ; void CXnNodePluginIf::AddChildL(class CXnNodePluginIf *)
+	?SetNode@CXnComponent@@QAEXAAVCXnNodePluginIf@@@Z @ 59 NONAME ; void CXnComponent::SetNode(class CXnNodePluginIf &)
+	?ResetStylusCounter@CXnControlAdapter@@QAEXXZ @ 60 NONAME ; void CXnControlAdapter::ResetStylusCounter(void)
+	?SetComponent@CXnComponentNodeImpl@@QAEXPAVCXnComponent@@@Z @ 61 NONAME ; void CXnComponentNodeImpl::SetComponent(class CXnComponent *)
+	?LayoutUIL@TXnUiEnginePluginIf@@QAEXPAVCXnNodePluginIf@@@Z @ 62 NONAME ; void TXnUiEnginePluginIf::LayoutUIL(class CXnNodePluginIf *)
+	?FocusVisible@TXnUiEnginePluginIf@@QAEHXZ @ 63 NONAME ; int TXnUiEnginePluginIf::FocusVisible(void)
+	?ExitPowerSaveModeL@CXnControlAdapter@@QAEXW4TModeEvent@1@@Z @ 64 NONAME ; void CXnControlAdapter::ExitPowerSaveModeL(enum CXnControlAdapter::TModeEvent)
+	?GetThemeResource@TXnUiEngineAppIf@@QAEHABVTDesC16@@AAVRFile@@@Z @ 65 NONAME ; int TXnUiEngineAppIf::GetThemeResource(class TDesC16 const &, class RFile &)
+	?ConstructL@CXnComponent@@IAEXXZ @ 66 NONAME ; void CXnComponent::ConstructL(void)
+	?FindResource@CXnUtils@@SAPAVCXnResource@@AAV?$CArrayPtrSeg@VCXnResource@@@@ABVTDesC16@@AAH@Z @ 67 NONAME ; class CXnResource * CXnUtils::FindResource(class CArrayPtrSeg<class CXnResource> &, class TDesC16 const &, int &)
+	?UnsetStateL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 68 NONAME ; void CXnNodeAppIf::UnsetStateL(class TDesC8 const &)
+	?Uid@CXnDocument@@QAE?AVTUid@@XZ @ 69 NONAME ; class TUid CXnDocument::Uid(void)
+	?FocusChanged@CXnControlAdapter@@UAEXW4TDrawNow@@@Z @ 70 NONAME ; void CXnControlAdapter::FocusChanged(enum TDrawNow)
+	?SetBlank@CXnControlAdapter@@QAEXH@Z @ 71 NONAME ; void CXnControlAdapter::SetBlank(int)
+	?ProcessMessageL@CXnAppUiAdapter@@UAEXVTUid@@ABVTDesC8@@@Z @ 72 NONAME ; void CXnAppUiAdapter::ProcessMessageL(class TUid, class TDesC8 const &)
+	?Component@CXnNodeAppIf@@QAEAAVCXnComponent@@XZ @ 73 NONAME ; class CXnComponent & CXnNodeAppIf::Component(void)
+	?SetLayoutCapable@CXnNodePluginIf@@QAEXH@Z @ 74 NONAME ; void CXnNodePluginIf::SetLayoutCapable(int)
+	?MarginRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 75 NONAME ; class TRect CXnNodePluginIf::MarginRect(void)
+	?UiEngineL@CXnAppUiAdapter@@QAEPAVTXnUiEngineAppIf@@XZ @ 76 NONAME ; class TXnUiEngineAppIf * CXnAppUiAdapter::UiEngineL(void)
+	?SwipeEnabledL@TXnUiEnginePluginIf@@QAEHXZ @ 77 NONAME ; int TXnUiEnginePluginIf::SwipeEnabledL(void)
+	?SetFocusVisibleL@TXnUiEnginePluginIf@@QAEXH@Z @ 78 NONAME ; void TXnUiEnginePluginIf::SetFocusVisibleL(int)
+	?ActiveView@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@XZ @ 79 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::ActiveView(void)
+	?HandleXuikonEventL@CXnAppUiAdapter@@UAEXAAVCXnNodeAppIf@@0AAVCXnDomNode@@1@Z @ 80 NONAME ; void CXnAppUiAdapter::HandleXuikonEventL(class CXnNodeAppIf &, class CXnNodeAppIf &, class CXnDomNode &, class CXnDomNode &)
+	?RenderUIL@TXnUiEngineAppIf@@QAEXPAVCXnNodeAppIf@@@Z @ 81 NONAME ; void TXnUiEngineAppIf::RenderUIL(class CXnNodeAppIf *)
+	?PrepareToExit@CXnAppUiAdapter@@MAEXXZ @ 82 NONAME ; void CXnAppUiAdapter::PrepareToExit(void)
+	?DoHandlePropertyChangeL@CXnControlAdapter@@UAEXPAVCXnProperty@@@Z @ 83 NONAME ; void CXnControlAdapter::DoHandlePropertyChangeL(class CXnProperty *)
+	?ConstructL@CXnControlAdapter@@IAEXAAVCXnNodePluginIf@@@Z @ 84 NONAME ; void CXnControlAdapter::ConstructL(class CXnNodePluginIf &)
+	?FocusedNode@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@XZ @ 85 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FocusedNode(void)
+	?SetDataL@CXnComponent@@QAEXABVTDesC8@@ABVTDesC16@@H@Z @ 86 NONAME ; void CXnComponent::SetDataL(class TDesC8 const &, class TDesC16 const &, int)
+	?OfferKeyEventL@CXnControlAdapter@@UAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 87 NONAME ; enum TKeyResponse CXnControlAdapter::OfferKeyEventL(struct TKeyEvent const &, enum TEventCode)
+	?IsDrawingAllowed@CXnControlAdapter@@QBEHXZ @ 88 NONAME ; int CXnControlAdapter::IsDrawingAllowed(void) const
+	?DisplayL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 89 NONAME ; class CXnProperty * CXnNodePluginIf::DisplayL(void)
+	?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@PAVCXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 90 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class CXnDomPropertyValue *, class CXnDomStringPool &)
+	?Rect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 91 NONAME ; class TRect CXnNodeAppIf::Rect(void)
+	?NewL@CXnComponentNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 92 NONAME ; class CXnComponentNodeImpl * CXnComponentNodeImpl::NewL(class CXnType *)
+	?WidgetsVisible@TXnUiEngineAppIf@@QBEHXZ @ 93 NONAME ; int TXnUiEngineAppIf::WidgetsVisible(void) const
+	?Type@CXnNodePluginIf@@QAEPAVCXnType@@XZ @ 94 NONAME ; class CXnType * CXnNodePluginIf::Type(void)
+	?MakeXnComponentL@MXnComponentFactory@@EAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 95 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::MakeXnComponentL(class CXnNodePluginIf &, class CXnComponent * &)
+	?ActivateViewL@TXnUiEngineAppIf@@QAEXAAVCXnNodeAppIf@@@Z @ 96 NONAME ; void TXnUiEngineAppIf::ActivateViewL(class CXnNodeAppIf &)
+	?UnsetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 97 NONAME ; void CXnNodePluginIf::UnsetStateL(class TDesC8 const &)
+	?StringValueL@CXnProperty@@QAEPAVHBufC16@@XZ @ 98 NONAME ; class HBufC16 * CXnProperty::StringValueL(void)
+	?DisableRenderUiLC@TXnUiEnginePluginIf@@QAEXXZ @ 99 NONAME ; void TXnUiEnginePluginIf::DisableRenderUiLC(void)
+	?SetPropertyL@CXnNodeAppIf@@QAEXPAVCXnProperty@@@Z @ 100 NONAME ; void CXnNodeAppIf::SetPropertyL(class CXnProperty *)
+	?View@CXnAppUiAdapter@@QBEAAVCAknView@@XZ @ 101 NONAME ; class CAknView & CXnAppUiAdapter::View(void) const
+	?ViewNodeImpl@CXnNodePluginIf@@QAEPAVCXnViewNodeImpl@@XZ @ 102 NONAME ; class CXnViewNodeImpl * CXnNodePluginIf::ViewNodeImpl(void)
+	?StripQuotes@CXnUtils@@SAXAAPAVHBufC16@@@Z @ 103 NONAME ; void CXnUtils::StripQuotes(class HBufC16 * &)
+	?SetPCDataL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 104 NONAME ; void CXnNodePluginIf::SetPCDataL(class TDesC8 const &)
+	?VisibilityL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 105 NONAME ; class CXnProperty * CXnNodePluginIf::VisibilityL(void)
+	?Draw@CXnControlAdapter@@MBEXABVTRect@@@Z @ 106 NONAME ; void CXnControlAdapter::Draw(class TRect const &) const
+	??1CXnApplication@@UAE@XZ @ 107 NONAME ; CXnApplication::~CXnApplication(void)
+	?DoesNodeNeedComponentImplL@MXnComponentFactory@@QAEHABVTDesC8@@@Z @ 108 NONAME ; int MXnComponentFactory::DoesNodeNeedComponentImplL(class TDesC8 const &)
+	?ConstructL@CXnViewsNodeImpl@@IAEXPAVCXnType@@@Z @ 109 NONAME ; void CXnViewsNodeImpl::ConstructL(class CXnType *)
+	?StringPool@TXnUiEngineAppIf@@QAEAAVCXnDomStringPool@@XZ @ 110 NONAME ; class CXnDomStringPool & TXnUiEngineAppIf::StringPool(void)
+	?UiEngineL@CXnNodePluginIf@@QAEPAVTXnUiEnginePluginIf@@XZ @ 111 NONAME ; class TXnUiEnginePluginIf * CXnNodePluginIf::UiEngineL(void)
+	?ShowFocus@TXnUiEnginePluginIf@@QAEHXZ @ 112 NONAME ; int TXnUiEnginePluginIf::ShowFocus(void)
+	?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@@Z @ 113 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &)
+	?PluginNodeL@TXnUiEnginePluginIf@@QAEAAVCXnNodePluginIf@@PAV2@@Z @ 114 NONAME ; class CXnNodePluginIf & TXnUiEnginePluginIf::PluginNodeL(class CXnNodePluginIf *)
+	?VerticalPixelValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 115 NONAME ; int TXnUiEnginePluginIf::VerticalPixelValueL(class CXnProperty *, int)
+	?SetComponent@CXnControlAdapter@@QAEXPAVCXnComponent@@@Z @ 116 NONAME ; void CXnControlAdapter::SetComponent(class CXnComponent *)
+	??0MXnNodePredicate@@QAE@XZ @ 117 NONAME ; MXnNodePredicate::MXnNodePredicate(void)
+	??1CXnViewsNodeImpl@@UAE@XZ @ 118 NONAME ; CXnViewsNodeImpl::~CXnViewsNodeImpl(void)
+	?HandleControlEventL@CXnControlAdapter@@UAEXPAVCCoeControl@@W4TCoeEvent@MCoeControlObserver@@@Z @ 119 NONAME ; void CXnControlAdapter::HandleControlEventL(class CCoeControl *, enum MCoeControlObserver::TCoeEvent)
+	?ActivateViewL@TXnUiEnginePluginIf@@QAEXAAVCXnNodePluginIf@@@Z @ 120 NONAME ; void TXnUiEnginePluginIf::ActivateViewL(class CXnNodePluginIf &)
+	?HandleScreenDeviceChangedL@CXnControlAdapter@@UAEXXZ @ 121 NONAME ; void CXnControlAdapter::HandleScreenDeviceChangedL(void)
+	?SizeChanged@CXnControlAdapter@@MAEXXZ @ 122 NONAME ; void CXnControlAdapter::SizeChanged(void)
+	?CountComponentControls@CXnControlAdapter@@MBEHXZ @ 123 NONAME ; int CXnControlAdapter::CountComponentControls(void) const
+	?HideTooltipsL@CXnNodeAppIf@@QAEXXZ @ 124 NONAME ; void CXnNodeAppIf::HideTooltipsL(void)
+	?GetPropertyL@CXnNodeAppIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 125 NONAME ; class CXnProperty * CXnNodeAppIf::GetPropertyL(class TDesC8 const &) const
+	?DeactivateFocusedNodeL@TXnUiEnginePluginIf@@QAEXXZ @ 126 NONAME ; void TXnUiEnginePluginIf::DeactivateFocusedNodeL(void)
+	?FindNodeByClassL@TXnUiEngineAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@ABVTDesC8@@0@Z @ 127 NONAME ; class RPointerArray<class CXnNodeAppIf> TXnUiEngineAppIf::FindNodeByClassL(class TDesC8 const &, class TDesC8 const &)
+	?Match@MXnNodePredicate@@UAEHAAVCXnNode@@@Z @ 128 NONAME ; int MXnNodePredicate::Match(class CXnNode &)
+	?GetBitmapAndMask@CXnControlAdapter@@QAEXABVTDesC16@@0AAPAVCFbsBitmap@@1@Z @ 129 NONAME ; void CXnControlAdapter::GetBitmapAndMask(class TDesC16 const &, class TDesC16 const &, class CFbsBitmap * &, class CFbsBitmap * &)
+	?NewL@CXnViewsNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 130 NONAME ; class CXnViewsNodeImpl * CXnViewsNodeImpl::NewL(class CXnType *)
+	?PaddingRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 131 NONAME ; class TRect CXnNodeAppIf::PaddingRect(void)
+	?SetMarginRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 132 NONAME ; void CXnNodePluginIf::SetMarginRect(class TRect const &)
+	?IsDialogDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 133 NONAME ; int TXnUiEnginePluginIf::IsDialogDisplaying(void)
+	?HandleEventL@CXnAppUiAdapter@@UAEXABVTDesC16@@AAVCXnNodeAppIf@@@Z @ 134 NONAME ; void CXnAppUiAdapter::HandleEventL(class TDesC16 const &, class CXnNodeAppIf &)
+	?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 135 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class TDesC8 const &) const
+	?SetPropertyArrayL@CXnNodeAppIf@@QAEXPAV?$RPointerArray@VCXnProperty@@@@@Z @ 136 NONAME ; void CXnNodeAppIf::SetPropertyArrayL(class RPointerArray<class CXnProperty> *)
+	?RestorePreviousFocusedNode@TXnUiEnginePluginIf@@QAEXXZ @ 137 NONAME ; void TXnUiEnginePluginIf::RestorePreviousFocusedNode(void)
+	?RemoveViewL@CXnAppUiAdapter@@QAEXAAVCAknView@@@Z @ 138 NONAME ; void CXnAppUiAdapter::RemoveViewL(class CAknView &)
+	?EnterPowerSaveModeL@CXnComponent@@UAEXXZ @ 139 NONAME ; void CXnComponent::EnterPowerSaveModeL(void)
+	?SetRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 140 NONAME ; void CXnNodePluginIf::SetRect(class TRect const &)
+	??0CXnComponent@@IAE@XZ @ 141 NONAME ; CXnComponent::CXnComponent(void)
+	?CollapseWhiteSpace@CXnUtils@@SAXAAVCXnNodePluginIf@@AAVTDes16@@@Z @ 142 NONAME ; void CXnUtils::CollapseWhiteSpace(class CXnNodePluginIf &, class TDes16 &)
+	?SetHandleTooltip@CXnNodePluginIf@@QAEXH@Z @ 143 NONAME ; void CXnNodePluginIf::SetHandleTooltip(int)
+	??1CXnAppUiAdapter@@UAE@XZ @ 144 NONAME ; CXnAppUiAdapter::~CXnAppUiAdapter(void)
+	?NewL@CXnControlAdapter@@SAPAV1@AAVCXnNodePluginIf@@@Z @ 145 NONAME ; class CXnControlAdapter * CXnControlAdapter::NewL(class CXnNodePluginIf &)
+	?EnableLongTapAnimation@CXnControlAdapter@@QAEXH@Z @ 146 NONAME ; void CXnControlAdapter::EnableLongTapAnimation(int)
+	?SetPaddingRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 147 NONAME ; void CXnNodePluginIf::SetPaddingRect(class TRect const &)
+	?SetFocusedNode@TXnUiEnginePluginIf@@QAEXPAVCXnNodePluginIf@@@Z @ 148 NONAME ; void TXnUiEnginePluginIf::SetFocusedNode(class CXnNodePluginIf *)
+	?ExitPowerSaveModeL@CXnComponent@@UAEXXZ @ 149 NONAME ; void CXnComponent::ExitPowerSaveModeL(void)
+	?EnableSwipeL@TXnUiEnginePluginIf@@QAEXH@Z @ 150 NONAME ; void TXnUiEnginePluginIf::EnableSwipeL(int)
+	?GetPCData@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 151 NONAME ; class TDesC8 const & CXnNodeAppIf::GetPCData(void) const
+	?Namespace@CXnNodeAppIf@@QAEABVTDesC8@@XZ @ 152 NONAME ; class TDesC8 const & CXnNodeAppIf::Namespace(void)
+	??1CXnComponentNodeImpl@@UAE@XZ @ 153 NONAME ; CXnComponentNodeImpl::~CXnComponentNodeImpl(void)
+	?SetPropertyWithoutNotificationL@CXnNodePluginIf@@QAEXPAVCXnProperty@@@Z @ 154 NONAME ; void CXnNodePluginIf::SetPropertyWithoutNotificationL(class CXnProperty *)
+	?GetPCData@CXnNodePluginIf@@QBEABVTDesC8@@XZ @ 155 NONAME ; class TDesC8 const & CXnNodePluginIf::GetPCData(void) const
+	?SetPCDataL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 156 NONAME ; void CXnNodeAppIf::SetPCDataL(class TDesC8 const &)
+	?Resources@TXnUiEnginePluginIf@@QAEAAV?$CArrayPtrSeg@VCXnResource@@@@XZ @ 157 NONAME ; class CArrayPtrSeg<class CXnResource> & TXnUiEnginePluginIf::Resources(void)
+	?SetContentBitmaps@CXnControlAdapter@@QAEXABVTDesC16@@0@Z @ 158 NONAME ; void CXnControlAdapter::SetContentBitmaps(class TDesC16 const &, class TDesC16 const &)
+	??1CXnControlAdapter@@UAE@XZ @ 159 NONAME ; CXnControlAdapter::~CXnControlAdapter(void)
+	??1MXnNodePredicate@@UAE@XZ @ 160 NONAME ; MXnNodePredicate::~MXnNodePredicate(void)
+	?HorizontalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 161 NONAME ; int TXnUiEnginePluginIf::HorizontalTwipValueL(class CXnProperty *, int)
+	?ConstructL@CXnAppUiAdapter@@UAEXXZ @ 162 NONAME ; void CXnAppUiAdapter::ConstructL(void)
+	?CreateFontL@CXnUtils@@SAXAAVCXnNodePluginIf@@AAPAVCFont@@AAH@Z @ 163 NONAME ; void CXnUtils::CreateFontL(class CXnNodePluginIf &, class CFont * &, int &)
+	??0CXnApplication@@QAE@VTUid@@@Z @ 164 NONAME ; CXnApplication::CXnApplication(class TUid)
+	?ComponentControl@CXnControlAdapter@@MBEPAVCCoeControl@@H@Z @ 165 NONAME ; class CCoeControl * CXnControlAdapter::ComponentControl(int) const
+	?HandleLongTapEventL@CXnControlAdapter@@UAEXABVTPoint@@0@Z @ 166 NONAME ; void CXnControlAdapter::HandleLongTapEventL(class TPoint const &, class TPoint const &)
+	?ParentL@CXnNodeAppIf@@QBEPAV1@XZ @ 167 NONAME ; class CXnNodeAppIf * CXnNodeAppIf::ParentL(void) const
+	??1CXnComponent@@UAE@XZ @ 168 NONAME ; CXnComponent::~CXnComponent(void)
+	?ControlAdapter@CXnComponent@@QAEPAVCXnControlAdapter@@XZ @ 169 NONAME ; class CXnControlAdapter * CXnComponent::ControlAdapter(void)
+	?DrawContentImage@CXnControlAdapter@@IBEXXZ @ 170 NONAME ; void CXnControlAdapter::DrawContentImage(void) const
+	?Component@CXnComponentNodeImpl@@QAEPAVCXnComponent@@XZ @ 171 NONAME ; class CXnComponent * CXnComponentNodeImpl::Component(void)
+	?WidgetsVisible@TXnUiEnginePluginIf@@QBEHXZ @ 172 NONAME ; int TXnUiEnginePluginIf::WidgetsVisible(void) const
+	?SetControlAdapter@CXnComponent@@QAEXPAVCXnControlAdapter@@@Z @ 173 NONAME ; void CXnComponent::SetControlAdapter(class CXnControlAdapter *)
+	?SetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 174 NONAME ; void CXnNodePluginIf::SetStateL(class TDesC8 const &)
+	?DoesComponentNeedCreation@CXnComponentNodeImpl@@QBEHXZ @ 175 NONAME ; int CXnComponentNodeImpl::DoesComponentNeedCreation(void) const
+	??0CXnDocument@@QAE@AAVCEikApplication@@VTUid@@@Z @ 176 NONAME ; CXnDocument::CXnDocument(class CEikApplication &, class TUid)
+	?FindNodeByClassL@TXnUiEnginePluginIf@@QAE?AV?$RPointerArray@VCXnNodePluginIf@@@@ABVTDesC16@@@Z @ 177 NONAME ; class RPointerArray<class CXnNodePluginIf> TXnUiEnginePluginIf::FindNodeByClassL(class TDesC16 const &)
+	?InternalDomNodeType@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 178 NONAME ; class TDesC8 const & CXnNodeAppIf::InternalDomNodeType(void) const
+	?StringPool@TXnUiEnginePluginIf@@QAEAAVCXnDomStringPool@@XZ @ 179 NONAME ; class CXnDomStringPool & TXnUiEnginePluginIf::StringPool(void)
+	?SetStateL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 180 NONAME ; void CXnNodeAppIf::SetStateL(class TDesC8 const &)
+	?Type@CXnNodeAppIf@@QAEPAVCXnType@@XZ @ 181 NONAME ; class CXnType * CXnNodeAppIf::Type(void)
+	?BorderRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 182 NONAME ; class TRect CXnNodeAppIf::BorderRect(void)
+	?IdL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 183 NONAME ; class CXnProperty * CXnNodePluginIf::IdL(void)
+	?RootNodeL@TXnUiEngineAppIf@@QAEAAVCXnNodeAppIf@@XZ @ 184 NONAME ; class CXnNodeAppIf & TXnUiEngineAppIf::RootNodeL(void)
+	?CreateXnComponentL@MXnComponentFactory@@QAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 185 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::CreateXnComponentL(class CXnNodePluginIf &, class CXnComponent * &)
+	?RefreshMenuL@TXnUiEngineAppIf@@QAEXXZ @ 186 NONAME ; void TXnUiEngineAppIf::RefreshMenuL(void)
+	?PaddingRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 187 NONAME ; class TRect CXnNodePluginIf::PaddingRect(void)
+	?MeasureAdaptiveContentL@CXnControlAdapter@@UAE?AVTSize@@ABV2@@Z @ 188 NONAME ; class TSize CXnControlAdapter::MeasureAdaptiveContentL(class TSize const &)
+	?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@0W4TPrimitiveValueType@CXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 189 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class TDesC8 const &, enum CXnDomPropertyValue::TPrimitiveValueType, class CXnDomStringPool &)
+	?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@AAV2@@Z @ 190 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class CXnProperty &) const
+	?HitRegion@TXnUiEnginePluginIf@@QBEPAVCXnControlAdapter@@XZ @ 191 NONAME ; class CXnControlAdapter * TXnUiEnginePluginIf::HitRegion(void) const
+	?MarginRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 192 NONAME ; class TRect CXnNodeAppIf::MarginRect(void)
+	?MakeInterfaceL@CXnComponent@@UAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 193 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnComponent::MakeInterfaceL(class TDesC8 const &)
+	?EditMode@TXnUiEnginePluginIf@@QAEHXZ @ 194 NONAME ; int TXnUiEnginePluginIf::EditMode(void)
+	?FindNodeByIdL@TXnUiEnginePluginIf@@QAEPAVCXnNodePluginIf@@ABVTDesC8@@0@Z @ 195 NONAME ; class CXnNodePluginIf * TXnUiEnginePluginIf::FindNodeByIdL(class TDesC8 const &, class TDesC8 const &)
+	?EnableRenderUi@CXnUiEngineImpl@@CAXPAX@Z @ 196 NONAME ; void CXnUiEngineImpl::EnableRenderUi(void *)
+	?IsMenuDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 197 NONAME ; int TXnUiEnginePluginIf::IsMenuDisplaying(void)
+	?IsMenuDisplaying@TXnUiEngineAppIf@@QAEHXZ @ 198 NONAME ; int TXnUiEngineAppIf::IsMenuDisplaying(void)
+	?NewL@CXnProperty@@SAPAV1@PAVCXnDomProperty@@@Z @ 199 NONAME ; class CXnProperty * CXnProperty::NewL(class CXnDomProperty *)
+	?ConstructL@CXnComponentNodeImpl@@IAEXPAVCXnType@@@Z @ 200 NONAME ; void CXnComponentNodeImpl::ConstructL(class CXnType *)
+	?ChildrenL@CXnNodeAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@XZ @ 201 NONAME ; class RPointerArray<class CXnNodeAppIf> CXnNodeAppIf::ChildrenL(void)
 	?LoadPublisher@CXnAppUiAdapter@@UAEHAAVCXnNodeAppIf@@H@Z @ 202 NONAME ; int CXnAppUiAdapter::LoadPublisher(class CXnNodeAppIf &, int)
-	?LoadBitmap@CXnControlAdapter@@QAEPAVCFbsBitmap@@ABVTDesC16@@@Z @ 203 NONAME ; class CFbsBitmap * CXnControlAdapter::LoadBitmap(class TDesC16 const &)
-	??0MXnComponentFactory@@IAE@XZ @ 204 NONAME ; MXnComponentFactory::MXnComponentFactory(void)
-	?SetComponent@CXnViewsNodeImpl@@QAEXPAVCXnComponent@@@Z @ 205 NONAME ; void CXnViewsNodeImpl::SetComponent(class CXnComponent *)
-	?BorderRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 206 NONAME ; class TRect CXnNodePluginIf::BorderRect(void)
-	?CreateDocumentL@CXnApplication@@MAEPAVCApaDocument@@XZ @ 207 NONAME ; class CApaDocument * CXnApplication::CreateDocumentL(void)
-	?CreateFontL@CXnUtils@@SAXABVTDesC16@@HVTFontStyle@@AAPAVCFont@@AAH@Z @ 208 NONAME ; void CXnUtils::CreateFontL(class TDesC16 const &, int, class TFontStyle, class CFont * &, int &)
-	?GetPluginNodeArrayL@TXnUiEngineAppIf@@QAEHAAV?$RPointerArray@VCXnNodeAppIf@@@@@Z @ 209 NONAME ; int TXnUiEngineAppIf::GetPluginNodeArrayL(class RPointerArray<class CXnNodeAppIf> &)
-	?MakeXnControlAdapterL@MXnComponentFactory@@EAEPAVCXnControlAdapter@@AAVCXnNodePluginIf@@PAV2@@Z @ 210 NONAME ; class CXnControlAdapter * MXnComponentFactory::MakeXnControlAdapterL(class CXnNodePluginIf &, class CXnControlAdapter *)
-	?IsDrawingAllowed@CXnNodePluginIf@@QBEHXZ @ 211 NONAME ; int CXnNodePluginIf::IsDrawingAllowed(void) const
-	?MakeInterfaceL@CXnNodeAppIf@@QAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 212 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnNodeAppIf::MakeInterfaceL(class TDesC8 const &)
-	?VerticalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 213 NONAME ; int TXnUiEnginePluginIf::VerticalTwipValueL(class CXnProperty *, int)
-	?Component@CXnControlAdapter@@QAEPAVCXnComponent@@XZ @ 214 NONAME ; class CXnComponent * CXnControlAdapter::Component(void)
-	?FloatValueL@CXnProperty@@QAENXZ @ 215 NONAME ; double CXnProperty::FloatValueL(void)
-	?SetUiEngine@TXnUiEngineAppIf@@QAEXPAVCXnUiEngine@@@Z @ 216 NONAME ; void TXnUiEngineAppIf::SetUiEngine(class CXnUiEngine *)
-	?FindNodeByIdL@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@ABVTDesC16@@0@Z @ 217 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FindNodeByIdL(class TDesC16 const &, class TDesC16 const &)
-	?IsEditMode@TXnUiEngineAppIf@@QAEHXZ @ 218 NONAME ; int TXnUiEngineAppIf::IsEditMode(void)
-	?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@AAH@Z @ 219 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &, int &)
-	?EnablePartialTouchInput@TXnUiEnginePluginIf@@QAEXAAVCXnNodePluginIf@@H@Z @ 220 NONAME ; void TXnUiEnginePluginIf::EnablePartialTouchInput(class CXnNodePluginIf &, int)
-	?RootNodeL@TXnUiEnginePluginIf@@QAEAAVCXnNodePluginIf@@XZ @ 221 NONAME ; class CXnNodePluginIf & TXnUiEnginePluginIf::RootNodeL(void)
-	?CreateAppUiL@CXnDocument@@UAEPAVCEikAppUi@@XZ @ 222 NONAME ; class CEikAppUi * CXnDocument::CreateAppUiL(void)
-	?PathL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 223 NONAME ; class CXnProperty * CXnNodePluginIf::PathL(void)
-	?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@NW4TPrimitiveValueType@CXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 224 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, double, enum CXnDomPropertyValue::TPrimitiveValueType, class CXnDomStringPool &)
-	?MaskPathL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 225 NONAME ; class CXnProperty * CXnNodePluginIf::MaskPathL(void)
-	?AppDllUid@CXnApplication@@MBE?AVTUid@@XZ @ 226 NONAME ; class TUid CXnApplication::AppDllUid(void) const
-	?DoExitPowerSaveModeL@CXnControlAdapter@@UAEXW4TModeEvent@1@@Z @ 227 NONAME ; void CXnControlAdapter::DoExitPowerSaveModeL(enum CXnControlAdapter::TModeEvent)
-	?LabelL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 228 NONAME ; class CXnProperty * CXnNodePluginIf::LabelL(void)
-	?Component@CXnViewsNodeImpl@@QAEPAVCXnComponent@@XZ @ 229 NONAME ; class CXnComponent * CXnViewsNodeImpl::Component(void)
-	?GetRgbValue@CXnUtils@@SAHAAVTRgb@@ABVTDesC8@@@Z @ 230 NONAME ; int CXnUtils::GetRgbValue(class TRgb &, class TDesC8 const &)
-	?StringValue@CXnProperty@@QAEABVTDesC8@@XZ @ 231 NONAME ; class TDesC8 const & CXnProperty::StringValue(void)
-	?SetVisible@CXnControlAdapter@@QAEXH@Z @ 232 NONAME ; void CXnControlAdapter::SetVisible(int)
-	?Node@CXnComponent@@QAEPAVCXnNodePluginIf@@XZ @ 233 NONAME ; class CXnNodePluginIf * CXnComponent::Node(void)
-	?ProcessMessageL@CXnAppUiAdapter@@UAEXVTUid@@ABVTDesC8@@@Z @ 234 NONAME ; void CXnAppUiAdapter::ProcessMessageL(class TUid, class TDesC8 const &)
-	?IsTextEditorActive@TXnUiEnginePluginIf@@QAEHXZ @ 235 NONAME ; int TXnUiEnginePluginIf::IsTextEditorActive(void)
+	?ConvertHslToRgb@CXnUtils@@SA?AVTRgb@@HHH@Z @ 203 NONAME ; class TRgb CXnUtils::ConvertHslToRgb(int, int, int)
+	?LoadBitmap@CXnControlAdapter@@QAEPAVCFbsBitmap@@ABVTDesC16@@@Z @ 204 NONAME ; class CFbsBitmap * CXnControlAdapter::LoadBitmap(class TDesC16 const &)
+	??0MXnComponentFactory@@IAE@XZ @ 205 NONAME ; MXnComponentFactory::MXnComponentFactory(void)
+	?SetComponent@CXnViewsNodeImpl@@QAEXPAVCXnComponent@@@Z @ 206 NONAME ; void CXnViewsNodeImpl::SetComponent(class CXnComponent *)
+	?BorderRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 207 NONAME ; class TRect CXnNodePluginIf::BorderRect(void)
+	?CreateDocumentL@CXnApplication@@MAEPAVCApaDocument@@XZ @ 208 NONAME ; class CApaDocument * CXnApplication::CreateDocumentL(void)
+	?HandleUiReadyEventL@CXnAppUiAdapter@@UAEXXZ @ 209 NONAME ; void CXnAppUiAdapter::HandleUiReadyEventL(void)
+	?CreateFontL@CXnUtils@@SAXABVTDesC16@@HVTFontStyle@@AAPAVCFont@@AAH@Z @ 210 NONAME ; void CXnUtils::CreateFontL(class TDesC16 const &, int, class TFontStyle, class CFont * &, int &)
+	?GetPluginNodeArrayL@TXnUiEngineAppIf@@QAEHAAV?$RPointerArray@VCXnNodeAppIf@@@@@Z @ 211 NONAME ; int TXnUiEngineAppIf::GetPluginNodeArrayL(class RPointerArray<class CXnNodeAppIf> &)
+	?MakeXnControlAdapterL@MXnComponentFactory@@EAEPAVCXnControlAdapter@@AAVCXnNodePluginIf@@PAV2@@Z @ 212 NONAME ; class CXnControlAdapter * MXnComponentFactory::MakeXnControlAdapterL(class CXnNodePluginIf &, class CXnControlAdapter *)
+	?IsDrawingAllowed@CXnNodePluginIf@@QBEHXZ @ 213 NONAME ; int CXnNodePluginIf::IsDrawingAllowed(void) const
+	?MakeInterfaceL@CXnNodeAppIf@@QAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 214 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnNodeAppIf::MakeInterfaceL(class TDesC8 const &)
+	?VerticalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 215 NONAME ; int TXnUiEnginePluginIf::VerticalTwipValueL(class CXnProperty *, int)
+	?Component@CXnControlAdapter@@QAEPAVCXnComponent@@XZ @ 216 NONAME ; class CXnComponent * CXnControlAdapter::Component(void)
+	?FloatValueL@CXnProperty@@QAENXZ @ 217 NONAME ; double CXnProperty::FloatValueL(void)
+	?SetUiEngine@TXnUiEngineAppIf@@QAEXPAVCXnUiEngine@@@Z @ 218 NONAME ; void TXnUiEngineAppIf::SetUiEngine(class CXnUiEngine *)
+	?FindNodeByIdL@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@ABVTDesC16@@0@Z @ 219 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FindNodeByIdL(class TDesC16 const &, class TDesC16 const &)
+	?IsEditMode@TXnUiEngineAppIf@@QAEHXZ @ 220 NONAME ; int TXnUiEngineAppIf::IsEditMode(void)
+	?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@AAH@Z @ 221 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &, int &)
+	?EnablePartialTouchInput@TXnUiEnginePluginIf@@QAEXAAVCXnNodePluginIf@@H@Z @ 222 NONAME ; void TXnUiEnginePluginIf::EnablePartialTouchInput(class CXnNodePluginIf &, int)
+	?RootNodeL@TXnUiEnginePluginIf@@QAEAAVCXnNodePluginIf@@XZ @ 223 NONAME ; class CXnNodePluginIf & TXnUiEnginePluginIf::RootNodeL(void)
+	?CreateAppUiL@CXnDocument@@UAEPAVCEikAppUi@@XZ @ 224 NONAME ; class CEikAppUi * CXnDocument::CreateAppUiL(void)
+	?PathL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 225 NONAME ; class CXnProperty * CXnNodePluginIf::PathL(void)
+	?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@NW4TPrimitiveValueType@CXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 226 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, double, enum CXnDomPropertyValue::TPrimitiveValueType, class CXnDomStringPool &)
+	?MaskPathL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 227 NONAME ; class CXnProperty * CXnNodePluginIf::MaskPathL(void)
+	?AppDllUid@CXnApplication@@MBE?AVTUid@@XZ @ 228 NONAME ; class TUid CXnApplication::AppDllUid(void) const
+	?DoExitPowerSaveModeL@CXnControlAdapter@@UAEXW4TModeEvent@1@@Z @ 229 NONAME ; void CXnControlAdapter::DoExitPowerSaveModeL(enum CXnControlAdapter::TModeEvent)
+	?LabelL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 230 NONAME ; class CXnProperty * CXnNodePluginIf::LabelL(void)
+	?Component@CXnViewsNodeImpl@@QAEPAVCXnComponent@@XZ @ 231 NONAME ; class CXnComponent * CXnViewsNodeImpl::Component(void)
+	?GetRgbValue@CXnUtils@@SAHAAVTRgb@@ABVTDesC8@@@Z @ 232 NONAME ; int CXnUtils::GetRgbValue(class TRgb &, class TDesC8 const &)
+	?StringValue@CXnProperty@@QAEABVTDesC8@@XZ @ 233 NONAME ; class TDesC8 const & CXnProperty::StringValue(void)
+	?SetVisible@CXnControlAdapter@@QAEXH@Z @ 234 NONAME ; void CXnControlAdapter::SetVisible(int)
+	?Node@CXnComponent@@QAEPAVCXnNodePluginIf@@XZ @ 235 NONAME ; class CXnNodePluginIf * CXnComponent::Node(void)
 
--- a/idlehomescreen/xmluirendering/uiengine/eabi/xn3layoutengineu.def	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/eabi/xn3layoutengineu.def	Wed Mar 31 21:17:19 2010 +0300
@@ -56,234 +56,234 @@
 	_ZN14CXnApplicationD2Ev @ 55 NONAME
 	_ZN15CXnAppUiAdapter10ConstructLEv @ 56 NONAME
 	_ZN15CXnAppUiAdapter11RemoveViewLER8CAknView @ 57 NONAME
-	_ZN15CXnAppUiAdapter11UiActivatedEv @ 58 NONAME
-	_ZN15CXnAppUiAdapter12HandleEventLERK7TDesC16R12CXnNodeAppIf @ 59 NONAME
-	_ZN15CXnAppUiAdapter13LoadPublisherER12CXnNodeAppIfi @ 60 NONAME
-	_ZN15CXnAppUiAdapter13PrepareToExitEv @ 61 NONAME
+	_ZN15CXnAppUiAdapter12HandleEventLERK7TDesC16R12CXnNodeAppIf @ 58 NONAME
+	_ZN15CXnAppUiAdapter13LoadPublisherER12CXnNodeAppIfi @ 59 NONAME
+	_ZN15CXnAppUiAdapter13PrepareToExitEv @ 60 NONAME
+	_ZN15CXnAppUiAdapter15ProcessMessageLE4TUidRK6TDesC8 @ 61 NONAME
 	_ZN15CXnAppUiAdapter16DestroyPublisherER12CXnNodeAppIfi @ 62 NONAME
 	_ZN15CXnAppUiAdapter16DynInitMenuItemLERK7TDesC16P13RPointerArrayI12CXnNodeAppIfE @ 63 NONAME
 	_ZN15CXnAppUiAdapter18HandleXuikonEventLER12CXnNodeAppIfS1_R10CXnDomNodeS3_ @ 64 NONAME
-	_ZN15CXnAppUiAdapter20HandleEnterEditModeLEi @ 65 NONAME
-	_ZN15CXnAppUiAdapter21HandleResourceChangeLEi @ 66 NONAME
-	_ZN15CXnAppUiAdapter9UiEngineLEv @ 67 NONAME
-	_ZN15CXnAppUiAdapterC1E4TUid @ 68 NONAME
-	_ZN15CXnAppUiAdapterC2E4TUid @ 69 NONAME
-	_ZN15CXnAppUiAdapterD0Ev @ 70 NONAME
-	_ZN15CXnAppUiAdapterD1Ev @ 71 NONAME
-	_ZN15CXnAppUiAdapterD2Ev @ 72 NONAME
-	_ZN15CXnNodePluginIf10BorderRectEv @ 73 NONAME
-	_ZN15CXnNodePluginIf10MarginRectEv @ 74 NONAME
-	_ZN15CXnNodePluginIf10SetPCDataLERK6TDesC8 @ 75 NONAME
-	_ZN15CXnNodePluginIf11PaddingRectEv @ 76 NONAME
-	_ZN15CXnNodePluginIf11UnsetStateLERK6TDesC8 @ 77 NONAME
-	_ZN15CXnNodePluginIf11VisibilityLEv @ 78 NONAME
-	_ZN15CXnNodePluginIf12SetPropertyLEP11CXnProperty @ 79 NONAME
-	_ZN15CXnNodePluginIf12ViewNodeImplEv @ 80 NONAME
-	_ZN15CXnNodePluginIf13SetBorderRectERK5TRect @ 81 NONAME
-	_ZN15CXnNodePluginIf13SetMarginRectERK5TRect @ 82 NONAME
-	_ZN15CXnNodePluginIf14IsFocusedStateEv @ 83 NONAME
-	_ZN15CXnNodePluginIf14MakeInterfaceLERK6TDesC8 @ 84 NONAME
-	_ZN15CXnNodePluginIf14SetPaddingRectERK5TRect @ 85 NONAME
-	_ZN15CXnNodePluginIf16SetHandleTooltipEi @ 86 NONAME
-	_ZN15CXnNodePluginIf16SetLayoutCapableEi @ 87 NONAME
-	_ZN15CXnNodePluginIf17ComponentNodeImplEv @ 88 NONAME
-	_ZN15CXnNodePluginIf19ReportTriggerEventLERK6TDesC8S2_S2_ @ 89 NONAME
-	_ZN15CXnNodePluginIf31SetPropertyWithoutNotificationLEP11CXnProperty @ 90 NONAME
-	_ZN15CXnNodePluginIf3IdLEv @ 91 NONAME
-	_ZN15CXnNodePluginIf4RectEv @ 92 NONAME
-	_ZN15CXnNodePluginIf4TypeEv @ 93 NONAME
-	_ZN15CXnNodePluginIf5PathLEv @ 94 NONAME
-	_ZN15CXnNodePluginIf6AppIfLEv @ 95 NONAME
-	_ZN15CXnNodePluginIf6LabelLEv @ 96 NONAME
-	_ZN15CXnNodePluginIf7SetRectERK5TRect @ 97 NONAME
-	_ZN15CXnNodePluginIf8DisplayLEv @ 98 NONAME
-	_ZN15CXnNodePluginIf9AddChildLEPS_ @ 99 NONAME
-	_ZN15CXnNodePluginIf9ChildrenLEv @ 100 NONAME
-	_ZN15CXnNodePluginIf9MaskPathLEv @ 101 NONAME
-	_ZN15CXnNodePluginIf9NamespaceEv @ 102 NONAME
-	_ZN15CXnNodePluginIf9SetDirtyLEv @ 103 NONAME
-	_ZN15CXnNodePluginIf9SetStateLERK6TDesC8 @ 104 NONAME
-	_ZN15CXnNodePluginIf9UiEngineLEv @ 105 NONAME
-	_ZN15CXnUiEngineImpl14EnableRenderUiEPv @ 106 NONAME
-	_ZN16CXnViewsNodeImpl10ConstructLEP7CXnType @ 107 NONAME
-	_ZN16CXnViewsNodeImpl12SetComponentEP12CXnComponent @ 108 NONAME
-	_ZN16CXnViewsNodeImpl4NewLEP7CXnType @ 109 NONAME
-	_ZN16CXnViewsNodeImpl9ComponentEv @ 110 NONAME
-	_ZN16CXnViewsNodeImplC1Ev @ 111 NONAME
-	_ZN16CXnViewsNodeImplC2Ev @ 112 NONAME
-	_ZN16CXnViewsNodeImplD0Ev @ 113 NONAME
-	_ZN16CXnViewsNodeImplD1Ev @ 114 NONAME
-	_ZN16CXnViewsNodeImplD2Ev @ 115 NONAME
-	_ZN16MXnNodePredicate5MatchER7CXnNode @ 116 NONAME
-	_ZN16MXnNodePredicateC1Ev @ 117 NONAME
-	_ZN16MXnNodePredicateC2Ev @ 118 NONAME
-	_ZN16MXnNodePredicateD0Ev @ 119 NONAME
-	_ZN16MXnNodePredicateD1Ev @ 120 NONAME
-	_ZN16MXnNodePredicateD2Ev @ 121 NONAME
-	_ZN16TXnUiEngineAppIf10ActiveViewEv @ 122 NONAME
-	_ZN16TXnUiEngineAppIf10IsEditModeEv @ 123 NONAME
-	_ZN16TXnUiEngineAppIf10StringPoolEv @ 124 NONAME
-	_ZN16TXnUiEngineAppIf11FocusedNodeEv @ 125 NONAME
-	_ZN16TXnUiEngineAppIf11SetUiEngineEP11CXnUiEngine @ 126 NONAME
-	_ZN16TXnUiEngineAppIf12RefreshMenuLEv @ 127 NONAME
-	_ZN16TXnUiEngineAppIf13ActivateViewLER12CXnNodeAppIf @ 128 NONAME
-	_ZN16TXnUiEngineAppIf13FindNodeByIdLERK6TDesC8S2_ @ 129 NONAME
-	_ZN16TXnUiEngineAppIf13FindNodeByIdLERK7TDesC16S2_ @ 130 NONAME
-	_ZN16TXnUiEngineAppIf16FindNodeByClassLERK6TDesC8S2_ @ 131 NONAME
-	_ZN16TXnUiEngineAppIf16FindNodeByClassLERK7TDesC16S2_ @ 132 NONAME
-	_ZN16TXnUiEngineAppIf16GetThemeResourceERK7TDesC16R5RFile @ 133 NONAME
-	_ZN16TXnUiEngineAppIf16IsMenuDisplayingEv @ 134 NONAME
-	_ZN16TXnUiEngineAppIf19GetPluginNodeArrayLER13RPointerArrayI12CXnNodeAppIfE @ 135 NONAME
-	_ZN16TXnUiEngineAppIf23FindContentSourceNodesLERK6TDesC8 @ 136 NONAME
-	_ZN16TXnUiEngineAppIf9RenderUILEP12CXnNodeAppIf @ 137 NONAME
-	_ZN16TXnUiEngineAppIf9RootNodeLEv @ 138 NONAME
-	_ZN17CXnControlAdapter10ConstructLER15CXnNodePluginIf @ 139 NONAME
-	_ZN17CXnControlAdapter10LoadBitmapERK7TDesC16 @ 140 NONAME
-	_ZN17CXnControlAdapter10SetVisibleEi @ 141 NONAME
-	_ZN17CXnControlAdapter11SizeChangedEv @ 142 NONAME
-	_ZN17CXnControlAdapter11SkinChangedEv @ 143 NONAME
-	_ZN17CXnControlAdapter12FocusChangedE8TDrawNow @ 144 NONAME
-	_ZN17CXnControlAdapter12SetComponentEP12CXnComponent @ 145 NONAME
-	_ZN17CXnControlAdapter14ContentBitmapsERP10CFbsBitmapS2_ @ 146 NONAME
-	_ZN17CXnControlAdapter14OfferKeyEventLERK9TKeyEvent10TEventCode @ 147 NONAME
-	_ZN17CXnControlAdapter15SetLocalUiZoomLE10TAknUiZoom @ 148 NONAME
-	_ZN17CXnControlAdapter16GetBitmapAndMaskERK7TDesC16S2_RP10CFbsBitmapS5_ @ 149 NONAME
-	_ZN17CXnControlAdapter17SetContentBitmapsEP10CFbsBitmapS1_ @ 150 NONAME
-	_ZN17CXnControlAdapter17SetContentBitmapsERK7TDesC16S2_ @ 151 NONAME
-	_ZN17CXnControlAdapter18ExitPowerSaveModeLENS_10TModeEventE @ 152 NONAME
-	_ZN17CXnControlAdapter18ResetStylusCounterEv @ 153 NONAME
-	_ZN17CXnControlAdapter19EnterPowerSaveModeLENS_10TModeEventE @ 154 NONAME
-	_ZN17CXnControlAdapter19HandleControlEventLEP11CCoeControlN19MCoeControlObserver9TCoeEventE @ 155 NONAME
-	_ZN17CXnControlAdapter19HandleLongTapEventLERK6TPointS2_ @ 156 NONAME
-	_ZN17CXnControlAdapter19HandlePointerEventLERK13TPointerEvent @ 157 NONAME
-	_ZN17CXnControlAdapter20DoExitPowerSaveModeLENS_10TModeEventE @ 158 NONAME
-	_ZN17CXnControlAdapter21DoEnterPowerSaveModeLENS_10TModeEventE @ 159 NONAME
-	_ZN17CXnControlAdapter21HandlePropertyChangeLEP11CXnProperty @ 160 NONAME
-	_ZN17CXnControlAdapter22EnableLongTapAnimationEi @ 161 NONAME
-	_ZN17CXnControlAdapter23DoHandlePropertyChangeLEP11CXnProperty @ 162 NONAME
-	_ZN17CXnControlAdapter23MeasureAdaptiveContentLERK5TSize @ 163 NONAME
-	_ZN17CXnControlAdapter26HandleScreenDeviceChangedLEv @ 164 NONAME
-	_ZN17CXnControlAdapter4NewLER15CXnNodePluginIf @ 165 NONAME
-	_ZN17CXnControlAdapter8SetBlankEi @ 166 NONAME
-	_ZN17CXnControlAdapter8SetDataLERK6TDesC8RK7TDesC16i @ 167 NONAME
-	_ZN17CXnControlAdapter9ComponentEv @ 168 NONAME
-	_ZN17CXnControlAdapterC1Ev @ 169 NONAME
-	_ZN17CXnControlAdapterC2Ev @ 170 NONAME
-	_ZN17CXnControlAdapterD0Ev @ 171 NONAME
-	_ZN17CXnControlAdapterD1Ev @ 172 NONAME
-	_ZN17CXnControlAdapterD2Ev @ 173 NONAME
-	_ZN19MXnComponentFactory16MakeXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 174 NONAME
-	_ZN19MXnComponentFactory18CreateXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 175 NONAME
-	_ZN19MXnComponentFactory21MakeXnControlAdapterLER15CXnNodePluginIfP17CXnControlAdapter @ 176 NONAME
-	_ZN19MXnComponentFactory26DoesNodeNeedComponentImplLERK6TDesC8 @ 177 NONAME
-	_ZN19MXnComponentFactoryC2Ev @ 178 NONAME
-	_ZN19MXnComponentFactoryD0Ev @ 179 NONAME
-	_ZN19MXnComponentFactoryD1Ev @ 180 NONAME
-	_ZN19MXnComponentFactoryD2Ev @ 181 NONAME
-	_ZN19TXnUiEnginePluginIf10StringPoolEv @ 182 NONAME
-	_ZN19TXnUiEnginePluginIf11PluginNodeLEP15CXnNodePluginIf @ 183 NONAME
-	_ZN19TXnUiEnginePluginIf12EnableSwipeLEi @ 184 NONAME
-	_ZN19TXnUiEnginePluginIf12FocusVisibleEv @ 185 NONAME
-	_ZN19TXnUiEnginePluginIf12FocusedNodeLEv @ 186 NONAME
-	_ZN19TXnUiEnginePluginIf13ActivateViewLER15CXnNodePluginIf @ 187 NONAME
-	_ZN19TXnUiEnginePluginIf13AddDirtyNodeLER15CXnNodePluginIf @ 188 NONAME
-	_ZN19TXnUiEnginePluginIf13FindNodeByIdLERK6TDesC8S2_ @ 189 NONAME
-	_ZN19TXnUiEnginePluginIf13FindNodeByIdLERK7TDesC16S2_ @ 190 NONAME
-	_ZN19TXnUiEnginePluginIf13SwipeEnabledLEv @ 191 NONAME
-	_ZN19TXnUiEnginePluginIf14SetFocusedNodeEP15CXnNodePluginIf @ 192 NONAME
-	_ZN19TXnUiEnginePluginIf16FindNodeByClassLERK7TDesC16 @ 193 NONAME
-	_ZN19TXnUiEnginePluginIf16IsMenuDisplayingEv @ 194 NONAME
-	_ZN19TXnUiEnginePluginIf16ScreenDeviceSizeEv @ 195 NONAME
-	_ZN19TXnUiEnginePluginIf16SetFocusVisibleLEi @ 196 NONAME
-	_ZN19TXnUiEnginePluginIf17DisableRenderUiLCEv @ 197 NONAME
-	_ZN19TXnUiEnginePluginIf18IsDialogDisplayingEv @ 198 NONAME
-	_ZN19TXnUiEnginePluginIf18VerticalTwipValueLEP11CXnPropertyi @ 199 NONAME
-	_ZN19TXnUiEnginePluginIf19VerticalPixelValueLEP11CXnPropertyi @ 200 NONAME
-	_ZN19TXnUiEnginePluginIf20HorizontalTwipValueLEP11CXnPropertyi @ 201 NONAME
-	_ZN19TXnUiEnginePluginIf21HorizontalPixelValueLEP11CXnPropertyi @ 202 NONAME
-	_ZN19TXnUiEnginePluginIf22DeactivateFocusedNodeLEv @ 203 NONAME
-	_ZN19TXnUiEnginePluginIf23EnablePartialTouchInputER15CXnNodePluginIfi @ 204 NONAME
-	_ZN19TXnUiEnginePluginIf26RestorePreviousFocusedNodeEv @ 205 NONAME
-	_ZN19TXnUiEnginePluginIf8EditModeEv @ 206 NONAME
-	_ZN19TXnUiEnginePluginIf9LayoutUILEP15CXnNodePluginIf @ 207 NONAME
-	_ZN19TXnUiEnginePluginIf9RenderUILEP15CXnNodePluginIf @ 208 NONAME
-	_ZN19TXnUiEnginePluginIf9ResourcesEv @ 209 NONAME
-	_ZN19TXnUiEnginePluginIf9RootNodeLEv @ 210 NONAME
-	_ZN19TXnUiEnginePluginIf9ShowFocusEv @ 211 NONAME
-	_ZN20CXnComponentNodeImpl10ConstructLEP7CXnType @ 212 NONAME
-	_ZN20CXnComponentNodeImpl12SetComponentEP12CXnComponent @ 213 NONAME
-	_ZN20CXnComponentNodeImpl14MakeInterfaceLERK6TDesC8 @ 214 NONAME
-	_ZN20CXnComponentNodeImpl25SetComponentNeedsCreationEi @ 215 NONAME
-	_ZN20CXnComponentNodeImpl4NewLEP7CXnType @ 216 NONAME
-	_ZN20CXnComponentNodeImpl9ComponentEv @ 217 NONAME
-	_ZN20CXnComponentNodeImplC1Ev @ 218 NONAME
-	_ZN20CXnComponentNodeImplC2Ev @ 219 NONAME
-	_ZN20CXnComponentNodeImplD0Ev @ 220 NONAME
-	_ZN20CXnComponentNodeImplD1Ev @ 221 NONAME
-	_ZN20CXnComponentNodeImplD2Ev @ 222 NONAME
-	_ZN8CXnUtils11CreateFontLER15CXnNodePluginIfRP5CFontRi @ 223 NONAME
-	_ZN8CXnUtils11CreateFontLERK7TDesC16i10TFontStyleRP5CFontRi @ 224 NONAME
-	_ZN8CXnUtils11GetRgbValueER4TRgbRK6TDesC8 @ 225 NONAME
-	_ZN8CXnUtils11StripQuotesERP7HBufC16 @ 226 NONAME
-	_ZN8CXnUtils12FindResourceER12CArrayPtrSegI11CXnResourceERK7TDesC16Ri @ 227 NONAME
-	_ZN8CXnUtils12ScaleBitmapLERK5TRectP10CFbsBitmapS4_ @ 228 NONAME
-	_ZN8CXnUtils13TextAlignmentER15CXnNodePluginIf @ 229 NONAME
-	_ZN8CXnUtils15ConvertHslToRgbEiii @ 230 NONAME
-	_ZN8CXnUtils18CollapseWhiteSpaceER15CXnNodePluginIfR6TDes16 @ 231 NONAME
-	_ZN8CXnUtils18ResolveSkinItemIDLERK7TDesC16R11TAknsItemIDRi @ 232 NONAME
-	_ZN8CXnUtils20HandlePowerSaveModeLEP7CXnNodeii @ 233 NONAME
-	_ZNK11CXnProperty7EqualsLERS_ @ 234 NONAME
-	_ZNK12CXnNodeAppIf12GetPropertyLER11CXnProperty @ 235 NONAME
-	_ZNK12CXnNodeAppIf12GetPropertyLERK6TDesC8 @ 236 NONAME
-	_ZNK12CXnNodeAppIf19InternalDomNodeTypeEv @ 237 NONAME
-	_ZNK12CXnNodeAppIf7ParentLEv @ 238 NONAME
-	_ZNK12CXnNodeAppIf9GetPCDataEv @ 239 NONAME
-	_ZNK14CXnApplication9AppDllUidEv @ 240 NONAME
-	_ZNK15CXnAppUiAdapter4ViewEv @ 241 NONAME
-	_ZNK15CXnNodePluginIf12GetPropertyLER11CXnProperty @ 242 NONAME
-	_ZNK15CXnNodePluginIf12GetPropertyLERK6TDesC8 @ 243 NONAME
-	_ZNK15CXnNodePluginIf7ControlEv @ 244 NONAME
-	_ZNK15CXnNodePluginIf7ParentLEv @ 245 NONAME
-	_ZNK15CXnNodePluginIf9GetPCDataEv @ 246 NONAME
-	_ZNK16TXnUiEngineAppIf14WidgetsVisibleEv @ 247 NONAME
-	_ZNK17CXnControlAdapter15LongTapDetectorEv @ 248 NONAME
-	_ZNK17CXnControlAdapter16ComponentControlEi @ 249 NONAME
-	_ZNK17CXnControlAdapter16DrawContentImageEv @ 250 NONAME
-	_ZNK17CXnControlAdapter16IsDrawingAllowedEv @ 251 NONAME
-	_ZNK17CXnControlAdapter22CountComponentControlsEv @ 252 NONAME
-	_ZNK17CXnControlAdapter4DrawERK5TRect @ 253 NONAME
-	_ZNK17CXnControlAdapter4DrawERK5TRectR9CWindowGc @ 254 NONAME
-	_ZNK19TXnUiEnginePluginIf14WidgetsVisibleEv @ 255 NONAME
-	_ZNK19TXnUiEnginePluginIf9HitRegionEv @ 256 NONAME
-	_ZNK20CXnComponentNodeImpl25DoesComponentNeedCreationEv @ 257 NONAME
-	_ZTI11CXnDocument @ 258 NONAME
-	_ZTI11CXnProperty @ 259 NONAME
-	_ZTI12CXnComponent @ 260 NONAME
-	_ZTI14CXnApplication @ 261 NONAME
-	_ZTI15CXnAppUiAdapter @ 262 NONAME
-	_ZTI16CXnViewsNodeImpl @ 263 NONAME
-	_ZTI16MXnNodePredicate @ 264 NONAME
-	_ZTI17CXnControlAdapter @ 265 NONAME
-	_ZTI18CXnListQueryDialog @ 266 NONAME
-	_ZTI19MXnComponentFactory @ 267 NONAME
-	_ZTI20CXnComponentNodeImpl @ 268 NONAME
-	_ZTI27CXnNodeBreadthFirstIteratorI7CXnNodeE @ 269 NONAME
-	_ZTIN21CXnControlAdapterImpl13TIconProviderE @ 270 NONAME
-	_ZTV11CXnDocument @ 271 NONAME
-	_ZTV11CXnProperty @ 272 NONAME
-	_ZTV12CXnComponent @ 273 NONAME
-	_ZTV14CXnApplication @ 274 NONAME
-	_ZTV15CXnAppUiAdapter @ 275 NONAME
-	_ZTV16CXnViewsNodeImpl @ 276 NONAME
-	_ZTV16MXnNodePredicate @ 277 NONAME
-	_ZTV17CXnControlAdapter @ 278 NONAME
-	_ZTV18CXnListQueryDialog @ 279 NONAME
-	_ZTV19MXnComponentFactory @ 280 NONAME
-	_ZTV20CXnComponentNodeImpl @ 281 NONAME
-	_ZTV27CXnNodeBreadthFirstIteratorI7CXnNodeE @ 282 NONAME
-	_ZTVN21CXnControlAdapterImpl13TIconProviderE @ 283 NONAME
-	_ZThn52_N17CXnControlAdapter19HandleControlEventLEP11CCoeControlN19MCoeControlObserver9TCoeEventE @ 284 NONAME
-	_ZThn60_N17CXnControlAdapter19HandleLongTapEventLERK6TPointS2_ @ 285 NONAME
-	_ZN15CXnAppUiAdapter15ProcessMessageLE4TUidRK6TDesC8 @ 286 NONAME
-	_ZN19TXnUiEnginePluginIf18IsTextEditorActiveEv @ 287 NONAME
+	_ZN15CXnAppUiAdapter19HandleUiReadyEventLEv @ 65 NONAME
+	_ZN15CXnAppUiAdapter20HandleEnterEditModeLEi @ 66 NONAME
+	_ZN15CXnAppUiAdapter21HandleResourceChangeLEi @ 67 NONAME
+	_ZN15CXnAppUiAdapter9UiEngineLEv @ 68 NONAME
+	_ZN15CXnAppUiAdapterC1E4TUid @ 69 NONAME
+	_ZN15CXnAppUiAdapterC2E4TUid @ 70 NONAME
+	_ZN15CXnAppUiAdapterD0Ev @ 71 NONAME
+	_ZN15CXnAppUiAdapterD1Ev @ 72 NONAME
+	_ZN15CXnAppUiAdapterD2Ev @ 73 NONAME
+	_ZN15CXnNodePluginIf10BorderRectEv @ 74 NONAME
+	_ZN15CXnNodePluginIf10MarginRectEv @ 75 NONAME
+	_ZN15CXnNodePluginIf10SetPCDataLERK6TDesC8 @ 76 NONAME
+	_ZN15CXnNodePluginIf11PaddingRectEv @ 77 NONAME
+	_ZN15CXnNodePluginIf11UnsetStateLERK6TDesC8 @ 78 NONAME
+	_ZN15CXnNodePluginIf11VisibilityLEv @ 79 NONAME
+	_ZN15CXnNodePluginIf12SetPropertyLEP11CXnProperty @ 80 NONAME
+	_ZN15CXnNodePluginIf12ViewNodeImplEv @ 81 NONAME
+	_ZN15CXnNodePluginIf13SetBorderRectERK5TRect @ 82 NONAME
+	_ZN15CXnNodePluginIf13SetMarginRectERK5TRect @ 83 NONAME
+	_ZN15CXnNodePluginIf14IsFocusedStateEv @ 84 NONAME
+	_ZN15CXnNodePluginIf14MakeInterfaceLERK6TDesC8 @ 85 NONAME
+	_ZN15CXnNodePluginIf14SetPaddingRectERK5TRect @ 86 NONAME
+	_ZN15CXnNodePluginIf16SetHandleTooltipEi @ 87 NONAME
+	_ZN15CXnNodePluginIf16SetLayoutCapableEi @ 88 NONAME
+	_ZN15CXnNodePluginIf17ComponentNodeImplEv @ 89 NONAME
+	_ZN15CXnNodePluginIf19ReportTriggerEventLERK6TDesC8S2_S2_ @ 90 NONAME
+	_ZN15CXnNodePluginIf31SetPropertyWithoutNotificationLEP11CXnProperty @ 91 NONAME
+	_ZN15CXnNodePluginIf3IdLEv @ 92 NONAME
+	_ZN15CXnNodePluginIf4RectEv @ 93 NONAME
+	_ZN15CXnNodePluginIf4TypeEv @ 94 NONAME
+	_ZN15CXnNodePluginIf5PathLEv @ 95 NONAME
+	_ZN15CXnNodePluginIf6AppIfLEv @ 96 NONAME
+	_ZN15CXnNodePluginIf6LabelLEv @ 97 NONAME
+	_ZN15CXnNodePluginIf7SetRectERK5TRect @ 98 NONAME
+	_ZN15CXnNodePluginIf8DisplayLEv @ 99 NONAME
+	_ZN15CXnNodePluginIf9AddChildLEPS_ @ 100 NONAME
+	_ZN15CXnNodePluginIf9ChildrenLEv @ 101 NONAME
+	_ZN15CXnNodePluginIf9MaskPathLEv @ 102 NONAME
+	_ZN15CXnNodePluginIf9NamespaceEv @ 103 NONAME
+	_ZN15CXnNodePluginIf9SetDirtyLEv @ 104 NONAME
+	_ZN15CXnNodePluginIf9SetStateLERK6TDesC8 @ 105 NONAME
+	_ZN15CXnNodePluginIf9UiEngineLEv @ 106 NONAME
+	_ZN15CXnUiEngineImpl14EnableRenderUiEPv @ 107 NONAME
+	_ZN16CXnViewsNodeImpl10ConstructLEP7CXnType @ 108 NONAME
+	_ZN16CXnViewsNodeImpl12SetComponentEP12CXnComponent @ 109 NONAME
+	_ZN16CXnViewsNodeImpl4NewLEP7CXnType @ 110 NONAME
+	_ZN16CXnViewsNodeImpl9ComponentEv @ 111 NONAME
+	_ZN16CXnViewsNodeImplC1Ev @ 112 NONAME
+	_ZN16CXnViewsNodeImplC2Ev @ 113 NONAME
+	_ZN16CXnViewsNodeImplD0Ev @ 114 NONAME
+	_ZN16CXnViewsNodeImplD1Ev @ 115 NONAME
+	_ZN16CXnViewsNodeImplD2Ev @ 116 NONAME
+	_ZN16MXnNodePredicate5MatchER7CXnNode @ 117 NONAME
+	_ZN16MXnNodePredicateC1Ev @ 118 NONAME
+	_ZN16MXnNodePredicateC2Ev @ 119 NONAME
+	_ZN16MXnNodePredicateD0Ev @ 120 NONAME
+	_ZN16MXnNodePredicateD1Ev @ 121 NONAME
+	_ZN16MXnNodePredicateD2Ev @ 122 NONAME
+	_ZN16TXnUiEngineAppIf10ActiveViewEv @ 123 NONAME
+	_ZN16TXnUiEngineAppIf10IsEditModeEv @ 124 NONAME
+	_ZN16TXnUiEngineAppIf10StringPoolEv @ 125 NONAME
+	_ZN16TXnUiEngineAppIf11FocusedNodeEv @ 126 NONAME
+	_ZN16TXnUiEngineAppIf11SetUiEngineEP11CXnUiEngine @ 127 NONAME
+	_ZN16TXnUiEngineAppIf12RefreshMenuLEv @ 128 NONAME
+	_ZN16TXnUiEngineAppIf13ActivateViewLER12CXnNodeAppIf @ 129 NONAME
+	_ZN16TXnUiEngineAppIf13FindNodeByIdLERK6TDesC8S2_ @ 130 NONAME
+	_ZN16TXnUiEngineAppIf13FindNodeByIdLERK7TDesC16S2_ @ 131 NONAME
+	_ZN16TXnUiEngineAppIf16FindNodeByClassLERK6TDesC8S2_ @ 132 NONAME
+	_ZN16TXnUiEngineAppIf16FindNodeByClassLERK7TDesC16S2_ @ 133 NONAME
+	_ZN16TXnUiEngineAppIf16GetThemeResourceERK7TDesC16R5RFile @ 134 NONAME
+	_ZN16TXnUiEngineAppIf16IsMenuDisplayingEv @ 135 NONAME
+	_ZN16TXnUiEngineAppIf19GetPluginNodeArrayLER13RPointerArrayI12CXnNodeAppIfE @ 136 NONAME
+	_ZN16TXnUiEngineAppIf23FindContentSourceNodesLERK6TDesC8 @ 137 NONAME
+	_ZN16TXnUiEngineAppIf9RenderUILEP12CXnNodeAppIf @ 138 NONAME
+	_ZN16TXnUiEngineAppIf9RootNodeLEv @ 139 NONAME
+	_ZN17CXnControlAdapter10ConstructLER15CXnNodePluginIf @ 140 NONAME
+	_ZN17CXnControlAdapter10LoadBitmapERK7TDesC16 @ 141 NONAME
+	_ZN17CXnControlAdapter10SetVisibleEi @ 142 NONAME
+	_ZN17CXnControlAdapter11SizeChangedEv @ 143 NONAME
+	_ZN17CXnControlAdapter11SkinChangedEv @ 144 NONAME
+	_ZN17CXnControlAdapter12FocusChangedE8TDrawNow @ 145 NONAME
+	_ZN17CXnControlAdapter12SetComponentEP12CXnComponent @ 146 NONAME
+	_ZN17CXnControlAdapter14ContentBitmapsERP10CFbsBitmapS2_ @ 147 NONAME
+	_ZN17CXnControlAdapter14OfferKeyEventLERK9TKeyEvent10TEventCode @ 148 NONAME
+	_ZN17CXnControlAdapter15SetLocalUiZoomLE10TAknUiZoom @ 149 NONAME
+	_ZN17CXnControlAdapter16GetBitmapAndMaskERK7TDesC16S2_RP10CFbsBitmapS5_ @ 150 NONAME
+	_ZN17CXnControlAdapter17SetContentBitmapsEP10CFbsBitmapS1_ @ 151 NONAME
+	_ZN17CXnControlAdapter17SetContentBitmapsERK7TDesC16S2_ @ 152 NONAME
+	_ZN17CXnControlAdapter18ExitPowerSaveModeLENS_10TModeEventE @ 153 NONAME
+	_ZN17CXnControlAdapter18ResetStylusCounterEv @ 154 NONAME
+	_ZN17CXnControlAdapter19EnterPowerSaveModeLENS_10TModeEventE @ 155 NONAME
+	_ZN17CXnControlAdapter19HandleControlEventLEP11CCoeControlN19MCoeControlObserver9TCoeEventE @ 156 NONAME
+	_ZN17CXnControlAdapter19HandleLongTapEventLERK6TPointS2_ @ 157 NONAME
+	_ZN17CXnControlAdapter19HandlePointerEventLERK13TPointerEvent @ 158 NONAME
+	_ZN17CXnControlAdapter20DoExitPowerSaveModeLENS_10TModeEventE @ 159 NONAME
+	_ZN17CXnControlAdapter21DoEnterPowerSaveModeLENS_10TModeEventE @ 160 NONAME
+	_ZN17CXnControlAdapter21HandlePropertyChangeLEP11CXnProperty @ 161 NONAME
+	_ZN17CXnControlAdapter22EnableLongTapAnimationEi @ 162 NONAME
+	_ZN17CXnControlAdapter23DoHandlePropertyChangeLEP11CXnProperty @ 163 NONAME
+	_ZN17CXnControlAdapter23MeasureAdaptiveContentLERK5TSize @ 164 NONAME
+	_ZN17CXnControlAdapter26HandleScreenDeviceChangedLEv @ 165 NONAME
+	_ZN17CXnControlAdapter4NewLER15CXnNodePluginIf @ 166 NONAME
+	_ZN17CXnControlAdapter8SetBlankEi @ 167 NONAME
+	_ZN17CXnControlAdapter8SetDataLERK6TDesC8RK7TDesC16i @ 168 NONAME
+	_ZN17CXnControlAdapter9ComponentEv @ 169 NONAME
+	_ZN17CXnControlAdapterC1Ev @ 170 NONAME
+	_ZN17CXnControlAdapterC2Ev @ 171 NONAME
+	_ZN17CXnControlAdapterD0Ev @ 172 NONAME
+	_ZN17CXnControlAdapterD1Ev @ 173 NONAME
+	_ZN17CXnControlAdapterD2Ev @ 174 NONAME
+	_ZN19MXnComponentFactory16MakeXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 175 NONAME
+	_ZN19MXnComponentFactory18CreateXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 176 NONAME
+	_ZN19MXnComponentFactory21MakeXnControlAdapterLER15CXnNodePluginIfP17CXnControlAdapter @ 177 NONAME
+	_ZN19MXnComponentFactory26DoesNodeNeedComponentImplLERK6TDesC8 @ 178 NONAME
+	_ZN19MXnComponentFactoryC2Ev @ 179 NONAME
+	_ZN19MXnComponentFactoryD0Ev @ 180 NONAME
+	_ZN19MXnComponentFactoryD1Ev @ 181 NONAME
+	_ZN19MXnComponentFactoryD2Ev @ 182 NONAME
+	_ZN19TXnUiEnginePluginIf10StringPoolEv @ 183 NONAME
+	_ZN19TXnUiEnginePluginIf11PluginNodeLEP15CXnNodePluginIf @ 184 NONAME
+	_ZN19TXnUiEnginePluginIf12EnableSwipeLEi @ 185 NONAME
+	_ZN19TXnUiEnginePluginIf12FocusVisibleEv @ 186 NONAME
+	_ZN19TXnUiEnginePluginIf12FocusedNodeLEv @ 187 NONAME
+	_ZN19TXnUiEnginePluginIf13ActivateViewLER15CXnNodePluginIf @ 188 NONAME
+	_ZN19TXnUiEnginePluginIf13AddDirtyNodeLER15CXnNodePluginIf @ 189 NONAME
+	_ZN19TXnUiEnginePluginIf13FindNodeByIdLERK6TDesC8S2_ @ 190 NONAME
+	_ZN19TXnUiEnginePluginIf13FindNodeByIdLERK7TDesC16S2_ @ 191 NONAME
+	_ZN19TXnUiEnginePluginIf13SwipeEnabledLEv @ 192 NONAME
+	_ZN19TXnUiEnginePluginIf14SetFocusedNodeEP15CXnNodePluginIf @ 193 NONAME
+	_ZN19TXnUiEnginePluginIf16FindNodeByClassLERK7TDesC16 @ 194 NONAME
+	_ZN19TXnUiEnginePluginIf16IsMenuDisplayingEv @ 195 NONAME
+	_ZN19TXnUiEnginePluginIf16ScreenDeviceSizeEv @ 196 NONAME
+	_ZN19TXnUiEnginePluginIf16SetFocusVisibleLEi @ 197 NONAME
+	_ZN19TXnUiEnginePluginIf17DisableRenderUiLCEv @ 198 NONAME
+	_ZN19TXnUiEnginePluginIf18IsDialogDisplayingEv @ 199 NONAME
+	_ZN19TXnUiEnginePluginIf18IsTextEditorActiveEv @ 200 NONAME
+	_ZN19TXnUiEnginePluginIf18VerticalTwipValueLEP11CXnPropertyi @ 201 NONAME
+	_ZN19TXnUiEnginePluginIf19VerticalPixelValueLEP11CXnPropertyi @ 202 NONAME
+	_ZN19TXnUiEnginePluginIf20HorizontalTwipValueLEP11CXnPropertyi @ 203 NONAME
+	_ZN19TXnUiEnginePluginIf21HorizontalPixelValueLEP11CXnPropertyi @ 204 NONAME
+	_ZN19TXnUiEnginePluginIf22DeactivateFocusedNodeLEv @ 205 NONAME
+	_ZN19TXnUiEnginePluginIf23EnablePartialTouchInputER15CXnNodePluginIfi @ 206 NONAME
+	_ZN19TXnUiEnginePluginIf26RestorePreviousFocusedNodeEv @ 207 NONAME
+	_ZN19TXnUiEnginePluginIf8EditModeEv @ 208 NONAME
+	_ZN19TXnUiEnginePluginIf9LayoutUILEP15CXnNodePluginIf @ 209 NONAME
+	_ZN19TXnUiEnginePluginIf9RenderUILEP15CXnNodePluginIf @ 210 NONAME
+	_ZN19TXnUiEnginePluginIf9ResourcesEv @ 211 NONAME
+	_ZN19TXnUiEnginePluginIf9RootNodeLEv @ 212 NONAME
+	_ZN19TXnUiEnginePluginIf9ShowFocusEv @ 213 NONAME
+	_ZN20CXnComponentNodeImpl10ConstructLEP7CXnType @ 214 NONAME
+	_ZN20CXnComponentNodeImpl12SetComponentEP12CXnComponent @ 215 NONAME
+	_ZN20CXnComponentNodeImpl14MakeInterfaceLERK6TDesC8 @ 216 NONAME
+	_ZN20CXnComponentNodeImpl25SetComponentNeedsCreationEi @ 217 NONAME
+	_ZN20CXnComponentNodeImpl4NewLEP7CXnType @ 218 NONAME
+	_ZN20CXnComponentNodeImpl9ComponentEv @ 219 NONAME
+	_ZN20CXnComponentNodeImplC1Ev @ 220 NONAME
+	_ZN20CXnComponentNodeImplC2Ev @ 221 NONAME
+	_ZN20CXnComponentNodeImplD0Ev @ 222 NONAME
+	_ZN20CXnComponentNodeImplD1Ev @ 223 NONAME
+	_ZN20CXnComponentNodeImplD2Ev @ 224 NONAME
+	_ZN8CXnUtils11CreateFontLER15CXnNodePluginIfRP5CFontRi @ 225 NONAME
+	_ZN8CXnUtils11CreateFontLERK7TDesC16i10TFontStyleRP5CFontRi @ 226 NONAME
+	_ZN8CXnUtils11GetRgbValueER4TRgbRK6TDesC8 @ 227 NONAME
+	_ZN8CXnUtils11StripQuotesERP7HBufC16 @ 228 NONAME
+	_ZN8CXnUtils12FindResourceER12CArrayPtrSegI11CXnResourceERK7TDesC16Ri @ 229 NONAME
+	_ZN8CXnUtils12ScaleBitmapLERK5TRectP10CFbsBitmapS4_ @ 230 NONAME
+	_ZN8CXnUtils13TextAlignmentER15CXnNodePluginIf @ 231 NONAME
+	_ZN8CXnUtils15ConvertHslToRgbEiii @ 232 NONAME
+	_ZN8CXnUtils18CollapseWhiteSpaceER15CXnNodePluginIfR6TDes16 @ 233 NONAME
+	_ZN8CXnUtils18ResolveSkinItemIDLERK7TDesC16R11TAknsItemIDRi @ 234 NONAME
+	_ZN8CXnUtils20HandlePowerSaveModeLEP7CXnNodeii @ 235 NONAME
+	_ZNK11CXnProperty7EqualsLERS_ @ 236 NONAME
+	_ZNK12CXnNodeAppIf12GetPropertyLER11CXnProperty @ 237 NONAME
+	_ZNK12CXnNodeAppIf12GetPropertyLERK6TDesC8 @ 238 NONAME
+	_ZNK12CXnNodeAppIf19InternalDomNodeTypeEv @ 239 NONAME
+	_ZNK12CXnNodeAppIf7ParentLEv @ 240 NONAME
+	_ZNK12CXnNodeAppIf9GetPCDataEv @ 241 NONAME
+	_ZNK14CXnApplication9AppDllUidEv @ 242 NONAME
+	_ZNK15CXnAppUiAdapter4ViewEv @ 243 NONAME
+	_ZNK15CXnNodePluginIf12GetPropertyLER11CXnProperty @ 244 NONAME
+	_ZNK15CXnNodePluginIf12GetPropertyLERK6TDesC8 @ 245 NONAME
+	_ZNK15CXnNodePluginIf7ControlEv @ 246 NONAME
+	_ZNK15CXnNodePluginIf7ParentLEv @ 247 NONAME
+	_ZNK15CXnNodePluginIf9GetPCDataEv @ 248 NONAME
+	_ZNK16TXnUiEngineAppIf14WidgetsVisibleEv @ 249 NONAME
+	_ZNK17CXnControlAdapter15LongTapDetectorEv @ 250 NONAME
+	_ZNK17CXnControlAdapter16ComponentControlEi @ 251 NONAME
+	_ZNK17CXnControlAdapter16DrawContentImageEv @ 252 NONAME
+	_ZNK17CXnControlAdapter16IsDrawingAllowedEv @ 253 NONAME
+	_ZNK17CXnControlAdapter22CountComponentControlsEv @ 254 NONAME
+	_ZNK17CXnControlAdapter4DrawERK5TRect @ 255 NONAME
+	_ZNK17CXnControlAdapter4DrawERK5TRectR9CWindowGc @ 256 NONAME
+	_ZNK19TXnUiEnginePluginIf14WidgetsVisibleEv @ 257 NONAME
+	_ZNK19TXnUiEnginePluginIf9HitRegionEv @ 258 NONAME
+	_ZNK20CXnComponentNodeImpl25DoesComponentNeedCreationEv @ 259 NONAME
+	_ZTI11CXnDocument @ 260 NONAME
+	_ZTI11CXnProperty @ 261 NONAME
+	_ZTI12CXnComponent @ 262 NONAME
+	_ZTI14CXnApplication @ 263 NONAME
+	_ZTI15CXnAppUiAdapter @ 264 NONAME
+	_ZTI16CXnViewsNodeImpl @ 265 NONAME
+	_ZTI16MXnNodePredicate @ 266 NONAME
+	_ZTI17CXnControlAdapter @ 267 NONAME
+	_ZTI18CXnListQueryDialog @ 268 NONAME
+	_ZTI19MXnComponentFactory @ 269 NONAME
+	_ZTI20CXnComponentNodeImpl @ 270 NONAME
+	_ZTI27CXnNodeBreadthFirstIteratorI7CXnNodeE @ 271 NONAME
+	_ZTIN21CXnControlAdapterImpl13TIconProviderE @ 272 NONAME
+	_ZTV11CXnDocument @ 273 NONAME
+	_ZTV11CXnProperty @ 274 NONAME
+	_ZTV12CXnComponent @ 275 NONAME
+	_ZTV14CXnApplication @ 276 NONAME
+	_ZTV15CXnAppUiAdapter @ 277 NONAME
+	_ZTV16CXnViewsNodeImpl @ 278 NONAME
+	_ZTV16MXnNodePredicate @ 279 NONAME
+	_ZTV17CXnControlAdapter @ 280 NONAME
+	_ZTV18CXnListQueryDialog @ 281 NONAME
+	_ZTV19MXnComponentFactory @ 282 NONAME
+	_ZTV20CXnComponentNodeImpl @ 283 NONAME
+	_ZTV27CXnNodeBreadthFirstIteratorI7CXnNodeE @ 284 NONAME
+	_ZTVN21CXnControlAdapterImpl13TIconProviderE @ 285 NONAME
+	_ZThn52_N17CXnControlAdapter19HandleControlEventLEP11CCoeControlN19MCoeControlObserver9TCoeEventE @ 286 NONAME
+	_ZThn60_N17CXnControlAdapter19HandleLongTapEventLERK6TPointS2_ @ 287 NONAME
 
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnbackgroundmanager.h	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnbackgroundmanager.h	Wed Mar 31 21:17:19 2010 +0300
@@ -28,6 +28,7 @@
 class CXnViewManager;
 class CXnViewData;
 class CAknsLayeredBackgroundControlContext;
+class CXnOomSysHandler;
 
 namespace hspswrapper
     {
@@ -115,7 +116,7 @@
      */
     void WallpaperChanged( const CXnViewData& aOldView, 
         const CXnViewData& aNewView );
-    
+        
     /**
      * Draws wallpaper immediately, or once the window comes visible.
      * 
@@ -162,7 +163,7 @@
     /**
     * From MDiskNotifyHandlerCallback.
     */
-    void HandleNotifyDisk( TInt aError, const TDiskEvent& aEvent );
+    void HandleNotifyDisk( TInt aError, const TDiskEvent& aEvent );   
 
 private:
     
@@ -189,6 +190,8 @@
     TInt AddCommonWallpaperL( const TDesC& aFileName, TBool aSave = ETrue );
     void ReadWallpaperFromCenrepL();    
     void DrawEditModeBackgroundSkin() const;
+    CXnOomSysHandler& OomSysHandler() const;
+    void DrawStatusPaneMask() const;    
 
     /**
      * Callback function to be used with CPeriodic.
@@ -240,7 +243,7 @@
      * Stores wallpaper type. 
      */
     CXnBackgroundManager::WppType iType;
-
+    
     /** 
      * Internal wallpaper update in progress
      */
@@ -272,6 +275,12 @@
      */
     CPeriodic* iTimer;
     
+    /**
+     * OOM system handler. 
+     * Own.
+     */
+    CXnOomSysHandler* iOomSysHandler;
+    
     };
 
 #endif      // CXNBACKGROUNDMANAGER_H
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnbgcontrol.h	Mon Mar 15 12:39:47 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,145 +0,0 @@
-/*
-* Copyright (c) 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:  Background appearance drawer
-*
-*/
-
-
-#ifndef _XNBGCONTROL_H
-#define _XNBGCONTROL_H
-
-// System includes
-#include <e32base.h>
-#include <coecntrl.h>
-
-// User includes
-#include "xnuistatelistener.h"
-
-// Forward declarations
-
-/**
- * Background appearance drawer
- * 
- * @ingroup group_xnlayoutengine
- * @lib xn3layoutengine.lib
- * @since S60 5.0
- */
-NONSHARABLE_CLASS( CXnBgControl ) : public CCoeControl , public MXnUiStateObserver
-    {
-public:    
-    // Constructors and destructor
-    
-    /**
-     * Two-phased constructor.
-     */
-    static CXnBgControl* NewL();
-
-    /**
-     * Two-phased constructor. Leaving on stack
-     */
-    static CXnBgControl* NewLC();
-
-    /**
-     * Destructor
-     */
-    ~CXnBgControl();
-
-private:
-    // private constructors
-
-    /**
-     * Leaving constructor
-     */
-    void ConstructL();
-    
-    /**
-     * C++ default constructor
-     */
-    CXnBgControl();
-    
-public:
-    // from CCoeControl
-
-    /**
-     * @see CCoeControl
-     */    
-    TInt CountComponentControls() const;
-
-    /**
-     * @see CCoeControl
-     */    
-    CCoeControl* ComponentControl( TInt aIndex ) const;
-    
-    /**
-     * @see CCoeControl
-     */
-    void SizeChanged();
-    
-    /**
-     * @see CCoeControl
-     */
-    void Draw( const TRect& aRect ) const;
-            
-    /**
-     * @see CCoeControl
-     */
-    void HandlePointerEventL( const TPointerEvent& aPointerEvent );
-    
-public:
-    // new functions
-    void SetCompoundControl( CCoeControl* aControl );
-    
-	/**
-     * Service for removing grabbing controls
-     */
-    void ResetGrabbingL();
-      
-private:  
-	// new functions
-    
-	/**
-     * Removes recursively grabbing controls
-     */
-    void RemoveGrabbingControL( const CCoeControl* aControl, const TPointerEvent& aEvent ) const;
-    
-private:
-    // from MXnUiStateObserver
-    
-    /**
-     * @see MXnUiStateObserver
-     */
-    void NotifyForegroundChanged( TForegroundStatus aStatus );
-    
-    /**
-     * @see MXnUiStateObserver
-     */
-    void NotifyLightStatusChanged( TBool aLightsOn );
-    
-    /**
-     * @see MXnUiStateObserver
-     */
-    void NotifyInCallStateChaged( TBool aInCall );   
-    
-private:
-    // data
-    
-    /** Compound Control, Not owned */
-    CCoeControl* iControl;
-    
-	/** stored point of EButton1Down */
-    TPoint iHitpoint;
-    
-    };
-
-#endif // _XNBGCONTROL_H
--- a/idlehomescreen/xmluirendering/uiengine/inc/xncontroladapterimpl.h	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xncontroladapterimpl.h	Wed Mar 31 21:17:19 2010 +0300
@@ -557,6 +557,8 @@
     TBool iBlank;
     /** flag: to detect whether longtap occured */
     TBool iLongtap;    
+    /** record right softkey node of menubar when keydown event happened */
+    mutable CXnNode* iKeyDownNode;
     };
 
 #endif //__XNCONTROLADAPTERIMPL_H__
--- a/idlehomescreen/xmluirendering/uiengine/inc/xneditor.h	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xneditor.h	Wed Mar 31 21:17:19 2010 +0300
@@ -39,6 +39,7 @@
 class CXnViewData;
 class CRepository;
 class CXnBackgroundManager;
+class CXnOomSysHandler;
 
 namespace hspswrapper
     {
@@ -238,20 +239,21 @@
 private:
     // new functions    
     
-    void TemplatedWidgetsL( RPointerArray< CHsContentInfo >& aWidgets );
-
-    void HSPSPluginsL( RPointerArray< CHsContentInfo >& aWidgets,
-        const TDesC8& aType );
-
-    CPublisherInfo* PublisherInfoL( const CHsContentInfo& aContentInfo );
+      CPublisherInfo* PublisherInfoL( const CHsContentInfo& aContentInfo );
 
     TInt TemplateWidgetCanBeAddedRemovedL( CHsContentInfo& aContentInfo );
     TInt NonTemplateWidgetCanBeAddedRemovedL( CHsContentInfo& aContentInfo );
     
     TBool IsCurrentViewFull();
-    void FilterWidgetListL( CHsContentInfoArray& aContentInfoArray,
+    
+    /**
+     * Filters plugins from the list and checks whether the plugins can be added or removed.
+     */
+    void FilterPluginsL( CHsContentInfoArray& aContentInfoArray,
         TBool aIgnoreViewFull );
+    
     void FilterViewListL( CHsContentInfoArray& aContentInfoArray ); 
+    CXnOomSysHandler& OomSysHandler() const;
     
     /**
      * Notifies the MHsContentControl and the MHsContentControlUi if widget list was changed.
@@ -269,6 +271,39 @@
     CHsContentInfo* CreateContentInfoLC( CXnPluginData& aPlugin, 
         RPointerArray< CHsContentInfo >& aInfos );
     
+    /**
+     * Appends plugin configurations to the content info array.
+     */
+    void AppendPluginsL(
+            RPointerArray< hspswrapper::CPluginInfo > aPlugins,
+            RPointerArray< CHsContentInfo >& aWidgets );
+    
+    /**
+     * Resets runtime cache.
+     */
+    void ResetCache();
+    
+    /**
+     * Retrieves native application configuration plugins from HSPS
+     */
+    void HspsApplicationPluginsL( RPointerArray< CHsContentInfo >& aWidgets );
+    
+    /**
+     * Retrieves native view configuration plugins from HSPS
+     */
+    void HspsViewPluginsL( RPointerArray< CHsContentInfo >& aWidgets );
+           
+    /**
+     * Retrieves widget and template configuration plugins from HSPS
+     */
+    void HspsWidgetPluginsL( RPointerArray< CHsContentInfo >& aWidgets );        
+    void DoHspsWidgetPluginsL();
+    
+    /**
+     * Retrieves publishers from CPS and them with the HSPS's template plugins
+     */
+    void CpsWidgetPluginsL( RPointerArray< CHsContentInfo >& aWidgets );
+            
 private:
     // from MXnViewObserver    
     
@@ -320,6 +355,9 @@
     TBool iWidgetsVisibilityState;    
     /** Central repository , to choose plugin, owned*/
     CRepository* iRepository;
+	/** Plugins cache, owned */
+    RPointerArray< hspswrapper::CPluginInfo > iPluginsCache;
+    CXnOomSysHandler* iOomSysHandler;
     };
 
 #endif // C_XNEDITOR_H
--- a/idlehomescreen/xmluirendering/uiengine/inc/xngesturedefs.h	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xngesturedefs.h	Wed Mar 31 21:17:19 2010 +0300
@@ -56,7 +56,7 @@
      * tolerance in degrees to either side of an angle, for direction to be 
      * the same as reference angle
      */
-    const TReal KAngleTolerance = 35;
+    const TReal KAngleTolerance = 80;
     
     /**  
      * maximum pointer movement from pointer down position for a gesture be 
@@ -68,7 +68,7 @@
      * minimum length of a valid swipe in pixels. should be larger than 
      * KTapTolerance
      */
-    const TReal KMinSwipeLength = 100;
+    const TReal KMinSwipeLength = 10;
     
     /** Nth pointer event before the latest point */
     const TInt KPreviousPointOffset = 3;
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnwidgetextensionadapter.h	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnwidgetextensionadapter.h	Wed Mar 31 21:17:19 2010 +0300
@@ -63,6 +63,13 @@
     * Destructor.
     */
     ~CXnWidgetExtensionAdapter();
+public:
+    /**
+     * From CCoeAppUiBase.
+     * Informs the components about the screen layout switch.
+     */
+     void HandleScreenDeviceChangedL();
+
      
 private: 
     // Functions from base classes    
--- a/idlehomescreen/xmluirendering/uiengine/src/xnappuiadapter.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnappuiadapter.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -287,11 +287,11 @@
     }
 
 // -----------------------------------------------------------------------------
-// CXnAppUiAdapter::UiActivated
+// CXnAppUiAdapter::HandleUiReadyEventL
 //
 // -----------------------------------------------------------------------------
 //
-EXPORT_C void CXnAppUiAdapter::UiActivated()
+EXPORT_C void CXnAppUiAdapter::HandleUiReadyEventL()
     {
     // Default empty implementation
     }
--- a/idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -27,6 +27,7 @@
 #include "xnwallpaperview.h"
 #include "xnrootdata.h"
 #include "xnuiengine.h"
+#include "xnoomsyshandler.h"
 #include "xneffectmanager.h"
 
 // SYSTEM INCLUDE FILES
@@ -45,6 +46,7 @@
 #include <AknsControlContext.h>
 #include <AknsLayeredBackgroundControlContext.h>
 #include <driveinfo.h>
+#include <layoutmetadata.cdl.h>
 
 using namespace hspswrapper;
 
@@ -101,8 +103,10 @@
     CheckFeatureTypeL();   
 
     iTimer = CPeriodic::NewL( CActive::EPriorityIdle );
-    
+
     GfxTransEffect::Register( this, KGfxContextBgAppear );    
+
+    iOomSysHandler = CXnOomSysHandler::NewL();
     }
 
 // -----------------------------------------------------------------------------
@@ -136,6 +140,7 @@
     delete iBgContext;
     delete iBgImage;
     delete iBgImagePath;
+    delete iOomSysHandler;
     }
 
 // -----------------------------------------------------------------------------
@@ -177,6 +182,7 @@
             {
             SystemGc().DrawBitmap( iRect, wallpaper );
             }
+	        DrawStatusPaneMask();		
         }
     
     // Skin bg is used by default
@@ -353,7 +359,7 @@
     {
     return iType;
     }
-    
+
 // -----------------------------------------------------------------------------
 // CXnBackgroundManager::WallpaperChanged
 // -----------------------------------------------------------------------------
@@ -505,12 +511,19 @@
             }
         else if ( selectedIndex == 1 )
             {
+            if ( CXnOomSysHandler::HeapAvailable( CXnOomSysHandler::EMem2MB ) )
+                {
             CXnAppUiAdapter& appui( iViewManager.AppUiAdapter() );
             
             appui.EffectManager()->BeginFullscreenEffectL(
                 KGfxContextOpenWallpaperView, iViewManager.ActiveViewData() );        
             
             appui.ActivateLocalViewL( KWallpaperViewUid, KDummyUid, KSingle );                                 
+                }
+            else
+            	{
+            	OomSysHandler().HandlePotentialOomL();
+            	}
             }
         }
     CleanupStack::Pop( query );
@@ -929,5 +942,52 @@
     return EFalse;
     }
 
+// -----------------------------------------------------------------------------
+// CXnBackgroundManager::DrawStatusPaneMask
+// -----------------------------------------------------------------------------
+//
+void CXnBackgroundManager::DrawStatusPaneMask() const
+    {
+    TRect spRect;
+    AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EStatusPane, spRect );
+    
+    CFbsBitmap* maskBmp( NULL );
+    TInt err( KErrNone );
+    
+    if( Layout_Meta_Data::IsLandscapeOrientation() )
+        {
+        TRAP( err, maskBmp = AknsUtils::CreateBitmapL( AknsUtils::SkinInstance(),
+                KAknsIIDQgnGrafBgLscTopMaskIcon ) );
+        }
+    else
+        {
+        TRAP( err, maskBmp = AknsUtils::CreateBitmapL( AknsUtils::SkinInstance(),
+                KAknsIIDQgnGrafBgPrtTopMaskIcon ) );        
+        }
+    
+    if( err )
+        {
+        return;
+        }
+    
+    // draw mask
+    if( maskBmp )
+        {
+        AknIconUtils::SetSize( maskBmp, spRect.Size(), EAspectRatioNotPreserved );
+        SystemGc().DrawBitmap( spRect, maskBmp );
+        delete maskBmp;        
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CXnBackgroundManager::OOMSysHandler
+// -----------------------------------------------------------------------------
+//
+CXnOomSysHandler& CXnBackgroundManager::OomSysHandler() const
+    {
+    __ASSERT_DEBUG( iOomSysHandler , User::Panic( _L("xnbackgroundmanager"), 0 ) );
+
+    return *iOomSysHandler;
+    }
 
 //  End of File
--- a/idlehomescreen/xmluirendering/uiengine/src/xnbgcontrol.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,315 +0,0 @@
-/*
-* Copyright (c) 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:  Background appearance drawer
-*
-*/
-
-// System includes
-#include <aknappui.h>
-
-// User includes
-#include "xnappuiadapter.h"
-#include "xnuiengine.h"
-#include "xneditmode.h"
-
-#include "xnbgcontrol.h"
-
-// Constants
-
-// ============================ LOCAL FUNCTIONS ================================
-
-// ============================ MEMBER FUNCTIONS ===============================
-// -----------------------------------------------------------------------------
-// CXnBgControl::NewL()
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CXnBgControl* CXnBgControl::NewL()
-    {
-    CXnBgControl* self = CXnBgControl::NewLC();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CXnBgControl::NewLC()
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CXnBgControl* CXnBgControl::NewLC()
-    {
-    CXnBgControl* self = new ( ELeave ) CXnBgControl();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CXnBgControl::~CXnBgControl()
-// C++ default destructor.
-// -----------------------------------------------------------------------------
-//
-CXnBgControl::~CXnBgControl()
-    {  
-    }
-
-// -----------------------------------------------------------------------------
-// CXnBgControl::CXnBgControl()
-// C++ default constructor.
-// -----------------------------------------------------------------------------
-//
-CXnBgControl::CXnBgControl()
-    :   iHitpoint( TPoint( -1,-1 ) )
-    {  
-    }
-
-// -----------------------------------------------------------------------------
-// CXnBgControl::ConstructL()
-// 2nd phase constructor
-// -----------------------------------------------------------------------------
-//
-void CXnBgControl::ConstructL()
-    {   
-    CreateWindowL();
-
-    TRgb backgroundColour = KRgbWhite;
-    if( KErrNone == Window().SetTransparencyAlphaChannel() )      
-        {       
-        backgroundColour.SetAlpha( 0 );       
-        }   
-    Window().SetBackgroundColor( backgroundColour );
-    
-    EnableDragEvents();
-    
-    Window().SetPointerGrab( ETrue );
-    
-    
-    ActivateL();
-
-    MakeVisible( ETrue );
-    
-    SetComponentsToInheritVisibility( ETrue );
-    
-    static_cast< CXnAppUiAdapter* >( iAvkonAppUi )
-            ->UiStateListener().AddObserver( *this );
-    
-    }
-
-// -----------------------------------------------------------------------------
-// CXnBgControl::CountComponentControls()
-// 
-// -----------------------------------------------------------------------------
-//
-TInt CXnBgControl::CountComponentControls() const
-    {
-    if ( iControl )
-        {
-        return 1;
-        }
-    
-    return 0;
-    }
-
-// -----------------------------------------------------------------------------
-// CXnBgControl::ComponentControl()
-// 
-// -----------------------------------------------------------------------------
-//
-CCoeControl* CXnBgControl::ComponentControl( TInt aIndex ) const
-    {
-    if ( aIndex == 0 )
-        {
-        return iControl;
-        }
-    
-    return NULL;
-    }
-
-// -----------------------------------------------------------------------------
-// CXnBgControl::SizeChanged()
-// 
-// -----------------------------------------------------------------------------
-//
-void CXnBgControl::SizeChanged()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// CXnBgControl::Draw()
-// 
-// -----------------------------------------------------------------------------
-//
-void CXnBgControl::Draw( const TRect& aRect ) const
-    {    
-    CXnAppUiAdapter* appui( 
-        static_cast< CXnAppUiAdapter* >( iAvkonAppUi ) );
-
-    TInt state( appui->UiEngine().EditMode()->EditState() );
-    
-    CWindowGc& gc( SystemGc() );
-    
-    if ( state == CXnEditMode::EShootContent )
-        {
-        // No background needed for dragging widget screenshot        
-        }
-    else
-        {        
-        gc.Clear( aRect );        
-        }          
-    }
-
-// -----------------------------------------------------------------------------
-// CXnBgControl::SetCompoundControl()
-// 
-// -----------------------------------------------------------------------------
-//
-void CXnBgControl::HandlePointerEventL( const TPointerEvent& aPointerEvent )
-    {
-    switch( aPointerEvent.iType )
-        {
-        case TPointerEvent::EButton1Down:
-            iHitpoint = aPointerEvent.iPosition;
-            break;
-            
-        case TPointerEvent::EButton1Up:
-            break;
-            
-        default:
-            break;
-        }
-    
-    CXnAppUiAdapter* appui( static_cast< CXnAppUiAdapter* >( iAvkonAppUi ) );
-    
-    appui->UiEngine().DisableRenderUiLC();
-            
-    CCoeControl::HandlePointerEventL( aPointerEvent );
-    
-    appui->UiEngine().RenderUIL();
-    
-    CleanupStack::PopAndDestroy();
-    }
-
-// -----------------------------------------------------------------------------
-// CXnBgControl::SetCompoundControl()
-// 
-// -----------------------------------------------------------------------------
-//
-void CXnBgControl::SetCompoundControl( CCoeControl* aControl )
-    {
-    if ( iControl == aControl )
-        {
-        return;
-        }
-    
-    if ( iControl )
-        {
-        // Remove parents    
-        iControl->SetParent( NULL );
-        iControl->SetMopParent( NULL );
-        
-        iControl->MakeVisible( EFalse );
-        }
-    
-    if ( aControl )
-        {        
-        // Set self as parent
-        aControl->SetParent( this );
-        aControl->SetMopParent( this );
-        
-        aControl->MakeVisible( ETrue );        
-        }
-    
-    iControl = aControl;        
-    }
-
-// -----------------------------------------------------------------------------
-// CXnBgControl::ResetGrabbingL()
-// Service for removing grabbing controls
-// -----------------------------------------------------------------------------
-//
-void CXnBgControl::ResetGrabbingL()
-    {
-    TPointerEvent event;
-    event.iType = TPointerEvent::EButton1Up;
-    
-    RemoveGrabbingControL( this, event );
-    
-    iHitpoint.SetXY( -1, -1 );
-    }
-
-// -----------------------------------------------------------------------------
-// CXnBgControl::RemoveGrabbingControL()
-// Removes recursively grabbing controls
-// -----------------------------------------------------------------------------
-//
-void CXnBgControl::RemoveGrabbingControL( const CCoeControl* aControl,
-        const TPointerEvent& aEvent ) const
-    {
-    TInt count = aControl->CountComponentControls();
-    
-    for( TInt i = 0; i < count; i++ )
-        {
-        CCoeControl* child = aControl->ComponentControl( i );
-        
-        if( child && child->Rect().Contains( iHitpoint ) )
-            {
-            child->CCoeControl::HandlePointerEventL( aEvent ); 
-            RemoveGrabbingControL( child, aEvent );
-            }
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CXnBgControl::NotifyForegroundChanged()
-// Notifies foreground changes.
-// -----------------------------------------------------------------------------
-//
-void CXnBgControl::NotifyForegroundChanged( TForegroundStatus aStatus )
-    {
-    switch( aStatus )
-        {
-        case EForeground:
-            break;
-            
-        case EUnknown:
-        case EBackground:
-        case EPartialForeground:  
-        default:
-            TRAP_IGNORE( ResetGrabbingL(); )
-            break;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CXnBgControl::NotifyLightStatusChanged()
-// Notifies primary display light status is changed.
-// -----------------------------------------------------------------------------
-//
-void CXnBgControl::NotifyLightStatusChanged( TBool /*aLightsOn*/ )
-    {
-    
-    }
-
-// -----------------------------------------------------------------------------
-// CXnBgControl::NotifyInCallStateChaged()
-// Notifies in-call state is changed.
-// -----------------------------------------------------------------------------
-//
-void CXnBgControl::NotifyInCallStateChaged( TBool /*aInCall*/ )
-    {
-    
-    }
-
-// End of file
-
--- a/idlehomescreen/xmluirendering/uiengine/src/xncontroladapterimpl.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xncontroladapterimpl.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -21,6 +21,7 @@
 #include <SVGEngineInterfaceImpl.h>
 #include <s32file.h>
 #include <mifconvdefs.h>
+//skinning support
 #include <AknsFrameBackgroundControlContext.h>
 #include <AknsDrawUtils.h>
 #include <aknconsts.h>
@@ -3759,6 +3760,7 @@
         {
         if ( aType == EEventKeyDown )
             {
+            iKeyDownNode = node;
             iLongtap = EFalse;
             
             if ( aKeyEvent.iScanCode == EStdKeyDevice3 ||
@@ -3787,6 +3789,10 @@
             }
         else if( aType == EEventKey )
             {
+            if( iKeyDownNode != node)
+            	{
+                node = iKeyDownNode;
+            	}
             if ( aKeyEvent.iRepeats == 0 )
                 {
                 if ( !HasHoldTrigger( node->DomNode() ) )
@@ -3815,6 +3821,10 @@
             {
             if ( !iLongtap )
                 {
+              if( iKeyDownNode != node)
+                {
+                node = iKeyDownNode;
+                }   
                 if ( HasHoldTrigger( node->DomNode() ) )
                     {
                     // Hold trigger defined, report activate event here                   
@@ -3907,8 +3917,8 @@
                 control->IgnoreEventsUntilNextPointerUp();
                 control->ResetGrabbing();                      
                 }
-            
-            // Indicate long tap has taken plave
+
+          // Indicate long tap has taken place
             iLongtap = ETrue;
             
             CXnNode* hold = BuildTriggerNodeL( *engine,
@@ -3952,6 +3962,7 @@
             // Swipe took place, consume this event
             return ETrue;
             }
+
         }
     
     TBool menuBar( node == engine->MenuBarNode() );
@@ -4011,6 +4022,7 @@
     if ( event.iType == TPointerEvent::EButton1Down )
         {
         iLongtap = EFalse;
+        node->HideTooltipsL();
         
         if ( !menuBar )
             {
--- a/idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -61,6 +61,8 @@
 #include "xneditor.h"
 #include "xnpanic.h"
 
+#include "xnoomsyshandler.h"
+
 using namespace hspswrapper;
 using namespace cpswrapper;
 
@@ -306,6 +308,7 @@
     iCpsWrapper = CCpsWrapper::NewL( *this );
     iHspsWrapper = CHspsWrapper::NewL( aUid, this );
     iRepository= CRepository::NewL( TUid::Uid( KCRUidActiveIdleLV ) );
+    iOomSysHandler = CXnOomSysHandler::NewL();
     }
 
 // ---------------------------------------------------------------------------
@@ -315,11 +318,15 @@
 CXnEditor::~CXnEditor()
     {
     iViewManager.RemoveObserver( *this );
-    
+    if( iPluginsCache.Count() )
+        {
+        iPluginsCache.ResetAndDestroy();
+        }    
     delete iCpsWrapper;
     delete iHspsWrapper;
     delete iPublisherMap;
     delete iRepository;
+    delete iOomSysHandler;
     }
 
 // -----------------------------------------------------------------------------
@@ -346,10 +353,10 @@
     }
 
 // -----------------------------------------------------------------------------
-// CXnEditor::FilterWidgetListL
+// CXnEditor::FilterPluginsL
 // -----------------------------------------------------------------------------
 //
-void CXnEditor::FilterWidgetListL( CHsContentInfoArray& aContentInfoArray,
+void CXnEditor::FilterPluginsL( CHsContentInfoArray& aContentInfoArray,
     TBool aIgnoreViewFull )
     {
     RPointerArray< CHsContentInfo >& list( aContentInfoArray.Array() );
@@ -639,6 +646,12 @@
 //
 void CXnEditor::AddWidgetL()
     {
+    if ( !CXnOomSysHandler::HeapAvailable( VIEW_MIN_MEM ) )
+        {
+    	OomSysHandler().HandlePotentialOomL();
+    	return;
+        }
+    
     TBuf8<KOpaQDataLen> oPaqDataStr;
            
     MHsContentControlUi* ui( NULL );
@@ -671,13 +684,15 @@
     CleanupStack::PushL( info );
            
     RPointerArray< CHsContentInfo >& widgets( info->Array() );
-
-    // get installed widgets from HSPS (type: "widget")
-    HSPSPluginsL( widgets, KKeyWidget );
-    // get installed widgets from HSPS
-    TemplatedWidgetsL( widgets );
     
-    FilterWidgetListL( *info, ETrue );
+    // get installed widgets and template configurations from HSPS
+    HspsWidgetPluginsL( widgets );
+        
+    // get installed widgets from HSPS (type: "template")    
+    CpsWidgetPluginsL( widgets );
+                
+    // check whether the plugins can be added or removed
+    FilterPluginsL( *info, ETrue );
                       
     CDesCArrayFlat* array = new ( ELeave ) CDesCArrayFlat( 8 );
     CleanupStack::PushL( array );
@@ -903,106 +918,59 @@
     }
 
 // ---------------------------------------------------------------------------
-// CXnEditor::TemplatedWidgetsL
+// CXnEditor::CpsWidgetPluginsL
 // ---------------------------------------------------------------------------
 //
-void CXnEditor::TemplatedWidgetsL( RPointerArray< CHsContentInfo >& aWidgets )
+void CXnEditor::CpsWidgetPluginsL( RPointerArray< CHsContentInfo >& aWidgets )
     {
-    RPointerArray< CHsContentInfo > widgetTemplates;
-    CleanupStack::PushL( TCleanupItem( DeleteWidgetInfo, &widgetTemplates ) );
-
-    // Gets all the installed templates from CPS
-    HSPSPluginsL( widgetTemplates, KKeyTemplate );
-
-    delete iPublisherMap;
-    iPublisherMap = NULL;
-
-    iPublisherMap = iCpsWrapper->GetTemplatedPublishersL();
-
-    RPointerArray< CPublisherInfo >& publisherInfo(
-        iPublisherMap->PublisherInfo() );
-
+    // Get publishers from CPS
+    
+    if( !iPublisherMap )
+        {
+        iPublisherMap = iCpsWrapper->GetTemplatedPublishersL();
+        }
+    
+    RPointerArray< CPublisherInfo >& publisherInfo( iPublisherMap->PublisherInfo() );
+    
+    // Find templates for the published data
     for ( TInt i = 0; i < publisherInfo.Count(); i++ )
         {
         CPublisherInfo* info( publisherInfo[i] );
 
-        for ( TInt j = 0; j < widgetTemplates.Count(); j++ )
-            {
-            const TDesC& name( widgetTemplates[j]->Name() );
-
-            if ( name == info->TemplateType() )
-                {
-                CHsContentInfo* contentInfo = CHsContentInfo::NewLC();
-
-                contentInfo->SetNameL( info->WidgetName() );
-                contentInfo->SetPublisherIdL( info->PublisherId() );
-                contentInfo->SetMaxWidgets( info->MaxWidgets() );
-                contentInfo->SetUidL( widgetTemplates[j]->Uid() );
-                contentInfo->SetTypeL( widgetTemplates[j]->Type() );
-                contentInfo->SetDescriptionL( info->Description() );
-                contentInfo->SetIconPathL( info->LogoIcon() );
-                                
-                contentInfo->SetIsWrt(  
-                    ( info->ContentType() == KWRTTemplate() ) );
-                                
-                aWidgets.AppendL( contentInfo );
-                CleanupStack::Pop( contentInfo );
-
-                break;
+        for ( TInt j = 0; j < iPluginsCache.Count(); j++ )
+            {        
+            if( iPluginsCache[j]->Name().Length() > 0 )
+                {               
+                // 8 to 16bit conv
+                HBufC* nameBuf = HBufC::NewLC( iPluginsCache[j]->Name().Length() );
+                nameBuf->Des().Copy( iPluginsCache[j]->Name() );
+                TBool matchingNames = ( nameBuf->Des() == info->TemplateType() );
+                CleanupStack::PopAndDestroy();
+                if ( matchingNames )
+                    {
+                
+                    // Add published widget
+                    CHsContentInfo* contentInfo = CHsContentInfo::NewLC();
+    
+                    contentInfo->SetNameL( info->WidgetName() );
+                    contentInfo->SetPublisherIdL( info->PublisherId() );
+                    contentInfo->SetMaxWidgets( info->MaxWidgets() );
+                    contentInfo->SetUidL( iPluginsCache[j]->Uid() );
+                    contentInfo->SetTypeL( iPluginsCache[j]->Type() );
+                    contentInfo->SetDescriptionL( info->Description() );
+                    contentInfo->SetIconPathL( info->LogoIcon() );                                
+                    contentInfo->SetIsWrt( info->ContentType() == KWRTTemplate() );
+                                    
+                    aWidgets.AppendL( contentInfo );
+                    
+                    CleanupStack::Pop( contentInfo );
+                    break;
+                    }
                 }
             }
-        }
-
-    CleanupStack::PopAndDestroy(); // cleanupitem
+        }        
     }
 
-// ---------------------------------------------------------------------------
-// CXnEditor::HSPSPluginsL
-// ---------------------------------------------------------------------------
-//
-void CXnEditor::HSPSPluginsL( RPointerArray< CHsContentInfo >& aWidgets,
-    const TDesC8& aType )
-    {
-    RPointerArray< hspswrapper::CPluginInfo > plugins;
-    CleanupStack::PushL( TCleanupItem( DeletePluginInfos, &plugins ) );
-
-    if ( aType == KApplication )
-        {
-        iHspsWrapper->GetAppConfigurationsL( plugins );
-        }
-    else
-        {
-        iHspsWrapper->GetPluginsL( plugins, KPluginInterface, aType );
-        }
-
-    for ( TInt i = 0; i < plugins.Count(); i++ )
-        {
-        if ( plugins[i]->Uid().CompareF( KEmptyWidgetUid ) == 0 )
-            {
-            // Skip empty
-            continue;
-            }
-        
-        CHsContentInfo* contentInfo = CHsContentInfo::NewLC();
-
-        contentInfo->SetNameL( plugins[i]->Name() );
-        contentInfo->SetUidL( plugins[i]->Uid() );
-        contentInfo->SetTypeL( aType );
-        
-        if ( aType == KKeyWidget || aType == KKeyTemplate )
-            {
-            contentInfo->SetMaxWidgets( plugins[i]->MultiInstance() );
-            }
-
-        contentInfo->SetDescriptionL( plugins[i]->Description() );
-        contentInfo->SetIconPathL( plugins[i]->LogoIcon() );
-
-        aWidgets.AppendL( contentInfo );
-        CleanupStack::Pop( contentInfo );
-        }
-
-    CleanupStack::PopAndDestroy( &plugins );
-    }
 
 // ---------------------------------------------------------------------------
 // CXnEditor::ToggleWidgetsVisibiltyL
@@ -1410,6 +1378,7 @@
 //
 void CXnEditor::NotifyWidgetUnregisteredL( const TDesC& aPublisher )
     {
+    ResetCache();
     RemoveUnRegisteredWidgetL( aPublisher );
     WidgetListChanged();    
     }
@@ -1420,6 +1389,7 @@
 //
 void CXnEditor::NotifyWidgetRegisteredL()
     {
+    ResetCache();        
     WidgetListChanged();
     }
 
@@ -1483,6 +1453,8 @@
     {
     if ( aEvent == KEventPluginUnInstalled )
         {
+        ResetCache();
+                
         CHsContentInfo* info = CHsContentInfo::NewLC();
 
         info->SetNameL( aPluginName );
@@ -1500,10 +1472,14 @@
         }
     else if ( aEvent == KEventPluginInstalled )
         {        
+        ResetCache();
+        
         WidgetListChanged();        
         }
     else if ( aEvent == KEventPluginUpdated )
         {
+        ResetCache();
+        
         // If the plugin is in use then reload the widget
         if ( aPluginId.Length() > 0 )
             {
@@ -1578,19 +1554,137 @@
     }
 
 // -----------------------------------------------------------------------------
+// CXnEditor::AppendPluginsL
+// -----------------------------------------------------------------------------
+//
+void CXnEditor::AppendPluginsL(
+        RPointerArray< hspswrapper::CPluginInfo > aPlugins,
+        RPointerArray< CHsContentInfo >& aWidgets )    
+    {    
+    // Append plugins to the content info array
+    for ( TInt i = 0; i < aPlugins.Count(); i++ )
+       {
+    
+       // Block the empty and template plugins from the list
+       if ( aPlugins[i]->Uid().CompareF( KEmptyWidgetUid ) == 0 
+               || aPlugins[i]->Type() == KKeyTemplate )
+           {           
+           continue;
+           }
+       
+       CHsContentInfo* contentInfo = CHsContentInfo::NewLC();
+       contentInfo->SetNameL( aPlugins[i]->Name() );
+       contentInfo->SetUidL( aPlugins[i]->Uid() );
+       contentInfo->SetTypeL( aPlugins[i]->Type() );      
+       if ( aPlugins[i]->Type() == KKeyWidget 
+               || aPlugins[i]->Type() == KKeyTemplate )
+           {
+           contentInfo->SetMaxWidgets( aPlugins[i]->MultiInstance() );
+           }
+       contentInfo->SetDescriptionL( aPlugins[i]->Description() );
+       contentInfo->SetIconPathL( aPlugins[i]->LogoIcon() );
+
+       aWidgets.AppendL( contentInfo );
+       CleanupStack::Pop( contentInfo );
+       }    
+    }
+
+// -----------------------------------------------------------------------------
+// CXnEditor::ResetCache
+// -----------------------------------------------------------------------------
+//
+void CXnEditor::ResetCache()
+    {
+    // Force loading of widget/template plugin configurations
+    iPluginsCache.ResetAndDestroy();
+    
+    // Forece reloading of CPS publishers 
+    delete iPublisherMap;
+    iPublisherMap = NULL;
+    }
+
+// -----------------------------------------------------------------------------
+// CXnEditor::HspsApplicationPluginsL
+// -----------------------------------------------------------------------------
+//
+void  CXnEditor::HspsApplicationPluginsL( RPointerArray< CHsContentInfo >& aWidgets )
+    {
+    RPointerArray< hspswrapper::CPluginInfo > plugins;
+    CleanupStack::PushL( TCleanupItem( DeletePluginInfos, &plugins ) );
+        
+    iHspsWrapper->GetAppConfigurationsL( plugins );
+    
+    // Append plugins to the content info array
+    AppendPluginsL( plugins, aWidgets ); 
+    
+    CleanupStack::PopAndDestroy( &plugins );
+    }
+
+// -----------------------------------------------------------------------------
+// CXnEditor::HspsViewPluginsL
+// -----------------------------------------------------------------------------
+//
+void CXnEditor::HspsViewPluginsL( RPointerArray< CHsContentInfo >& aWidgets )
+    {
+    RPointerArray< hspswrapper::CPluginInfo > plugins;
+    CleanupStack::PushL( TCleanupItem( DeletePluginInfos, &plugins ) );
+        
+    iHspsWrapper->GetPluginsL( plugins, KPluginInterface, KView );
+    
+    // Append plugins to the content info array
+    AppendPluginsL( plugins, aWidgets ); 
+    
+    CleanupStack::PopAndDestroy( &plugins );
+    }
+
+// -----------------------------------------------------------------------------
+// CXnEditor::HspsWidgetPluginsL
+// -----------------------------------------------------------------------------
+//
+void CXnEditor::HspsWidgetPluginsL( RPointerArray< CHsContentInfo >& aWidgets )
+    {          
+    __ASSERT_DEBUG( aWidgets.Count() == 0, User::Leave( KErrGeneral ) );
+    
+    // If widget/template plugins haven't been fetched yet
+    if( iPluginsCache.Count() == 0 )
+        {
+        // Fetch the plugins into the runtime cache
+        TRAPD( err, DoHspsWidgetPluginsL() );
+        if( err )
+            {            
+            ResetCache();
+            User::LeaveIfError( err );
+            }  
+        }    
+        
+    // Append plugins to the content info array
+    AppendPluginsL( iPluginsCache, aWidgets );            
+    }
+
+// -----------------------------------------------------------------------------
+// CXnEditor::DoHspsWidgetPluginsL
+// -----------------------------------------------------------------------------
+//
+void CXnEditor::DoHspsWidgetPluginsL()
+    {        
+    iHspsWrapper->GetPluginsL( iPluginsCache, KPluginInterface, KKeyWidget );        
+    iHspsWrapper->GetPluginsL( iPluginsCache, KPluginInterface, KKeyTemplate );            
+    }
+
+// -----------------------------------------------------------------------------
 // from MHsContentController
 // -----------------------------------------------------------------------------
 //
 TInt CXnEditor::WidgetListL( CHsContentInfoArray& aArray )
     {
-    RPointerArray< CHsContentInfo >& array( aArray.Array() );
+    // append the list with native widget and template plugins from HSPS
+    HspsWidgetPluginsL( aArray.Array() );
+        
+    // append the list with published template plugins from CPS 
+    CpsWidgetPluginsL( aArray.Array() );
 
-    // get installed widgets from HSPS (type: "widget")
-    HSPSPluginsL( array, KKeyWidget );
-    // get installed widgets from HSPS
-    TemplatedWidgetsL( array );
-    
-    FilterWidgetListL( aArray, ETrue );
+    // check whether the plugins can be added or removed
+    FilterPluginsL( aArray, ETrue );
     
     return KErrNone;
     }
@@ -1633,9 +1727,13 @@
         // Get installed widget content infos
         RPointerArray< CHsContentInfo > array;
         CleanupClosePushL( array );        
-        HSPSPluginsL( array, KKeyWidget );
-        TemplatedWidgetsL( array );
-
+        
+        // get installed widgets and template configurations from HSPS
+        HspsWidgetPluginsL( array );
+                
+        // get published widgets
+        CpsWidgetPluginsL( array );
+                
         // Create content info for each found widget
         for ( TInt i = 0; i < widgets.Count(); i++ )
             {
@@ -1662,8 +1760,9 @@
     {
     RPointerArray< CHsContentInfo >& array( aArray.Array() );
     
-    // get installed views from HSPS 
-    HSPSPluginsL( array, KView );
+    
+    // get installed view configurations from HSPS
+    HspsViewPluginsL( array );
     
     FilterViewListL( aArray );
     
@@ -1678,7 +1777,8 @@
     {
     RPointerArray< CHsContentInfo >& array( aArray.Array() );
     
-    HSPSPluginsL( array, KApplication );
+    // get installed application configurations from HSPS
+    HspsApplicationPluginsL( array );
     
     return KErrNone;
     }
@@ -1940,4 +2040,15 @@
     return contentInfo;
     }
 
+// -----------------------------------------------------------------------------
+// CXnBackgroundManager::OOMSysHandler
+// -----------------------------------------------------------------------------
+//
+CXnOomSysHandler& CXnEditor::OomSysHandler() const
+    {
+    __ASSERT_DEBUG( iOomSysHandler , User::Panic( _L("xneditor"), 0 ) );
+
+    return *iOomSysHandler;
+    }
+
 // End of file
--- a/idlehomescreen/xmluirendering/uiengine/src/xnextrenderingpluginwrapper.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnextrenderingpluginwrapper.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -226,6 +226,10 @@
     
     CXnNode* node = iNode->Node().UiEngine()->FindNodeByIdL( aDestination );
     CXnAppUiAdapter* appui = static_cast<CXnAppUiAdapter*>(iAvkonAppUi);
+    if ( !appui || !node )
+        {
+        User::Leave( KErrNotFound );
+        }
     appui->HandleEventL( aEvent, node->AppIfL() );
     }
 
--- a/idlehomescreen/xmluirendering/uiengine/src/xngesturehelper.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xngesturehelper.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -251,34 +251,18 @@
             // Also, while stylus down, the same event is received repeatedly
             // even if stylus does not move. Filter out by checking if point
             // is the same as the latest point
-            if ( iDirection != EGestureCanceled )
+            iDirection = iGesture->LastDirection( CXnGesture::EAxisHorizontal );
+            
+            if ( !IsIdle() && !iGesture->IsLatestPoint( Position( aEvent ) ) )
                 {
-                if ( iDirection == EGestureUnknown )
-                    {
-                    // check current direction
-                    iDirection = iGesture->CodeFromPoints( CXnGesture::EAxisBoth );
-                    }
-                else
+                AddPointL( aEvent );
+                if ( !( iGesture->IsHolding() ||
+                        iGesture->IsNearHoldingPoint( Position( aEvent ) ) ) )
                     {
-                    // check if direction has changed
-                    if ( iDirection != iGesture->LastDirection( CXnGesture::EAxisBoth ) )
-                        {
-                        // cancel swipe
-                        iDirection = EGestureCanceled;
-                        }
-                    }
-                
-                if ( !IsIdle() && !iGesture->IsLatestPoint( Position( aEvent ) ) )
-                    {
-                    AddPointL( aEvent );
-                    if ( !( iGesture->IsHolding() ||
-                            iGesture->IsNearHoldingPoint( Position( aEvent ) ) ) )
-                        {
-                        // restart hold timer, since pointer has moved
-                        iHoldingTimer->Start();
-                        // Remember the point in which holding was started
-                        iGesture->SetHoldingPoint();
-                        }
+                    // restart hold timer, since pointer has moved
+                    iHoldingTimer->Start();
+                    // Remember the point in which holding was started
+                    iGesture->SetHoldingPoint();
                     }
                 }
             break;
@@ -293,27 +277,24 @@
                 // observer leaves
                 CleanupStack::PushL( TCleanupItem( &ResetHelper, this ) );
                 iGesture->SetComplete();
-                if ( iDirection != EGestureCanceled )
+                // if adding of the point fails, notify client with a
+                // cancelled event. It would be wrong to send another
+                // gesture code when the up point is not known
+                if ( AddPoint( aEvent ) != KErrNone )
                     {
-                    // if adding of the point fails, notify client with a
-                    // cancelled event. It would be wrong to send another
-                    // gesture code when the up point is not known
-                    if ( AddPoint( aEvent ) != KErrNone )
-                        {
-                        iGesture->SetCancelled();
-                        }
-                    else
+                    iGesture->SetCancelled();
+                    }
+                else
+                    {
+                    // send gesture code if holding has not been started
+                    if ( !iGesture->IsHolding() )
                         {
-                        // send gesture code if holding has not been started
-                        if ( !iGesture->IsHolding() )
-                            {
-                            // if client leaves, the state is automatically reset.
-                            // In this case the client will not get the released event
-                            ret = iDirection;
-                            }
-                        // send an event that stylus was lifted
-                        iGesture->SetReleased();
+                        // if client leaves, the state is automatically reset.
+                        // In this case the client will not get the released event
+                        ret = iDirection;
                         }
+                    // send an event that stylus was lifted
+                    iGesture->SetReleased();
                     }
                 // reset state
                 CleanupStack::PopAndDestroy( this );
--- a/idlehomescreen/xmluirendering/uiengine/src/xngesturerecogniser.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xngesturerecogniser.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -184,19 +184,30 @@
 /** @return direction between last two points */
 TXnGestureCode TXnGestureRecogniser::LastDirection( const TXnPointArray& aPoints ) const
     {
-    if ( aPoints.Count() > minPointCount )
+    TXnGestureCode ret = EGestureUnknown;
+    
+    if ( ( aPoints.Count() > 0 ) &&
+         ( GestureLength( aPoints ) >= KMinSwipeLength ))
         {
-        // return direction between latest and previous points.
-        // pick the previous point that is different than the last point
-        // because while using an x or y filter array, more than one
-        // sequential points may look like the same point because
-        // the differing coordinate coordinate is filtered out. For example,
-        // if dragging left and slightly up, many y coordinates will have the
-        // same value, while only x differs.
-        return Direction( aPoints[ aPoints.Count() - minPointCount ],
-                          aPoints[ aPoints.Count() - 1 ] );
+        if ( aPoints.Count() > minPointCount )
+            {
+            // return direction between latest and previous points.
+            // pick the previous point that is different than the last point
+            // because while using an x or y filter array, more than one
+            // sequential points may look like the same point because
+            // the differing coordinate coordinate is filtered out. For example,
+            // if dragging left and slightly up, many y coordinates will have the
+            // same value, while only x differs.
+            ret = Direction( aPoints[ aPoints.Count() - minPointCount ],
+                              aPoints[ aPoints.Count() - 1 ] );
+            }
+        else
+            {
+            ret = GeneralDirection( aPoints );
+            }
         }
-    return GeneralDirection( aPoints );
+    
+    return ret;
     }
 
 // ----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -7125,19 +7125,9 @@
 
                 XnComponentInterface::MakeInterfaceL( popup, tooltipNode );
 
-                if ( popup )
+                if ( popup && aSource != XnEventSource::EStylus )
                     {
-                    if ( aSource == XnEventSource::EStylus )
-                        {
-                        const TTimeIntervalMicroSeconds32 delay( 1000 * 100 );                       
-                        const TTimeIntervalMicroSeconds32 display( 1000 * 1000 * 6 );                                                
-                        
-                        popup->ShowPopupL( aRect, delay, display );
-                        }
-                    else
-                        {
-                        popup->ShowPopupL( aRect );
-                        }
+                    popup->ShowPopupL( aRect );
                     }
                 }
             }
@@ -9080,15 +9070,34 @@
         }
     if ( source != -1 && target != -1 )
         {
+        TBool swap = EFalse;
+        CXnPluginData* data( aTarget->UiEngine()->ViewManager()->
+                ActiveViewData().Plugin( aTarget ) );
+        if ( data && !data->Occupied() )
+            {
+            // target is empty widget, swap widget places
+            swap = ETrue;
+            }
+        
         if ( target < source )
             {
             iChildren.InsertL( aSource, target );
             iChildren.Remove( source + 1 );
+            if ( swap )
+                {
+                iChildren.Remove( target + 1 );
+                iChildren.InsertL( aTarget, source );
+                }
             }
         else if ( source < target )
             {
             iChildren.Remove( source );
             iChildren.InsertL( aSource, target );
+            if ( swap )
+                {
+                iChildren.Insert( aTarget, source );
+                iChildren.Remove( target );
+                }
             }
 
         // put the locked nodes to the original places
--- a/idlehomescreen/xmluirendering/uiengine/src/xnuiengine.rss	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnuiengine.rss	Wed Mar 31 21:17:19 2010 +0300
@@ -27,6 +27,7 @@
 #include <avkon.rsg>
 #include <avkon.rh>
 #include <avkon.mbg>
+#include <AvkonIcons.hrh>
 #include <e32keys.h>
 #include <activeidle3.loc>
 
@@ -103,6 +104,11 @@
     buf = qtn_hs_delete_current_page; 
     }
     
+RESOURCE TBUF r_hs_error_content_removed
+		{
+		buf = qtn_hs_error_content_removed;
+		}    
+    
 RESOURCE DIALOG r_yes_no_hs_remove_view 
     { 
     flags = EGeneralQueryFlags; 
@@ -151,6 +157,28 @@
         };
     softkeys = R_AVKON_SOFTKEYS_SELECT_BACK;
     }
+    
+RESOURCE DIALOG r_hs_content_removed_view 
+    { 
+    flags = EGeneralQueryFlags; 
+    buttons = R_AVKON_SOFTKEYS_OK_EMPTY; 
+    items = 
+        { 
+        DLG_LINE 
+            { 
+            type = EAknCtQuery; 
+            id = EGeneralQuery; 
+            control = AVKON_CONFIRMATION_QUERY 
+                { 
+                layout = EConfirmationQueryLayout; 
+                label = r_hs_error_content_removed;
+                bmpfile = AVKON_ICON_FILE;
+                bmpid = EMbmAvkonQgn_note_error;
+                bmpmask = EMbmAvkonQgn_note_error_mask;                
+                }; 
+            } 
+        }; 
+    }    
 
 RESOURCE TBUF r_qtn_hs_operation_failed_no_disk 
     { 
--- a/idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -22,6 +22,7 @@
 #include <AknUtils.h>
 #include <layoutmetadata.cdl.h>
 #include <AknPriv.hrh> 
+#include <debug.h>
 
 // User includes
 #include "xnuiengine.h"
@@ -35,7 +36,6 @@
 #include "xnpopupcontroladapter.h"
 #include "xnviewcontroladapter.h"
 #include "xnviewdata.h"
-#include "xnrootdata.h"
 #include "xnnodebreadthfirstiterator.h"
 #include "xntype.h"
 #include "xnnodepluginif.h"
@@ -58,6 +58,7 @@
 #include "xneditor.h"
 #include "xnbackgroundmanager.h"
 #include "xntexteditor.h"
+#include "xnrootdata.h"
 
 #ifdef _XN_PERFORMANCE_TEST_
 #include "xntimemon.h"
@@ -8106,7 +8107,12 @@
     delete iHitTest;
 
     iFocusCandidateList.Reset();
-    iRedrawRegions.ResetAndDestroy();
+
+    if ( iRedrawRegions.Count() )
+        {
+        iRedrawRegions.ResetAndDestroy();
+        }
+
     iDirtyList.Reset();
     }
 
@@ -8327,6 +8333,8 @@
     TraceTreeL(iCurrentView );
 #endif                          
 
+    __PRINTS("*** CXnUiEngineImpl::RenderUIL ***");
+    
     for( TInt i=0; i<iRedrawRegions.Count(); i++)
         {
         CCoeControl* control = iRedrawRegions[i]->iControl;
@@ -8337,7 +8345,9 @@
             // Mark tree rendered
             iCurrentView->SetRenderedL();
             // Error occured during dirty set, redraw whole window
-            control->DrawNow();                                              
+            control->DrawNow();               
+            
+            __PRINTS("* CXnUiEngineImpl::RenderUIL - redraw region error -> full redraw ***");
             }                                        
         else 
             {
@@ -8352,7 +8362,10 @@
                     // Make bounding rect over the dirty areas
                     TRect boundingRect( redrawRegion.BoundingRect() );
                     
-                    control->DrawNow( boundingRect );
+                    __PRINT( __DBG_FORMAT( "* CXnUiEngineImpl::RenderUIL - redrawing bounding rect iTl.iX: %d, iTl.iY: %d, iBr.iX: %d, iBr.iY: %d" ),          
+                        boundingRect.iTl.iX, boundingRect.iTl.iY, boundingRect.iBr.iX, boundingRect.iBr.iY );                                         
+                    
+                    control->DrawNow( boundingRect );                    
                     }                               
                 else
                     {
@@ -8360,12 +8373,20 @@
                         {
                         // 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 );                                         
+                        
                         control->DrawNow( redrawRect );
                         }
                     }  
                 }
+            else
+                {
+                __PRINTS("* CXnUiEngineImpl::RenderUIL - nothing to redraw ***");
+                }
             }  
+        
         redrawRegion.Clear();  
         }
 
@@ -8374,6 +8395,8 @@
     iLayoutControl &= ~XnLayoutControl::ERenderUI;
     
     iAppUiAdapter.EffectManager()->UiRendered();
+    
+    __PRINTS("*** CXnUiEngineImpl::RenderUIL - done ***");
     }
 
 // -----------------------------------------------------------------------------
@@ -8525,7 +8548,7 @@
 
     return array;
     }
-
+    
 // -----------------------------------------------------------------------------
 // CXnUiEngineImpl::FindContentSourceNodesL()
 // -----------------------------------------------------------------------------
@@ -8584,7 +8607,7 @@
 
     return array;
     }
-    
+
 // -----------------------------------------------------------------------------
 // CXnUiEngineImpl::Resources()
 // -----------------------------------------------------------------------------
@@ -9070,6 +9093,9 @@
         return;
         }
 
+    // remove focus
+    iAppUiAdapter.HideFocus();
+
     // Update client rect
     SetClientRectL( iAppUiAdapter.ClientRect(), EFalse );
 
@@ -9088,6 +9114,10 @@
 
     ReportScreenDeviceChangeL();
             
+    if ( !iControlAdapterList )
+        {
+        iControlAdapterList = &iViewManager.Controls();
+        }
     for ( TInt i = 0; i < iControlAdapterList->Count(); i++ )
         {
         CXnControlAdapter* adapter( ( *iControlAdapterList )[i] );
@@ -9402,6 +9432,10 @@
             {
             // Force relayout and redraw from current view
             iDirtyList.Reset();
+            if ( !iCurrentView )
+                {
+                iCurrentView = iViewManager.ViewNode();
+                }
             iDirtyList.AppendL( iCurrentView );
             TXnDirtyRegion* dirtyRegion = FindDirtyRegionL( *iCurrentView );
             if( dirtyRegion )
@@ -9516,7 +9550,7 @@
         
         UpdateInternalUnits( iHorizontalUnitInPixels, iVerticalUnitInPixels,
             iClientRect );
-               
+        
         if ( aDrawNow )
             {
             RootNode()->SetDirtyL();
@@ -9860,8 +9894,8 @@
         // make sure that we always get up event
         CXnViewControlAdapter* control = static_cast< CXnViewControlAdapter* >(  
             iViewManager.ActiveViewData().ViewNode()->Control() );            
-                
-        control->ResetGrabbing();
+                   
+        control->ResetGrabbing();  
 
         // Hide all plugins except the one that contains given editor node
         RPointerArray< CXnNode >& plugins( *Plugins() );                   
@@ -10096,8 +10130,15 @@
         {
         CXnProperty* blocProgressionProperty( 
           parent->GetPropertyL( XnPropertyNames::style::common::KBlockProgression ) );               
-        
+        if ( !blocProgressionProperty )
+            {
+            User::Leave( KErrNotFound );
+            }
         HBufC* blocProgressionValue (blocProgressionProperty->StringValueL());
+        if ( !blocProgressionValue )
+            {
+            User::Leave( KErrNotFound );
+            }
         CleanupStack::PushL( blocProgressionValue );
         if(iSplitScreenState.iPartialScreenBlock)
             {
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -56,8 +56,7 @@
 // Data types
 enum 
     {
-    EIsActivated,
-    EIsFirstActivation,
+    EIsActivated,    
     EIsInCall,
     EIsLightsOn,
     EIsForeground,    
@@ -240,9 +239,7 @@
     BaseConstructL();
     
     iTimer = CPeriodic::NewL( CActive::EPriorityIdle );
-    
-    iFlags.Set( EIsFirstActivation );
-    
+            
     // Base class CAknViewAppUi takes ownership of iViewAdapter
     iAppUiAdapter.AddViewL( this );    
     iAppUiAdapter.SetDefaultViewL( *this );
@@ -411,38 +408,21 @@
         sp->DrawNow();
         }
 
-    if ( iFlags.IsSet( EIsFirstActivation ) )
-        {                             
-        // Set the active container
-        ActivateContainerL( iAppUiAdapter.ViewManager().ActiveViewData() );
-        
-        __TICK( "CXnViewAdapter::DoActivateL - Calling UiActivated" );
-        __TIME_MARK( time2 );
+    // Set the active container
+    if ( aCustomMessage == KActivateDefaultView )
+        {
+        __PRINTS( "*** CXnViewAdapter::DoActivateL - activating default container" );
     
-        iFlags.Clear( EIsFirstActivation );
-        
-        iAppUiAdapter.UiActivated();
-        
-        __TIME_ENDMARK( "CXnViewAdapter::DoActivateL - Calling UiActivated", time );        
+        ActivateDefaultContainerL();
+    
+        iTimer->Cancel();
+        iTimer->Start( 1000, 1000, TCallBack( TimerCallback, this ) );
         }
     else
         {
-	    // Set the active container
-	    if ( aCustomMessage == KActivateDefaultView )
-	        {
-            __PRINTS( "*** CXnViewAdapter::DoActivateL - activating default container" );
-	    
-	        ActivateDefaultContainerL();
-        
-	        iTimer->Cancel();
-	        iTimer->Start( 1000, 1000, TCallBack( TimerCallback, this ) );
-	        }
-	    else
-	        {
-            __PRINTS( "*** CXnViewAdapter::DoActivateL - activating container" );
-	    
-	        ActivateContainerL( viewData );
-	        }
+        __PRINTS( "*** CXnViewAdapter::DoActivateL - activating container" );
+    
+        ActivateContainerL( viewData );
         }
 			  
     __TIME_ENDMARK( "CXnViewAdapter::DoActivateL, done", time );
@@ -506,11 +486,6 @@
 void CXnViewAdapter::ActivateContainerL( CXnViewData& aContainer, 
     TBool aEnterEditState )
     {   
-    if ( !iAppUiAdapter.ViewManager().UiStartupPhaseAllDone() )
-        {
-        return;
-        }            
-        
     if ( iContainer == &aContainer || iFlags.IsSet( EIsDestructionRunning ) )   
         {            
         return;
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewdata.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewdata.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -34,7 +34,7 @@
 #include "debug.h"
 
 // Constants
-const TInt KLoadDelay( 100000 );
+const TInt KLoadDelay( 10000 );
 const TInt KInterval( 10000 );
 
 // ============================ LOCAL FUNCTIONS ================================
@@ -489,6 +489,8 @@
     
     CXnViewData* self = static_cast< CXnViewData* >( aAny );
     
+    CXnAppUiAdapter* appui = static_cast< CXnAppUiAdapter* >( iAvkonAppUi );         
+    
     RPointerArray< CXnPluginData >& plugins( self->PluginData() );
     
     for ( TInt i = self->iLoadIndex; i < plugins.Count(); i++ )
@@ -521,11 +523,9 @@
         
         if( ret != KErrNone )
             {
-            self->iManager.UnloadWidgetFromPluginL( *plugin, ETrue );
-            
+            self->iManager.UnloadWidgetFromPluginL( *plugin, ETrue );            
             self->iShowContentRemoved = ETrue;
-            }
-        
+            }        
         }
     else
         {                
@@ -542,14 +542,17 @@
             {            
             CXnNodeAppIf& plugin( self->iContentSourceNodes[i]->AppIfL() ); 
                     
-            self->iManager.AppUiAdapter().LoadPublisher( plugin, reason );                          
+            appui->LoadPublisher( plugin, reason );                          
             }                
                              
         if ( self->iShowContentRemoved )
             {
             self->ShowContentRemovedError();
             self->iShowContentRemoved = EFalse;
-            }           
+            }      
+                
+        // Fire UI ready blindly here, it will be handled in AiFw if needed
+        appui->HandleUiReadyEventL();
         }                  
             
     __PRINTS( "*** CXnViewData::DoLoadPublishersL - done" );
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -63,7 +63,8 @@
 const TInt KPSCategoryUid( 0x200286E3 );
 const TInt KPSCrashCountKey( 1 );     
 const TInt KStabilityInterval( 60000000 ); // 1 minute
-const TInt KCrashRestoreThreshold( 3 );
+const TInt KCrashRestoreDefaultThreshold( 3 );
+const TInt KCrashRestoreAllTreshold( 4 );
 
 // ============================ LOCAL FUNCTIONS ===============================
 // -----------------------------------------------------------------------------
@@ -353,28 +354,7 @@
     
     iComposer = CXnComposer::NewL( *iHspsWrapper );
     
-    // Robustness checks.
-    TInt crashCount = 0;
-    RProperty::Get( TUid::Uid( KPSCategoryUid ),
-                    KPSCrashCountKey,
-                    crashCount );    
-            
-    if( crashCount >= KCrashRestoreThreshold )
-        {
-        iHspsWrapper->RestoreRootL();
-        ResetCrashCount();        
-        ShowErrorNoteL( R_QTN_HS_ERROR_WIDGETS_REMOVED );        
-        }
-    else if( crashCount > 0 )
-        {
-        // Start stability timer to ensure that
-        // if system is stabile at least KStabilityInterval
-        // then crash count is reset to 0. 
-        iStabilityTimer = CPeriodic::NewL( CActive::EPriorityStandard );
-        iStabilityTimer->Start( KStabilityInterval,
-                                KStabilityInterval,
-                                TCallBack( SystemStabileTimerCallback, this ) );
-        }       
+    DoRobustnessCheckL();
     }
 
 // -----------------------------------------------------------------------------
@@ -1234,7 +1214,11 @@
             retval = iHspsWrapper->RemovePluginL( view->PluginId() );
             
             // Notify observers of view list change
-            NotifyViewRemovalL( *view );
+            TRAPD( err, NotifyViewRemovalL( *view ) );
+            if ( err != KErrNone )
+                {
+                // ignored
+                }            
 
             iRootData->DestroyViewData( view );
                                                                    
@@ -1307,7 +1291,11 @@
         iHspsWrapper->RemovePluginL( view->PluginId() );
         
         // Notify observers of view list change
-        NotifyViewRemovalL( *view );
+        TRAPD( err, NotifyViewRemovalL( *view ) );
+        if ( err != KErrNone )
+            {
+            // ignored
+            }   
 
         iRootData->DestroyViewData( view );
         
@@ -1773,17 +1761,50 @@
 // -----------------------------------------------------------------------------
 // CXnViewManager::ShowErrorNoteL 
 // -----------------------------------------------------------------------------
-void CXnViewManager::ShowErrorNoteL( const TInt aResourceId )
+void CXnViewManager::ShowErrorNoteL()
     {        
-    HBufC* msg( StringLoader::LoadLC( aResourceId ) );
-        
-    CAknErrorNote* note = new ( ELeave ) CAknErrorNote;
-    CleanupStack::PushL( note );
+    CAknQueryDialog* query = CAknQueryDialog::NewL();
+    query->PrepareLC( R_HS_CONTENT_REMOVED_VIEW );
+
+    HBufC* queryText( StringLoader::LoadLC( R_HS_ERROR_CONTENT_REMOVED ) );    
+    query->SetPromptL( queryText->Des() );    
+    CleanupStack::PopAndDestroy( queryText );
+
+    query->RunLD();   
+    }
+
+// -----------------------------------------------------------------------------
+// CXnViewManager::DoRobustnessCheckL 
+// -----------------------------------------------------------------------------
+void CXnViewManager::DoRobustnessCheckL()
+    {
+    TInt crashCount = 0;
+    RProperty::Get( TUid::Uid( KPSCategoryUid ),
+                    KPSCrashCountKey,
+                    crashCount );    
     
-    note->ExecuteLD( *msg );
+    if( crashCount == KCrashRestoreDefaultThreshold )
+        {    
+        TInt err = iHspsWrapper->RestoreDefaultConfL();         
+        ShowErrorNoteL();
+        }
+    else if( crashCount >= KCrashRestoreAllTreshold )
+        {       
+        TInt err = iHspsWrapper->RestoreRootL();              
+        ResetCrashCount();
+        return;
+        }
     
-    CleanupStack::Pop( note );
-    CleanupStack::PopAndDestroy( msg );    
+    if( crashCount > 0 )
+        {        
+        // Start stability timer to ensure that
+        // if system is stabile at least KStabilityInterval
+        // then crash count is reset to 0. 
+        iStabilityTimer = CPeriodic::NewL( CActive::EPriorityStandard );
+        iStabilityTimer->Start( KStabilityInterval,
+                                KStabilityInterval,
+                                TCallBack( SystemStabileTimerCallback, this ) );
+        }           
     }
 
 // End of file
--- a/idlehomescreen/xmluirendering/uiengine/src/xnwidgetextensionadapter.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnwidgetextensionadapter.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -91,6 +91,20 @@
         }
     GfxTransEffect::Deregister( this );
     }
+// -----------------------------------------------------------------------------
+// CXnWidgetExtensionAdapter::HandleScreenDeviceChangedL
+// 
+// -----------------------------------------------------------------------------
+// 
+void CXnWidgetExtensionAdapter::HandleScreenDeviceChangedL()
+	{
+    if( IsVisible() )
+		{
+	    CCoeControl::MakeVisible( EFalse );
+		}
+	CXnControlAdapter::HandleScreenDeviceChangedL();
+	
+	}
 
 // -----------------------------------------------------------------------------
 // CXnWidgetExtensionAdapter::CXnWidgetExtensionAdapter
--- a/menufw/menufwui/matrixmenu/group/matrixmenu.mmp	Mon Mar 15 12:39:47 2010 +0200
+++ b/menufw/menufwui/matrixmenu/group/matrixmenu.mmp	Wed Mar 31 21:17:19 2010 +0300
@@ -21,6 +21,8 @@
 #include <data_caging_paths.hrh>
 #include "../inc/mmguiuid.hrh"
 
+epocheapsize  1800000 4500000
+
 TARGET          matrixmenu.exe
 TARGETTYPE      exe
 UID             0x100039CE _MATRIX_UID3  
@@ -86,7 +88,6 @@
 LIBRARY           aknskins.lib
 LIBRARY           aknskinsrv.lib
 LIBRARY           aknswallpaperutils.lib
-LIBRARY           MemMan.lib
 
 #ifdef _MATRIX_MENU_TRACE_PERFORMANCE
 LIBRARY         flogger.lib
--- a/menufw/menufwui/matrixmenu/inc/mmappui.h	Mon Mar 15 12:39:47 2010 +0200
+++ b/menufw/menufwui/matrixmenu/inc/mmappui.h	Wed Mar 31 21:17:19 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:  Application UI class
-*  Version     : %version: MM_83.1.2.1.23.1.20 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: MM_83.1.2.1.23.1.21 % << Don't touch! Updated by Synergy at check-out.
 *
 */
 
@@ -1000,6 +1000,11 @@
      */
     TBool iHasFocus;
 
+	/**
+     * ETrue if Matrix is hidden from TS which is used on startup.
+     */
+	TBool isHiddenFromFS;
+	
     /**
      * Own.
      * Popup menu displayed after long tap.
--- a/menufw/menufwui/matrixmenu/src/mmappui.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/menufw/menufwui/matrixmenu/src/mmappui.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -12,8 +12,8 @@
 * Contributors:
 *
 * Description:  Application UI class
-*  Version     : %version: MM_176.1.28.1.65 % << Don't touch! Updated by Synergy at check-out.
-*  Version     : %version: MM_176.1.28.1.65 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: MM_176.1.28.1.67 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: MM_176.1.28.1.67 % << Don't touch! Updated by Synergy at check-out.
 *
 */
 
@@ -96,7 +96,9 @@
     	EAknEnableSkin | EAknSingleClickCompatible :
         EAknEnableSkin | EAknEnableMSK;
     BaseConstructL( appUiFlags );
-
+    //hide Menu from TS at startup
+    HideApplicationFromFSW( ETrue );
+    isHiddenFromFS = ETrue;
     FeatureManager::InitializeLibL();
     iIsKastorEffectStarted = EFalse;
     StartLayoutSwitchFullScreen( AknTransEffect::EApplicationStart );
@@ -1797,15 +1799,21 @@
 
     if( iCurrentContainer != aWidgetContainer )
         {
-        TBool highlightVisibleBefore = iCurrentContainer != NULL &&
-			iCurrentContainer->IsHighlightVisible();
+        // We want a highlight to be visible while switching between
+        // grid and list views but no highlight should be visible
+        // after opening a folder.
+        TBool highlightVisibleBefore =
+            iCurrentContainer &&
+            aWidgetContainer &&
+			iCurrentContainer->IsHighlightVisible() &&
+			iCurrentContainer->WidgetType() != aWidgetContainer->WidgetType();
 
         HandleWidgetChangeRefreshL( aWidgetContainer );
 
         if ( highlightVisibleBefore )
-        	{
-        	iCurrentContainer->SetHighlightVisibilityL( ETrue );
-        	}
+            {
+            iCurrentContainer->SetHighlightVisibilityL( ETrue );
+            }
         }
     else
         {
@@ -2973,6 +2981,13 @@
 	{
 		DEBUG(("_Mm_:CMmAppUi::HandleWsEventL "
 						"- KAknFullOrPartialForegroundGained"));
+    //show Menu in TS when launched for the first time
+    if( isHiddenFromFS )
+        {
+        HideApplicationFromFSW( EFalse );
+        isHiddenFromFS = EFalse;
+        }
+	
 	if (iCurrentContainer && iCurrentSuiteModel )
 		{
 		iCurrentContainer->HandleForegroundGainedL();
--- a/menufw/menufwui/matrixmenu/src/mmgui.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/menufw/menufwui/matrixmenu/src/mmgui.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -17,7 +17,6 @@
 
 
 // INCLUDE FILES
-#include <mw/MemoryManager.h>
 #include <eikstart.h>
 #include "mmapplication.h"
 
@@ -38,8 +37,5 @@
 //
 GLDEF_C TInt E32Main()
 	{
-	RAllocator* iAllocator = MemoryManager::SwitchToFastAllocator();
-	TInt err = EikStart::RunApplication( NewApplication );
-	MemoryManager::CloseFastAllocator(iAllocator);
-	return err;
+	return EikStart::RunApplication( NewApplication );
 	}
--- a/menufw/menufwui/mmwidgets/src/mmwidgetcontainer.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/menufw/menufwui/mmwidgets/src/mmwidgetcontainer.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:
-*  Version     : %version: MM_71.1.17.1.57 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: MM_71.1.17.1.59 % << Don't touch! Updated by Synergy at check-out.
 *
 */
 
@@ -237,7 +237,7 @@
     CCoeControl::HandleResourceChange( aType );
     if ( highlightVisibleBefore )
         {
-        SetHighlightVisibilityL( ETrue );
+        TRAP_IGNORE( SetHighlightVisibilityL( ETrue ) );
         }
 
 	if ( aType == KEikDynamicLayoutVariantSwitch && !IsHighlightVisible() )
@@ -638,7 +638,7 @@
     if ( aPointerEvent.iType == TPointerEvent::EButton1Down
             && itemExists  )
         {
-        SetHighlightL( index );///////////--
+        SetHighlightL( index );
         }
     else if ( aPointerEvent.iType == TPointerEvent::EDrag
               // the line below is needed to enable edit mode in the list widget
--- a/menufw/menusuites/foldersuite/data/matrixmenudata.dtd	Mon Mar 15 12:39:47 2010 +0200
+++ b/menufw/menusuites/foldersuite/data/matrixmenudata.dtd	Wed Mar 31 21:17:19 2010 +0300
@@ -296,5 +296,114 @@
 -->
 <!ENTITY qtn_apps_office_title "Office">
 
+<!--
+qtn_apps_connectivity_list.attributes
+qtn_apps_connectivity_list.layout "list_single_large_graphic_pane_1"
+qtn_apps_connectivity_list.release "5.2"
+qtn_apps_connectivity_list.description "Connectivity shortcut title"
+qtn_apps_connectivity_list.parents "Title pane"
+qtn_apps_connectivity_list.grammar "Connectivity"
+qtn_apps_connectivity_list.islocalisable "TRUE"
+-->
+<!ENTITY qtn_apps_connectivity_list "Connectivity">
+
+<!--
+qtn_apps_installations_list.attributes
+qtn_apps_installations_list.layout "list_single_large_graphic_pane_1"
+qtn_apps_installations_list.release "5.2"
+qtn_apps_installations_list.description "Installations shortcut title"
+qtn_apps_installations_list.parents "Title pane"
+qtn_apps_installations_list.grammar "Installations"
+qtn_apps_installations_list.islocalisable "TRUE"
+-->
+<!ENTITY qtn_apps_installations_list "Installations">
+
+<!--
+qtn_apps_newmessage_list.attributes
+qtn_apps_newmessage_list.layout "list_single_large_graphic_pane_1"
+qtn_apps_newmessage_list.release "5.2"
+qtn_apps_newmessage_list.description "New message shortcut title"
+qtn_apps_newmessage_list.parents "Title pane"
+qtn_apps_newmessage_list.grammar "New message"
+qtn_apps_newmessage_list.islocalisable "TRUE"
+-->
+<!ENTITY qtn_apps_newmessage_list "New message">
+
+<!--
+qtn_apps_msgtypeselection_list.attributes
+qtn_apps_msgtypeselection_list.layout "list_single_large_graphic_pane_1"
+qtn_apps_msgtypeselection_list.release "5.2"
+qtn_apps_msgtypeselection_list.description "Select message type shortcut title"
+qtn_apps_msgtypeselection_list.parents "Title pane"
+qtn_apps_msgtypeselection_list.grammar "Select message type"
+qtn_apps_msgtypeselection_list.islocalisable "TRUE"
+-->
+<!ENTITY qtn_apps_msgtypeselection_list "Sel. message type">
+
+<!--
+qtn_apps_newemail_list.attributes
+qtn_apps_newemail_list.layout "list_single_large_graphic_pane_1"
+qtn_apps_newemail_list.release "5.2"
+qtn_apps_newemail_list.description "New email shortcut title"
+qtn_apps_newemail_list.parents "Title pane"
+qtn_apps_newemail_list.grammar "New email"
+qtn_apps_newemail_list.islocalisable "TRUE"
+-->
+<!ENTITY qtn_apps_newemail_list "New email">
+
+<!--
+qtn_apps_newsyncml_list.attributes
+qtn_apps_newsyncml_list.layout "list_single_large_graphic_pane_1"
+qtn_apps_newsyncml_list.release "5.2"
+qtn_apps_newsyncml_list.description "New syncML shortcut title"
+qtn_apps_newsyncml_list.parents "Title pane"
+qtn_apps_newsyncml_list.grammar "New syncML"
+qtn_apps_newsyncml_list.islocalisable "TRUE"
+-->
+<!ENTITY qtn_apps_newsyncml_list "New syncML">
+
+<!--
+qtn_apps_newpostcard_list.attributes
+qtn_apps_newpostcard_list.layout "list_single_large_graphic_pane_1"
+qtn_apps_newpostcard_list.release "5.2"
+qtn_apps_newpostcard_list.description "New postcard shortcut title"
+qtn_apps_newpostcard_list.parents "Title pane"
+qtn_apps_newpostcard_list.grammar "New postcard"
+qtn_apps_newpostcard_list.islocalisable "TRUE"
+-->
+<!ENTITY qtn_apps_newpostcard_list "New postcard">
+
+<!--
+qtn_apps_newaudiomsg_list.attributes
+qtn_apps_newaudiomsg_list.layout "list_single_large_graphic_pane_1"
+qtn_apps_newaudiomsg_list.release "5.2"
+qtn_apps_newaudiomsg_list.description "New audio message shortcut title"
+qtn_apps_newaudiomsg_list.parents "Title pane"
+qtn_apps_newaudiomsg_list.grammar "New audio message"
+qtn_apps_newaudiomsg_list.islocalisable "TRUE"
+-->
+<!ENTITY qtn_apps_newaudiomsg_list "New audio message">
+
+<!--
+qtn_apps_undefined_list.attributes
+qtn_apps_undefined_list.layout "list_single_large_graphic_pane_1"
+qtn_apps_undefined_list.release "5.2"
+qtn_apps_undefined_list.description "Undefined shortcut title, shown if application is e.g. uninstalled"
+qtn_apps_undefined_list.parents "Title pane"
+qtn_apps_undefined_list.grammar "Undefined"
+qtn_apps_undefined_list.islocalisable "TRUE"
+-->
+<!ENTITY qtn_apps_undefined_list "Undefined">
+
+<!--
+qtn_apps_dialledcalls_list.attributes
+qtn_apps_dialledcalls_list.layout "list_single_large_graphic_pane_1"
+qtn_apps_dialledcalls_list.release "5.2"
+qtn_apps_dialledcalls_list.description "Dialed calls shortcut title"
+qtn_apps_dialledcalls_list.parents "Title pane"
+qtn_apps_dialledcalls_list.grammar "Dialed calls"
+qtn_apps_dialledcalls_list.islocalisable "TRUE"
+-->
+<!ENTITY qtn_apps_dialledcalls_list "Dialed calls">
 
 <!-- End of File-->
--- a/menufw/menusuites/foldersuite/data/matrixmenudata.xml	Mon Mar 15 12:39:47 2010 +0200
+++ b/menufw/menusuites/foldersuite/data/matrixmenudata.xml	Wed Mar 31 21:17:19 2010 +0300
@@ -12,8 +12,8 @@
                     mask_id="16399" 
                     icon_skin_minor_id="0x1ead" 
                     icon_skin_major_id="0x101F86E3"> -->
-            <!--Calendar-->
-            <menu:application uid="0x10005901"/>
+        <!--Calendar-->
+        <menu:application uid="0x10005901"/>
         <!-- </menu:folder> -->
         <!--Contacts application-->
         <menu:application uid="0x101F4CCE"/>
@@ -37,39 +37,15 @@
         </menu:folder>
         <!--Messaging application-->
         <menu:application uid="0x100058C5"/>
-        <!--Photos suite-->
-        <menu:suite title_name="&qtn_apps_photos_title;" 
-                    long_name="&qtn_apps_photos_list;" 
-                    short_name="&qtn_apps_photos_grid;" 
-                    suite_name="photossuite"
-                    icon_file="z:\resource\apps\matrixmenudata.mif" 
-                    icon_id="16398" 
-                    mask_id="16399" 
-                    icon_skin_minor_id="0x217c" 
-                    icon_skin_major_id="0x101F86E3" />
-        <!-- application used in photos suite should be hidden from menu -->
-        <menu:folder flags="hidden">
-            <menu:application uid="0x200009EE"/> <!--Photos-->
-            <menu:application uid="0x2000BB53"/> <!--Share Online-->
-        </menu:folder>
+        <!--Photos application-->
+        <menu:application uid="0x200009EE"/> 
         <!--Download! application-->                         
         <menu:application uid="0x20007803" />
         <!--Maps application-->
         <menu:application uid="0x20001F63"/>
-        <!--Video & TV suite-->
-        <menu:suite title_name="&qtn_apps_videotv_title;" 
-                    long_name="&qtn_apps_videotv_list;" 
-                    short_name="&qtn_apps_videotv_grid;" 
-                    suite_name="tvvideosuite"
-                    icon_file="z:\resource\apps\matrixmenudata.mif" 
-                    icon_id="16402" 
-                    mask_id="16403" 
-                    icon_skin_minor_id="0x217d" 
-                    icon_skin_major_id="0x101F86E3"/>
-        <!-- application used in video suite should be hidden from menu -->
-        <menu:folder flags="hidden">
-            <menu:application uid="0x102750E2"/> <!--VideoCenter-->
-        </menu:folder>
+      
+        <!--Video & TV-->
+        <menu:application uid="0x200159B2"/>
         <!--Settings/Control Panel-->           
         <menu:application uid="0x100058EC"/>
         <!--Games folder-->
@@ -116,19 +92,23 @@
             <!--Voice recorder-->
             <menu:application uid="0x10282411"/>
             <!--Search application-->
+            <menu:application uid="0x101F4CD5" view="1"/>
+            
         </menu:folder>
-        <menu:folder flags="hidden" long_name="mcsplugin_folder">
+    <menu:folder flags="hidden" long_name="mcsplugin_folder">
           <menu:application uid="0x100058EC"
                             view="0x10207250"
-                            long_name="Connectivity"
-                            presenceicon="SKIN ( 270501603 8586 ): mif ( c:\\data\\Installs\\TemplateData\\templateIcons.mif 16386  16387)"/>
-          
+                            icon_file="aimcsplugin.mif"
+                            icon_id="16394"
+                            mask_id="16395"
+                            long_name="&qtn_apps_connectivity_list;"/>
+                            
           <menu:application uid="0x100058EC"
                             view="0x10283321"
-                            long_name="Installations"/>
+                            long_name="&qtn_apps_installations_list;"/>
 
           <menu:shortcut    uid="0x99999999"
-                            long_name="New message"
+                            long_name="&qtn_apps_newmessage_list;"
                             icon_file="aimcsplugin.mif"
                             icon_id="16406"
                             mask_id="16407"
@@ -137,7 +117,7 @@
                             param="messaging:msg"/>
                             
           <menu:shortcut    uid="0x99999998"
-                            long_name="Sel. message type"
+                            long_name="&qtn_apps_msgtypeselection_list;"
                             icon_file="aimcsplugin.mif"
                             icon_id="16388"
                             mask_id="16389"
@@ -146,16 +126,14 @@
                             param="messaging:seltype"/>
                             
           <menu:shortcut    uid="0x99999997"
-                            long_name="New email"
+                            long_name="&qtn_apps_newemail_list;"
                             icon_file="aimcsplugin.mif"
                             icon_id="16402"
                             mask_id="16403"
-                            icon_skin_minor_id=""
-                            icon_skin_major_id=""
                             param="messaging:email"/>
                             
           <menu:shortcut    uid="0x99999996"
-                            long_name="New SyncML" 
+                            long_name="&qtn_apps_newsyncml_list;" 
                             icon_file="aimcsplugin.mif"
                             icon_id="16390"
                             mask_id="16391"
@@ -164,7 +142,7 @@
                             param="messaging:syncmlmail"/>
                             
           <menu:shortcut    uid="0x99999995"
-                            long_name="New postcard"
+                            long_name="&qtn_apps_newpostcard_list;"
                             icon_file="aimcsplugin.mif"
                             icon_id="16400"
                             mask_id="16401"
@@ -173,33 +151,15 @@
                             param="messaging:postcard"/>
           
           <menu:shortcut    uid="0x99999994"
-                            long_name="New audio message"
+                            long_name="&qtn_apps_newaudiomsg_list;"
                             icon_file="aimcsplugin.mif"
                             icon_id="16404"
                             mask_id="16405"
-                            icon_skin_minor_id=""
-                            icon_skin_major_id=""
                             param="messaging:audiomsg"/>
-               
-               <menu:url    uid="0x99999993"
-                            long_name="Google search"
-                            icon_file="aimcsplugin.mif"
-                            icon_id="16386"
-                            mask_id="16387"
-                            icon_skin_minor_id=""
-                            icon_skin_major_id=""
-                            url="www.google.com"/>
-                             
-                <menu:url   uid="0x99999992"
-                            long_name="Nokia OVI"
-                            icon_file="ovi_brand_graphics.mif"
-                            icon_id="16384"
-                            mask_id="16385"
-                            presenceicon="SKIN ( 0x101F86E3 0x1af5 )"
-                            url="www.ovi.com"/>
          
-          <menu:shortcut    uid="0x99999991"
-                            long_name="Undefined"
+          <menu:shortcut    flags="hidden"
+                            uid="0x99999991"
+                            long_name="&qtn_apps_undefined_list;"
                             icon_file="aimcsplugin.mif"
                             icon_id="16388"
                             mask_id="16389"
@@ -207,12 +167,10 @@
                             icon_skin_major_id="0x101F86E3"/>
                             
           <menu:shortcut    uid="0x99999989"
-                            long_name="Dialed calls"
+                            long_name="&qtn_apps_dialledcalls_list;"
                             icon_file="aimcsplugin.mif"
                             icon_id="16398"
                             mask_id="16399"
-                            icon_skin_minor_id=""
-                            icon_skin_major_id=""
                             param="logs:dialed"/>
 
           <!-- Menu Application Launcher -->
@@ -223,7 +181,8 @@
           <menu:application uid="0x200104E4"/>
           <!-- Video Suite launcher -->
           <menu:application uid="0x200211FA"/>
-
+          <!-- Conversation application -->
+          <menu:application uid="0x2002A540"/>
         </menu:folder>
     </menu:folder>
 </menu:data>
Binary file menufw/menusuites/foldersuite/loc/matrixmenudata.loc has changed
--- a/package_definition.xml	Mon Mar 15 12:39:47 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<SystemDefinition schema="3.0.0">
-  <package id="homescreen" name="Home Screen Apps" levels="fw apps">
-    <collection id="idlehomescreen" name="Idle Home Screen" level="apps">
-      <component id="nativeuicontroller" filter="s60" name="Native UI Controller">
-        <unit bldFile="idlehomescreen/nativeuicontroller/group"/>
-      </component>
-      <component id="exths" filter="s60" name="Active Idle Container" class="plugin">
-      	<!-- why is the ID so different from the name? Is one wrong? -->
-        <unit bldFile="idlehomescreen/exths/group"/>
-      </component>
-      <component id="activeidle3" filter="s60" name="Active Idle 3">
-        <unit bldFile="idlehomescreen/activeidle3/group"/>
-        <!-- do these need to be built? -->
-        <!-- <unit bldFile="idlehomescreen/activeidle3/data/group"/> -->
-        <!-- <unit bldFile="idlehomescreen/activeidle3/xmluirendering/uiengine/group"/> -->
-      </component>
-      <component id="hsplugins" filter="s60" name="Home Screen Plugins" class="plugin">
-        <unit bldFile="idlehomescreen/hsplugins/group"/>
-        <!-- do these need to be built? -->
-        <!-- <unit bldFile="idlehomescreen/hsplugins/organizer/qhd_tch/organizer_2001f481/group"/> -->
-        <!-- <unit bldFile="idlehomescreen/hsplugins/organizer/vga/organizer_2001f48d/group"/> -->
-        <!-- <unit bldFile="idlehomescreen/hsplugins/organizer/vga/organizer_2001fdba/group"/> -->
-      </component>
-    </collection>
-    <collection id="menufw" name="Menu Framework" level="fw">
-      <component id="hierarchynavigator" filter="s60" name="Hierarchy Navigator">
-        <unit bldFile="menufw/hierarchynavigator/group"/>
-      </component>
-      <component id="menufwui" filter="s60" name="Menu Framework UI">
-        <unit bldFile="menufw/menufwui/group"/>
-      </component>
-      <component id="menusuites" filter="s60" name="Menu Suites">
-        <unit bldFile="menufw/menusuites/group"/>
-      </component>
-      <component id="menufw_build" filter="s60" name="Menu Framework Build">
-      	<!-- can the exports be exported by the other components? -->
-        <unit bldFile="menufw/group"/>
-      </component>
-    </collection>
-    <collection id="homescreen_info" name="Home Screen Apps Info" level="apps">
-      <component id="homescreen_test" filter="s60" purpose="development" name="Home Screen Apps Test">
-      	<!-- should this be commented out or not? -->
-        <!-- <unit bldFile="tsrc/group"/> -->
-      </component>
-      <component id="homescreen_plat" filter="s60" name="Home Screen Apps Platform Interfaces" class="api">
-        <unit bldFile="homescreen_plat/group"/>
-      </component>
-    </collection>
-  </package>
-</SystemDefinition>
--- a/taskswitcher/contextengine/tsfswserver/engine/group/tsfswengine.mmp	Mon Mar 15 12:39:47 2010 +0200
+++ b/taskswitcher/contextengine/tsfswserver/engine/group/tsfswengine.mmp	Wed Mar 31 21:17:19 2010 +0300
@@ -28,6 +28,8 @@
 SOURCE          tsfsalwaysshownapplist.cpp
 SOURCE          tsfswidgetlist.cpp
 SOURCE          tsfswiconcache.cpp
+SOURCE          tsfswdatalist.cpp
+SOURCE          tscpsnotifier.cpp
 
 MW_LAYER_SYSTEMINCLUDE
 
@@ -52,6 +54,7 @@
 LIBRARY featmgr.lib
 LIBRARY bitmaptransforms.lib
 
+LIBRARY	liwservicehandler.lib
 LIBRARY tspreviewprovider.lib
 LIBRARY tsfswutils.lib
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/taskswitcher/contextengine/tsfswserver/engine/inc/tscpsnotifier.h	Wed Mar 31 21:17:19 2010 +0300
@@ -0,0 +1,112 @@
+/*
+* Copyright (c) 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:  Task monitor engine
+ *
+*/
+
+#ifndef TSCPSNOTIFIER_H
+#define TSCPSNOTIFIER_H
+
+#include <e32base.h>
+#include <liwcommon.h>
+
+class CLiwGenericParamList;
+class CLiwServiceHandler;
+class MLiwInterface;
+class CLiwDefaultMap;
+class CLiwMap;
+class CTsFswEngine;
+
+NONSHARABLE_CLASS(CTSCpsNotifier) : 
+    public CBase, 
+    private MLiwNotifyCallback
+    {
+public:
+    /**
+     * Two-phased constructor.
+     */
+    static CTSCpsNotifier* NewL( CTsFswEngine& aEngine );
+
+    /**
+     * Destructor.
+     */
+    virtual ~CTSCpsNotifier();
+
+private:
+    /**
+     * Constructor.
+     */
+    CTSCpsNotifier( CTsFswEngine& aEngine );
+
+    /**
+     * 
+     */
+    void ConstructL();
+private:
+    // Form base class MLiwNotifyCallback.
+    /**
+     * Callback from LIW framework to process an event that was expected.
+     * @see MLiwNotifyCallback::HandleNotifyL
+     */
+    TInt HandleNotifyL( TInt aCmdId, 
+            TInt aEventId,
+            CLiwGenericParamList& aEventParamList,
+            const CLiwGenericParamList& aInParamList );
+
+private:
+    /**
+     * Create and return map filled with widgets identifiers
+     */
+    CLiwDefaultMap* WidgetFilterLC();
+    
+    /**
+     * Initalise CPS service interface
+     */
+    void InitCpsInterfaceL();
+
+    /**
+     * Request for CPS notifications abou widgets
+     */
+    void ExecuteRegistrationCommandL( TUint aOption );
+
+    /**
+     * Obtain widget information and
+     * forward widgets data change handling to iEngine
+     */
+    void HandleWidgetUpdateL( const CLiwMap& aChangeMap );
+
+    /**
+     * Obtain from CPS information about widget
+     */
+    void GetWidgetDataL( const TDesC& aContentId,
+            TInt& aWidgetId,
+            TInt& aBitmapHandle );
+
+    /**
+     * Obtain from CPS information about widget from data map
+     */
+    void GetWidgetDataFromDataMapL( const CLiwMap& aDataMap,
+            TInt& aWidgetId,
+            TInt& aBitmapHandle );
+
+private:
+
+    MLiwInterface* iCpsInterface;//own
+
+    CLiwServiceHandler* iServiceHandler;//own
+
+    CTsFswEngine& iEngine;//not own
+    };
+
+#endif //TSCPSNOTIFIER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswdatalist.h	Wed Mar 31 21:17:19 2010 +0300
@@ -0,0 +1,292 @@
+/*
+* Copyright (c) 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:  Non-closeable app list class
+ *
+*/
+
+
+#ifndef TSFSWDATALIST_H
+#define TSFSWDATALIST_H
+
+#include <e32base.h>
+#include <e32hashtab.h>
+#include <fbs.h>
+#include <apgcli.h>
+#include <w32std.h>
+#include "tsfswentry.h"
+#include "tsfswobservers.h"
+
+class CTsFswEngine;
+class CTsFsAlwaysShownAppList;
+class CTsFsHiddenAppList;
+class CTsFsWidgetList;
+class CTsFswIconCache;
+class CApaWindowGroupName;
+
+/**
+ * Engine's data list.
+ */
+NONSHARABLE_CLASS( CTsFswDataList ) : public CBase
+    {
+public:
+    /**
+     * Two-phased constructor.
+     *
+     * @param aParent
+     */
+    static CTsFswDataList* NewL( CTsFswEngine& aEngine );
+
+    /*
+     * Destructor
+     */
+    ~CTsFswDataList();
+
+private:
+    /**
+     * Constructor.
+     */
+    CTsFswDataList( CTsFswEngine& aEngine );
+
+    /**
+     * Performs 2nd phase construction.
+     */
+    void ConstructL();
+
+public:
+    /**
+     * Returns a reference to the current content.
+     * Also performs sanity checks, e.g. associates application icons
+     * when no screenshot has been received.
+     * @return  ref to content array
+     */
+    const RTsFswArray& FswDataL();
+
+    /**
+     * Gets the window group list and reconstructs the fsw content.
+     * @return   TBool   ETrue if the content iData has been modified
+     */
+    TBool CollectTasksL();
+
+    /**
+     * Return contained iAlwaysShownAppList member.
+     */
+    CTsFsAlwaysShownAppList* AlwaysShownApps();
+
+    /**
+     * Return contained iHiddenAppList member.
+     */
+    CTsFsHiddenAppList* HiddenApps();
+
+    /**
+     * Return containd iWidgetList member
+     */
+    CTsFsWidgetList* Widgets();
+
+    /**
+     * Set flag iTaskListDirty;
+     */
+    void SetDirty();
+
+    /**
+     * Set flag iAppDataRefreshNeeded
+     */
+    void SetAppDataRefreshNeeded();
+
+    /**
+     * Store or updarte screenshot bitmap for specified window group.
+     */
+    TBool StoreScreenshot( TInt aWgId, CFbsBitmap* aBmp );
+
+    /**
+     * remove screenshot bitmap.
+     */
+    TBool RemoveScreenshot( TInt aWgId );
+
+    /**
+     * Obtain screenshot if exists
+     */
+    CFbsBitmap** FindScreenshot( TInt aWgId );
+
+    /**
+     * Moves entry on given window app/widget id to 
+     * the first position on conten data list
+     */
+    void MoveEntryAtStart( TInt aAppId, TBool aWidget );
+
+private:
+    /**
+     * Adds running apps to the list.
+     * @param   aAppsList    array to add to
+     */
+    void CollectAppsL( RTsFswArray& aAppsList );
+
+    /**
+     * Called from CollectTasksL for each entry in the task list.
+     * @param   aWgId       window group id
+     * @param   aAppUid     application uid
+     * @param   aWgName     window group name or NULL
+     * @param   aNewList    list to add to
+     * @param   aIsWidget   true if the entry corresponds to a web widget
+     * @return  TBool   ETrue if it was really a new entry in the list
+     */
+    TBool AddEntryL( TInt aWgId, 
+			const TUid& aAppUid,
+            CApaWindowGroupName* aWgName,
+			RTsFswArray& aNewList,
+            TBool aIsWidget );
+
+    /**
+     * Checks if there is an entry for same app in the content list.
+     * If yes then it takes some of the data for the entry that
+     * will correspond to the same app in the refreshed content list.
+     * In case of widget, update window group field in content list.
+     * @param   aEntry      new entry in content list
+     * @param   aAppUid     application uid
+     * @param   aChanged    ref to change-flag, set to ETrue if it is sure
+     * that the new content list will be different from the previous one
+     * @param   aNewList    ref to new content list
+     * @return  ETrue if app was found
+     */
+    TBool ConsiderOldDataL( CTsFswEntry& aEntry,
+        const TUid& aAppUid,
+        TBool& aChanged,
+        RTsFswArray& aNewList );
+
+    /**
+     * Adds running widgets to the list.
+     * @param   aWidgetsList    array to add to
+     */
+    void CollectWidgetsL( RTsFswArray& aWidgetsList );
+
+    /**
+     * Returns the parent's wg id or KErrNotFound.
+     * @param   aWgId   a valid window group id
+     * @return parent wg id or KErrNotFound if there is no parent
+     */
+    TInt FindParentWgId( TInt aWgId );
+
+    /**
+     * Returns the most top parent's wg id or KErrNotFound.
+     * @param   aWgId   a valid window group id
+     * @return parent wg id or KErrNotFound if there is no parent
+     */
+    TInt FindMostTopParentWgId( TInt aWgId );
+
+    /**
+     * Finds out the application name.
+     * @param   aWindowName window group name or NULL
+     * @param   aAppUId     application uid
+     * @param   aWgId       window group id
+     * @return  application name, ownership transferred to caller
+     */
+    HBufC* FindAppNameLC( CApaWindowGroupName* aWindowName,
+            	const TUid& aAppUid,
+				TInt aWgId );
+
+    /**
+     * Checks if the app to which the screenshot belongs is in the task list
+     * and updates the entry when found. Also triggers change notification
+     * to observer when data is modified.
+     * @param   aWgIdForScreenshot  wgid for the screenshot 
+     * @param   aBitmapHandle       handle for screenshot bitmap
+     * @return   TBool   ETrue if the list has been modified
+     */
+    TBool AssignScreenshotHandle( TInt aWgIdForScreenshot, TInt aBitmapHandle );
+
+    /**
+     * Checks if the app to which the screenshot belongs is in the task list
+     * and updates the entry when found. 
+     * @param   aWgIdForScreenshot  wgid for the screenshot, 
+     *                              in case of widget it stands for widget id 
+     * @param   aBitmapHandle       handle for screenshot bitmap
+     * @param   aAsigned       		result of operation
+     */
+    void AssignScreenshotHandle( TInt aWgIdForScreenshot,
+			TInt aBitmapHandle,
+        	TBool& aAsigned );
+
+    /**
+     * Returns the bitmap handle for the screenshot belonging to the given app
+     * or 0 if not (yet) found.
+     * @param   aWgIdForApp     a window group id (from the window group list)
+     * @return  bitmap handle or 0
+     */
+    TInt LookupScreenshotHandle( TInt aWgIdForApp );
+
+    /**
+     * Fit existing class contained data list into give one.
+     * Data is being changed with application type consideration that is based 
+     * on aConsiderWidgets param. 
+     * Function removes or add entries into data depend on given list.
+     * @param   aListToFit          list with actual data 
+     * @param   aConsiderWidgets    application type 
+     * @return  ETrue if change occours on data list, EFalse otherwise   
+     */
+    TBool FitDataToListL( RTsFswArray& aListToFit, TBool aConsiderWidgets );
+
+    /**
+     * Checks if there is an entry for same app in the given list.
+     * @param   aEntry      entry
+     * @param   aNewList    ref to list
+     * @return  ETrue if app was found
+     */
+    TBool CheckIfExists( const CTsFswEntry& aEntry,
+            const RTsFswArray& aNewList ) const;
+
+private:
+    CTsFswEngine& iEngine;
+
+    RTsFswArray iData; // current fsw content, i.e. the task list
+
+    // always shown app list, own    
+    CTsFsAlwaysShownAppList* iAlwaysShownAppList;
+
+    // hidden app list, own
+    CTsFsHiddenAppList* iHiddenAppList;
+
+    // web widget list, own
+    CTsFsWidgetList* iWidgetList;
+
+    // window server session
+    RWsSession iWsSession;
+
+    // apparc session
+    RApaLsSession iAppArcSession;
+
+    /**
+     * Hash table storing the screenshots.
+     * Key: window group id for the screenshot
+     * (the one received in ApplicationChange)
+     * Value: CFbsBitmap*, pointers owned
+     */
+    RHashMap<TInt, CFbsBitmap*> iScreenshots;
+
+    // app icon provider/container instance, own
+    CTsFswIconCache* iAppIcons;
+
+    // true if web widgets are supported by the system
+    TBool iWidgetsSupported;
+
+    // when true CollectTasksL will call GetAllApps etc.
+    // which is slow and need not be done normally, except
+    // during startup and perhaps when new applications are installed
+    TBool iAppDataRefreshNeeded;
+
+    // Dirty flag, indicates that iData is not up-to-date because
+    // there were no subscribed clients during a previous possible
+    // change of the task list.
+    TBool iTaskListDirty;
+    };
+
+#endif //TSFSWDATALIST_H
--- a/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswengine.h	Mon Mar 15 12:39:47 2010 +0200
+++ b/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswengine.h	Wed Mar 31 21:17:19 2010 +0300
@@ -32,15 +32,14 @@
 #include "tsfswentry.h"
 #include "tsfswobservers.h"
 
-class CTsFsAlwaysShownAppList;
-class CTsFsHiddenAppList;
-class CTsFsWidgetList;
 class MTsFswEngineObserver;
-class CTsFswIconCache;
 class CTsFastSwapPreviewProvider;
 class CApaWindowGroupName;
 class CBitmapRotator;
 class CTsRotationTask;
+class CTSCpsNotifier;
+
+class CTsFswDataList;
 
 // descriptor big enough to store hex repr of 32-bit integer plus 0x prefix
 typedef TBuf<10> TAppUidHexString;
@@ -62,12 +61,12 @@
      * @param   aObserver   ref to observer
      */
     IMPORT_C static CTsFswEngine* NewL( MTsFswEngineObserver& aObserver );
-    
+
     /**
      * @copydoc NewL
      */
     IMPORT_C static CTsFswEngine* NewLC( MTsFswEngineObserver& aObserver );
-    
+
     /**
      * Destructor.
      */
@@ -80,13 +79,13 @@
      * @return  ref to content array
      */
     IMPORT_C const RTsFswArray& FswDataL();
-    
+
     /**
      * Tries to close the given app.
      * @param   aWgId   value given by WgId() for an entry in iData
      */
     IMPORT_C void CloseAppL( TInt aWgId );
-    
+
     /**
      * Brings the given app to foreground.
      * @param   aWgId   value given by WgId() for an entry in iData
@@ -110,11 +109,18 @@
      * Callback for rotation completion. Takes ownership of a given
      * bitmap.
      */
-    void RotationComplete( TInt aWgId,
+    void RotationComplete( TInt aWgId, 
             CFbsBitmap* aBitmap,
             CTsRotationTask* aCompletedTask,
             TInt aError );
-    
+
+    /**
+     * Called by CPS publisher when changes occours on widgets' CPS data.
+     * Copies screenshot with use of delivered bitmap handle.
+     * Moves last changed widget with entry into start position. 
+     */
+    void HandleWidgetUpdateL( TInt aWidgetId, TInt aBitmapHandle );
+
 private:
     // from CActive
     void RunL();
@@ -123,7 +129,7 @@
 
     // from MTsFswTaskListObserver
     void UpdateTaskList();
-    
+
     // from MTsFswResourceObserver
     void HandleResourceChange( TInt aType );
 
@@ -134,7 +140,7 @@
     void HandleFswPpApplicationChange( TInt aWgId, TInt aFbsHandle );
     void HandleFswPpApplicationUnregistered( TInt aWgId );
     void HandleFswPpApplicationBitmapRotation( TInt aWgId, TBool aClockwise );
-    
+
     void RotateL( CFbsBitmap& aBitmap, TInt aWgId, TBool aClockwise );
 
 private:
@@ -142,52 +148,17 @@
      * Constructor.
      */
     CTsFswEngine( MTsFswEngineObserver& aObserver );
-    
+
     /**
      * Performs 2nd phase construction.
      */
     void ConstructL();
-    
+
     /**
      * Gets the window group list and reconstructs the fsw content.
      * @return   TBool   ETrue if the list has been modified
      */
     TBool CollectTasksL();
-    
-    /**
-     * Called from CollectTasksL for each entry in the task list.
-     * @param   aWgId       window group id
-     * @param   aAppUid     application uid
-     * @param   aWgName     window group name or NULL
-     * @param   aNewList    list to add to
-     * @param   aIsWidget   true if the entry corresponds to a web widget
-     * @return  TBool   ETrue if it was really a new entry in the list
-     */
-    TBool AddEntryL( TInt aWgId, const TUid& aAppUid,
-        CApaWindowGroupName* aWgName, RTsFswArray& aNewList,
-        TBool aIsWidget );
-
-    /**
-     * Checks if there is an entry for same app in the content list.
-     * If yes then it takes some of the data for the entry that
-     * will correspond to the same app in the refreshed content list.
-     * @param   aEntry      new entry in content list
-     * @param   aAppUid     application uid
-     * @param   aChanged    ref to change-flag, set to ETrue if it is sure
-     * that the new content list will be different from the previous one
-     * @param   aNewList    ref to new content list
-     * @return  ETrue if app was found
-     */
-    TBool CheckIfExistsL( CTsFswEntry& aEntry,
-        const TUid& aAppUid,
-        TBool& aChanged,
-        RTsFswArray& aNewList );
-
-    /**
-     * Adds running widgets to the list.
-     * @param   aNewList    array to add to
-     */
-    void CheckWidgetsL( RTsFswArray& aNewList );
 
     /**
      * Finds out the app uid for the given window group id.
@@ -195,21 +166,7 @@
      * @return  application uid
      */
     TUid AppUidForWgIdL( TInt aWgId );
-    
-    /**
-     * Returns the parent's wg id or KErrNotFound.
-     * @param   aWgId   a valid window group id
-     * @return parent wg id or KErrNotFound if there is no parent
-     */
-    TInt FindParentWgId( TInt aWgId );
-    
-    /**
-     * Returns the most top parent's wg id or KErrNotFound.
-     * @param   aWgId   a valid window group id
-     * @return parent wg id or KErrNotFound if there is no parent
-     */
-    TInt FindMostTopParentWgId( TInt aWgId );
-    
+
     /**
      * Finds out the application name.
      * @param   aWindowName window group name or NULL
@@ -218,7 +175,8 @@
      * @return  application name, ownership transferred to caller
      */
     HBufC* FindAppNameLC( CApaWindowGroupName* aWindowName,
-        const TUid& aAppUid, TInt aWgId );
+            const TUid& aAppUid,
+            TInt aWgId );
 
     /**
      * Makes a copy of the bitmap with the given handle.
@@ -227,34 +185,7 @@
      * @return  CFbsBitmap*     the copy, ownership transferred to caller
      */
     CFbsBitmap* CopyBitmapL( TInt aFbsHandle, TBool aKeepAspectRatio );
-    
-    /**
-     * Checks if the app to which the screenshot belongs is in the task list
-     * and updates the entry when found. Also triggers change notification
-     * to observer when data is modified.
-     * @param   aWgIdForScreenshot  wgid for the screenshot 
-     * @param   aBitmapHandle       handle for screenshot bitmap
-     */
-    void AssignScreenshotHandle( TInt aWgIdForScreenshot, TInt aBitmapHandle );
-    
-    /**
-     * Checks if the app to which the screenshot belongs is in the task list
-     * and updates the entry when found. 
-     * @param   aWgIdForScreenshot  wgid for the screenshot 
-     * @param   aBitmapHandle       handle for screenshot bitmap
-     * @param   aAsigned       		result of operation
-     */
-    void AssignScreenshotHandle( TInt aWgIdForScreenshot,
-            TInt aBitmapHandle, TBool& aAsigned  );
-    
-    /**
-     * Returns the bitmap handle for the screenshot belonging to the given app
-     * or 0 if not (yet) found.
-     * @param   aWgIdForApp     a window group id (from the window group list)
-     * @return  bitmap handle or 0
-     */
-    TInt LookupScreenshotHandle( TInt aWgIdForApp );
-    
+
     /**
      * Callback for the iUpdateStarter timer.
      * Calls CollectTasksL and notifies the observer if the task list
@@ -288,62 +219,44 @@
      * Close running widget
      * @param aOffset - widget info offset
      */
-    void CloseWidgetL(TInt aOffset);
+    void CloseWidgetL( TInt aOffset );
 
-private: // data    
-    MTsFswEngineObserver& iObserver;
-    RTsFswArray iData; // current fsw content, i.e. the task list
-    CEikonEnv* iEnv; // not own
+    /**
+     * Removes screenshot bitmap from contained iDataList
+     */
+    void RemoveScreenshot( TInt aWgId );
 
-    // always shown app list, own    
-    CTsFsAlwaysShownAppList* iAlwaysShownAppList;
-    
-    // hidden app list, own
-    CTsFsHiddenAppList* iHiddenAppList;
-    
-    // web widget list, own
-    CTsFsWidgetList* iWidgetList;
+    /**
+     * Add or overwrite screenshot datamap into iDataList
+     * @return ETrue if content was changed
+     */
+    TBool StoreScreenshot( TInt aWgId, CFbsBitmap* aBmp );
+
+private:
+    // data    
+    MTsFswEngineObserver& iObserver;
+    CEikonEnv* iEnv; // not own
 
     // window server session
     RWsSession iWsSession;
-    
+
     // apparc session
     RApaLsSession iAppArcSession;
 
-    /**
-     * Hash table storing the screenshots.
-     * Key: window group id for the screenshot
-     * (the one received in ApplicationChange)
-     * Value: CFbsBitmap*, pointers owned
-     */    
-    RHashMap<TInt, CFbsBitmap*> iScreenshots;
-    
     // preview provider instance, own
     CTsFastSwapPreviewProvider* iPreviewProvider;
-    
+
     // timer to defer content refresh
     CPeriodic* iUpdateStarter;
-    
-    // app icon provider/container instance, own
-    CTsFswIconCache* iAppIcons;
-    
+
     // true if web widgets are supported by the system
     TBool iWidgetsSupported;
 
     // PS property to listen for swi status changes
     RProperty iSwiProp;
-    // when true CollectTasksL will call GetAllApps etc.
-    // which is slow and need not be done normally, except
-    // during startup and perhaps when new applications are installed
-    TBool iAppDataRefreshNeeded;
 
     // window group ids returned by last WindowGroupList call
     RArray<TInt> iWgIds;
-    
-    // Dirty flag, indicates that iData is not up-to-date because
-    // there were no subscribed clients during a previous possible
-    // change of the task list.
-    TBool iTaskListDirty;
 
     // For publishing the foreground app uid to Context Framework    
     TAppUidHexString iFgAppUidStr;
@@ -351,9 +264,13 @@
 
     // For rotating bitmaps
     RPointerArray<CTsRotationTask> iRotaTasks;
+
+    CTsFswDataList* iDataList;//own
+
+    //Used to observ wigets' actions on CPS service
+    CTSCpsNotifier* iCpsWidgetPublisher;//owned
     };
 
-
 /**
  * Listener for rotation complete event
  */
@@ -362,13 +279,12 @@
 public:
     CTsRotationTask( CTsFswEngine& aEngine );
     ~CTsRotationTask();
-    void StartLD( TInt aWgId,
-            CFbsBitmap* aBitmapHandle,
-            TBool aClockwise );
+    void StartLD( TInt aWgId, CFbsBitmap* aBitmapHandle, TBool aClockwise );
 private:
     void RunL();
     void DoCancel();
-private: // Data
+private:
+    // Data
     CTsFswEngine& iEngine;
     TInt iWgId;
     CFbsBitmap* iBitmap; // owned for the duration of transformation
--- a/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswidgetlist.h	Mon Mar 15 12:39:47 2010 +0200
+++ b/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswidgetlist.h	Wed Mar 31 21:17:19 2010 +0300
@@ -21,13 +21,9 @@
 
 #include <e32base.h>
 #include <widgetregistryclient.h>
-
-_LIT(KWidgetAppName, "widgetlauncher.exe");
-
+                      
 const TUint32 KWidgetAppUidValue = 0x10282822;
 
-const TInt KCloseWidgetCmd(2);
-
 /**
  * class handling the list of running wrt widgets
  */
@@ -42,21 +38,28 @@
     /**
      * Initializes the list that stores widgets.
      * @return   -
-     */        
+     */
     void InitializeWidgetListL();
 
     /**
      * Returns a ref to the list of running widgets.
      */
     const RWidgetInfoArray& RunningWidgets() const { return iRunningWidgets; }
+    
+    /**
+     * Check if widget's uid is recognized as CWRT type.
+     */
+    TBool IsCWRTWidget( TUid aUid );
 
 private:
     /** Constructor */
     CTsFsWidgetList();
     void ResetArrayOfWidgetInfo( RWidgetInfoArray& aWidgetInfoArr );
-    
+
     static void CleanupConnect( TAny* aThis );
 
+    TBool IsValBetween( TInt aMinor, TInt aMajor, TInt aBetween );
+
 private:
     /** Contains list of widgets that are currently running */
     RWidgetInfoArray iRunningWidgets;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/taskswitcher/contextengine/tsfswserver/engine/src/tscpsnotifier.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -0,0 +1,348 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:  Internal class definition for WidgetUI application.
+*
+*/
+
+
+#include "tscpsnotifier.h"
+#include "tsfswengine.h"
+#include <LiwServiceHandler.h>
+#include <LiwVariant.h>
+#include <LiwGenericParam.h>
+#include <Liwcommon.h>
+#include <liwcommon.hrh>
+
+_LIT8( KCPService, "Service.ContentPublishing" );
+_LIT8( KCPInterface, "IDataSource" );
+
+_LIT8( KType, "type" );
+_LIT( KCpData, "cp_data" );
+
+_LIT8( KPublisherId, "publisher" );
+_LIT8( KContentType, "content_type" );
+_LIT8( KContentId, "content_id" );
+
+_LIT8( KGetList, "GetList");
+_LIT8( KDataMap, "data_map" );
+_LIT8( KWidgetId, "widget_id");
+_LIT8( KBitmapHandle, "bitmap_handle");
+
+_LIT( KWidgetUi, "widget_ui");
+_LIT( KScreenshot, "screenshot");
+
+_LIT8( KFilter, "filter" );
+_LIT8( KResults,      "results");
+_LIT8( KOperation, "operation" );
+_LIT8( KRequestNotification, "RequestNotification" );
+_LIT( KUpdate, "update" );
+_LIT( K16Add, "add" );
+_LIT( KAddUpdate, "add:update" );
+_LIT8( KChangeInfo, "change_info" );
+
+_LIT( KAll, "all");
+
+// ================= MEMBER FUNCTIONS =======================
+
+// --------------------------------------------------------------------------
+// CTSCpsNotifier::NewL
+// --------------------------------------------------------------------------
+//
+CTSCpsNotifier* CTSCpsNotifier::NewL(CTsFswEngine& aEngine )
+    {
+    CTSCpsNotifier* self = new (ELeave) CTSCpsNotifier(aEngine);
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop();
+    return self;
+    }
+
+// --------------------------------------------------------------------------
+// CTSCpsNotifier::~CTSCpsNotifier
+// --------------------------------------------------------------------------
+//
+CTSCpsNotifier::~CTSCpsNotifier()
+    {
+    TRAP_IGNORE(ExecuteRegistrationCommandL( KLiwOptCancel ));
+    
+    if( iCpsInterface )
+        {
+        iCpsInterface->Close();
+        iCpsInterface = NULL;
+        }
+    if( iServiceHandler )
+        {
+        iServiceHandler->Reset();
+        delete iServiceHandler;
+        iServiceHandler = NULL;
+        }
+    }
+
+// --------------------------------------------------------------------------
+// CTSCpsNotifier::CTSCpsNotifier
+// --------------------------------------------------------------------------
+//
+CTSCpsNotifier::CTSCpsNotifier(CTsFswEngine& aEngine):
+    iEngine(aEngine)
+    {
+    }
+
+// --------------------------------------------------------------------------
+// CTSCpsNotifier::ConstructL
+// --------------------------------------------------------------------------
+//
+void CTSCpsNotifier::ConstructL()
+    {
+    InitCpsInterfaceL();
+    ExecuteRegistrationCommandL( 0 );
+    }
+
+// --------------------------------------------------------------------------
+// CTSCpsNotifier::WidgetFilterLC
+// --------------------------------------------------------------------------
+//
+CLiwDefaultMap* CTSCpsNotifier::WidgetFilterLC()
+    {
+    //Create filter criteria for requested entries in form of LIW map:
+    CLiwDefaultMap* filter = CLiwDefaultMap::NewLC();
+    filter->InsertL( KPublisherId, TLiwVariant(  KWidgetUi ));
+    filter->InsertL( KContentType, TLiwVariant( KScreenshot ));
+    return filter;
+    }
+
+// --------------------------------------------------------------------------
+// CTSCpsNotifier::ExecuteRegistrationCommandL
+// --------------------------------------------------------------------------
+//
+void CTSCpsNotifier::ExecuteRegistrationCommandL( 
+    TUint aOption )
+    {
+    CLiwDefaultMap* filter = WidgetFilterLC();
+    filter->InsertL( KContentId, TLiwVariant( KAll ));
+    filter->InsertL( KOperation, TLiwVariant( KAddUpdate ));
+    
+    CLiwGenericParamList& inParamList = iServiceHandler->InParamListL();
+    CLiwGenericParamList& outParamList = iServiceHandler->OutParamListL();
+        
+    // Fill in input list for RequestNotification command
+    inParamList.AppendL( TLiwGenericParam( KType, TLiwVariant( KCpData )));
+    inParamList.AppendL( TLiwGenericParam( KFilter, TLiwVariant( filter )));
+        
+    iCpsInterface->ExecuteCmdL( 
+                KRequestNotification,
+                inParamList,
+                outParamList,
+                aOption,
+                this );
+    
+    outParamList.Reset();
+    inParamList.Reset(); 
+    CleanupStack::PopAndDestroy( filter );
+    }
+
+// --------------------------------------------------------------------------
+// CTSCpsNotifier::HandleNotifyL
+// --------------------------------------------------------------------------
+//
+TInt CTSCpsNotifier::HandleNotifyL(
+    TInt /*aCmdId*/,
+    TInt /*aEventId*/,
+    CLiwGenericParamList& aEventParamList,
+    const CLiwGenericParamList& /*aInParamList*/ )
+    {
+    TInt pos(0);
+    aEventParamList.FindFirst( pos, KChangeInfo );
+    if (pos != KErrNotFound)
+        {
+        // Get list of maps
+        TLiwVariant variant = ( aEventParamList )[pos].Value();
+        variant.PushL();
+        const CLiwList* changeMapsList = variant.AsList();
+
+        TPtrC operation;
+        // Iter through list content
+        for (TInt i = 0; i < changeMapsList->Count(); ++i)
+            {
+             if ( changeMapsList->AtL( i, variant )) 
+                 {
+                 const CLiwMap* changeMap  = variant.AsMap();
+                 // Check what triggered a notification
+                 if ( changeMap->FindL( KOperation, variant ))
+                     {
+                     operation.Set( variant.AsDes());
+                     }
+                 if (!operation.Compare(KUpdate) || !operation.Compare(K16Add))
+                     {
+                     HandleWidgetUpdateL( *changeMap );
+                     }
+                 }
+            }
+        CleanupStack::PopAndDestroy( &variant );
+        }
+    return KErrNone;
+    }
+
+// --------------------------------------------------------------------------
+// CTSCpsNotifier::InitCpsInterfaceL
+// --------------------------------------------------------------------------
+//
+void CTSCpsNotifier::InitCpsInterfaceL()
+    {
+    if( !iServiceHandler )
+        {
+        iServiceHandler = CLiwServiceHandler::NewL();
+        }
+    
+    CLiwGenericParamList& inParam = iServiceHandler->InParamListL();
+    CLiwGenericParamList& outParam = iServiceHandler->OutParamListL();
+    
+    CLiwCriteriaItem* crit = CLiwCriteriaItem::NewLC( KLiwCmdAsStr, KCPInterface,
+        KCPService  );
+    crit->SetServiceClass( TUid::Uid(KLiwClassBase) );
+    
+    RCriteriaArray a;
+    a.AppendL(crit);    
+    iServiceHandler->AttachL( a );
+	CleanupStack::Pop(crit);
+    iServiceHandler->ExecuteServiceCmdL( *crit, inParam, outParam ); 
+    delete crit;
+    a.Reset();
+        
+    // find service interface
+    TInt pos = 0;
+    MLiwInterface* msgInterface = NULL;
+    outParam.FindFirst( pos, KCPInterface );
+    if ( pos != KErrNotFound ) 
+        {
+        msgInterface = (outParam)[pos].Value().AsInterface(); 
+        }
+    
+    outParam.Reset();
+    inParam.Reset();    
+    iCpsInterface = msgInterface;
+    }
+
+// --------------------------------------------------------------------------
+// CTSCpsNotifier::HandleWidgetUpdateL
+// --------------------------------------------------------------------------
+//
+void CTSCpsNotifier::HandleWidgetUpdateL(const CLiwMap& aChangeMap)
+    {
+    //ectract content_id which is widget bundled name
+    TPtrC contentid;
+    TLiwVariant contentIdVar;
+    contentIdVar.PushL();
+    if (aChangeMap.FindL(KContentId, contentIdVar))
+        {
+        contentid.Set( contentIdVar.AsDes());
+        }
+    
+    TInt widgetId(0);
+    TInt bitmapHandle(0);
+    GetWidgetDataL(contentid, widgetId, bitmapHandle);
+    iEngine.HandleWidgetUpdateL(widgetId, bitmapHandle );
+    CleanupStack::PopAndDestroy( &contentIdVar );
+    }
+
+// --------------------------------------------------------------------------
+// CTSCpsNotifier::GetWidgetData
+// --------------------------------------------------------------------------
+//
+void CTSCpsNotifier::GetWidgetDataL(const TDesC& aContentId, TInt& aWidgetId,
+        TInt& aBitmapHandle)
+    {
+    CLiwGenericParamList* inParamList  = &iServiceHandler->InParamListL();
+    CLiwGenericParamList* outParamList = &iServiceHandler->OutParamListL();
+
+    TLiwGenericParam type( KType, TLiwVariant( KCpData ) );
+    inParamList->AppendL( type );
+    
+    //append filter to input param
+    CLiwDefaultMap* filter = WidgetFilterLC();
+    filter->InsertL(KContentId, TLiwVariant(aContentId));
+    TLiwGenericParam item( KFilter, filter);
+    inParamList->AppendL( item );
+     
+    // It is assumed that interface is already initiated
+    iCpsInterface->ExecuteCmdL( KGetList, *inParamList, *outParamList);
+
+    type.Reset();
+    item.Reset();
+    inParamList->Reset();
+    
+    //extracts data map
+    TInt pos = 0;
+    outParamList->FindFirst( pos, KResults );
+    if( pos != KErrNotFound )
+        // results present
+        {
+        //extract iterator on results list
+        TLiwVariant variant = (*outParamList)[pos].Value();
+        CLiwIterable* iterable = variant.AsIterable();
+        iterable->Reset();
+        
+        //get next result
+        if( iterable->NextL( variant ) )
+            {
+            //extract content map
+            CLiwDefaultMap *map = CLiwDefaultMap::NewLC();
+            variant.Get( *map );
+            if( map && map->FindL( KDataMap, variant) )
+                {
+                CLiwDefaultMap *dataMap = CLiwDefaultMap::NewLC();
+                variant.Get( *dataMap );
+                if( dataMap )
+                    {
+                    GetWidgetDataFromDataMapL(*dataMap, aWidgetId, aBitmapHandle);
+                    }
+                CleanupStack::PopAndDestroy( dataMap );
+                }
+            variant.Reset();
+            CleanupStack::PopAndDestroy( map );
+            }
+        iterable->Reset();
+        }
+    outParamList->Reset();
+    CleanupStack::PopAndDestroy( filter );
+    }
+
+// --------------------------------------------------------------------------
+// CTSCpsNotifier::GetWidgetDataFromDataMap
+// --------------------------------------------------------------------------
+//
+void CTSCpsNotifier::GetWidgetDataFromDataMapL(const CLiwMap& aDataMap, 
+        TInt& aWidgetId, TInt& aBitmapHandle)
+    {
+    TLiwVariant bitmapHandleVar;
+    bitmapHandleVar.PushL();
+    if( aDataMap.FindL( KBitmapHandle, bitmapHandleVar ))
+        {
+        aBitmapHandle = bitmapHandleVar.AsTInt32();
+        }
+    CleanupStack::PopAndDestroy(&bitmapHandleVar);
+
+    TLiwVariant widgetIdVar;
+    widgetIdVar.PushL();
+    if( aDataMap.FindL( KWidgetId, widgetIdVar ))
+        {
+        aWidgetId = widgetIdVar.AsTInt32();
+        }
+    CleanupStack::PopAndDestroy(&widgetIdVar);
+    }
+
+// END OF FILE
+
+
+    
+
--- a/taskswitcher/contextengine/tsfswserver/engine/src/tsfsalwaysshownapplist.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/taskswitcher/contextengine/tsfswserver/engine/src/tsfsalwaysshownapplist.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -25,8 +25,7 @@
    Also, there will be no Close option for such apps. */
 const TUint32 KTsFsUidArray[] =
     {
-    0x102750F0 // Idle App Uid
-    ,0x0EFC346A //Search App Uid
+    0x0EFC346A //Search App Uid
 /* never show menu app */    //,0x101F4CD2 // Menu App Uid
     };
 
--- a/taskswitcher/contextengine/tsfswserver/engine/src/tsfshiddenapplist.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/taskswitcher/contextengine/tsfswserver/engine/src/tsfshiddenapplist.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -37,7 +37,8 @@
  */
 const TUint32 KTsFsAlwaysHiddenUidArray[] =
     {
-    0x100056CF // screensaver
+    0x100056CF, // screensaver
+    0x102750F0 // Idle App Uid
     };
 
 // -----------------------------------------------------------------------------
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/taskswitcher/contextengine/tsfswserver/engine/src/tsfswdatalist.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -0,0 +1,753 @@
+/*
+* Copyright (c) 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:  File containing application list classes
+ *
+*/
+
+
+//INCLUDES:
+#include "tsfswdatalist.h"
+#include "tsfswengine.h"
+#include "tsfsalwaysshownapplist.h"
+#include "tsfshiddenapplist.h"
+#include "tsfswidgetlist.h"
+#include "tsfswiconcache.h"
+#include "enginelogging.h"
+#include <mmf/common/mmfcontrollerpluginresolver.h> // for CleanupResetAndDestroyPushL
+#include <featmgr.h>
+#include <apgwgnam.h>
+
+
+
+// ================= MEMBER FUNCTIONS =======================
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::NewL
+// --------------------------------------------------------------------------
+//
+CTsFswDataList* CTsFswDataList::NewL(CTsFswEngine& aEngine)
+    {
+    CTsFswDataList* self = new (ELeave) CTsFswDataList(aEngine);
+    CleanupStack::PushL (self );
+    self->ConstructL ( );
+    CleanupStack::Pop ( self );
+    return self;
+    }
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::CTsFswDataList
+// --------------------------------------------------------------------------
+//
+CTsFswDataList::CTsFswDataList(CTsFswEngine& aEngine) :
+    iEngine(aEngine)
+    {
+    }
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::~CTsFswDataList
+// --------------------------------------------------------------------------
+//
+CTsFswDataList::~CTsFswDataList( )
+    {
+    // delete the bitmaps as the hash map cannot do that
+    THashMapIter<TInt, CFbsBitmap*> iter( iScreenshots );
+    while ( const TInt* key = iter.NextKey() )
+        {
+        CFbsBitmap** value = iter.CurrentValue();
+        delete *value;
+        }
+    iScreenshots.Close();
+    delete iAppIcons;
+
+    iData.ResetAndDestroy();
+
+    delete iHiddenAppList;
+    delete iAlwaysShownAppList;
+    delete iWidgetList;
+    iAppArcSession.Close();
+    iWsSession.Close();
+    }
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::ConstructL
+// --------------------------------------------------------------------------
+//
+void CTsFswDataList::ConstructL( )
+    {
+    User::LeaveIfError( iWsSession.Connect() );
+    User::LeaveIfError( iAppArcSession.Connect() );
+    iHiddenAppList = CTsFsHiddenAppList::NewL( iEngine );
+    iAlwaysShownAppList = CTsFsAlwaysShownAppList::NewL();
+
+    iWidgetsSupported = FeatureManager::FeatureSupported( KFeatureIdWebWidgets );
+    if ( iWidgetsSupported )
+        {
+        iWidgetList = CTsFsWidgetList::NewL();
+        }
+
+    // create app icon retriever instance
+    iAppIcons = CTsFswIconCache::NewL();
+    }
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::FswDataL
+// --------------------------------------------------------------------------
+//
+const RTsFswArray& CTsFswDataList::FswDataL()
+    {
+    TSLOG_CONTEXT( FswDataL, TSLOG_LOCAL );
+    TSLOG1_IN( "dirty flag = %d", iTaskListDirty );
+
+    // check the dirty flag and refresh if needed
+    if ( iTaskListDirty )
+        {
+        CollectTasksL();
+        // dirty flag is cleared in the above call
+        }
+    
+    // Get app icon for entries without screenshot,
+    // do this only here as the app icon is not needed in case a screenshot
+    // is already available.
+    for ( TInt i = 0, ie = iData.Count(); i != ie; ++i )
+        {
+        if ( !iData[i]->ScreenshotHandle() )
+            {
+            CFbsBitmap* bmp;
+            CFbsBitmap* mask;
+            TUid appUid = iData[i]->AppUid();
+            // this will leave with -46 in case of widgets if we do not have AllFiles cap
+            TRAPD( err, iAppIcons->GetIconL( appUid, bmp, mask ) );
+            if ( err == KErrNone && bmp )
+                {
+                iData[i]->SetAppIconHandles( bmp->Handle(),
+                    mask ? mask->Handle() : 0 );
+                }
+            else
+                {
+                iAppIcons->DefaultIcon( bmp, mask );
+                iData[i]->SetAppIconHandles( bmp->Handle(),
+                    mask ? mask->Handle() : 0 );
+                }
+            }
+        }
+
+    TSLOG_OUT();
+    return iData;
+    }
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::CollectTasksL
+// --------------------------------------------------------------------------
+//
+TBool CTsFswDataList::CollectTasksL()
+    {
+    // clear dirty flag
+    iTaskListDirty = EFalse;
+    TBool changed = EFalse;
+    
+    RTsFswArray newAppsList;
+    RTsFswArray newWidgetsList;
+    
+    CleanupResetAndDestroyPushL(newAppsList);
+    CleanupResetAndDestroyPushL(newWidgetsList);
+    
+    CollectAppsL(newAppsList);
+    CollectWidgetsL(newWidgetsList);
+    
+    changed |= FitDataToListL(newAppsList, EFalse);
+    changed |= FitDataToListL(newWidgetsList, ETrue);
+    
+    CleanupStack::PopAndDestroy( &newWidgetsList );
+    CleanupStack::PopAndDestroy( &newAppsList );
+    
+    return changed;
+    }
+
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::AlwaysShown()
+// --------------------------------------------------------------------------
+//
+CTsFsAlwaysShownAppList* CTsFswDataList::AlwaysShownApps()
+    {
+    return iAlwaysShownAppList;
+    }
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::HiddenApps()
+// --------------------------------------------------------------------------
+//
+CTsFsHiddenAppList* CTsFswDataList::HiddenApps()
+    {
+    return iHiddenAppList;
+    }
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::Widgets()
+// --------------------------------------------------------------------------
+//
+CTsFsWidgetList* CTsFswDataList::Widgets()
+    {
+    return iWidgetList;
+    }
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::SetDirty()
+// --------------------------------------------------------------------------
+//
+void CTsFswDataList::SetDirty()
+    {
+    iTaskListDirty = ETrue;
+    }
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::SetAppDataRefreshNeeded()
+// --------------------------------------------------------------------------
+//
+void CTsFswDataList::SetAppDataRefreshNeeded()
+    {
+    iAppDataRefreshNeeded = ETrue;
+    }
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::ForwardScreenshot
+// --------------------------------------------------------------------------
+//
+TBool CTsFswDataList::StoreScreenshot(TInt aId, CFbsBitmap* aBmp)
+    {
+    TBool changed = EFalse;
+    CFbsBitmap** oldbmp = iScreenshots.Find( aId );
+    if ( oldbmp )
+        {
+        delete *oldbmp;
+        }
+    if ( iScreenshots.Insert( aId, aBmp ) != KErrNone )
+        {
+        delete aBmp;
+        iScreenshots.Remove( aId );
+        }
+    else
+        {
+        changed = AssignScreenshotHandle( aId, aBmp->Handle() );
+        }
+    return changed;
+    }
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::RemoveScreenshotByWgId
+// --------------------------------------------------------------------------
+//
+TBool CTsFswDataList::RemoveScreenshot(TInt aId)
+    {
+    TBool changed = EFalse;
+    CFbsBitmap** bmp = iScreenshots.Find( aId );
+    if ( bmp )
+        {
+        delete *bmp;
+        iScreenshots.Remove( aId );
+        changed = AssignScreenshotHandle( aId, 0 );
+        }
+    return changed;
+    }
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::FindScreenshotByWgId
+// --------------------------------------------------------------------------
+//
+CFbsBitmap** CTsFswDataList::FindScreenshot(TInt aId)
+    {
+    CFbsBitmap** result = 0;
+	result = iScreenshots.Find( aId );
+    return result; 
+    }
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::MoveEntryAtStart
+// --------------------------------------------------------------------------
+//
+void CTsFswDataList::MoveEntryAtStart(TInt aAppId, TBool aWidget)
+    {
+    TSLOG_CONTEXT( MoveEntryAtStart, TSLOG_LOCAL );
+    
+    for ( TInt i = 0; i < iData.Count(); ++i )
+        {
+        if( iData[i]->AppUid().iUid == aAppId && iData[i]->Widget() == aWidget)
+            {
+            CTsFswEntry* entry = iData[i];
+            iData.Remove(i);
+            iData.Insert(entry, 0);
+            break;
+            }
+        }
+    TSLOG_OUT();
+    }
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::
+// --------------------------------------------------------------------------
+//
+void CTsFswDataList::CollectAppsL(RTsFswArray& aAppsList)
+    {
+    TSLOG_CONTEXT( CollectTasksL, TSLOG_LOCAL );
+    TSLOG_IN();
+    // clear dirty flag
+    iTaskListDirty = EFalse;
+    
+    // update app data if needed
+    // (usually on startup and when new apps might have been installed)
+    if ( iAppDataRefreshNeeded )
+        {
+        TSLOG0( TSLOG_INFO, "refreshing app data" );
+        iAppArcSession.GetAllApps();
+        iAlwaysShownAppList->InitializeAlwaysShownListL();
+        iAppDataRefreshNeeded = EFalse;
+        }
+
+    // get all window groups
+    RArray<RWsSession::TWindowGroupChainInfo> allWgIds;
+    CleanupClosePushL( allWgIds );
+    User::LeaveIfError( iWsSession.WindowGroupList( 0, &allWgIds ) );
+
+    TInt count = allWgIds.Count();
+    for ( TInt i = 0; i < count; ++i )
+        {
+        // ignore uninteresting entries (e.g. embedded apps)
+        if ( allWgIds[i].iParentId > 0 )
+            {
+            continue;
+            }
+        
+        // get window group name
+        TInt wgId = allWgIds[i].iId;
+        CApaWindowGroupName* windowName =
+            CApaWindowGroupName::NewLC( iWsSession, wgId );
+        TUid appUid = windowName->AppUid();
+        
+        // ignore entries with null uid
+        if ( !appUid.iUid )
+            {
+            CleanupStack::PopAndDestroy( windowName );
+            continue;
+            }
+        
+        // will append the task to our own list only if it is not hidden
+        TBool onHiddenList = iHiddenAppList->IsHiddenL(
+            appUid, iWsSession, wgId );
+
+        // get screen number (-1=console, 0=main screen, 1=cover ui)
+        TInt appScreen = 0;
+        TInt scrNumErr = iAppArcSession.GetDefaultScreenNumber( appScreen, appUid );
+
+        // check if it is on always-shown list
+        TBool mustShow = iAlwaysShownAppList->IsAlwaysShownApp( appUid );
+
+#ifdef _DEBUG
+        const TDesC& captionDbg( windowName->Caption() );
+        TSLOG4( TSLOG_INFO, "[%d] wgid=%d appuid=%x (%S)", i, wgId,
+            appUid.iUid, &captionDbg );
+        TSLOG4( TSLOG_INFO, "hidden=%d onhiddenlist=%d mustshow=%d scrno=%d",
+            windowName->Hidden(), onHiddenList, mustShow, appScreen );
+#endif
+        if ( iWidgetsSupported && appUid.iUid == KWidgetAppUidValue )
+            {
+            //continue, leave widgetui, do nothing
+            }
+        // add item to task list if it is always-shown OR it is not hidden
+        // and it is not on cover ui
+        else if (mustShow || (!onHiddenList && !windowName->Hidden() && (appScreen
+                == 0 || appScreen == -1) && scrNumErr == KErrNone))
+            {
+            AddEntryL(wgId, appUid, windowName, aAppsList, EFalse);
+            }
+        CleanupStack::PopAndDestroy( windowName );
+        }
+    CleanupStack::PopAndDestroy( &allWgIds );
+    TSLOG_OUT();
+    }
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::AddEntryL
+// --------------------------------------------------------------------------
+//
+TBool CTsFswDataList::AddEntryL( TInt aWgId, const TUid& aAppUid,
+        CApaWindowGroupName* aWgName, RTsFswArray& aNewList,
+        TBool aIsWidget )
+    {
+    TBool changed = EFalse;
+    CTsFswEntry* entry = CTsFswEntry::NewLC();
+    entry->SetWgId( aWgId );
+    entry->SetAppUid( aAppUid );
+    entry->SetWidget( aIsWidget );
+
+    // check if present in old list and if yes then take some of the old data
+    TBool found = ConsiderOldDataL( *entry, aAppUid, changed, aNewList );
+
+    // if not present previously then find out app name
+    // and check if screenshot is already available
+    if ( !found )
+        {
+        // when adding a new entry to the list it is changed for sure
+        changed = ETrue;
+        HBufC* name = FindAppNameLC( aWgName, aAppUid, aWgId );
+        if ( name )
+            {
+            entry->SetAppNameL( *name );
+            }
+        CleanupStack::PopAndDestroy( name );
+
+        entry->SetAlwaysShown( iAlwaysShownAppList->IsAlwaysShownApp( aAppUid ) );
+        if ( aWgName )
+            {
+            entry->SetSystemApp( aWgName->IsSystem() );
+            }
+        }
+    TInt h = LookupScreenshotHandle( aWgId );
+    if ( h )
+        {
+        entry->SetScreenshotHandle( h );
+        }
+    // add to new list, ownership is transferred
+    aNewList.AppendL( entry );
+    CleanupStack::Pop( entry );
+    return changed;
+    }
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::ConsiderOldDataL
+// --------------------------------------------------------------------------
+//
+TBool CTsFswDataList::ConsiderOldDataL( CTsFswEntry& aEntry,
+        const TUid& aAppUid,
+        TBool& aChanged,
+        RTsFswArray& aNewList )
+    {
+    for ( TInt entryIdx = 0, oldCount = iData.Count();
+            entryIdx < oldCount; ++entryIdx )
+        {
+        // Enough to check appuid, no need to bother with wgid as the
+        // screenshot handle is up-to-date or will be updated later anyway.
+        if ( iData[entryIdx]->AppUid() == aAppUid )
+            {
+            iData[entryIdx]->SetWgId( aEntry.WgId());
+            // if positions do not match then the list is different than before
+            if ( entryIdx != aNewList.Count() )
+                {
+                aChanged = ETrue;
+                }
+            CTsFswEntry* oldEntry = iData[entryIdx];
+            aEntry.SetAppNameL( oldEntry->AppName() );
+            aEntry.SetScreenshotHandle( oldEntry->ScreenshotHandle() );
+            aEntry.SetAlwaysShown( oldEntry->AlwaysShown() );
+            aEntry.SetSystemApp( oldEntry->SystemApp() );
+            return ETrue;
+            }
+        }
+    return EFalse;
+    }
+// --------------------------------------------------------------------------
+// CTsFswDataList::CollectWidgetsL
+// --------------------------------------------------------------------------
+//
+void CTsFswDataList::CollectWidgetsL(RTsFswArray& aWidgetsList)
+    {
+    if( iWidgetsSupported )
+        {
+        iWidgetList->InitializeWidgetListL();
+        const RWidgetInfoArray& arr( iWidgetList->RunningWidgets() );
+        for ( TInt i = 0, ie = arr.Count(); i != ie; ++i )
+            {
+            //verify if widget is working in full screen mode
+            if( arr[i]->iFileSize )
+                {
+                // wgid will be a special negative value
+                // windowgroupname is not needed here so pass NULL
+                AddEntryL( -(i+1), arr[i]->iUid, 0, aWidgetsList, ETrue );
+                }
+            }
+        }
+	}
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::FindParentWgId
+// --------------------------------------------------------------------------
+//
+TInt CTsFswDataList::FindParentWgId( TInt aWgId )
+    {
+    TInt parent( KErrNotFound );
+    RArray<RWsSession::TWindowGroupChainInfo> allWgIds;
+    // Ask for window group list from RWsSession
+    TInt error = iWsSession.WindowGroupList( 0, &allWgIds );
+    if ( !error )
+        {
+        TInt count( allWgIds.Count() );
+        for ( TInt i( 0 ); i < count; i++ )
+            {
+            RWsSession::TWindowGroupChainInfo info = allWgIds[i];
+            if ( info.iId == aWgId && info.iParentId > 0)
+                {
+                parent = info.iParentId;
+                break;
+                }
+            }
+        }
+    allWgIds.Close();
+    return parent;
+    }
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::FindMostTopParentWgId
+// --------------------------------------------------------------------------
+//
+TInt CTsFswDataList::FindMostTopParentWgId( TInt aWgId )
+    {
+    TInt parent( KErrNotFound );
+    parent = FindParentWgId( aWgId );
+    if( parent != KErrNotFound)
+        {
+        TInt topParent = FindMostTopParentWgId(parent);
+        if( topParent != KErrNotFound )
+            {
+            parent = topParent;
+            }
+        }
+    return parent;
+    }
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::FindAppNameLC
+// --------------------------------------------------------------------------
+//
+HBufC* CTsFswDataList::FindAppNameLC( CApaWindowGroupName* aWindowName,
+                                  const TUid& aAppUid,
+                                  TInt aWgId )
+    {
+    //Retrieve the app name
+    TApaAppInfo info;
+    iAppArcSession.GetAppInfo( info, aAppUid );
+    TPtrC caption = info.iShortCaption;
+
+    HBufC* tempName = 0;
+    if ( !caption.Length() && aWindowName ) // if not set - use thread name instead
+        {
+        if ( aWindowName->Caption().Length() )
+            {
+            tempName = aWindowName->Caption().AllocL();
+            //put on cleanupstack after the if
+            }
+        else
+            {
+            TThreadId threadId;
+            TInt err = iWsSession.GetWindowGroupClientThreadId(
+                    aWgId, threadId );
+            if ( err == KErrNone )
+                {
+                RThread thread;
+                CleanupClosePushL( thread );
+                err = thread.Open ( threadId );
+                if ( err==KErrNone )
+                    {
+                    tempName = thread.Name().AllocL(); // codescanner::forgottoputptroncleanupstack
+                    // tempName put on cleanupstack after the if
+                    }
+                CleanupStack::PopAndDestroy( &thread );
+                }
+            }
+        }
+    else
+        {
+        tempName = caption.AllocL();
+        //put on cleanupstack after the if
+        }
+    CleanupStack::PushL( tempName );
+    return tempName;
+    }
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::AssignScreenshotHandle
+// Called when a screenshot arrives to check if there is a corresponding
+// application in the task list. Firstly try to match screenshot into parental
+// application then into standalone one.
+// --------------------------------------------------------------------------
+//
+TBool CTsFswDataList::AssignScreenshotHandle( TInt aWgIdForScreenshot,
+        TInt aBitmapHandle )
+    {
+//            aWgIdForScreenshot, aBitmapHandle);
+    TBool changed = EFalse;
+    TInt parentWgId = FindMostTopParentWgId( aWgIdForScreenshot );
+    // now parentWgId is a valid wgid or KErrNotFound (-1)
+    if (parentWgId != KErrNotFound)
+        {
+        AssignScreenshotHandle( parentWgId, aBitmapHandle, changed );
+        }
+    if (!changed)
+        {
+        AssignScreenshotHandle( aWgIdForScreenshot, aBitmapHandle, changed );
+        }
+    return changed;
+    }
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::AssignScreenshotHandle
+// Called when a screenshot arrives to check if there is a corresponding
+// application in the task list. It might be tried to be match into parental 
+// or standalone application.
+// --------------------------------------------------------------------------
+//
+void CTsFswDataList::AssignScreenshotHandle(TInt aWgIdForScreenshot,
+        TInt aBitmapHandle, TBool& aAsigned)
+    {
+    aAsigned = EFalse;
+    for (TInt i = 0, ie = iData.Count(); i != ie; ++i)
+        {
+        if (iData[i]->Widget())
+            {
+            TInt widgetId = iData[i]->AppUid().iUid;
+            if (widgetId == aWgIdForScreenshot)
+                {
+                iData[i]->SetScreenshotHandle(aBitmapHandle);
+                aAsigned = ETrue;
+                break;
+                }  
+			continue;          
+            }
+        TInt appWgId = iData[i]->WgId();
+        if (appWgId == aWgIdForScreenshot)
+            {
+            iData[i]->SetScreenshotHandle(aBitmapHandle);
+            aAsigned = ETrue;
+            break;
+            }
+        }
+    }
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::LookupScreenshotHandle
+// Called to check if there is a screenshot already stored for the given
+// app. (or a screenshot with a wgid for which aWgIdForApp is the parent)
+// --------------------------------------------------------------------------
+//
+TInt CTsFswDataList::LookupScreenshotHandle( TInt aWgIdForApp )
+    {
+    CFbsBitmap** bmp = NULL;
+
+    if ( aWgIdForApp > 0 )
+        {
+        // must check if there is a screenshot for which aWgIdForApp is the parent
+        THashMapIter<TInt, CFbsBitmap*> iter( iScreenshots );
+        while ( const TInt* wgid = iter.NextKey() )
+            {
+            if ( FindMostTopParentWgId( *wgid ) == aWgIdForApp )
+                {
+                THashMapIter<TInt, CFbsBitmap*> iter2( iScreenshots );
+                TBool hasChild = false;
+                while ( const TInt* wgid2 = iter2.NextKey() )
+                    {
+                    if ( FindParentWgId( *wgid2 ) == *wgid )
+                        {
+                        hasChild = true;
+                        break;
+                        }
+                    }
+                if ( !hasChild )
+                    {
+                    bmp = iter.CurrentValue();
+                    if ( bmp )
+                        {
+                        return (*bmp)->Handle();
+                        }
+                    }
+                }
+            }
+        if ( !bmp )
+            {
+            bmp = iScreenshots.Find( aWgIdForApp );
+            if ( bmp )
+                {
+                // there is a screenshot stored for this wgid
+                return (*bmp)->Handle();
+                }
+            }
+        }
+    else if ( aWgIdForApp < 0 )
+        {
+        // Must be a widget, wgid is useless in this case.
+        // Do not do anything for now => no screenshot for widgets.
+        }
+    return 0;
+    }
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::FitDataToListL
+// --------------------------------------------------------------------------
+//
+TBool CTsFswDataList::FitDataToListL(RTsFswArray& aListToFit,
+        TBool aConsiderWidgets)
+    {
+    TSLOG_CONTEXT( FitDataToListL, TSLOG_LOCAL );
+    TBool changed = EFalse;
+    TInt listCount = aListToFit.Count();
+    TInt dataCount = iData.Count();
+    
+    //remove items that dont't exists in newly collected list
+    //consider widget and non-widget type
+    for (TInt i = dataCount -1; i >= 0; --i)
+        {
+        if ( (iData[i]->Widget() == aConsiderWidgets) &&
+            !CheckIfExists(*iData[i], aListToFit) )
+            {
+            delete iData[i];
+            iData.Remove(i);
+            changed = ETrue;
+            }
+        }
+    
+    //add new item at start
+    for (TInt i = 0; i < aListToFit.Count(); ++i)
+        {
+        if (!CheckIfExists(*aListToFit[i], iData))
+            {
+            iData.Insert(aListToFit[i], 0);
+            aListToFit[i] = 0;
+            changed = ETrue;
+            }
+        }
+    
+    TSLOG1_OUT( "change flag = %d", changed );
+    return changed;
+    }
+
+// --------------------------------------------------------------------------
+// CTsFswDataList::CheckIfExists
+// --------------------------------------------------------------------------
+//
+TBool CTsFswDataList::CheckIfExists(const CTsFswEntry& aEntry,
+        const RTsFswArray& aList) const
+    {
+    TSLOG_CONTEXT( FitDataToListL, TSLOG_LOCAL );
+    TBool exists(EFalse);
+    TInt dataCount = aList.Count();
+    for (TInt entryIdx = 0; entryIdx < dataCount; ++entryIdx)
+        {
+        if (aList[entryIdx]->AppUid() == aEntry.AppUid())
+            {
+            exists = ETrue;
+            break;
+            }
+        }
+    TSLOG_OUT();
+    return exists;
+    }
+
+// end of file
--- a/taskswitcher/contextengine/tsfswserver/engine/src/tsfswengine.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/taskswitcher/contextengine/tsfswserver/engine/src/tsfswengine.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -17,10 +17,11 @@
 
 
 #include "tsfswengine.h"
+#include "tscpsnotifier.h"
+#include "tsfswdatalist.h"
 #include "tsfsalwaysshownapplist.h"
 #include "tsfshiddenapplist.h"
 #include "tsfswidgetlist.h"
-#include "tsfswiconcache.h"
 #include "tspreviewprovider.h"
 #include "tsfswclient.h"
 #include <apgtask.h>
@@ -34,7 +35,7 @@
 #include "enginelogging.h"
 
 // time to wait before refreshing content
-const TInt KContentRefreshDelay = 500000; // 0.5 sec
+const TInt KContentRefreshDelay = 50000; // 0.05 sec
 
 // for screenshots, they are scaled down to (screensize/this_factor).
 const TInt KScreenSizeFactor = 2;
@@ -42,6 +43,15 @@
 // format to get a lowercase hex string prefixed with 0x
 _LIT( KHexFmt, "0x%x" );
 
+const TUid KTsCameraUid = { 0x101F857a };
+
+//close command for widget
+const TInt KCloseWidgetCmd(9);
+//handle close cmd for s60 widgets
+_LIT(KWidgetAppName, "widgetlauncher.exe");
+//handle close cmd for CWRT widgets
+_LIT(KWidgetAppNameWgt,"wgtwidgetlauncher.exe");
+
 // --------------------------------------------------------------------------
 // CTsFswEngine::NewL
 // --------------------------------------------------------------------------
@@ -86,20 +96,11 @@
     User::LeaveIfError( iWsSession.Connect() );
     User::LeaveIfError( iAppArcSession.Connect() );
 
-    iHiddenAppList = CTsFsHiddenAppList::NewL( *this );
-    iAlwaysShownAppList = CTsFsAlwaysShownAppList::NewL();
-
+    iDataList = CTsFswDataList::NewL(*this);
     iWidgetsSupported = FeatureManager::FeatureSupported( KFeatureIdWebWidgets );
-    if ( iWidgetsSupported )
-        {
-        iWidgetList = CTsFsWidgetList::NewL();
-        }
-
-    // create app icon retriever instance
-    iAppIcons = CTsFswIconCache::NewL();
 
     // get an initial list of tasks
-    iAppDataRefreshNeeded = ETrue;
+    iDataList->SetAppDataRefreshNeeded();
     CollectTasksL();
 
     // listen for app screenshots
@@ -116,6 +117,7 @@
         iSwiProp.Subscribe( iStatus );
         SetActive();
         }
+    iCpsWidgetPublisher = CTSCpsNotifier::NewL(*this);
     }
 
 // --------------------------------------------------------------------------
@@ -130,22 +132,8 @@
     delete iUpdateStarter;
     delete iPreviewProvider;
 
-    // delete the bitmaps as the hash map cannot do that
-    THashMapIter<TInt, CFbsBitmap*> iter( iScreenshots );
-    while ( const TInt* key = iter.NextKey() )
-        {
-        CFbsBitmap** value = iter.CurrentValue();
-        delete *value;
-        }
-    iScreenshots.Close();
-    delete iAppIcons;
-
-    iData.ResetAndDestroy();
     iWgIds.Close();
 
-    delete iHiddenAppList;
-    delete iAlwaysShownAppList;
-    delete iWidgetList;
     iAppArcSession.Close();
     iWsSession.Close();
 
@@ -155,7 +143,8 @@
         delete iRotaTasks[i];
         }
     iRotaTasks.Close();
-//    delete iContextUtility;
+    delete iDataList;
+    delete iCpsWidgetPublisher;
     }
 
 // --------------------------------------------------------------------------
@@ -165,43 +154,8 @@
 EXPORT_C const RTsFswArray& CTsFswEngine::FswDataL()
     {
     TSLOG_CONTEXT( FswDataL, TSLOG_LOCAL );
-    TSLOG1_IN( "dirty flag = %d", iTaskListDirty );
-
-    // check the dirty flag and refresh if needed
-    if ( iTaskListDirty )
-        {
-        CollectTasksL();
-        // dirty flag is cleared in the above call
-        }
-
-    // Get app icon for entries without screenshot,
-    // do this only here as the app icon is not needed in case a screenshot
-    // is already available.
-    for ( TInt i = 0, ie = iData.Count(); i != ie; ++i )
-        {
-        if ( !iData[i]->ScreenshotHandle() )
-            {
-            CFbsBitmap* bmp;
-            CFbsBitmap* mask;
-            TUid appUid = iData[i]->AppUid();
-            // this will leave with -46 in case of widgets if we do not have AllFiles cap
-            TRAPD( err, iAppIcons->GetIconL( appUid, bmp, mask ) );
-            if ( err == KErrNone && bmp )
-                {
-                iData[i]->SetAppIconHandles( bmp->Handle(),
-                    mask ? mask->Handle() : 0 );
-                }
-            else
-                {
-                iAppIcons->DefaultIcon( bmp, mask );
-                iData[i]->SetAppIconHandles( bmp->Handle(),
-                    mask ? mask->Handle() : 0 );
-                }
-            }
-        }
-
     TSLOG_OUT();
-    return iData;
+    return iDataList->FswDataL();
     }
 
 // --------------------------------------------------------------------------
@@ -218,7 +172,7 @@
         // convert aWgId to an index in the list of running widgets and close widget
         CloseWidgetL( -aWgId -1 );
         }
-    else if( !iAlwaysShownAppList->IsAlwaysShownApp( AppUidForWgIdL( aWgId ) ) )
+    else if( !iDataList->AlwaysShownApps()->IsAlwaysShownApp( AppUidForWgIdL( aWgId ) ) )
         {
         // send window group event to kill the app
         TWsEvent event;
@@ -242,7 +196,7 @@
     if ( iWidgetsSupported && aWgId < 0 )
         {
         // for widgets clients see a wgid that is -1*(index+1)
-        const RWidgetInfoArray& arr( iWidgetList->RunningWidgets() );
+        const RWidgetInfoArray& arr( iDataList->Widgets()->RunningWidgets() );
         // convert aWgId to an index in the list of running widgets
         TInt idx = -aWgId - 1;
         // if index is valid then handle the widget specially
@@ -267,17 +221,14 @@
 //
 void CTsFswEngine::SwitchToWidgetL( TInt aWidgetIndex )
     {
-    const RWidgetInfoArray& arr( iWidgetList->RunningWidgets() );
-    RApaLsSession ls;
-    User::LeaveIfError( ls.Connect() );
-    CleanupClosePushL( ls );
+    const RWidgetInfoArray& arr( iDataList->Widgets()->RunningWidgets() );
     CApaCommandLine* cmdLine = CApaCommandLine::NewLC();
     cmdLine->SetCommandL( EApaCommandRun );
     TApaAppInfo info;
     iAppArcSession.GetAppInfo( info, arr[aWidgetIndex]->iUid ); // codescanner::accessArrayElementWithoutCheck2 (aWidgetIndex checked in SwitchToAppL())
     cmdLine->SetExecutableNameL( info.iFullName );
-    ls.StartApp( *cmdLine );
-    CleanupStack::PopAndDestroy( 2, &ls );
+    iAppArcSession.StartApp( *cmdLine );
+    CleanupStack::PopAndDestroy(cmdLine);
     }
 
 // --------------------------------------------------------------------------
@@ -290,25 +241,14 @@
     TSLOG_CONTEXT( UpdateTaskList, TSLOG_LOCAL );
     TSLOG_IN();
 
-    // If no clients are subscribed for fsw content change notifications
-    // then there is no need to waste time with rebuilding the task list,
-    // just set the dirty flag.
-    TInt listenerCount = iObserver.FswDataListenerCount();
-    TSLOG1( TSLOG_INFO, "listener count = %d", listenerCount );
-    if ( listenerCount > 0 )
+    // There can be many calls in a row, use a timer to prevent degrading
+    // device performance.
+    if ( !iUpdateStarter->IsActive() )
         {
-        // There can be many calls in a row, use a timer to prevent degrading
-        // device performance.
-        if ( !iUpdateStarter->IsActive() )
-            {
-            iUpdateStarter->Start( KContentRefreshDelay, 0,
+        iUpdateStarter->Start( KContentRefreshDelay, 0,
                 TCallBack( UpdateStarterCallback, this ) );
-            }
         }
-    else
-        {
-        iTaskListDirty = ETrue;
-        }
+    iDataList->SetDirty();
 
     // screenshot taking support - call Register and Unregister when needed
     UpdatePreviewContent();
@@ -349,7 +289,7 @@
         CApaWindowGroupName* wgn = CApaWindowGroupName::NewLC(
             iWsSession, allWgIds[i].iId );
         TUid newUid = wgn->AppUid();
-        TBool hidden = wgn->Hidden() || iHiddenAppList->IsHiddenL(
+        TBool hidden = wgn->Hidden() || iDataList->HiddenApps()->IsHiddenL(
             newUid, iWsSession, allWgIds[i].iId );
         CleanupStack::PopAndDestroy( wgn );
 
@@ -410,222 +350,12 @@
 TBool CTsFswEngine::CollectTasksL()
     {
     TSLOG_CONTEXT( CollectTasksL, TSLOG_LOCAL );
-    TSLOG_IN();
-
-    // clear dirty flag
-    iTaskListDirty = EFalse;
-
-    TBool changed = EFalse;
-    RTsFswArray newList;
-    CleanupResetAndDestroyPushL( newList );
-
-    // update app data if needed
-    // (usually on startup and when new apps might have been installed)
-    if ( iAppDataRefreshNeeded )
-        {
-        TSLOG0( TSLOG_INFO, "refreshing app data" );
-        iAppArcSession.GetAllApps();
-        iAlwaysShownAppList->InitializeAlwaysShownListL();
-        iAppDataRefreshNeeded = EFalse;
-        }
-
-    // get all window groups
-    RArray<RWsSession::TWindowGroupChainInfo> allWgIds;
-    CleanupClosePushL( allWgIds );
-    User::LeaveIfError( iWsSession.WindowGroupList( 0, &allWgIds ) );
-    TInt count = allWgIds.Count();
-
-    for ( TInt i = 0; i < count; ++i )
-        {
-        // ignore uninteresting entries (e.g. embedded apps)
-        if ( allWgIds[i].iParentId > 0 )
-            {
-            continue;
-            }
-        
-        // get window group name
-        TInt wgId = allWgIds[i].iId;
-        CApaWindowGroupName* windowName =
-            CApaWindowGroupName::NewLC( iWsSession, wgId );
-        TUid appUid = windowName->AppUid();
-        
-        // ignore entries with null uid
-        if ( !appUid.iUid )
-            {
-            CleanupStack::PopAndDestroy( windowName );
-            continue;
-            }
-        
-        // will append the task to our own list only if it is not hidden
-        TBool onHiddenList = iHiddenAppList->IsHiddenL(
-            appUid, iWsSession, wgId );
-
-        // get screen number (-1=console, 0=main screen, 1=cover ui)
-        TInt appScreen = 0;
-        TInt scrNumErr = iAppArcSession.GetDefaultScreenNumber( appScreen, appUid );
-
-        // check if it is on always-shown list
-        TBool mustShow = iAlwaysShownAppList->IsAlwaysShownApp( appUid );
-
-#ifdef _DEBUG
-        const TDesC& captionDbg( windowName->Caption() );
-        TSLOG4( TSLOG_INFO, "[%d] wgid=%d appuid=%x (%S)", i, wgId,
-            appUid.iUid, &captionDbg );
-        TSLOG4( TSLOG_INFO, "hidden=%d onhiddenlist=%d mustshow=%d scrno=%d",
-            windowName->Hidden(), onHiddenList, mustShow, appScreen );
-#endif
-
-        // if this is the widget app then save wgid for later use
-        // and ignore it, but include running widgets instead
-        if ( iWidgetsSupported && appUid.iUid == KWidgetAppUidValue )
-            {
-            changed = ETrue;
-            }
-        // add item to task list if it is always-shown OR it is not hidden
-        // and it is not on cover ui
-        else if ( mustShow
-                || ( !onHiddenList
-                    && !windowName->Hidden()
-                    && ( appScreen == 0 || appScreen == -1 )
-                    && scrNumErr == KErrNone ) )
-            {
-            if ( AddEntryL( wgId, appUid, windowName, newList, EFalse ) )
-                {
-                changed = ETrue;
-                }
-            }
-        CleanupStack::PopAndDestroy( windowName );
-        }
-    CleanupStack::PopAndDestroy( &allWgIds );
-    CheckWidgetsL(newList);
-    
-    // if counts for old and new lists do not match then there is a change for sure,
-    // probably an app has been closed
-    if ( iData.Count() != newList.Count() )
-        {
-        changed = ETrue;
-        }
-
-    // move pointers from the temporary list into the real one
-    iData.ResetAndDestroy();
-    TInt newListCount = newList.Count();
-    TSLOG1( TSLOG_INFO, "new list count = %d", newListCount );
-    for ( TInt i = 0; i < newListCount; ++i )
-        {
-        TSLOG3( TSLOG_INFO, "[%d] %S wgid=%d",
-            i, &newList[i]->AppName(), newList[i]->WgId() );
-        iData.AppendL( newList[i] );
-        newList[i] = 0;
-        }
-    CleanupStack::PopAndDestroy( &newList );
-    
+    TBool changed = iDataList->CollectTasksL();
     TSLOG1_OUT( "change flag = %d", changed );
     return changed;
     }
 
-// --------------------------------------------------------------------------
-// CTsFswEngine::AddEntryL
-// --------------------------------------------------------------------------
-//
-TBool CTsFswEngine::AddEntryL( TInt aWgId, const TUid& aAppUid,
-        CApaWindowGroupName* aWgName, RTsFswArray& aNewList,
-        TBool aIsWidget )
-    {
-    TBool changed = EFalse;
-    CTsFswEntry* entry = CTsFswEntry::NewLC();
-    entry->SetWgId( aWgId );
-    entry->SetAppUid( aAppUid );
-    entry->SetWidget( aIsWidget );
-
-    // check if present in old list and if yes then take some of the old data
-    TBool found = CheckIfExistsL( *entry, aAppUid, changed, aNewList );
-
-    // if not present previously then find out app name
-    // and check if screenshot is already available
-    if ( !found )
-        {
-        // when adding a new entry to the list it is changed for sure
-        changed = ETrue;
-        HBufC* name = FindAppNameLC( aWgName, aAppUid, aWgId );
-        if ( name )
-            {
-            entry->SetAppNameL( *name );
-            }
-        CleanupStack::PopAndDestroy( name );
-        TInt h = LookupScreenshotHandle( aWgId );
-        if ( h )
-            {
-            entry->SetScreenshotHandle( h );
-            }
-        entry->SetAlwaysShown( iAlwaysShownAppList->IsAlwaysShownApp( aAppUid ) );
-        if ( aWgName )
-            {
-            entry->SetSystemApp( aWgName->IsSystem() );
-            }
-        }
-
-    // add to new list, ownership is transferred
-    aNewList.AppendL( entry );
-    CleanupStack::Pop( entry );
-    return changed;
-    }
-
-// --------------------------------------------------------------------------
-// CTsFswEngine::CheckIfExistsL
-// --------------------------------------------------------------------------
-//
-TBool CTsFswEngine::CheckIfExistsL( CTsFswEntry& aEntry,
-        const TUid& aAppUid,
-        TBool& aChanged,
-        RTsFswArray& aNewList )
-    {
-    for ( TInt entryIdx = 0, oldCount = iData.Count();
-            entryIdx < oldCount; ++entryIdx )
-        {
-        // Enough to check appuid, no need to bother with wgid as the
-        // screenshot handle is up-to-date or will be updated later anyway.
-        if ( iData[entryIdx]->AppUid() == aAppUid )
-            {
-            // if positions do not match then the list is different than before
-            if ( entryIdx != aNewList.Count() )
-                {
-                aChanged = ETrue;
-                }
-            CTsFswEntry* oldEntry = iData[entryIdx];
-            aEntry.SetAppNameL( oldEntry->AppName() );
-            aEntry.SetScreenshotHandle( oldEntry->ScreenshotHandle() );
-            aEntry.SetAlwaysShown( oldEntry->AlwaysShown() );
-            aEntry.SetSystemApp( oldEntry->SystemApp() );
-            return ETrue;
-            }
-        }
-    return EFalse;
-    }
     
-// --------------------------------------------------------------------------
-// CTsFswEngine::CheckWidgetsL
-// --------------------------------------------------------------------------
-//
-void CTsFswEngine::CheckWidgetsL( RTsFswArray& aNewList )
-    {
-    if( iWidgetsSupported )
-        {
-        iWidgetList->InitializeWidgetListL();
-        const RWidgetInfoArray& arr( iWidgetList->RunningWidgets() );
-        for ( TInt i = 0, ie = arr.Count(); i != ie; ++i )
-            {
-            //verify if widget is working in full screen mode
-            if( arr[i]->iFileSize )
-                {
-                // wgid will be a special negative value
-                // windowgroupname is not needed here so pass NULL
-                AddEntryL( -(i+1), arr[i]->iUid, 0, aNewList, ETrue );
-                }
-            }
-        }
-    }
-
-// --------------------------------------------------------------------------
 // CTsFswEngine::HiddenAppListUpdated
 // Callback from the hidden app list watcher
 // --------------------------------------------------------------------------
@@ -646,52 +376,7 @@
     TUid appUid = windowName->AppUid();
     CleanupStack::PopAndDestroy( windowName );
     return appUid;
-    }
 
-// --------------------------------------------------------------------------
-// CTsFswEngine::FindParentWgId
-// --------------------------------------------------------------------------
-//
-TInt CTsFswEngine::FindParentWgId( TInt aWgId )
-    {
-    TInt parent( KErrNotFound );
-    RArray<RWsSession::TWindowGroupChainInfo> allWgIds;
-    // Ask for window group list from RWsSession
-    TInt error = iWsSession.WindowGroupList( 0, &allWgIds );
-    if ( !error )
-        {
-        TInt count( allWgIds.Count() );
-        for ( TInt i( 0 ); i < count; i++ )
-            {
-            RWsSession::TWindowGroupChainInfo info = allWgIds[i];
-            if ( info.iId == aWgId && info.iParentId > 0)
-                {
-                parent = info.iParentId;
-                break;
-                }
-            }
-        }
-    allWgIds.Close();
-    return parent;
-    }
-
-// --------------------------------------------------------------------------
-// CTsFswEngine::FindMostTopParentWgId
-// --------------------------------------------------------------------------
-//
-TInt CTsFswEngine::FindMostTopParentWgId( TInt aWgId )
-    {
-    TInt parent( KErrNotFound );
-    parent = FindParentWgId( aWgId );
-    if( parent != KErrNotFound)
-        {
-        TInt topParent = FindMostTopParentWgId(parent);
-        if( topParent != KErrNotFound )
-            {
-            parent = topParent;
-            }
-        }
-    return parent;
     }
 
 // --------------------------------------------------------------------------
@@ -749,6 +434,8 @@
 //
 CFbsBitmap* CTsFswEngine::CopyBitmapL( TInt aFbsHandle, TBool aKeepAspectRatio )
     {
+    TSLOG_CONTEXT( CopyBitmapL, TSLOG_LOCAL );
+    
     CFbsBitmap* ret = new (ELeave) CFbsBitmap;
     CleanupStack::PushL( ret );
     CFbsBitmap* bmp = new (ELeave) CFbsBitmap;
@@ -788,6 +475,7 @@
     CleanupStack::PopAndDestroy( bmp );
     CleanupStack::Pop( ret );
 
+    TSLOG_OUT();
     return ret;
     }
 
@@ -856,25 +544,24 @@
     TSLOG_CONTEXT( HandleFswPpApplicationChange, TSLOG_LOCAL );
     TSLOG2_IN( "aWgId = %d aFbsHandle = %d", aWgId, aFbsHandle );
 
+    TUid appUid;
+    TRAPD( err, appUid = AppUidForWgIdL( aWgId ) );
+    if ( err || appUid == KTsCameraUid )
+        {
+        // Dont't assign screenshot to camera app
+        TSLOG0( TSLOG_LOCAL, "Screenshot for camera - ignore" );
+        iPreviewProvider->AckPreview(aFbsHandle);
+        TSLOG_OUT();
+        return;
+        }
+    
     CFbsBitmap* bmp = 0;
-    TRAPD( err, bmp = CopyBitmapL( aFbsHandle, EFalse ) );
+    TRAP( err, bmp = CopyBitmapL( aFbsHandle, EFalse ) );
     iPreviewProvider->AckPreview(aFbsHandle);
     if ( err == KErrNone )
         {
-        CFbsBitmap** oldbmp = iScreenshots.Find( aWgId );
-        if ( oldbmp )
-            {
-            delete *oldbmp;
-            }
-        if ( iScreenshots.Insert( aWgId, bmp ) != KErrNone )
-            {
-            delete bmp;
-            iScreenshots.Remove( aWgId );
-            }
-        else
-            {
-            AssignScreenshotHandle( aWgId, bmp->Handle() );
-            }
+        StoreScreenshot(aWgId, bmp);
+		iDataList->MoveEntryAtStart(appUid.iUid, EFalse);
         }
 
     TSLOG_OUT();
@@ -890,14 +577,8 @@
     TSLOG_CONTEXT( HandleFswPpApplicationUnregistered, TSLOG_LOCAL );
     TSLOG1_IN( "aWgId = %d", aWgId );
 
-    CFbsBitmap** bmp = iScreenshots.Find( aWgId );
-    if ( bmp )
-        {
-        delete *bmp;
-        iScreenshots.Remove( aWgId );
-        AssignScreenshotHandle( aWgId, 0 );
-        }
-
+    RemoveScreenshot(aWgId);
+    
     TSLOG_OUT();
     }
 
@@ -911,15 +592,14 @@
     TSLOG_CONTEXT( HandleFswPpApplicationBitmapRotation, TSLOG_LOCAL );
     TSLOG1_IN( "aWgId = %d", aWgId );
     
-    CFbsBitmap** bmp = iScreenshots.Find( aWgId );
+    CFbsBitmap** bmp = iDataList->FindScreenshot(aWgId);
+            
     if ( bmp )
         {
         // Rotate bitmap
         TRAP_IGNORE( RotateL( **bmp, aWgId, aClockwise ) );
         // Bitmap in a array is invalid, remove it
-        delete *bmp;
-        iScreenshots.Remove( aWgId );
-        AssignScreenshotHandle( aWgId, 0 );
+        RemoveScreenshot(aWgId);
         }
     
     TSLOG_OUT();
@@ -968,16 +648,7 @@
     
     if ( aError == KErrNone )
         {
-        if ( iScreenshots.Insert( aWgId, aBitmap ) != KErrNone )
-            {
-            delete aBitmap;
-            iScreenshots.Remove( aWgId );
-            AssignScreenshotHandle( aWgId, 0 );
-            }
-        else
-            {
-            AssignScreenshotHandle( aWgId, aBitmap->Handle() );
-            }
+        StoreScreenshot(aWgId, aBitmap);
         }
     else
         {
@@ -988,97 +659,6 @@
     TSLOG_OUT();
     }
 
-
-// --------------------------------------------------------------------------
-// CTsFswEngine::AssignScreenshotHandle
-// Called when a screenshot arrives to check if there is a corresponding
-// application in the task list. Firstly try to match screenshot into parental
-// application then into standalone one.
-// --------------------------------------------------------------------------
-//
-void CTsFswEngine::AssignScreenshotHandle( TInt aWgIdForScreenshot,
-        TInt aBitmapHandle )
-    {
-    TBool changed = EFalse;
-    TInt parentWgId = FindMostTopParentWgId( aWgIdForScreenshot );
-    // now parentWgId is a valid wgid or KErrNotFound (-1)
-    if (parentWgId != KErrNotFound)
-		{
-		AssignScreenshotHandle( parentWgId, aBitmapHandle, changed );
-		}
-    if (!changed)
-		{
-		AssignScreenshotHandle( aWgIdForScreenshot, aBitmapHandle, changed );
-		}
-    if ( changed )
-        {
-        iObserver.FswDataChanged();
-        }
-    }
-
-// --------------------------------------------------------------------------
-// CTsFswEngine::AssignScreenshotHandle
-// Called when a screenshot arrives to check if there is a corresponding
-// application in the task list. It might be tried to be match into parental 
-// or standalone application.
-// --------------------------------------------------------------------------
-//
-void CTsFswEngine::AssignScreenshotHandle(TInt aWgIdForScreenshot,
-		TInt aBitmapHandle, TBool& aAsigned)
-	{
-	aAsigned = EFalse;
-	for (TInt i = 0, ie = iData.Count(); i != ie; ++i)
-		{
-		if (iData[i]->Widget())
-			{
-			// Do not do anything for now => no screenshot for widgets.
-			continue;
-			}
-		TInt appWgId = iData[i]->WgId();
-		if (appWgId == aWgIdForScreenshot)
-			{
-			iData[i]->SetScreenshotHandle(aBitmapHandle);
-			aAsigned = ETrue;
-			break;
-			}
-		}
-	}
-
-// --------------------------------------------------------------------------
-// CTsFswEngine::LookupScreenshotHandle
-// Called to check if there is a screenshot already stored for the given
-// app. (or a screenshot with a wgid for which aWgIdForApp is the parent)
-// --------------------------------------------------------------------------
-//
-TInt CTsFswEngine::LookupScreenshotHandle( TInt aWgIdForApp )
-    {
-    CFbsBitmap** bmp = iScreenshots.Find( aWgIdForApp );
-    if ( bmp )
-        {
-        // there is a screenshot stored for this wgid
-        return (*bmp)->Handle();
-        }
-    else if ( aWgIdForApp > 0 )
-        {
-        // must check if there is a screenshot for which aWgIdForApp is the parent
-        THashMapIter<TInt, CFbsBitmap*> iter( iScreenshots );
-        while ( const TInt* wgid = iter.NextKey() )
-            {
-            if ( FindParentWgId( *wgid ) == aWgIdForApp )
-                {
-                CFbsBitmap** bmp = iter.CurrentValue();
-                return (*bmp)->Handle();
-                }
-            }
-        }
-    else if ( aWgIdForApp < 0 )
-        {
-        // Must be a widget, wgid is useless in this case.
-        // Do not do anything for now => no screenshot for widgets.
-        }
-    return 0;
-    }
-
 // --------------------------------------------------------------------------
 // CTsFswEngine::RunL
 // --------------------------------------------------------------------------
@@ -1095,7 +675,7 @@
             // refresh the app list during the next task list update.
             if ( operationStatus == Swi::ESwisStatusSuccess )
                 {
-                iAppDataRefreshNeeded = ETrue;
+                iDataList->SetAppDataRefreshNeeded();
                 }
             }
         iSwiProp.Subscribe( iStatus );
@@ -1160,15 +740,12 @@
     {
     TSLOG_CONTEXT( CloseWidgetL, TSLOG_LOCAL );
     TSLOG1_IN( "aOffset = %d", aOffset );
-    if( iWidgetList->RunningWidgets().Count() <= aOffset )
+    if( iDataList->Widgets()->RunningWidgets().Count() <= aOffset )
         {
         User::Leave(KErrArgument);
         }
-    const CWidgetInfo* widgetInfo(iWidgetList->RunningWidgets()[aOffset]);
+    const CWidgetInfo* widgetInfo(iDataList->Widgets()->RunningWidgets()[aOffset]);
     const TPtrC bundleName(*widgetInfo->iBundleName);
-    RApaLsSession ls;
-    User::LeaveIfError( ls.Connect() );
-    CleanupClosePushL( ls );
     CApaCommandLine* const cmdLine = CApaCommandLine::NewLC();
     
     HBufC8* const
@@ -1185,14 +762,78 @@
     cmdLine->SetCommandL( EApaCommandBackgroundAndWithoutViews );
     cmdLine->SetOpaqueDataL( *opaque );
     CleanupStack::PopAndDestroy( opaque );
-    cmdLine->SetExecutableNameL( KWidgetAppName );
-    ls.StartApp( *cmdLine );
+    
+    if (iDataList->Widgets()->IsCWRTWidget(widgetInfo->iUid))
+    	{
+        cmdLine->SetExecutableNameL( KWidgetAppNameWgt);
+    	}
+    else
+    	{
+        cmdLine->SetExecutableNameL( KWidgetAppName );
+    	}
+    
+    iAppArcSession.StartApp( *cmdLine );
     CleanupStack::PopAndDestroy( cmdLine );
-    CleanupStack::PopAndDestroy( &ls );
     TSLOG_OUT();
     }
 
+// --------------------------------------------------------------------------
+// CTsFswEngine::StoreScreenshot
+// --------------------------------------------------------------------------
+//
+TBool CTsFswEngine::StoreScreenshot(TInt aWgId, CFbsBitmap* aBmp)
+    {
+    TSLOG_CONTEXT( StoreScreenshot, TSLOG_LOCAL );
+    //iDataList would take ownership
+    TBool change = EFalse;
+    change = iDataList->StoreScreenshot(aWgId, aBmp);
+    if(change)
+        {
+        iObserver.FswDataChanged();
+        }
+    TSLOG1_OUT( "Screenshot for  = %d", aWgId );
+    return change;
+    }
 
+// --------------------------------------------------------------------------
+// CTsFswEngine::RemoveScreenshot()
+// --------------------------------------------------------------------------
+//
+void CTsFswEngine::RemoveScreenshot(TInt aWgId)
+    {
+    TBool change = EFalse;
+    change = iDataList->RemoveScreenshot(aWgId);
+    if( change )
+        {
+        iObserver.FswDataChanged();
+        }
+    }
+
+// --------------------------------------------------------------------------
+// CTsFswEngine::HandleWidgetUpdateL()
+// --------------------------------------------------------------------------
+//
+void CTsFswEngine::HandleWidgetUpdateL(TInt aWidgetId, TInt aBitmapHandle)
+    {
+	TSLOG_CONTEXT( HandleWidgetUpdateL, TSLOG_LOCAL );
+    CFbsBitmap* bmp = 0;
+    TBool contentChanged(EFalse); 
+    if( aBitmapHandle )
+    	{
+		TRAPD( err, bmp = CopyBitmapL( aBitmapHandle, EFalse ) );
+		if ( err == KErrNone )
+			{
+            contentChanged = StoreScreenshot(aWidgetId, bmp);
+			}
+		}
+	if(!contentChanged)
+		{
+		iObserver.FswDataChanged();
+		}
+ 
+    iDataList->MoveEntryAtStart(aWidgetId, ETrue);
+    TSLOG_OUT();
+    }
 
 // --------------------------------------------------------------------------
 // CTsRotationListener::CTsRotationListener
--- a/taskswitcher/contextengine/tsfswserver/engine/src/tsfswidgetlist.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/taskswitcher/contextengine/tsfswserver/engine/src/tsfswidgetlist.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -18,6 +18,7 @@
 
 #include "tsfswidgetlist.h"
 #include <widgetregistrydata.h>
+#include <widgetregistryconstants.h>
 
 // --------------------------------------------------------------------------
 // CTsFsWidgetList::NewL
@@ -91,5 +92,35 @@
         }
     }
 
+// --------------------------------------------------------------------------
+// CTsFsWidgetList::IsCWRTWidget
+// --------------------------------------------------------------------------
+//
+TBool CTsFsWidgetList::IsCWRTWidget( TUid aUid )
+    {
+	TBool ret(EFalse);
+	if(IsValBetween(KWidgetUidCWRTInternalMemoryStart,
+			KWidgetUidCWRTInternalMemoryStop, aUid.iUid) ||
+		IsValBetween(KWidgetUidCWRTExternalMemoryStart,
+			KWidgetUidCWRTExternalMemoryStop, aUid.iUid) )
+		{
+		ret = ETrue;//it is cwrt widget
+		}
+    return ret;
+    }
+
+// --------------------------------------------------------------------------
+// CTsFsWidgetList::IsValBetween
+// --------------------------------------------------------------------------
+//
+TBool CTsFsWidgetList::IsValBetween( TInt aMinor, TInt aMajor, TInt aBetween )
+	{
+	TBool ret(EFalse);
+	 if	( aBetween >= aMinor && aBetween < aMajor )
+		 {
+		 ret = ETrue;
+		 }
+	 return ret;
+	}
 
 // end of file
--- a/taskswitcher/taskswitcherui/taskswitcherapp/data/taskswitcher.rss	Mon Mar 15 12:39:47 2010 +0200
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/data/taskswitcher.rss	Wed Mar 31 21:17:19 2010 +0300
@@ -275,6 +275,7 @@
 RESOURCE TBUF r_ts_fsw_activate { buf = qtn_task_switcher_popup_open_app; }
 RESOURCE TBUF r_ts_fsw_close { buf = qtn_task_switcher_popup_close_app; }
 RESOURCE TBUF r_ts_fsw_close_all { buf = qtn_task_switcher_popup_close_all; }
+RESOURCE TBUF r_ts_fsw_no_apps { buf = qtn_task_switcher_no_apps; }
 RESOURCE TBUF r_ts_fsw_confirm_close { buf = qtn_memlo_confirm_close; }
 
 RESOURCE TBUF r_task_switcher_heading_applications { buf = qtn_task_switcher_heading_applications; }
--- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappui.h	Mon Mar 15 12:39:47 2010 +0200
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappui.h	Wed Mar 31 21:17:19 2010 +0300
@@ -96,6 +96,11 @@
     void RequestPopUpL();
     void DisablePopUpL();
     
+    /**
+     * Function for layout change check
+     */
+    TBool LayoutChangeAllowed();
+    
 public:
     /**
      * From MTsCenrepChangeObserver
@@ -182,6 +187,10 @@
     // Monitors popup mode
     TBool iIsPopUpShown;
     
+    // For starting in background
+    TBool iUiStarted;
+    TBool iDisableAppKeyHandling;
+    
     };
 
 #endif // TSAPPUI_H
--- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappview.h	Mon Mar 15 12:39:47 2010 +0200
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappview.h	Wed Mar 31 21:17:19 2010 +0300
@@ -102,6 +102,12 @@
      * background redraw.
      */
     void OrderFullWindowRedraw();
+    
+    /**
+     * Orders window invalidation to perform full
+     * background redraw.
+     */
+    void EnableDragEvents( TBool aEnable );
 
 protected:
     // from MCoeControlObserver
--- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tseventcontroler.h	Mon Mar 15 12:39:47 2010 +0200
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tseventcontroler.h	Wed Mar 31 21:17:19 2010 +0300
@@ -168,6 +168,7 @@
      *                  EFalse - disables event handling
      */
     void EnableEventHandling( TBool aEnable );
+    void EnableDragEventHandling( TBool aEnable );
     
 private:
     /**
@@ -189,6 +190,7 @@
      * Flag to enable/disable event handling
      */
     TBool iHandleEvents;
+    TBool iHandleDragEvents;
     };
 
 #endif // TSEVENTCONTROLER_H
--- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h	Mon Mar 15 12:39:47 2010 +0200
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h	Wed Mar 31 21:17:19 2010 +0300
@@ -290,12 +290,6 @@
      * Sends the data-changed notification.
      */   
     void NotifyChange();
-
-    /**
-     * Chage application order.
-     * move Homescreen to first left position.
-     */   
-    void SwapApplicationOrder( RPointerArray<CTsFswEntry>& aArray );
     
     /**
      * Retrieves and returns size for image graphics.
@@ -416,7 +410,6 @@
     CTsEventControler& iEvtHandler;
     
     TInt iMaxItemsOnScreen;
-    TInt iPreviousNoOfItems;
     
     // Tap event
     TPointerEvent iTapEvent;
--- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapgrid.h	Mon Mar 15 12:39:47 2010 +0200
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapgrid.h	Wed Mar 31 21:17:19 2010 +0300
@@ -77,9 +77,9 @@
     
 public: // From CCoeControl
     void HandlePointerEventL( const TPointerEvent &aPointerEvent );
-    TTypeUid::Ptr MopSupplyObject( TTypeUid aId );
     void HandleResourceChange( TInt aType );
     void SizeChanged();
+    void Draw( const TRect& aRect ) const;
     
 public: //From MTsDeviceStateObserver
     /**
@@ -117,6 +117,23 @@
     void ResetCloseHit();
     
     /**
+     * Sets color for the screenshot stroke.
+     * 
+     * @param  aColor  color for the thumbnail
+     * @param  aHighlightedColor  color for thumbnail when item is highlighted
+     */
+    void SetStrokeColors( TRgb aColor, 
+                          TRgb aHighlightedColor );
+    
+    /**
+     * Sets items for which stroke will be drawn
+     * 
+     * @param  aItemIndex  array of item indexes for which stroke
+     *                     is drawn
+     */
+    void SetStrokeItemsL( RArray<TInt>& aItemIndex );
+    
+    /**
      * Sets grid behaviour
      * 
      * @param  aBehaviour  behaviour to be set
@@ -158,45 +175,6 @@
      * Returns visible view. Items outside of visible rectangle are not drawn.
      */
     TRect VisibleViewRect();
-    
-    /**
-     * Launch tactile ETouchFeedbackSensitive feedback.
-     */
-    void LaunchTactileFeedback();
-    
-    /**
-     * Set tactile feedback support.
-     * 
-     * @param aSupport new support value 
-     */
-    void SetTactileFeedbackSupport(TBool aSupport);
-    
-    /**
-     * Remove item from iFullyVisibleItems and iPartialVisibleItems arrays 
-     * 
-     * @param   aItem  idem index 
-     * @return  ETrue  if item was removed
-     *          EFalse if item was not found
-     */
-    TBool RemoveFromVisibleItems(TInt aItem) const;
-
-    /**
-     * Add item to iFullyVisibleItems array 
-     * 
-     * @param   aItem  idem index 
-     * @return  ETrue  if item was added
-     *          EFalse if item was not added because it was there before
-     */
-    TBool AddToFullyVisibleItems(TInt aItem) const;
-
-    /**
-     * Remove item from iPartialVisibleItems array 
-     * 
-     * @param   aItem  idem index 
-     * @return  ETrue  if item was removed
-     *          EFalse if item was not removed because it was not found
-     */
-    TBool MoveToPartialVisibleItems(TInt aItem) const;
 
 private: // From CAknGrid
     virtual void CreateItemDrawerL();
@@ -209,7 +187,7 @@
     /**
      * Loads close icon bitmap and mask
      */
-    void LoadCloseIcon();
+    void LoadCloseIconAndStrokeParams();
     
     /**
      * Redraws grid and parent controls
@@ -221,9 +199,6 @@
     // Grid's parent
     const CCoeControl* iParent;
     
-    // Background context for grid
-    CAknsFrameBackgroundControlContext* iBgContext;
-    
     // Close icon handling
     RArray<TInt> iCloseItems;
     TInt iCloseIconHitIdx;
@@ -236,13 +211,6 @@
     
     // Visible view rectangle (horizontal scrolling support)
     TRect iVisibleViewRect;
-    
-    // Feedback support
-    TBool iTactileFeedbackSupport;
-    CTsFastSwapTimer* iFeedbackTimer;
-    
-    mutable RArray<TInt> iFullyVisibleItems;
-    mutable RArray<TInt> iPartialVisibleItems;
     };
 
 
@@ -265,7 +233,8 @@
      * Sets close icon drawn for items that can be closed.
      * Ownership transferred.
      */
-    void SetCloseIcon( CFbsBitmap* aBmp, CFbsBitmap* aMask );
+    void SetCloseIcon( CFbsBitmap* aBmp, CFbsBitmap* aBmpMask,
+                       CFbsBitmap* aBmpPressed, CFbsBitmap* aBmpPressedMask );
 
     /**
      * Initializes close icon rectangles.
@@ -296,6 +265,33 @@
      *                  if set to EFalse, background will not be redrawn
      */
     void SetRedrawBackground( TBool aEnable );
+    
+    /**
+     * Sets color for the screenshot stroke.
+     * 
+     * @param  aColor  color for the thumbnail
+     * @param  aHighlightedColor  color for thumbnail when item is highlighted
+     */
+    void SetStrokeColors( TRgb aNormalColor,
+                          TRgb aHighlightedColor );
+    
+    /**
+     * Sets items for which stroke will be drawn
+     * 
+     * @param  aItemIndex  array of item indexes for which stroke
+     *                     is drawn.
+     */
+    void SetStrokeItemsL( RArray<TInt>& aItemIndex );
+    
+    /**
+     * Sets stroke offset and size: values must be relative
+     * to item rectangle.
+     * 
+     * @param  aStrokeOffset  offset of the stroke rectangle relative
+     *                        to item rectangle
+     * @param aStrokeSize     size of the stroke rectangle
+     */
+    void SetStrokeOffset( TPoint aStrokeOffset, TSize aStrokeSize );
 
 private: // From CFormattedCellListBoxItemDrawer
     void DrawActualItem( TInt aItemIndex, const TRect& aActualItemRect,
@@ -333,16 +329,24 @@
     // Owned
     CFbsBitmap* iCloseIcon;
     CFbsBitmap* iCloseIconMask;
+    CFbsBitmap* iCloseIconPressed;
+    CFbsBitmap* iCloseIconPressedMask;
     
     TRect iScreenRect;
     TInt iLeftOffset;
     TInt iRightOffset;
     
-    // Layout data
+    // Close button data
     TRect iCloseIconRect;
     TRect iCloseButtonRect;
 	
     TBool iRedrawBackground;
+    
+    // Stroke data
+    TRgb iStrokeColor;
+    TRgb iHighlightStrokeColor;
+    RArray<TInt> iStrokeItems;
+    TRect iStrokeRect;
     };
 
 
--- a/taskswitcher/taskswitcherui/taskswitcherapp/loc/taskswitcher.loc	Mon Mar 15 12:39:47 2010 +0200
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/loc/taskswitcher.loc	Wed Mar 31 21:17:19 2010 +0300
@@ -43,6 +43,12 @@
 //
 #define qtn_task_switcher_heading_applications "Open applications"
 
+//d:Text for no appliactions
+//l:none
+//r:5.0
+//
+#define qtn_task_switcher_no_apps "No open application"
+
 //d:Text for appliactions that has no name
 //l:none
 //r:5.0
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -60,7 +60,7 @@
 
 // time to wait before sending the task to background
 // (must give time to animation)
-const TInt KWaitBeforeGoingToBackground = 100000;
+const TInt KWaitBeforeGoingToBackground = 175000;
 
 // -----------------------------------------------------------------------------
 // CTsAppUi::ConstructL()
@@ -144,10 +144,12 @@
     // And finally, go to background.
     MoveAppToBackground( ENoneTransition );
     
-    iEikonEnv->RootWin().SetOrdinalPosition(-1);
+    iEikonEnv->RootWin().SetOrdinalPosition(-1, ECoeWinPriorityNeverAtFront);
     iEikonEnv->RootWin().EnableReceiptOfFocus(EFalse);
     
     iIsPopUpShown = EFalse;
+    iUiStarted = EFalse;
+    iDisableAppKeyHandling = EFalse;
     
     TSLOG_OUT();
     }
@@ -336,14 +338,27 @@
     // Both this function and the 'manual' MoveAppTo functions must fire the events
     // because in some cases only one of them will run (e.g. when bringing to foreground
     // not with the hw key but by other means etc.)
+    iDisableAppKeyHandling = EFalse;
+    if ( !iUiStarted )
+        {
+        // Ignore foreground events if UI is starting
+        return;
+        }
     if ( aForeground )
         {
         HandleSwitchToForegroundEvent();
         }
     // exclude cases with dialogs like power menu, memory card
-    else if( !IsFaded())
+    else
         {
-        HandleSwitchToBackgroundEvent();
+        if( !IsFaded() )
+            {
+            HandleSwitchToBackgroundEvent();
+            }
+        else
+            {
+            iDisableAppKeyHandling = ETrue;
+            }
         }
 
     // Call Base class method
@@ -381,12 +396,12 @@
                     {
                     MoveAppToBackground( EBackgroundTransition );
                     }
-                else
+                else if( !iDisableAppKeyHandling )
                     {
                     iAppView->HandleAppKey(KAppKeyTypeLong);
                     }
                 }
-            else if(  value & KTaskswitcherShortAppKeyPressed )
+            else if(  value & KTaskswitcherShortAppKeyPressed && !iDisableAppKeyHandling )
                 {
                 iAppView->HandleAppKey(KAppKeyTypeShort);
                 }
@@ -413,18 +428,10 @@
     // Must call base class implementation first,
     // sizes from LayoutMetricsRect etc. will only be correct after this.
     CAknAppUi::HandleResourceChangeL( aType );
-    if( aType == KEikDynamicLayoutVariantSwitch && iAppView )
+    if( aType == KEikDynamicLayoutVariantSwitch && iAppView && !LayoutChangeAllowed() )
         {
-        // Check if layout switch is necessary
-        TSizeMode mode = iEikonEnv->ScreenDevice()->GetCurrentScreenModeAttributes();
-        TBool isLandscape = mode.iScreenSize.iWidth > mode.iScreenSize.iHeight;
-        TRect appRect = ApplicationRect();
-        TBool isAppLandscape = appRect.Width() > appRect.Height();
-        if(isLandscape != isAppLandscape)
-            {
-            // Keep displayed orientation
-            return;
-            }
+        // Keep displayed orientation
+        return;
         }
     // forward event
     iDeviceState->HandleResourceChange( aType );
@@ -500,6 +507,8 @@
     TSLOG_CONTEXT( MoveAppToForeground, TSLOG_LOCAL );
     TSLOG_IN();
 
+    iUiStarted = ETrue;
+    
     // Request window server to bring our application
     // to foreground
     iApplicationTask.BringToForeground();
@@ -529,6 +538,8 @@
 
         // notify view
         iAppView->HandleSwitchToBackgroundEvent();
+        
+        iWg.SetOrdinalPosition(-1, ECoeWinPriorityNormal);
         }
 
     TSLOG_OUT();
@@ -558,6 +569,8 @@
 
         // notify view
         iAppView->HandleSwitchToForegroundEvent();
+        
+        iWg.SetOrdinalPosition(iWg.OrdinalPosition(), ECoeWinPriorityAlwaysAtFront);
         }
 
     TSLOG_OUT();
@@ -661,4 +674,28 @@
     TSLOG_OUT();
     }
 
+
+// -----------------------------------------------------------------------------
+// CTsAppUi::LayoutCanBeChanged
+// -----------------------------------------------------------------------------
+//
+TBool CTsAppUi::LayoutChangeAllowed()
+    {
+    // Check if layout switch is necessary
+    TSizeMode mode = iEikonEnv->ScreenDevice()->GetCurrentScreenModeAttributes();
+    TBool isLandscape = mode.iScreenSize.iWidth > mode.iScreenSize.iHeight;
+    TRect appRect = ApplicationRect();
+    TBool isAppLandscape = appRect.Width() > appRect.Height();
+    TBool retVal;
+    if(isLandscape != isAppLandscape)
+        {
+        retVal = EFalse;
+        }
+    else
+        {
+        retVal = ETrue;
+        }
+    return retVal;  
+    }
+
 // End of file
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappview.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappview.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -134,7 +134,7 @@
                KAknsIIDQsnFrPopup,
                iBgContextOuterRect,
                iBgContextInnerRect,
-               ETrue );
+               EFalse );
     iBgContext->SetFrameRects(iBgContextOuterRect, iBgContextInnerRect);
     iBgContext->SetCenter( KAknsIIDQsnFrPopupCenter );
 
@@ -309,6 +309,7 @@
     iViewRect = Rect();
     UpdatePopupRects();
     iBgContext->SetFrameRects(iBgContextOuterRect, iBgContextInnerRect);
+    iBgContext->SetParentPos(PositionRelativeToScreen());
     if ( iFastSwapArea && iAppsHeading  )
         {
         RArray<TRect> rects;
@@ -456,6 +457,14 @@
     TSLOG_CONTEXT( CTsAppView::HandleSwitchToForegroundEvent, TSLOG_LOCAL );
     TSLOG_IN();
     
+    // Check for layout updates
+    CTsAppUi* appUi = static_cast<CTsAppUi*>(iCoeEnv->AppUi());
+    if ( iViewRect != appUi->ApplicationRect() &&
+         appUi->LayoutChangeAllowed() )
+        {
+        HandleDeviceStateChanged( EOrientation );
+        }
+    
     Window().Invalidate(Rect());
     
     iEvtHandler->EnableEventHandling(ETrue);
@@ -470,6 +479,7 @@
 
     // Forward event to interested controls
     iFastSwapArea->HandleSwitchToForegroundEvent();
+    iFastSwapArea->UpdateComponentVisibility();
 
     // Start animation
     CTsAppUi* appui =
@@ -667,6 +677,16 @@
 
 
 // -----------------------------------------------------------------------------
+// CTsAppView::EnableDragEvents
+// -----------------------------------------------------------------------------
+//
+void CTsAppView::EnableDragEvents( TBool aEnable )
+    {
+    iEvtHandler->EnableDragEventHandling( aEnable );
+    }
+
+
+// -----------------------------------------------------------------------------
 // CTsAppView::MoveOffset
 // -----------------------------------------------------------------------------
 //
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tseventcontroler.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tseventcontroler.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -66,7 +66,8 @@
     :
     CBase(),
     iObserver(aObserver),
-    iHandleEvents(ETrue)
+    iHandleEvents(ETrue),
+    iHandleDragEvents(ETrue)
     {
     }
 
@@ -134,10 +135,13 @@
 void CTsEventControler::HandleDragEventL(
     MAknTouchGestureFwDragEvent& aEvent)
     {
-    iObserver.DragL(aEvent);
-    if ( iHandleEvents )
+    if ( iHandleDragEvents )
         {
-        iPhysicsHelper->HandleDragEvent(aEvent);
+        iObserver.DragL(aEvent);
+        if ( iHandleEvents && iHandleDragEvents )
+            {
+            iPhysicsHelper->HandleDragEvent(aEvent);
+            }
         }
     }
 
@@ -221,4 +225,18 @@
         }
     }
 
+
+// -----------------------------------------------------------------------------
+// EnableDragEventHandling
+// -----------------------------------------------------------------------------
+//
+void CTsEventControler::EnableDragEventHandling( TBool aEnable )
+    {
+    iHandleDragEvents = aEnable;
+    if ( !aEnable && IsPhysicsRunning() )
+        {
+        iPhysicsHelper->Stop();
+        }
+    }
+
 // end of file
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -50,15 +50,8 @@
 /** Number of closable applications, to show "close all" option. */
 const TInt KTsMaxClosableApps = 2;
 
-/** Uid of Active Idle application. 
-    Used when movind Ai to specified position.*/
-const TUid KAiUid = TUid::Uid( 0x102750F0 );
-    
-/** Position of Ai in fsw grid.*/
-const TInt KAiPosition = 0;
-
 /** Default grid item to highlight.*/
-const TInt KItemToHighlight = 3;
+const TInt KItemToHighlight = 2;
 
 const TInt KAppKeyTypeShort = 1;
 const TInt KAppKeyTypeLong = 2;
@@ -110,7 +103,7 @@
     CTsDeviceState& aDeviceState,
     CTsEventControler& aEventHandler) :
     iParent(aParent), iDeviceState(aDeviceState), iEvtHandler(aEventHandler),
-    iPreviousNoOfItems(0), iIgnoreLayoutSwitch(EFalse)
+    iIgnoreLayoutSwitch(EFalse)
     {
     // no implementation required
     }
@@ -224,16 +217,17 @@
     // Text colors
     TRgb textColor;
     AknsUtils::GetCachedColor( AknsUtils::SkinInstance(), textColor,
-            KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6 );
+            KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG19 );
     TRgb highlightTextColor;
     AknsUtils::GetCachedColor( AknsUtils::SkinInstance(), highlightTextColor,
             KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG11 );
     CFormattedCellListBoxData::TColors colors;
-    colors.iText = textColor;
+    colors.iText =  textColor;
     colors.iBack = iGrid->ItemDrawer()->BackColor();
     colors.iHighlightedText = highlightTextColor;
     colors.iHighlightedBack = iGrid->ItemDrawer()->HighlightedBackColor();
     iGrid->ItemDrawer()->FormattedCellData()->SetSubCellColorsL(1, colors);
+    iGrid->SetStrokeColors(textColor, highlightTextColor);
     
     // Setup grid observers
     if ( obs )
@@ -264,8 +258,6 @@
         }
     iGridItemWidth = gridItem.Rect().Width();
     
-    iGrid->ItemDrawer()->ColumnData()->SetDrawBackground(EFalse);
-    
     // Update state
     HandleDeviceStateChanged( EDeviceType );
     if( wasHighlight )
@@ -277,6 +269,10 @@
         iGrid->HideHighlight();
         }
     
+	HBufC* text = StringLoader::LoadLC( R_TS_FSW_NO_APPS );
+	iGrid->SetEmptyGridTextL( *text );
+	CleanupStack::PopAndDestroy( text );
+	
     // Make sure that there is an ActivateL call even when we are not
     // called from ConstructL. (in order to have the grid's parent ptr set properly)
     ActivateL();
@@ -432,12 +428,14 @@
         delete iArray[aIndex];
         iArray.Remove( aIndex );
         NotifyChange();
-        if ( !aSuppressRendering )
+        
+        // Hide highlight
+        if ( iGrid->GridBehaviour() == CTsFastSwapGrid::ETouchOnly )
             {
-            RenderContentL( ETrue );
+            iGrid->HideHighlight();
             }
-        // Update item selection on the screen if last item was deleted
-        TInt newItemCount = GridItemCount();
+        // Update selection
+        TInt newItemCount = GridItemCount() - 1;
         if ( aIndex == newItemCount )
             {
             newItemCount--;
@@ -445,9 +443,13 @@
             }
         else
             {
-            DrawDeferred();
             iGrid->SetCurrentDataIndex(selIdx);
             }
+        // Render contect
+        if ( !aSuppressRendering )
+            {
+            RenderContentL( ETrue );
+            }
         
         // Orientation update
         iPrevScreenOrientation = GetCurrentScreenOrientation();
@@ -479,7 +481,7 @@
         {
         RenderContentL();
         RestoreSelectedIndex();
-        UpdateGrid();
+        UpdateGrid( ETrue, EFalse );
         }
     }
 
@@ -544,7 +546,6 @@
 
     // get current content from fastswap server
     iFSClient->GetContentL( iArray );
-    SwapApplicationOrder( iArray );
 
 #ifdef _DEBUG
     for ( TInt i = 0, ie = iArray.Count(); i != ie; ++i )
@@ -581,6 +582,8 @@
     CleanupStack::PushL( textArray );
     RArray<TInt> closeItemArray;
     CleanupClosePushL(closeItemArray);
+    RArray<TInt> strokeItemArray;
+    CleanupClosePushL(strokeItemArray);
     
     TInt variety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0;
     RArray<TAknLayoutRect> rects;
@@ -591,6 +594,8 @@
     CleanupStack::PopAndDestroy(&rects);
     if ( iArray.Count() )
         {
+        iGrid->ItemDrawer()->ColumnData()->SetDrawBackground(EFalse);
+        static_cast<CTsAppView*>(&iParent)->EnableDragEvents(ETrue);
         if ( AknLayoutUtils::LayoutMirrored() )
             {
             iGrid->SetLayoutL( EFalse, EFalse, ETrue, iArray.Count(), 1, gridItem.Rect().Size(), iGridItemGap );
@@ -600,6 +605,11 @@
             iGrid->SetLayoutL( EFalse, ETrue, ETrue, iArray.Count(), 1, gridItem.Rect().Size(), iGridItemGap );
             }
         }
+    else
+        {
+        iGrid->ItemDrawer()->ColumnData()->SetDrawBackground(ETrue);
+        static_cast<CTsAppView*>(&iParent)->EnableDragEvents(EFalse);
+        }
         
     for ( TInt i = 0, ie = iArray.Count(); i != ie; ++i )
         {
@@ -623,10 +633,16 @@
         CFbsBitmap* mask = 0;
         if ( !h )
             {
+            // No screenshot, take app icon
             h = iArray[i]->AppIconBitmapHandle();
             maskh = iArray[i]->AppIconMaskHandle();
             TSLOG1( TSLOG_INFO, "using appicon, handle = %d", h );
             }
+        else
+            {
+            // Screenshot exists, mark it for stroke
+            strokeItemArray.AppendL(i);
+            }
         __ASSERT_DEBUG( h, User::Invariant() );
         bitmap = CopyBitmapL( h, sz );
         CleanupStack::PushL( bitmap );
@@ -658,8 +674,10 @@
         }
     iGrid->ItemDrawer()->FormattedCellData()->SetIconArrayL(iconArray);
     iGrid->SetCloseItemsL(closeItemArray);
+    iGrid->SetStrokeItemsL(strokeItemArray);
     
     // Cleanup
+    CleanupStack::PopAndDestroy(&strokeItemArray);
     CleanupStack::PopAndDestroy(&closeItemArray);
     CleanupStack::Pop(textArray);
     CleanupStack::Pop(iconArray);
@@ -671,15 +689,7 @@
         }
     
     // refresh the items in the grid
-    if(iPreviousNoOfItems < iArray.Count())
-        {
-        iGrid->HandleItemAdditionL();
-        }
-    else if(iPreviousNoOfItems > iArray.Count())
-        {
-        iGrid->HandleItemRemovalL();
-        }
-    iPreviousNoOfItems = iArray.Count();
+    iGrid->HandleItemAdditionL();
     iEvtHandler.ReInitPhysicsL( GridWorldSize(), ViewSize(), ETrue );
     UpdateGrid( ETrue, !aSuppressAnimation );
     
@@ -703,7 +713,6 @@
     // do not always use aSize, preserving the aspect ratio is quite
     // important when showing app icons instead of screenshots
     TSize sz = CalculateSizePreserveRatio( aSize, bmp->SizeInPixels() );
-
     User::LeaveIfError( ret->Create( sz, bmp->DisplayMode() ) );
 
     AknIconUtils::ScaleBitmapL( sz, ret, bmp );
@@ -757,12 +766,6 @@
     
     // Reset grid
     TRAP_IGNORE( ReCreateGridL() );
-    
-    // get the current task list
-    HandleFswContentChanged();
-    // and then start listening for changes
-    iFSClient->Subscribe( *this );
-    
     if ( iDeviceState.DeviceType() == CTsDeviceState::EFullTouch )
         {
         iGrid->HideHighlight();
@@ -772,6 +775,11 @@
         iGrid->ShowHighlight();
         }
     
+    // get the current task list
+    HandleFswContentChanged();
+    // and then start listening for changes
+    iFSClient->Subscribe( *this );
+    
     RestoreSelectedIndex();
     UpdateGrid(EFalse, EFalse);
     
@@ -816,7 +824,6 @@
         TEventCode aType )
     {
     iKeyEvent = ETrue;
-    iGrid->SetTactileFeedbackSupport(EFalse);
     // handle the 'clear' key
     if ( aType == EEventKey && aKeyEvent.iCode == EKeyBackspace )
         {
@@ -913,7 +920,6 @@
 void CTsFastSwapArea::HandlePointerEventL( const TPointerEvent& aPointerEvent )
     {
     iKeyEvent = EFalse;
-    iGrid->SetTactileFeedbackSupport(ETrue);
     if(aPointerEvent.iType == TPointerEvent::EButton1Down)
         {
         iTapEvent = aPointerEvent;
@@ -947,7 +953,7 @@
     iSavedSelectedIndex = KErrNotFound;
     if ( GridItemCount() )
         {
-        // highlight second recent item (that has index 2) if possible
+        // highlight second recent item (that has index 1) if possible
         TInt highlightItem = 0;
         TInt count = GridItemCount();
         while( highlightItem < count 
@@ -1137,26 +1143,6 @@
     }
     
 // -----------------------------------------------------------------------------
-// CTsFastSwapArea::SwapApplicationOrder
-// -----------------------------------------------------------------------------
-//
-void CTsFastSwapArea::SwapApplicationOrder( 
-    RPointerArray<CTsFswEntry>& aArray )
-    {
-    for ( TInt i = 0; i < aArray.Count(); ++i )
-        {
-        if( aArray[i]->AppUid() == KAiUid )
-            {
-            CTsFswEntry* homescreenEntry(0);
-            homescreenEntry = aArray[i];
-            aArray.Remove(i);
-            aArray.Insert(homescreenEntry, KAiPosition);
-            break;
-            }
-        }
-    }
-    
-// -----------------------------------------------------------------------------
 // CTsFastSwapArea::PreferredImageSize
 // -----------------------------------------------------------------------------
 //
@@ -1219,20 +1205,16 @@
         const TSize& aTargetAreaSize,
         const TSize& aSourceSize )
     {
-    TSize sz;
-    if ( aSourceSize.iWidth > aSourceSize.iHeight )
-        {
-        sz.iWidth = aTargetAreaSize.iWidth;
-        TReal ratio = aSourceSize.iWidth / (TReal) aSourceSize.iHeight;
-        sz.iHeight = sz.iWidth / ratio;
-        }
-    else
-        {
-        sz.iHeight = aTargetAreaSize.iHeight;
-        TReal ratio = aSourceSize.iHeight / (TReal) aSourceSize.iWidth;
-        sz.iWidth = sz.iHeight / ratio;
-        }
-    return sz;
+    const TReal 
+      resizedAspectRatio(aTargetAreaSize.iWidth/(TReal)aTargetAreaSize.iHeight);
+    const TReal 
+      orginalAspectRatio(aSourceSize.iWidth/(TReal)aSourceSize.iHeight);
+    //this condition avoid empty margins ( bigger output ). to realy fit area change it
+    const TReal scaleFactor = 
+        ( orginalAspectRatio > resizedAspectRatio ) ? 
+        (aTargetAreaSize.iHeight /(TReal)aSourceSize.iHeight) ://scale by height
+        (aTargetAreaSize.iWidth /(TReal)aSourceSize.iWidth) ;//scale by width
+    return TSize(aSourceSize.iWidth * scaleFactor, aSourceSize.iHeight * scaleFactor);
     }
 
 // --------------------------------------------------------------------------
@@ -1242,7 +1224,6 @@
 void CTsFastSwapArea::SelectNextItem()
     {
     iKeyEvent = ETrue;
-    iGrid->SetTactileFeedbackSupport(EFalse);
     TBool forceRedraw(ETrue);
     TBool animate(ETrue);
     TInt selectedItem = SelectedIndex();
@@ -1282,7 +1263,7 @@
     TPoint absViewPos = ViewPos();
     absViewPos.iX -= Rect().Width() / 2;
     if( !iEvtHandler.IsPhysicsRunning() &&
-        ( absViewPos.iX < 0 || absViewPos.iX + Rect().Width() > GridWorldSize().iWidth )
+        ( absViewPos.iX < 0 ||( absViewPos.iX + Rect().Width() > GridWorldSize().iWidth && GridItemCount() ) )
       )
         {
         // View is outside of grid world - update view
@@ -1320,6 +1301,7 @@
             }
         if ( aForceRedraw )
             {
+            iParent.DrawDeferred();
             iGrid->DrawNow();
             }
         }
@@ -1331,20 +1313,27 @@
 //
 void CTsFastSwapArea::HandleAppKey(TInt aType)
     {
-    if( aType == KAppKeyTypeShort )
+    if ( iArray.Count() )
         {
-        if(iGrid->IsHighlightVisible())
+        if( aType == KAppKeyTypeShort )
             {
-            SelectNextItem();
+            if(iGrid->IsHighlightVisible())
+                {
+                SelectNextItem();
+                }
+            else
+                {
+                iGrid->ShowHighlight();
+                }
             }
-        else
+        else if( aType == KAppKeyTypeLong )
             {
-            iGrid->ShowHighlight();
+            SwitchToApp( SelectedIndex() );
             }
         }
-    else if( aType == KAppKeyTypeLong )
+    else
         {
-        SwitchToApp( SelectedIndex() );
+        TRAP_IGNORE( iEikonEnv->EikAppUi()->HandleCommandL(EAknSoftkeyExit) );
         }
     }
 
@@ -1374,13 +1363,13 @@
         gridViewRect.iTl.iX = -currentXPos;
         // Take edge offset into account
         gridViewRect.iTl.iX += Rect().iTl.iX;
-        if(GridItemCount() <= iMaxItemsOnScreen)
+        if(GridItemCount() && GridItemCount() <= iMaxItemsOnScreen)
             {
             // Center view
             gridViewRect.iTl.iX += ( Rect().Width() - GridItemCount() * iGridItemWidth ) / 2;
             }
+        DrawDeferred();
         iGrid->SetRect( gridViewRect );
-        DrawDeferred();
         iLogicalViewPosOffset = 0;
         }
     else
@@ -1396,7 +1385,7 @@
 //
 void CTsFastSwapArea::TapL(const TPoint& aPoint)
     {
-    if(Rect().Contains(aPoint))
+    if(Rect().Contains(aPoint) && iArray.Count())
         {
         //provide tap pointer event to grid
         iGrid->HandlePointerEventL(iTapEvent);
@@ -1417,7 +1406,7 @@
 void CTsFastSwapArea::LongTapL(const TPoint& aPoint)
     {
     TInt index(KErrNotFound);
-    if( iGrid->GridView()->XYPosToItemIndex(aPoint,index) )
+    if( iGrid->GridView()->XYPosToItemIndex(aPoint,index) && iArray.Count() )
         {
         iGrid->SetCurrentItemIndex(index);
         SaveSelectedIndex();
@@ -1448,8 +1437,7 @@
 		{
 		CenterItem( KUpdateGridTime );
 		}
-		
-    iGrid->SetTactileFeedbackSupport(ETrue);
+
     iGrid->HideHighlight();
     }
 
@@ -1482,7 +1470,7 @@
     retVal.iY = iGrid->Rect().iTl.iY + Rect().Height() / 2;
     retVal.iX = - (iGrid->Rect().iTl.iX - Rect().iTl.iX) + Rect().Width() / 2 ;
     TInt gridItemCount = iGrid->Model()->ItemTextArray()->MdcaCount();
-    if( gridItemCount <= iMaxItemsOnScreen)
+    if(gridItemCount && gridItemCount <= iMaxItemsOnScreen)
         {
         // View centered
         retVal.iX += ( Rect().Width() - gridItemCount * iGridItemWidth ) / 2;
@@ -1498,7 +1486,12 @@
 TPoint CTsFastSwapArea::ItemViewPosition( TInt aItemIdx )
     {
     TPoint retVal = Rect().iTl;
-    if ( aItemIdx == 0 )
+    if ( aItemIdx < 0 )
+        {
+        // No items
+        retVal.iX = 0;
+        }
+    else if ( aItemIdx == 0 )
         {
         // First item
         if( AknLayoutUtils::LayoutMirrored() )
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapgrid.cpp	Mon Mar 15 12:39:47 2010 +0200
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapgrid.cpp	Wed Mar 31 21:17:19 2010 +0300
@@ -31,7 +31,8 @@
   */
 
 const TInt KCloseIconRedrawTime = 300000; // 0.3 second
-const TInt KFeedbackTime = 0;
+
+const TInt KStrokeThickness = 1;
 
 // -----------------------------------------------------------------------------
 // CTsFastSwapGrid::CTsFastSwapGrid
@@ -53,11 +54,7 @@
 CTsFastSwapGrid::~CTsFastSwapGrid()
     {
     iCloseItems.Close();
-    delete iBgContext;
     delete iCloseIconRedrawTimer;
-    delete iFeedbackTimer;
-    iFullyVisibleItems.Close();
-    iPartialVisibleItems.Close();
     }
 
 // -----------------------------------------------------------------------------
@@ -73,16 +70,8 @@
     CAknGrid::ConstructL( aParent, EAknListBoxSelectionGrid );
     SetPrimaryScrollingType(CAknGridView::EScrollFollowsItemsAndLoops);
     SetSecondaryScrollingType(CAknGridView::EScrollFollowsItemsAndLoops);
-    iBgContext = CAknsFrameBackgroundControlContext::NewL(
-               KAknsIIDQsnFrPopup,
-               TRect(),
-               TRect(),
-               ETrue );
-    iBgContext->SetCenter( KAknsIIDQsnFrPopupCenter );
     iCloseIconRedrawTimer = new (ELeave) CTsFastSwapTimer( *this );
     iCloseIconRedrawTimer->ConstructL();
-    iFeedbackTimer = new (ELeave) CTsFastSwapTimer( *this );
-    iFeedbackTimer->ConstructL();
     
     TSLOG_OUT();
     }
@@ -198,25 +187,12 @@
     
     if ( aChangeType == ESkin )
         {
-        LoadCloseIcon();
+        LoadCloseIconAndStrokeParams();
         }
     
     TSLOG_OUT();
     }
 
-// -----------------------------------------------------------------------------
-// CTsFastSwapGrid::MopSupplyObject
-// -----------------------------------------------------------------------------
-//
-TTypeUid::Ptr CTsFastSwapGrid::MopSupplyObject( TTypeUid aId )
-    {
-    if ( aId.iUid == MAknsControlContext::ETypeId )
-        {
-        return MAknsControlContext::SupplyMopObject( aId, iBgContext );
-        }
-    return CCoeControl::MopSupplyObject( aId );
-    }
-
 
 // -----------------------------------------------------------------------------
 // CTsFastSwapGrid::HandleResourceChange
@@ -247,6 +223,20 @@
 
 
 // -----------------------------------------------------------------------------
+// CTsFastSwapGrid::Draw
+// -----------------------------------------------------------------------------
+//
+void CTsFastSwapGrid::Draw( const TRect& aRect ) const
+    {
+    CAknGrid::Draw(aRect);
+    if ( !Model()->ItemTextArray()->MdcaCount() )
+        {
+        GridView()->DrawEmptyList();
+        }
+    }
+
+
+// -----------------------------------------------------------------------------
 // CTsFastSwapGrid::SetFastSwapGridObserver
 // -----------------------------------------------------------------------------
 //
@@ -285,7 +275,7 @@
     iItemDrawer = itemDrawer;
     CleanupStack::Pop( itemDrawer );
     CleanupStack::Pop( data );
-    LoadCloseIcon();
+    LoadCloseIconAndStrokeParams();
     
     TSLOG_OUT();
     }
@@ -302,14 +292,6 @@
         ResetCloseHit();
         iFastSwapGridObserver->HandleCloseEventL( itemToClose );
         }
-    else if ( aSource == iFeedbackTimer )
-        {
-        MTouchFeedback* feedback = MTouchFeedback::Instance();
-        if (feedback)
-            {
-            feedback->InstantFeedback(ETouchFeedbackSensitive);
-            }
-        }
     }
 
 // -----------------------------------------------------------------------------
@@ -357,6 +339,27 @@
 
 
 // -----------------------------------------------------------------------------
+// CTsFastSwapGrid::SetStrokeColor
+// -----------------------------------------------------------------------------
+//
+void CTsFastSwapGrid::SetStrokeColors( TRgb aColor,
+                                       TRgb aHighlightedColor )
+    {
+    static_cast<CTsGridItemDrawer*>(iItemDrawer)->SetStrokeColors(aColor, aHighlightedColor);
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapGrid::SetStrokeItemsL
+// -----------------------------------------------------------------------------
+//
+void CTsFastSwapGrid::SetStrokeItemsL( RArray<TInt>& aItemIndex )
+    {
+    static_cast<CTsGridItemDrawer*>(iItemDrawer)->SetStrokeItemsL(aItemIndex);
+    }
+
+
+// -----------------------------------------------------------------------------
 // CTsFastSwapGrid::SetBehaviour
 // -----------------------------------------------------------------------------
 //
@@ -459,31 +462,38 @@
 
 
 // -----------------------------------------------------------------------------
-// CTsFastSwapGrid::LoadCloseIconL
+// CTsFastSwapGrid::LoadCloseIconAndStrokeParams
 // -----------------------------------------------------------------------------
 //
-void CTsFastSwapGrid::LoadCloseIcon()
+void CTsFastSwapGrid::LoadCloseIconAndStrokeParams()
     {
     // Load and set close icon
     CFbsBitmap* icon = NULL;
-    CFbsBitmap* mask = NULL;
-
-    TRAP_IGNORE(AknsUtils::CreateColorIconLC( AknsUtils::SkinInstance(),
-                KAknsIIDQgnIndiItutListCollapse,
-                KAknsIIDQsnTextColors,    // we use text color here, eventhough this is an icon
-                EAknsCIQsnTextColorsCG13, // softkey text color
+    CFbsBitmap* iconMask = NULL;
+    CFbsBitmap* iconPressed = NULL;
+    CFbsBitmap* iconPressedMask = NULL;
+    
+    TRAP_IGNORE(AknsUtils::CreateIconL( AknsUtils::SkinInstance(),
+                KAknsIIDQgnIndiTsButtonClose,
                 icon,
-                mask,
+                iconMask,
                 KAvkonBitmapFile,
                 EMbmAvkonQgn_indi_button_preview_close,
-                EMbmAvkonQgn_indi_button_preview_close_mask,
-                KRgbWhite
-                );
-                CleanupStack::Pop( 2 ); // codescanner::cleanup
-                );
+                EMbmAvkonQgn_indi_button_preview_close_mask
+                ));
+    
+    TRAP_IGNORE(AknsUtils::CreateIconL( AknsUtils::SkinInstance(),
+                KAknsIIDQgnIndiTsButtonClosePressed,
+                iconPressed,
+                iconPressedMask,
+                KAvkonBitmapFile,
+                EMbmAvkonQgn_indi_button_preview_close,
+                EMbmAvkonQgn_indi_button_preview_close_mask
+                ));
 
     TAknLayoutRect gridAppPane;
     TAknLayoutRect gridItem;
+    TAknLayoutRect gridImage;
     TAknLayoutRect gridCloseButton;
     TAknLayoutRect gridCloseIcon;
     TInt variety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0;
@@ -492,15 +502,21 @@
             AknLayoutScalable_Apps::tport_appsw_pane( variety ) );
     gridItem.LayoutRect( gridAppPane.Rect(),
             AknLayoutScalable_Apps::cell_tport_appsw_pane( variety, 0, 0 ) );
+    gridImage.LayoutRect( gridItem.Rect(),
+            AknLayoutScalable_Apps::cell_tport_appsw_pane_g1( variety ) ); 
     gridCloseButton.LayoutRect( gridItem.Rect(),
             AknLayoutScalable_Apps::bg_button_pane_cp16( variety, 0, 0 ));
     gridCloseIcon.LayoutRect( gridItem.Rect(),
             AknLayoutScalable_Apps::cell_tport_appsw_pane_g3( variety, 0, 0 ));
+    
+    // Set icon size
     AknIconUtils::SetSize( icon, gridCloseIcon.Rect().Size(), EAspectRatioPreserved );
-    AknIconUtils::SetSize( mask, gridCloseIcon.Rect().Size(), EAspectRatioPreserved );
+    AknIconUtils::SetSize( iconPressed, gridCloseIcon.Rect().Size(), EAspectRatioPreserved );
     CTsGridItemDrawer* itemDrawer =
         static_cast<CTsGridItemDrawer*>(iItemDrawer);
-    itemDrawer->SetCloseIcon( icon, mask );
+    
+    // Setup close parameters
+    itemDrawer->SetCloseIcon( icon, iconMask, iconPressed, iconPressedMask );
     TRect relGridCloseButton = TRect( TPoint( gridCloseButton.Rect().iTl.iX - gridItem.Rect().iTl.iX,
                                               gridCloseButton.Rect().iTl.iY - gridItem.Rect().iTl.iY),
                                       gridCloseButton.Rect().Size() );
@@ -508,6 +524,15 @@
                                                 gridCloseIcon.Rect().iTl.iY - gridItem.Rect().iTl.iY),
                                         gridCloseIcon.Rect().Size() );
     itemDrawer->SetCloseIconRect( relGridCloseButton, relGridCloseIconRect );
+    
+    // Setup stroke parameters
+    TPoint strokeOffset;
+    strokeOffset.iX = gridImage.Rect().iTl.iX - gridItem.Rect().iTl.iX - KStrokeThickness;
+    strokeOffset.iY = gridImage.Rect().iTl.iY - gridItem.Rect().iTl.iY - KStrokeThickness;
+    TSize strokeSize = gridImage.Rect().Size();
+    strokeSize.iHeight += KStrokeThickness * 2;
+    strokeSize.iWidth += KStrokeThickness * 2;
+    itemDrawer->SetStrokeOffset( strokeOffset, strokeSize );
     }
 
 
@@ -530,96 +555,8 @@
         }
     }
 
-// -----------------------------------------------------------------------------
-// CTsFastSwapGrid::LaunchTactileFeedback
-// -----------------------------------------------------------------------------
-//
-void CTsFastSwapGrid::LaunchTactileFeedback()
-    {
-    if( !iTactileFeedbackSupport )
-        {
-        return;
-        }
-    
-    iFeedbackTimer->Cancel();
-    iFeedbackTimer->After(KFeedbackTime);
-    }
-
-// -----------------------------------------------------------------------------
-// CTsFastSwapGrid::SetTactileFeedbackSupport
-// -----------------------------------------------------------------------------
-//
-void CTsFastSwapGrid::SetTactileFeedbackSupport(TBool aSupport)
-    {
-    iTactileFeedbackSupport = aSupport;
-    }
 
 
-// -----------------------------------------------------------------------------
-// CTsFastSwapGrid::RemoveFromVisibleItems
-// -----------------------------------------------------------------------------
-//
-TBool CTsFastSwapGrid::RemoveFromVisibleItems(TInt aItem) const
-    {
-    TBool retVal(EFalse);
-    TInt idx(0);
-    idx = iFullyVisibleItems.Find(aItem); 
-    if(  idx >= 0)
-        {
-        iFullyVisibleItems.Remove(idx);
-        retVal = ETrue;
-        }
-    idx = iPartialVisibleItems.Find( aItem );
-    if( idx >= 0)
-        {
-        iPartialVisibleItems.Remove(idx);
-        retVal = ETrue;
-        }
-    return retVal;    
-    }
-
-// -----------------------------------------------------------------------------
-// CTsFastSwapGrid::AddToFullyVisibleItems
-// -----------------------------------------------------------------------------
-//
-TBool CTsFastSwapGrid::AddToFullyVisibleItems( TInt aItem ) const
-    {
-    TBool retVal(EFalse);
-    TInt idx(0);
-
-    idx = iPartialVisibleItems.Find(aItem); 
-    if(  idx >= 0)
-        {
-        iPartialVisibleItems.Remove(idx);
-        }
-    idx = iFullyVisibleItems.Find( aItem );
-    if( idx == KErrNotFound )
-        {
-        iFullyVisibleItems.Append(aItem);
-        retVal = ETrue; 
-        }
-    return retVal;
-    }
-
-// -----------------------------------------------------------------------------
-// CTsFastSwapGrid::MoveToPartialVisibleItems
-// -----------------------------------------------------------------------------
-//
-TBool CTsFastSwapGrid::MoveToPartialVisibleItems( TInt aItem ) const
-    {
-    TInt idx(0);
-    idx = iFullyVisibleItems.Find(aItem); 
-    if(  idx >= 0)
-        {
-        iFullyVisibleItems.Remove(idx);
-        }
-    idx = iPartialVisibleItems.Find( aItem );
-    if( idx == KErrNotFound )
-        {
-        iPartialVisibleItems.Append(aItem);
-        }
-    return EFalse;
-    }
 
 /* ================================================================================
  * CTsGridItemDrawer
@@ -638,7 +575,9 @@
         NULL,
         aData ),
   iGrid( aGrid ),
-  iScreenRect(aScreenRect)
+  iScreenRect( aScreenRect ),
+  iStrokeColor( KRgbBlack ),
+  iHighlightStrokeColor( KRgbBlack )
     {
     }
 
@@ -651,6 +590,9 @@
     {
     delete iCloseIcon;
     delete iCloseIconMask;
+    delete iCloseIconPressed;
+    delete iCloseIconPressedMask;
+    iStrokeItems.Close();
     }
 
 
@@ -658,12 +600,17 @@
 // CTsGridItemDrawer::SetCloseIcon
 // -----------------------------------------------------------------------------
 //
-void CTsGridItemDrawer::SetCloseIcon( CFbsBitmap* aBmp, CFbsBitmap* aMask )
+void CTsGridItemDrawer::SetCloseIcon( CFbsBitmap* aBmp, CFbsBitmap* aBmpMask,
+                                      CFbsBitmap* aBmpPressed, CFbsBitmap* aBmpPressedMask  )
     {
     delete iCloseIcon;
     iCloseIcon = aBmp;
     delete iCloseIconMask;
-    iCloseIconMask = aMask;
+    iCloseIconMask = aBmpMask;
+    delete iCloseIconPressed;
+    iCloseIconPressed = aBmpPressed;
+    delete iCloseIconPressedMask;
+    iCloseIconPressedMask = aBmpPressedMask;
     }
 
 
@@ -714,6 +661,42 @@
 
 
 // -----------------------------------------------------------------------------
+// CTsGridItemDrawer::SetStrokeColor
+// -----------------------------------------------------------------------------
+//
+void CTsGridItemDrawer::SetStrokeColors( TRgb aColor,
+                                         TRgb aHighlightedColor )
+    {
+    iStrokeColor = aColor;
+    iHighlightStrokeColor = aHighlightedColor;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTsGridItemDrawer::SetStrokeItemsL
+// -----------------------------------------------------------------------------
+//
+void CTsGridItemDrawer::SetStrokeItemsL( RArray<TInt>& aItemIndex )
+    {
+    iStrokeItems.Close();
+    for ( TInt i = 0; i < aItemIndex.Count(); i++ )
+        {
+        iStrokeItems.AppendL( aItemIndex[i] );
+        }
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTsGridItemDrawer::SetStrokeOffset
+// -----------------------------------------------------------------------------
+//
+void CTsGridItemDrawer::SetStrokeOffset( TPoint aStrokeOffset, TSize aStrokeSize )
+    {
+    iStrokeRect = TRect( aStrokeOffset, aStrokeSize );
+    }
+
+
+// -----------------------------------------------------------------------------
 // CTsGridItemDrawer::DrawActualItem
 // -----------------------------------------------------------------------------
 //
@@ -721,8 +704,6 @@
                                                  TBool aItemIsCurrent, TBool aViewIsEmphasized,
                                                  TBool aViewIsDimmed, TBool aItemIsSelected ) const
     {
-    TBool feedbackNeed(EFalse);//feedback when item disappear or fully appear
-    
     if (IsItemRectVisible(aActualItemRect))
         {
         // Calculate offset of the visible rectangle
@@ -736,15 +717,6 @@
             drawRect.iBr.iX = iScreenRect.Width() - iRightOffset;
             }
         iGc->SetClippingRect(drawRect);
-                
-		if(IsRectContained( aActualItemRect, drawRect ))
-            {
-            feedbackNeed = iGrid->AddToFullyVisibleItems( aItemIndex );
-            }
-        else
-            {
-            feedbackNeed = iGrid->MoveToPartialVisibleItems( aItemIndex );
-            }
 			
         // Check for item highlight
         TBool itemIsCurrent = !iGrid->IsHighlightVisible() ? EFalse : aItemIsCurrent;
@@ -769,7 +741,25 @@
         CFormattedCellListBoxItemDrawer::DrawActualItem(aItemIndex, aActualItemRect,
                 itemIsCurrent, aViewIsEmphasized, aViewIsDimmed, aItemIsSelected );
         
-        if ( iGrid->CanCloseItem( aItemIndex ) && iCloseIcon && iCloseIconMask )
+        // Draw stroke
+        if ( iStrokeItems.Find( aItemIndex ) != KErrNotFound )
+            {
+            TRect strokeRect = iStrokeRect;
+            strokeRect.Move( aActualItemRect.iTl );
+            if ( itemIsCurrent )
+                {
+                iGc->SetPenColor( iHighlightStrokeColor );
+                }
+            else
+                {
+                iGc->SetPenColor( iStrokeColor );
+                }
+            // Thumbnail stroke
+            iGc->DrawRect( strokeRect );
+            }
+        
+        // Draw close button
+        if ( iGrid->CanCloseItem( aItemIndex ) && iCloseIcon && iCloseIconPressed )
             {
             TRect closeIconRect = GetCloseButtonRect( aActualItemRect );
             // Draw frame
@@ -778,27 +768,24 @@
             MAknsSkinInstance* skin = AknsUtils::SkinInstance();
             if ( iGrid->IsItemCloseHit( aItemIndex ) )
                 {
-                AknsDrawUtils::DrawFrame(skin, *iGc, outerRect, innerRect,
-                        KAknsIIDQgnFrSctrlButtonPressed, KAknsIIDQgnFrSctrlButtonCenterPressed);
+                TRect sourceRect( TPoint(0,0), iCloseIconPressed->SizeInPixels() );
+                iGc->DrawBitmapMasked( innerRect,
+                        iCloseIconPressed,
+                        sourceRect,
+                        iCloseIconPressedMask,
+                        ETrue );
                 }
             else
                 {
-                AknsDrawUtils::DrawFrame(skin, *iGc, outerRect, innerRect,
-                        KAknsIIDQgnFrSctrlButton, KAknsIIDQgnFrSctrlButtonCenter);
+                TRect sourceRect( TPoint(0,0), iCloseIcon->SizeInPixels() );
+                iGc->DrawBitmapMasked( innerRect,
+                        iCloseIcon,
+                        sourceRect,
+                        iCloseIconMask,
+                        ETrue );
                 }
-            // Draw close icon
-            TRect sourceRect( TPoint(0,0), iCloseIcon->SizeInPixels() );
-            iGc->DrawBitmapMasked( innerRect, iCloseIcon, sourceRect, iCloseIconMask, ETrue );
             }
         }
-    else
-        {
-        feedbackNeed = iGrid->RemoveFromVisibleItems(aItemIndex);
-        }
-    if(feedbackNeed)
-        {
-        iGrid->LaunchTactileFeedback();
-        }
     }
 
 // -----------------------------------------------------------------------------