Revision: 201007 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 12 Mar 2010 15:41:49 +0200
branchRCL_3
changeset 15 ff572dfe6d86
parent 9 f966699dea19
child 16 9674c1a575e9
Revision: 201007 Kit: 201008
idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/manifest.dat
idlehomescreen/data/qhd_tch/desktop_20026f4f/loc/desktopconfiguration.loc
idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/37/onerow.css
idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/50/onerow.css
idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/57/onerow.css
idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/94/onerow.css
idlehomescreen/data/qhd_tch/profile_2001cb7c/group/bld.inf
idlehomescreen/data/qhd_tch/profile_2001cb7c/hsps/00/manifest.dat
idlehomescreen/data/qhd_tch/profile_2001cb7c/hsps/00/widgetconfiguration.xml
idlehomescreen/data/qhd_tch/profile_2001cb7c/loc/profileconfiguration.loc
idlehomescreen/data/qhd_tch/profile_2001cb7c/rom/profilewidget_customer.iby
idlehomescreen/data/qhd_tch/profile_2001cb7c/rom/profilewidget_resources.iby
idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.confml
idlehomescreen/data/qhd_tch/root_2001f482/hsps/00/rootconfiguration.xml
idlehomescreen/data/qhd_tch/templateview_20026f50/hsps/00/templateviewconfiguration.xml
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/xuikon/37/threerows.css
idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/50/threerows.css
idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/57/threerows.css
idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/94/threerows.css
idlehomescreen/data/qhd_tch/threetextrows_2001f487/xuikon/37/threetextrows.css
idlehomescreen/data/qhd_tch/threetextrows_2001f487/xuikon/50/threetextrows.css
idlehomescreen/data/qhd_tch/threetextrows_2001f487/xuikon/57/threetextrows.css
idlehomescreen/data/qhd_tch/threetextrows_2001f487/xuikon/94/threetextrows.css
idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/37/tworows.css
idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/50/tworows.css
idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/57/tworows.css
idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/94/tworows.css
idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.confml
idlehomescreen/data/qhd_tch/view_2001f48b/hsps/00/viewconfiguration.xml
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/group/bld.inf
idlehomescreen/data/qhd_tch/view_200286e4/hsps/00/manifest.dat
idlehomescreen/data/qhd_tch/view_200286e4/hsps/00/viewconfiguration.xml
idlehomescreen/data/qhd_tch/view_200286e4/loc/View.loc
idlehomescreen/data/qhd_tch/view_200286e4/rom/view.iby
idlehomescreen/data/qhd_tch/view_200286e4/rom/view_customer.iby
idlehomescreen/data/qhd_tch/view_200286e4/rom/view_resources.iby
idlehomescreen/data/qhd_tch/view_200286e4/rom/view_variant.iby
idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.css
idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.dat
idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.dtd
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/group/bld.inf
idlehomescreen/data/qhd_tch/view_200286e5/hsps/00/manifest.dat
idlehomescreen/data/qhd_tch/view_200286e5/hsps/00/viewconfiguration.xml
idlehomescreen/data/qhd_tch/view_200286e5/loc/View.loc
idlehomescreen/data/qhd_tch/view_200286e5/rom/view.iby
idlehomescreen/data/qhd_tch/view_200286e5/rom/view_customer.iby
idlehomescreen/data/qhd_tch/view_200286e5/rom/view_resources.iby
idlehomescreen/data/qhd_tch/view_200286e5/rom/view_variant.iby
idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.css
idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.dat
idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.dtd
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/hscontentcontrol/bwins/hscontentcontrol.def
idlehomescreen/hscontentcontrol/eabi/hscontentcontrol.def
idlehomescreen/hscontentcontrol/inc/hscontentcontrolfactory.h
idlehomescreen/hscontentcontrol/src/hscontentcontrolfactory.cpp
idlehomescreen/inc/xnappuiadapter.h
idlehomescreen/inc/xneditmode.h
idlehomescreen/inc/xnlistquerydialogadapter.h
idlehomescreen/inc/xnnode.h
idlehomescreen/inc/xnnodeimpl.h
idlehomescreen/inc/xnnodepluginif.h
idlehomescreen/inc/xnproperty.h
idlehomescreen/inc/xnviewmanager.h
idlehomescreen/nativeuicontroller/group/ainatiui.mmp
idlehomescreen/nativeuicontroller/inc/aidialogrenderer.h
idlehomescreen/nativeuicontroller/inc/aistatuspanel.h
idlehomescreen/nativeuicontroller/src/aidialogrenderer.cpp
idlehomescreen/nativeuicontroller/src/aistatuspanel.cpp
idlehomescreen/nativeuicontroller/src/appui.cpp
idlehomescreen/nativeuicontroller/src/nativeuicontroller.cpp
idlehomescreen/widgetmanager/conf/widgetmanager.confml
idlehomescreen/widgetmanager/conf/widgetmanager_20026F53.crml
idlehomescreen/widgetmanager/data/widgetmanagerview.rss
idlehomescreen/widgetmanager/group/widgetmanager.mmp
idlehomescreen/widgetmanager/inc/wmconfiguration.h
idlehomescreen/widgetmanager/inc/wmcrkeys.h
idlehomescreen/widgetmanager/inc/wmeffectmanager.h
idlehomescreen/widgetmanager/inc/wmimageconverter.h
idlehomescreen/widgetmanager/inc/wminstaller.h
idlehomescreen/widgetmanager/inc/wmlistbox.h
idlehomescreen/widgetmanager/inc/wmlistbox.inl
idlehomescreen/widgetmanager/inc/wmmaincontainer.h
idlehomescreen/widgetmanager/inc/wmpersistentwidgetorder.h
idlehomescreen/widgetmanager/inc/wmplugin.h
idlehomescreen/widgetmanager/inc/wmportalbutton.h
idlehomescreen/widgetmanager/inc/wmwidgetloaderao.h
idlehomescreen/widgetmanager/inc/wmwidgetorderdata.h
idlehomescreen/widgetmanager/sis/Create_update_sisx.bat
idlehomescreen/widgetmanager/src/wmconfiguration.cpp
idlehomescreen/widgetmanager/src/wmimageconverter.cpp
idlehomescreen/widgetmanager/src/wminstaller.cpp
idlehomescreen/widgetmanager/src/wmlistbox.cpp
idlehomescreen/widgetmanager/src/wmmaincontainer.cpp
idlehomescreen/widgetmanager/src/wmmaincontainerview.cpp
idlehomescreen/widgetmanager/src/wmpersistentwidgetorder.cpp
idlehomescreen/widgetmanager/src/wmplugin.cpp
idlehomescreen/widgetmanager/src/wmportalbutton.cpp
idlehomescreen/widgetmanager/src/wmwidgetdata.cpp
idlehomescreen/widgetmanager/src/wmwidgetloaderao.cpp
idlehomescreen/widgetmanager/src/wmwidgetorderdata.cpp
idlehomescreen/widgetmanager/tsrc/wmunittest/conf/ui_wmunittest.cfg
idlehomescreen/widgetmanager/tsrc/wmunittest/group/Create_sisx.bat
idlehomescreen/widgetmanager/tsrc/wmunittest/group/wmunittest.mmp
idlehomescreen/widgetmanager/tsrc/wmunittest/inc/wmunittest.h
idlehomescreen/widgetmanager/tsrc/wmunittest/src/wmunittest_all.cpp
idlehomescreen/widgetmanager/tsrc/wmunittest/src/wmunittest_plugin.cpp
idlehomescreen/widgetmanager/tsrc/wmunittest/src/wmunittest_sortorder.cpp
idlehomescreen/widgetmanager/tsrc/wmunittest/src/wmunittest_uninstaller.cpp
idlehomescreen/xmluicontroller/inc/appui.h
idlehomescreen/xmluicontroller/src/ai3xmlui.rss
idlehomescreen/xmluicontroller/src/appui.cpp
idlehomescreen/xmluicontroller/src/xmluicontroller.cpp
idlehomescreen/xmluirendering/ecomelement/xndomvisitor/inc/xnliteral.h
idlehomescreen/xmluirendering/ecomelement/xndomvisitor/src/xndomvisitor.cpp
idlehomescreen/xmluirendering/renderingplugins/xnanimationfactory/inc/xnanimationadapter.h
idlehomescreen/xmluirendering/renderingplugins/xnanimationfactory/src/xnanimationadapter.cpp
idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockadapter.cpp
idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockcontrol.cpp
idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewstickeradapter.cpp
idlehomescreen/xmluirendering/renderingplugins/xnpopupfactory/group/xnpopupfactory.mmp
idlehomescreen/xmluirendering/renderingplugins/xnpopupfactory/inc/xnpopupadapter.h
idlehomescreen/xmluirendering/renderingplugins/xnpopupfactory/src/xnpopupadapter.cpp
idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/inc/xntexteditoradapter.h
idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditoradapter.cpp
idlehomescreen/xmluirendering/renderingplugins/xntextfactory/src/xntextadapter.cpp
idlehomescreen/xmluirendering/uiengine/bwins/xn3layoutengineu.def
idlehomescreen/xmluirendering/uiengine/eabi/xn3layoutengineu.def
idlehomescreen/xmluirendering/uiengine/group/xnlayoutengine.mmp
idlehomescreen/xmluirendering/uiengine/inc/xnappuiadapterimpl.h
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/xneffectmanager.h
idlehomescreen/xmluirendering/uiengine/inc/xnfocuscontrol.h
idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.h
idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.inl
idlehomescreen/xmluirendering/uiengine/inc/xnuistatelistener.h
idlehomescreen/xmluirendering/uiengine/inc/xnviewadapter.h
idlehomescreen/xmluirendering/uiengine/inc/xnviewdata.h
idlehomescreen/xmluirendering/uiengine/inc/xnwidgetextensionadapter.h
idlehomescreen/xmluirendering/uiengine/src/xnappuiadapter.cpp
idlehomescreen/xmluirendering/uiengine/src/xnappuiadapterimpl.cpp
idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp
idlehomescreen/xmluirendering/uiengine/src/xnbgcontrol.cpp
idlehomescreen/xmluirendering/uiengine/src/xncomposer.cpp
idlehomescreen/xmluirendering/uiengine/src/xncontroladapterimpl.cpp
idlehomescreen/xmluirendering/uiengine/src/xneditmode.cpp
idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp
idlehomescreen/xmluirendering/uiengine/src/xneffectmanager.cpp
idlehomescreen/xmluirendering/uiengine/src/xnfocuscontrol.cpp
idlehomescreen/xmluirendering/uiengine/src/xnkeyeventdispatcher.cpp
idlehomescreen/xmluirendering/uiengine/src/xnlistquerydialogadapter.cpp
idlehomescreen/xmluirendering/uiengine/src/xnnode.cpp
idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp
idlehomescreen/xmluirendering/uiengine/src/xnnodepluginif.cpp
idlehomescreen/xmluirendering/uiengine/src/xnodtparser.cpp
idlehomescreen/xmluirendering/uiengine/src/xnplugindata.cpp
idlehomescreen/xmluirendering/uiengine/src/xnpopupcontroladapter.cpp
idlehomescreen/xmluirendering/uiengine/src/xnrootdata.cpp
idlehomescreen/xmluirendering/uiengine/src/xnuiengine.rss
idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp
idlehomescreen/xmluirendering/uiengine/src/xnuienginepluginif.cpp
idlehomescreen/xmluirendering/uiengine/src/xnuistatelistener.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/src/mmgui.cpp
menufw/menufwui/mmwidgets/src/mmwidgetcontainer.cpp
menufw/menusuites/foldersuite/data/matrixmenudata.xml
taskswitcher/contextengine/tsfswpreviewprovider/inc/previewmsg.h
taskswitcher/contextengine/tsfswpreviewprovider/inc/tspreviewobserver.h
taskswitcher/contextengine/tsfswpreviewprovider/inc/tspropertylistener.h
taskswitcher/contextengine/tsfswpreviewprovider/src/tspreviewproviderclient.cpp
taskswitcher/contextengine/tsfswpreviewprovider/src/tspropertylistener.cpp
taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/inc/previewprovidercrp.h
taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/src/previewprovidercrp.cpp
taskswitcher/contextengine/tsfswserver/engine/group/tsfswengine.mmp
taskswitcher/contextengine/tsfswserver/engine/inc/tsfswengine.h
taskswitcher/contextengine/tsfswserver/engine/inc/tsfswidgetlist.h
taskswitcher/contextengine/tsfswserver/engine/src/tsfswengine.cpp
taskswitcher/contextengine/tsfswserver/engine/src/tsfswidgetlist.cpp
taskswitcher/taskswitcherui/taskswitcherapp/inc/tseventcontroler.h
taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h
taskswitcher/taskswitcherui/taskswitcherapp/inc/tsphysicsengine.h
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/tsphysicsengine.cpp
--- a/idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/manifest.dat	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/manifest.dat	Fri Mar 12 15:41:49 2010 +0200
@@ -25,7 +25,7 @@
     <!-- Name of the localization files -->
     <filedtd>desktopconfiguration.dtd</filedtd>
 
-    <multiinstance>2</multiinstance>
+    <multiinstance>unlimited</multiinstance>
 
     <description>&amp;qtn_desktop_configuration_desc;</description>
     <filelogo>skin(270501603 9361):mif(icon.mif 16384 16385)</filelogo>
--- a/idlehomescreen/data/qhd_tch/desktop_20026f4f/loc/desktopconfiguration.loc	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/desktop_20026f4f/loc/desktopconfiguration.loc	Fri Mar 12 15:41:49 2010 +0200
@@ -22,7 +22,7 @@
 #define qtn_desktop_configuration_name  "Shortcuts"
 
 // d: Shortcut widget description
-// l: listrow_wgtman_pane_t2
+// l: wgtman_list_pane_t1 
 // w:
 // r: TB9.2
 #define qtn_desktop_configuration_desc  "Quick access to your favorite applications from Home Screen."
--- a/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/37/onerow.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/37/onerow.css	Fri Mar 12 15:41:49 2010 +0200
@@ -21,6 +21,7 @@
     padding-left:8px;
     padding-right:8px;
     font-line-space: 15;
+    direction: ltr;
     text-align: right;
     text-overflow-mode: wrap;
     max-line-amount: 2;
--- a/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/50/onerow.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/50/onerow.css	Fri Mar 12 15:41:49 2010 +0200
@@ -21,6 +21,7 @@
     padding-left:8px;
     padding-right:8px;
     font-line-space: 15;
+    direction: ltr;
     text-align: right;
     text-overflow-mode: wrap;
     max-line-amount: 2;
--- a/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/57/onerow.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/57/onerow.css	Fri Mar 12 15:41:49 2010 +0200
@@ -21,6 +21,7 @@
     padding-left:8px;
     padding-right:8px;
     font-line-space: 15;
+    direction: ltr;
     text-align: right;
     text-overflow-mode: wrap;
     max-line-amount: 2;
--- a/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/94/onerow.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/94/onerow.css	Fri Mar 12 15:41:49 2010 +0200
@@ -21,6 +21,7 @@
     padding-left:8px;
     padding-right:8px;
     font-line-space: 15;
+    direction: ltr;
     text-align: right;
     text-overflow-mode: wrap;
     max-line-amount: 2;
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/group/bld.inf	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/group/bld.inf	Fri Mar 12 15:41:49 2010 +0200
@@ -23,8 +23,7 @@
 //********************************************************
 ../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/profile_2001cb7c/hsps/manifest.dat
 ../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/profile_2001cb7c/hsps/widgetconfiguration.xml
-// waiting for localization from platform
-//../hsps/00/profileconfiguration.dtd /epoc32/data/Z/resource/homescreen/profile_2001cb7c/hsps/profileconfiguration.dtd
+../hsps/00/profileconfiguration.dtd /epoc32/data/Z/resource/homescreen/profile_2001cb7c/hsps/profileconfiguration.dtd
 
 ../xuikon/00/profile.dat /epoc32/data/Z/resource/homescreen/profile_2001cb7c/xuikon/profile_2001cb7c.dat
 ../xuikon/00/profile.css /epoc32/data/Z/resource/homescreen/profile_2001cb7c/xuikon/profile.css
@@ -45,8 +44,7 @@
 //*****************************
 // export localizable loc files (engineering versions)
 ../loc/profilewidget.loc    APP_LAYER_LOC_EXPORT_PATH(profilewidget.loc)
-// waiting for localization from platform
-//../loc/profileconfiguration.loc    APP_LAYER_LOC_EXPORT_PATH(profileconfiguration.loc)
+../loc/profileconfiguration.loc    APP_LAYER_LOC_EXPORT_PATH(profileconfiguration.loc)
 
 // Support for S60 builds
 //***********************
@@ -61,6 +59,7 @@
 START EXTENSION tools/dtd
 OPTION SWITCH_LOC_FILE_NAME profile_2001cb7c
 OPTION DTD_TYPE widget
+OPTION LOC_FOLDERS yes
 END
 
 
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/hsps/00/manifest.dat	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/hsps/00/manifest.dat	Fri Mar 12 15:41:49 2010 +0200
@@ -14,22 +14,17 @@
 
     <configurationuid>0x2001cb7c</configurationuid>
 
-    <!-- Name of the localization files 
-    waiting for localization from platform
     <filedtd>profileconfiguration.dtd</filedtd>
+    
     <fullname>&amp;qtn_profile_configuration_name;</fullname>
-    <description>&amp;qtn_profile_configuration_desc;</description>
-    -->
-    
-    <!-- description -->
-    <fullname>profilename waits loc</fullname>
     <shortname>profile</shortname>
     <version>1.0</version>
 
+    <!-- description -->
+    <description>&amp;qtn_profile_configuration_desc;</description>
+    
     <!-- configuration -->
     <filexml>widgetconfiguration.xml</filexml>
-
-    <description>profiledesc waits localization from platform</description>
    
     <filelogo>skin(270501603 9360):mif(icon.mif 16384 16385)</filelogo>
     <!-- Locale specific resources -->
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/hsps/00/widgetconfiguration.xml	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/hsps/00/widgetconfiguration.xml	Fri Mar 12 15:41:49 2010 +0200
@@ -1,9 +1,5 @@
 <configuration>
     <control>
-        <settings>
-          <item id="profilewidget" name="ContentSource">
-            <property  name="removable" value="false"/>
-          </item>
-        </settings>
+        <settings/>
     </control>
 </configuration>
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/loc/profileconfiguration.loc	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/loc/profileconfiguration.loc	Fri Mar 12 15:41:49 2010 +0200
@@ -23,7 +23,7 @@
 #define qtn_profile_configuration_name  "Time & profile"
 
 // d: profile widget description
-// l: listrow_wgtman_pane_t2
+// l: wgtman_list_pane_t1 
 // w:
 // r: TB9.2
 #define qtn_profile_configuration_desc  "Quick access to time, date and change profile."
\ No newline at end of file
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/rom/profilewidget_customer.iby	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/rom/profilewidget_customer.iby	Fri Mar 12 15:41:49 2010 +0200
@@ -23,6 +23,7 @@
 
 // Enabled by DTD-localization tools, language specific
 data=ZPRIVATE\200159c0\install\profile_2001cb7c\xuikon\00\profile.o0000 \private\200159c0\install\profile_2001cb7c\xuikon\00\profile.o0000
+data=ZPRIVATE\200159c0\install\profile_2001cb7c\hsps\00\profileconfiguration.dtd \private\200159c0\install\profile_2001cb7c\hsps\00\profileconfiguration.dtd
 
 #endif // __LAYOUT_360_640_TOUCH || __LAYOUT_640_360_TOUCH
 
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/rom/profilewidget_resources.iby	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/rom/profilewidget_resources.iby	Fri Mar 12 15:41:49 2010 +0200
@@ -23,6 +23,7 @@
 
 data=ZPRIVATE\200159c0\install\profile_2001cb7c\xuikon\00\profile.o0000 \private\200159c0\install\profile_2001cb7c\xuikon\00\profile.o0000
 data=ZPRIVATE\200159c0\install\profile_2001cb7c\hsps\00\icon.mif \private\200159c0\install\profile_2001cb7c\hsps\00\icon.mif
+data=ZPRIVATE\200159c0\install\profile_2001cb7c\hsps\00\profileconfiguration.dtd \private\200159c0\install\profile_2001cb7c\hsps\00\profileconfiguration.dtd
 
 #endif // __LAYOUT_360_640_TOUCH || __LAYOUT_640_360_TOUCH
 
Binary file idlehomescreen/data/qhd_tch/root_2001f482/conf/root2001f482.confml has changed
--- a/idlehomescreen/data/qhd_tch/root_2001f482/hsps/00/rootconfiguration.xml	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/root_2001f482/hsps/00/rootconfiguration.xml	Fri Mar 12 15:41:49 2010 +0200
@@ -1,14 +1,12 @@
-<configuration>  
-  <!-- name = localized name e.g. "classic theme" -->
-  <control>
-      <plugins>
-          <plugin uid="0x2001f48b"/>
-          <plugin uid="0x2001f48b"/>
-          <plugin uid="0x2001f48b"/>
-          <plugin uid="0x2001f48b"/>
-          <plugin uid="0x2001f48b"/>
-          <plugin uid="0x2001f48b"/>
-      </plugins>
-      <settings/>
-  </control>
+<?xml version="1.0" encoding="UTF-8"?>
+
+<configuration max_child="3" xmlns:xi="http://www.w3.org/2001/xinclude">
+    <control>
+        <plugins>
+            <plugin uid="0x2001f48b" locking_status="locked"/>
+            <plugin uid="0x20026f50" locking_status="none"/>
+            <plugin uid="0x20026f50" locking_status="none"/>
+        </plugins>
+        <settings/>
+    </control>
 </configuration>
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/hsps/00/templateviewconfiguration.xml	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/hsps/00/templateviewconfiguration.xml	Fri Mar 12 15:41:49 2010 +0200
@@ -1,22 +1,23 @@
-<configuration>
-  <control>
-    <settings>
-      <item id="hs_qhd_tch_templateview">
-        <property name="use_empty_widget" value="true"/>
-      </item>
-      <item id="wallpaper">
-        <property name="path" value=""/>
-      </item>      
-    </settings>  
-    <plugins>
-      <plugin uid="0x2001cb7c"/>
-      <plugin uid="0x2001f47f"/>
-      <plugin uid="0x2001f47f"/>
-      <plugin uid="0x2001f47f"/>
-      <plugin uid="0x2001f47f"/>
-      <plugin uid="0x2001f47f"/>
-    </plugins>
-    <settings/>
-  </control>
+<?xml version="1.0" encoding="UTF-8"?>
 
+<configuration max_child="6" xmlns:xi="http://www.w3.org/2001/xinclude">
+    <control>
+        <settings>
+            <item id="hs_qhd_tch_templateview">
+                <property name="use_empty_widget" value="true"/>
+            </item>
+            <item id="wallpaper">
+                <property name="path" value=""/>
+            </item>      
+        </settings>  
+        <plugins>
+            <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
+            <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
+            <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
+            <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
+            <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
+            <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
+        </plugins>
+        <settings/>
+    </control>
 </configuration>
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.css	Fri Mar 12 15:41:49 2010 +0200
@@ -11,7 +11,7 @@
 box#plugins_container
 {
     direction: ltr;
-    block-progression: tb;
+    block-progression: rl;
     padding-top: 3px;
 }
 
@@ -29,11 +29,6 @@
     nav-index: appearance;
 }
 
-plugin:edit
-{
-    background-color:"SKIN(270501603 8582)";
-}
-
 image.widget_indication
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.xml	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/templateview.xml	Fri Mar 12 15:41:49 2010 +0200
@@ -132,7 +132,6 @@
             <menuitemgrouping>
                 <!-- These items are shown when content is visible -->
                 <menuitemgroup id="Menu/NormalMode">
-                    <property name="hs_widget_catalog"/>
                     <property name="hs_edit_widgets"/>
                     <property name="hs_set_online"/>
                     <property name="hs_set_offline"/>
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/37/templateview.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/37/templateview.css	Fri Mar 12 15:41:49 2010 +0200
@@ -11,7 +11,7 @@
 box#plugins_container
 {
     direction: rtl;
-    block-progression: tb;
+    block-progression: rl;
     padding-top: 3px;
 }
 
@@ -23,18 +23,12 @@
     margin-bottom: 4px;
     margin-right: 5px;
     margin-left: 5px;
-    background-color: "SKIN(268458534 9916)";
 
     _s60-longtap: true;
 
     nav-index: appearance;
 }
 
-plugin:edit
-{
-    background-color:"SKIN(270501603 8582)";
-}
-
 image.widget_indication
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/50/templateview.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/50/templateview.css	Fri Mar 12 15:41:49 2010 +0200
@@ -11,7 +11,7 @@
 box#plugins_container
 {
     direction: rtl;
-    block-progression: tb;
+    block-progression: rl;
     padding-top: 3px;
 }
 
@@ -23,18 +23,12 @@
     margin-bottom: 4px;
     margin-right: 5px;
     margin-left: 5px;
-    background-color: "SKIN(268458534 9916)";
 
     _s60-longtap: true;
 
     nav-index: appearance;
 }
 
-plugin:edit
-{
-    background-color:"SKIN(270501603 8582)";
-}
-
 image.widget_indication
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/57/templateview.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/57/templateview.css	Fri Mar 12 15:41:49 2010 +0200
@@ -11,7 +11,7 @@
 box#plugins_container
 {
     direction: rtl;
-    block-progression: tb;
+    block-progression: rl;
     padding-top: 3px;
 }
 
@@ -23,18 +23,12 @@
     margin-bottom: 4px;
     margin-right: 5px;
     margin-left: 5px;
-    background-color: "SKIN(268458534 9916)";
 
     _s60-longtap: true;
 
     nav-index: appearance;
 }
 
-plugin:edit
-{
-    background-color:"SKIN(270501603 8582)";
-}
-
 image.widget_indication
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/94/templateview.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/94/templateview.css	Fri Mar 12 15:41:49 2010 +0200
@@ -11,7 +11,7 @@
 box#plugins_container
 {
     direction: rtl;
-    block-progression: tb;
+    block-progression: rl;
     padding-top: 3px;
 }
 
@@ -23,18 +23,12 @@
     margin-bottom: 4px;
     margin-right: 5px;
     margin-left: 5px;
-    background-color: "SKIN(268458534 9916)";
 
     _s60-longtap: true;
 
     nav-index: appearance;
 }
 
-plugin:edit
-{
-    background-color:"SKIN(270501603 8582)";
-}
-
 image.widget_indication
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/37/threerows.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/37/threerows.css	Fri Mar 12 15:41:49 2010 +0200
@@ -25,6 +25,7 @@
 {
     padding-left:8px;
     padding-right:8px;
+    direction: ltr;
     text-align: right;
     font-family: EAknLogicalFontSecondaryFont;
     font-size: 23px;
--- a/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/50/threerows.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/50/threerows.css	Fri Mar 12 15:41:49 2010 +0200
@@ -25,6 +25,7 @@
 {
     padding-left:8px;
     padding-right:8px;
+    direction: ltr;
     text-align: right;
     font-family: EAknLogicalFontSecondaryFont;
     font-size: 23px;
--- a/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/57/threerows.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/57/threerows.css	Fri Mar 12 15:41:49 2010 +0200
@@ -25,6 +25,7 @@
 {
     padding-left:8px;
     padding-right:8px;
+    direction: ltr;
     text-align: right;
     font-family: EAknLogicalFontSecondaryFont;
     font-size: 23px;
--- a/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/94/threerows.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/94/threerows.css	Fri Mar 12 15:41:49 2010 +0200
@@ -25,6 +25,7 @@
 {
     padding-left:8px;
     padding-right:8px;
+    direction: ltr;
     text-align: right;
     font-family: EAknLogicalFontSecondaryFont;
     font-size: 23px;
--- a/idlehomescreen/data/qhd_tch/threetextrows_2001f487/xuikon/37/threetextrows.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/threetextrows_2001f487/xuikon/37/threetextrows.css	Fri Mar 12 15:41:49 2010 +0200
@@ -2,6 +2,7 @@
 {
     padding-left:8px;
     padding-right:8px;
+    direction: ltr;
     text-align: right;
     font-family: EAknLogicalFontSecondaryFont;
     font-size: 23px;
--- a/idlehomescreen/data/qhd_tch/threetextrows_2001f487/xuikon/50/threetextrows.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/threetextrows_2001f487/xuikon/50/threetextrows.css	Fri Mar 12 15:41:49 2010 +0200
@@ -2,6 +2,7 @@
 {
     padding-left:8px;
     padding-right:8px;
+    direction: ltr;
     text-align: right;
     font-family: EAknLogicalFontSecondaryFont;
     font-size: 23px;
--- a/idlehomescreen/data/qhd_tch/threetextrows_2001f487/xuikon/57/threetextrows.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/threetextrows_2001f487/xuikon/57/threetextrows.css	Fri Mar 12 15:41:49 2010 +0200
@@ -2,6 +2,7 @@
 {
     padding-left:8px;
     padding-right:8px;
+    direction: ltr;
     text-align: right;
     font-family: EAknLogicalFontSecondaryFont;
     font-size: 23px;
--- a/idlehomescreen/data/qhd_tch/threetextrows_2001f487/xuikon/94/threetextrows.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/threetextrows_2001f487/xuikon/94/threetextrows.css	Fri Mar 12 15:41:49 2010 +0200
@@ -2,6 +2,7 @@
 {
     padding-left:8px;
     padding-right:8px;
+    direction: ltr;
     text-align: right;
     font-family: EAknLogicalFontSecondaryFont;
     font-size: 23px;
--- a/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/37/tworows.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/37/tworows.css	Fri Mar 12 15:41:49 2010 +0200
@@ -26,6 +26,7 @@
     padding-right:8px;
     padding-left:8px;
     padding-top:8px;
+    direction: ltr;
     text-align: right;
     font-family: EAknLogicalFontSecondaryFont;
     font-size: 23px;
--- a/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/50/tworows.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/50/tworows.css	Fri Mar 12 15:41:49 2010 +0200
@@ -26,6 +26,7 @@
     padding-right:8px;
     padding-left:8px;
     padding-top:8px;
+    direction: ltr;
     text-align: right;
     font-family: EAknLogicalFontSecondaryFont;
     font-size: 23px;
--- a/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/57/tworows.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/57/tworows.css	Fri Mar 12 15:41:49 2010 +0200
@@ -26,6 +26,7 @@
     padding-right:8px;
     padding-left:8px;
     padding-top:8px;
+    direction: ltr;
     text-align: right;
     font-family: EAknLogicalFontSecondaryFont;
     font-size: 23px;
--- a/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/94/tworows.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/94/tworows.css	Fri Mar 12 15:41:49 2010 +0200
@@ -26,6 +26,7 @@
     padding-right:8px;
     padding-left:8px;
     padding-top:8px;
+    direction: ltr;
     text-align: right;
     font-family: EAknLogicalFontSecondaryFont;
     font-size: 23px;
Binary file idlehomescreen/data/qhd_tch/view_2001f48b/conf/view2001f48b.confml has changed
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/hsps/00/viewconfiguration.xml	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/hsps/00/viewconfiguration.xml	Fri Mar 12 15:41:49 2010 +0200
@@ -1,22 +1,23 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
 <configuration max_child="6" xmlns:xi="http://www.w3.org/2001/xinclude">
-<control>
-<settings>
-<item id="hs_qhd_tch_view">
-<property name="use_empty_widget" value="true"/>
-</item>
-<item id="wallpaper">
-<property name="path" value=" "/>
-</item>
-</settings>
-<plugins>
-<plugin uid="0x2001CB7C" bundle_id="0" template_id="0" locking_status="none"/>
-<plugin uid="0x20026f4f" bundle_id="0" template_id="0" locking_status="none"/>
-<plugin uid="0x10207c18" bundle_id="0" template_id="0" locking_status="none"/>
-<plugin uid="0x2001f481" bundle_id="0" template_id="0" locking_status="none"/>
-<plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
-<plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
-</plugins>
-</control>
+    <control>
+        <settings>
+            <item id="hs_qhd_tch_view">
+                <property name="use_empty_widget" value="true"/>
+            </item>
+            <item id="wallpaper">
+                <property name="path" value=""/>
+            </item>
+        </settings>
+        <plugins>
+            <plugin uid="0x2001cb7c" bundle_id="0" template_id="0" locking_status="locked"/>
+            <plugin uid="0x20026f4f" bundle_id="0" template_id="0" locking_status="none"/>
+            <plugin uid="0x10207c18" bundle_id="0" template_id="0" locking_status="none"/>
+            <plugin uid="0x2001f481" bundle_id="0" template_id="0" locking_status="none"/>
+            <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
+            <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
+        </plugins>
+        <settings/>
+    </control>
 </configuration>
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.css	Fri Mar 12 15:41:49 2010 +0200
@@ -11,7 +11,7 @@
 box#plugins_container
 {
     direction: ltr;
-    block-progression: tb;
+    block-progression: rl;
     padding-top: 3px;
 }
 
@@ -29,11 +29,6 @@
     nav-index: appearance;
 }
 
-plugin:edit
-{
-    background-color:"SKIN(270501603 8582)";
-}
-
 image.widget_indication
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.xml	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.xml	Fri Mar 12 15:41:49 2010 +0200
@@ -132,7 +132,6 @@
             <menuitemgrouping>
                 <!-- These items are shown when content is visible -->
                 <menuitemgroup id="Menu/NormalMode">
-                    <property name="hs_widget_catalog"/>
                     <property name="hs_edit_widgets"/>
                     <property name="hs_set_online"/>
                     <property name="hs_set_offline"/>
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/37/View.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/37/View.css	Fri Mar 12 15:41:49 2010 +0200
@@ -11,7 +11,7 @@
 box#plugins_container
 {
     direction: rtl;
-    block-progression: tb;
+    block-progression: rl;
     padding-top: 3px;
 }
 
@@ -27,11 +27,6 @@
     nav-index: appearance;
 }
 
-plugin:edit
-{
-    background-color:"SKIN(270501603 8582)";
-}
-
 image.widget_indication
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/50/View.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/50/View.css	Fri Mar 12 15:41:49 2010 +0200
@@ -11,7 +11,7 @@
 box#plugins_container
 {
     direction: rtl;
-    block-progression: tb;
+    block-progression: rl;
     padding-top: 3px;
 }
 
@@ -27,11 +27,6 @@
     nav-index: appearance;
 }
 
-plugin:edit
-{
-    background-color:"SKIN(270501603 8582)";
-}
-
 image.widget_indication
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/57/View.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/57/View.css	Fri Mar 12 15:41:49 2010 +0200
@@ -11,7 +11,7 @@
 box#plugins_container
 {
     direction: rtl;
-    block-progression: tb;
+    block-progression: rl;
     padding-top: 3px;
 }
 
@@ -27,11 +27,6 @@
     nav-index: appearance;
 }
 
-plugin:edit
-{
-    background-color:"SKIN(270501603 8582)";
-}
-
 image.widget_indication
 {
     display: none;
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/94/View.css	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/94/View.css	Fri Mar 12 15:41:49 2010 +0200
@@ -11,7 +11,7 @@
 box#plugins_container
 {
     direction: rtl;
-    block-progression: tb;
+    block-progression: rl;
     padding-top: 3px;
 }
 
@@ -27,11 +27,6 @@
     nav-index: appearance;
 }
 
-plugin:edit
-{
-    background-color:"SKIN(270501603 8582)";
-}
-
 image.widget_indication
 {
     display: none;
Binary file idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.confml has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/conf/view200286e4.gcfml	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,138 @@
+<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"/>
+	<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>
+				<control>
+				  <settings>
+				    <item>
+					    <xsl:attribute name="id"><xsl:value-of select="HomescreenPlugins/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>
+								</property>
+						</item> 
+					  <xsl:choose>
+						  <xsl:when test="HomescreenPlugins/Background = 1">
+							  <item>
+								  <xsl:attribute name="id"><xsl:value-of select="HomescreenPlugins/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>
+								    </property>
+								</item>     
+				      </xsl:when>
+				      <xsl:when test="HomescreenPlugins/Background = 2">
+						    <item>
+								  <xsl:attribute name="id"><xsl:value-of select="HomescreenPlugins/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>
+								    </property>
+								</item>     
+				      </xsl:when>
+				      <xsl:otherwise>
+				      </xsl:otherwise>
+				    </xsl:choose>
+				  </settings>
+					<plugins>
+						<xsl:for-each select="HomescreenPlugins/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>
+								<xsl:attribute name="template_id"><xsl:value-of select="TemplateIdentifier"/></xsl:attribute>
+								<xsl:attribute name="locking_status"><xsl:value-of select="LockingStatus"/></xsl:attribute>
+								<xsl:if test="ShortcutWidget = 1">
+								    <intial_settings>
+								      <settings>
+								        <xsl:if test="Customize1Shortcut = 1">
+								          <item>
+								          <xsl:attribute name="id"><xsl:value-of select="Shortcut1ItemId"/></xsl:attribute>
+								          <xsl:attribute name="name"><xsl:value-of select="Shortcut1ItemName"/></xsl:attribute>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameType"/></xsl:attribute>								             
+  							              <xsl:attribute name="value"><xsl:value-of select="Shortcut1Type"/></xsl:attribute>
+								            </property>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameUid"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut1Uid"/></xsl:attribute>
+								            </property>
+				                  </item>
+				                </xsl:if>
+				                <xsl:if test="Customize2Shortcut = 1">
+				                  <item>
+				                  <xsl:attribute name="id"><xsl:value-of select="Shortcut2ItemId"/></xsl:attribute>
+								          <xsl:attribute name="name"><xsl:value-of select="Shortcut2ItemName"/></xsl:attribute>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameType"/></xsl:attribute> 
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut2Type"/></xsl:attribute>
+								            </property>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameUid"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut2Uid"/></xsl:attribute>
+								            </property>
+				                  </item>
+				                </xsl:if>
+				                <xsl:if test="Customize3Shortcut = 1">
+				                  <item>
+				                  <xsl:attribute name="id"><xsl:value-of select="Shortcut3ItemId"/></xsl:attribute>
+								          <xsl:attribute name="name"><xsl:value-of select="Shortcut3ItemName"/></xsl:attribute>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameType"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut3Type"/></xsl:attribute>
+								            </property>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameUid"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut3Uid"/></xsl:attribute>
+								            </property>
+				                  </item>
+				                </xsl:if>
+				                <xsl:if test="Customize4Shortcut = 1">
+				                  <item>
+				                  <xsl:attribute name="id"><xsl:value-of select="Shortcut4ItemId"/></xsl:attribute>
+								          <xsl:attribute name="name"><xsl:value-of select="Shortcut4ItemName"/></xsl:attribute>
+								            <property>
+								             <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameType"/></xsl:attribute>
+								             <xsl:attribute name="value"><xsl:value-of select="Shortcut4Type"/></xsl:attribute>
+								            </property>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameUid"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut4Uid"/></xsl:attribute>
+								            </property>
+								          </item>
+				                </xsl:if>
+				              </settings>
+				            </intial_settings>
+			            </xsl:if>
+							</plugin>
+						</xsl:for-each>
+					</plugins>
+				</control>
+			</configuration>
+		</xsl:template>
+	</xsl:stylesheet>
+</file>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/group/bld.inf	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,77 @@
+/*
+* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* The information required for building
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+// Support for productization and Carbide.Ui customization
+//********************************************************
+../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/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
+../xuikon/00/View.xml /epoc32/data/Z/resource/homescreen/view_200286e4/xuikon/view.xml
+../xuikon/00/View.dtd /epoc32/data/Z/resource/homescreen/view_200286e4/xuikon/view.dtd
+
+// Arabic languages
+//*****************
+../xuikon/37/View.css /epoc32/data/Z/resource/homescreen/view_200286e4/xuikon/37/view.css
+../xuikon/50/View.css /epoc32/data/Z/resource/homescreen/view_200286e4/xuikon/50/view.css
+../xuikon/57/View.css /epoc32/data/Z/resource/homescreen/view_200286e4/xuikon/57/view.css
+../xuikon/94/View.css /epoc32/data/Z/resource/homescreen/view_200286e4/xuikon/94/view.css
+
+
+//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)
+
+// Support for S60 localization
+//*****************************
+#ifndef __VIEW_LOC__
+#define __VIEW_LOC__
+../loc/view.loc APP_LAYER_LOC_EXPORT_PATH(view.loc)
+#endif // __VIEW_LOC__
+
+// Support for S60 builds
+//***********************
+../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)
+
+
+// Dtd-localization
+//*****************
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME view_200286e4
+OPTION DTD_TYPE widget
+END
+
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+
+//  End of File  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/hsps/00/manifest.dat	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+
+<package version="1.0">
+
+
+
+  <family>qhd_tch</family>
+
+
+
+  <type>view</type>
+
+
+
+  <!-- interface uid -->
+
+	<interfaceuid>0x2001f48a</interfaceuid>
+
+
+
+	<!-- vendor uid -->
+
+	<provideruid>0x101fb657</provideruid>
+
+
+
+	<!-- configuration uid -->
+
+	<configurationuid>0x200286e4</configurationuid>
+
+
+
+	<!-- description -->
+
+	<fullname>&amp;qtn_view_200286e4_name;</fullname>
+
+	<shortname>ai3_view2</shortname>
+
+	<version>1.0</version>
+
+
+
+	<!-- configuration -->
+
+	<filexml>viewconfiguration.xml</filexml>
+
+	
+
+  <!-- Locale specific resources -->
+
+  <localization>
+
+    <fileresource>view.o0000</fileresource>
+
+  </localization>
+
+
+
+</package>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/hsps/00/viewconfiguration.xml	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<configuration max_child="6" xmlns:xi="http://www.w3.org/2001/xinclude">
+<control>
+<settings>
+<item id="hs_qhd_tch_view">
+<property name="use_empty_widget" value="true"/>
+</item>
+<item id="wallpaper">
+<property name="path" value=" "/>
+</item>
+</settings>
+<plugins>
+<plugin uid="0x2001CB7C" bundle_id="0" template_id="0" locking_status="none"/>
+<plugin uid="0x20026f4f" bundle_id="0" template_id="0" locking_status="none"/>
+<plugin uid="0x10207c18" bundle_id="0" template_id="0" locking_status="none"/>
+<plugin uid="0x2001f481" bundle_id="0" template_id="0" locking_status="none"/>
+<plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
+<plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
+</plugins>
+</control>
+</configuration>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/loc/View.loc	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,268 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Localization strings for project Active Idle 3
+*
+*/
+
+// d: Help
+// l: list_single_pane_t1_cp2
+// w: 
+// r: TB9.2
+#define qtn_options_help "Help"
+
+// d: Open
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define qtn_msk_open "Open"
+
+// d: Options
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define text_softkey_done "Done"
+
+// d: Open 
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_options_open "Open"
+
+// d: Back
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define text_softkey_back "Back"
+
+// d: Empty string
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define shortcut_emptycaption " "
+
+// d: Add page
+// l: list_single_pane_t1_cp2
+// w: 
+// r: TB9.2
+#define qtn_hs_add_page "Add page"
+
+// d: Select
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_options_select_widget "Select"
+
+// d: Add content
+// l: list_single_pane_t1_cp2
+// w: 
+// r: TB9.2
+#define qtn_hs_add_widget "Add content"
+
+// d: Access the widget catalog
+// l: list_single_pane_t1_cp2
+// w: 
+// r: TB9.2
+#define qtn_hs_widget_catalog "Widget catalog"
+
+// d: Search
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define text_softkey_search "Search"
+
+// d: Options
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define text_softkey_options "Options"
+
+// d: Refresh 
+// l: list_single_pane_t1_cp2/opt3
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_widget "Refresh"
+
+// d: Focused widget
+// l: list_single_popup_submenu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_one_widget "One"
+
+// d: All widgets 
+// l: list_single_popup_submenu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_all_widgets "All"
+
+// d: Remove content 
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_remove_widget "Remove content"
+
+// d: Hide the content 
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_hide_widgets "Hide the content"
+
+// d: Edit contents 
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_edit_content "Edit content"
+
+// d: Change Wallpaper
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_wallpaper "Change Wallpaper"
+
+// d: Change Shortcut Settings
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_shortcut_settings "Change Shortcut Settings"
+
+// d: Widget settings
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_widget_settings "Widget settings"
+
+// d: Show widgets
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_show_widgets "Show the content"
+
+// d: Change Home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_page "Change Home screen page"
+
+// d: Change
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define qtn_msk_change "Change"
+
+// d: Show all profiles in Profiles widget
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_show_profiles "Show all profiles"
+
+// d: Right selection key
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_set_right_idle_softkey "Right selection key"
+
+// d: Select
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define text_softkey_select "Select"
+
+// d: Cancel
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define text_softkey_cancel "Cancel"
+
+// d: Options menu item which switches home to online. Web widgets get updates from network.
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_online "Switch Home to online"
+
+// d: Options menu item which switches home to offline. Web widgets are not updated
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_offline "Switch Home to offline"
+
+// d: String which is shown in long tap menu of Home screen if tapped widget has settings
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_settings "Settings"
+
+// d: String which is shown in long tap menu of Home screen if tapped some widget which is removable
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_remove_element "Remove"
+
+// d: String which is shown in long tap menu of Home screen if tapped empty space in home screen
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_add "Add content"
+
+// d: String which is shown in long tap menu of Home screen
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_change_longtap_wallpaper "Change wallpaper"
+
+// d: User can download new HS widgets. String is visible in add content list query
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_download_new_widgets "Download"
+
+// d: Changes focused widget
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_edit_replace "Replace"
+
+// d: deletes current home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_options_delete "Delete page"
+
+// d: creates new home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_options_new "New page"
+
+// d: view title in editing mode
+// l: title_pane_t2
+// w:
+// r: TB9.2
+#define qtn_hs_title_editing_view "Editing view"
+
+// d: Call
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define text_softkey_call "Call"
+
+// d: Added new option menu item to Edit mode for opening the widget catalog,
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_edit_widget_catalog "Widget Catalog"
+
+// d: Deletes the current Home screen page and focus goes to the next available Home screen page in Edit mode
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_edit_options_delete "Delete page"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/rom/view.iby	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* View widget HSPS-plugin IBY file.
+*
+*/
+
+#ifndef __AI3VIEW_200286E4_IBY__
+#define __AI3VIEW_200286E4_IBY__
+
+#if defined(__LAYOUT_360_640_TOUCH) || defined(__LAYOUT_640_360_TOUCH)
+
+// Enabled by DTD-localization tools
+data=ZPRIVATE\200159c0\install\view_200286e4\hsps\00\manifest.dat \private\200159c0\install\view_200286e4\hsps\00\manifest.dat
+
+#endif // __LAYOUT_360_640_TOUCH || __LAYOUT_640_360_TOUCH
+
+#endif // __AI3VIEW_200286E4_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/rom/view_customer.iby	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* View widget HSPS-plugin language specific IBY file.
+*
+*/
+
+#ifndef __AI3VIEW_200286E4_CUSTOMER_IBY__
+#define __AI3VIEW_200286E4_CUSTOMER_IBY__
+
+#if defined(__LAYOUT_360_640_TOUCH) || defined(__LAYOUT_640_360_TOUCH)
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\view_200286e4\xuikon\00\view.o0000 \private\200159c0\install\view_200286e4\xuikon\00\view.o0000
+
+#endif // __LAYOUT_360_640_TOUCH || __LAYOUT_640_360_TOUCH
+
+#endif // __AI3VIEW_2001F48B_CUSTOMER_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/rom/view_resources.iby	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* View widget HSPS-plugin language specific IBY file.
+*
+*/
+
+#ifndef __AI3VIEW_200286E4_RESOURCES_IBY__
+#define __AI3VIEW_200286E4_RESOURCES_IBY__
+
+#if defined(__LAYOUT_360_640_TOUCH) || defined(__LAYOUT_640_360_TOUCH)
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\view_200286e4\xuikon\00\view.o0000 \private\200159c0\install\view_200286e4\xuikon\00\view.o0000
+
+#endif // __LAYOUT_360_640_TOUCH || __LAYOUT_640_360_TOUCH
+
+#endif // __AI3VIEW_2001F48B_RESOURCES_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/rom/view_variant.iby	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* View widget HSPS-plugin variant specific IBY file.
+*
+*/
+
+#ifndef __AI3VIEW_200286E4_VARIANT_IBY__
+#define __AI3VIEW_200286E4_VARIANT_IBY__
+
+#if defined(__LAYOUT_360_640_TOUCH) || defined(__LAYOUT_640_360_TOUCH)
+
+// Enabled by variation tools, variant specific
+data=ZPRIVATE\200159c0\install\view_200286e4\hsps\00\viewconfiguration.xml \private\200159c0\install\view_200286e4\hsps\00\viewconfiguration.xml
+
+#endif // __LAYOUT_360_640_TOUCH || __LAYOUT_640_360_TOUCH
+
+#endif  // __AI3VIEW_2001F48B_VARIANT_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.css	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,89 @@
+view 
+{
+    direction: ltr;
+    block-progression: tb;
+    background-image: wallpaper;
+    swipe: true;
+
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+    direction: ltr;
+    block-progression: rl;
+    padding-top: 3px;
+}
+
+plugin.plugins
+{
+    height: 82px; 
+    width: 312px; 
+
+    margin-bottom: 4px;
+    margin-right: 5px;
+    margin-left: 5px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+plugin:edit
+{
+    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;
+}
+
+trigger#hs_popup_open_up
+{
+    display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+    display: block;
+}
+
+softkey#rsk
+{
+    _s60-longtap: true;
+    _s60-aspect-ratio: preserve;
+}
+
+softkey#msk_ltr
+{
+    display: block;
+}
+
+softkey#msk_rtl
+{
+    display: none;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.dat	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<data>
+    <AppUid>E029CF57</AppUid>
+    <Provideruid>101FB657</Provideruid>
+    <ThemeUid>11001234</ThemeUid>
+    <ThemeFullName>DemoView</ThemeFullName>
+    <ThemeShortName>view</ThemeShortName>
+    <ThemeVersion>1.0</ThemeVersion>
+    <FileXML>view.xml</FileXML>
+    <FileCSS>view.css</FileCSS>
+    <FileDTD>view.dtd</FileDTD>	
+
+</data>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.dtd	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,428 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+============================================================================
+<FileName: "View.dtd">
+<PartOf  : "AI3">
+
+<FileDescription: "Localization strings for AI3">
+<FileVersion    : >
+
+<Copyright:
+"Copyright (c) 2005 Nokia Corporation.
+This material, including documentation and any related
+computer programs, is protected by copyright controlled by
+Nokia Corporation. All rights are reserved. Copying,
+including reproducing, storing,  adapting or translating, any
+or all of this material requires the prior written consent of
+Nokia Corporation. This material also contains confidential
+information which may not be disclosed to others without the
+prior written consent of Nokia Corporation.">
+============================================================================
+-->
+
+<!--
+qtn_options_help.attributes
+qtn_options_help.layout "list_single_pane_t1_cp2"
+qtn_options_help.release "TB9.2"
+qtn_options_help.description "Help"
+qtn_options_help.grammar "Help"
+qtn_options_help.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_options_help "Help">
+
+<!--
+qtn_msk_open.attributes
+qtn_msk_open.layout "control_pane_t1/opt7"
+qtn_msk_open.release "TB9.2"
+qtn_msk_open.description "Open"
+qtn_msk_open.grammar "Open"
+qtn_msk_open.parents "control_pane"
+-->
+<!ENTITY qtn_msk_open "Open">
+
+<!--
+text_softkey_done.attributes
+text_softkey_done.layout "control_pane_t1/opt7"
+text_softkey_done.release "TB9.2"
+text_softkey_done.description "Done"
+text_softkey_done.grammar "Done"
+text_softkey_done.parents "control_pane"
+-->
+<!ENTITY text_softkey_done "Done">
+
+<!--
+qtn_options_open.attributes
+qtn_options_open.layout "list_single_pane_t1_cp2"
+qtn_options_open.release "TB9.2"
+qtn_options_open.description "Open"
+qtn_options_open.grammar "Open"
+qtn_options_open.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_options_open "Open">
+
+<!--
+text_softkey_back.attributes
+text_softkey_back.layout "control_pane_t1/opt7"
+text_softkey_back.release "TB9.2"
+text_softkey_back.description "Back text for SK2"
+text_softkey_back.parents "control_pane"
+-->
+<!ENTITY text_softkey_back "Back">
+
+<!--
+shortcut_EmptyCaption.attributes
+shortcut_EmptyCaption.layout "control_pane_t1/opt7"
+shortcut_EmptyCaption.release "TB9.2"
+shortcut_EmptyCaption.description "Empty shortcut"
+shortcut_EmptyCaption.parents "list_ai2_gene_pane"
+-->
+<!ENTITY shortcut_EmptyCaption " ">
+
+<!--
+qtn_hs_add_page.attributes
+qtn_hs_add_page.layout "list_single_pane_t1_cp2"
+qtn_hs_add_page.release "TB9.2"
+qtn_hs_add_page.description "Add page"
+qtn_hs_add_page.grammar "Add page"
+qtn_hs_add_page.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_add_page "Add page">
+
+<!--
+qtn_options_select_widget.attributes
+qtn_options_select_widget.layout "list_single_pane_t1_cp2"
+qtn_options_select_widget.release "TB9.2"
+qtn_options_select_widget.description "Select"
+qtn_options_select_widget.grammar "Select"
+qtn_options_select_widget.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_options_select_widget "Select">
+
+<!--
+qtn_hs_add_widget.attributes
+qtn_hs_add_widget.layout "list_single_pane_t1_cp2"
+qtn_hs_add_widget.release "TB9.2"
+qtn_hs_add_widget.description "Add content"
+qtn_hs_add_widget.grammar "Add content"
+qtn_hs_add_widget.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_add_widget "Add content">
+
+<!--
+qtn_hs_widget_catalog.attributes
+qtn_hs_widget_catalog.layout "list_single_pane_t1_cp2"
+qtn_hs_widget_catalog.release "TB9.2"
+qtn_hs_widget_catalog.description "Widget catalog"
+qtn_hs_widget_catalog.grammar "Widget catalog"
+qtn_hs_widget_catalog.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_widget_catalog "Widget catalog">
+
+<!--
+text_softkey_search.attributes
+text_softkey_search.layout "control_pane_t1/opt7"
+text_softkey_search.release "TB9.2"
+text_softkey_search.description "Search"
+text_softkey_search.grammar "Search"
+text_softkey_search.parents "control_pane"
+-->
+<!ENTITY text_softkey_search "Search">
+
+<!--
+text_softkey_options.attributes
+text_softkey_options.layout "control_pane_t1/opt7"
+text_softkey_options.release "TB9.2"
+text_softkey_options.description "Options"
+text_softkey_options.grammar "Options"
+text_softkey_options.parents "control_pane"
+-->
+<!ENTITY text_softkey_options "Options">
+
+<!--
+qtn_hs_refresh_widget.attributes
+qtn_hs_refresh_widget.layout "list_single_pane_t1_cp2/opt3"
+qtn_hs_refresh_widget.release "TB9.2"
+qtn_hs_refresh_widget.description "Refresh"
+qtn_hs_refresh_widget.grammar "Refresh"
+qtn_hs_refresh_widget.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_refresh_widget "Refresh">
+
+<!--
+qtn_hs_refresh_one_widget.attributes
+qtn_hs_refresh_one_widget.layout "list_single_popup_submenu_pane_t1"
+qtn_hs_refresh_one_widget.release "TB9.2"
+qtn_hs_refresh_one_widget.description "One"
+qtn_hs_refresh_one_widget.grammar "One"
+qtn_hs_refresh_one_widget.parents "list_single_popup_submenu_pane"
+-->
+<!ENTITY qtn_hs_refresh_one_widget "One">
+
+<!--
+qtn_hs_refresh_all_widgets.attributes
+qtn_hs_refresh_all_widgets.layout "list_single_popup_submenu_pane_t1"
+qtn_hs_refresh_all_widgets.release "TB9.2"
+qtn_hs_refresh_all_widgets.description "All"
+qtn_hs_refresh_all_widgets.grammar "All"
+qtn_hs_refresh_all_widgets.parents "list_single_popup_submenu_pane"
+-->
+<!ENTITY qtn_hs_refresh_all_widgets "All">
+
+<!--
+qtn_hs_remove_widget.attributes
+qtn_hs_remove_widget.layout "list_single_pane_t1_cp2"
+qtn_hs_remove_widget.release "TB9.2"
+qtn_hs_remove_widget.description "Remove content"
+qtn_hs_remove_widget.grammar "Remove content"
+qtn_hs_remove_widget.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_remove_widget "Remove content">
+
+<!--
+qtn_hs_hide_widgets.attributes
+qtn_hs_hide_widgets.layout "list_single_pane_t1_cp2"
+qtn_hs_hide_widgets.release "TB9.2"
+qtn_hs_hide_widgets.description "Hide the content"
+qtn_hs_hide_widgets.grammar "Hide the content"
+qtn_hs_hide_widgets.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_hide_widgets "Hide the content">
+
+<!--
+qtn_hs_edit_content.attributes
+qtn_hs_edit_content.layout "list_single_pane_t1_cp2"
+qtn_hs_edit_content.release "TB9.2"
+qtn_hs_edit_content.description "Edit contents"
+qtn_hs_edit_content.grammar "Edit contents"
+qtn_hs_edit_content.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_edit_content "Edit content">
+
+<!--
+qtn_hs_change_wallpaper.attributes
+qtn_hs_change_wallpaper.layout "list_single_pane_t1_cp2"
+qtn_hs_change_wallpaper.release "TB9.2"
+qtn_hs_change_wallpaper.description "Change Wallpaper"
+qtn_hs_change_wallpaper.grammar "Change Wallpaper"
+qtn_hs_change_wallpaper.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_change_wallpaper "Change Wallpaper">
+
+<!--
+qtn_hs_change_shortcut_settings.attributes
+qtn_hs_change_shortcut_settings.layout "list_single_pane_t1_cp2"
+qtn_hs_change_shortcut_settings.release "TB9.2"
+qtn_hs_change_shortcut_settings.description "Change Shortcut Settings"
+qtn_hs_change_shortcut_settings.grammar "Change Shortcut Settings"
+qtn_hs_change_shortcut_settings.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_change_shortcut_settings "Change Shortcut Settings">
+
+<!--
+qtn_hs_widget_settings.attributes
+qtn_hs_widget_settings.layout "list_single_pane_t1_cp2"
+qtn_hs_widget_settings.release "TB9.2"
+qtn_hs_widget_settings.description "Widget settings"
+qtn_hs_widget_settings.grammar "Widget settings"
+qtn_hs_widget_settings.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_widget_settings "Widget settings">
+
+<!--
+qtn_hs_show_widgets.attributes
+qtn_hs_show_widgets.layout "list_single_pane_t1_cp2"
+qtn_hs_show_widgets.release "TB9.2"
+qtn_hs_show_widgets.description "Show widgets"
+qtn_hs_show_widgets.grammar "Show widgets"
+qtn_hs_show_widgets.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_show_widgets "Show the content">
+
+<!--
+qtn_hs_change_page.attributes
+qtn_hs_change_page.layout "list_single_pane_t1_cp2"
+qtn_hs_change_page.release "TB9.2"
+qtn_hs_change_page.description "Change Home screen page"
+qtn_hs_change_page.grammar "Change Home screen page"
+qtn_hs_change_page.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_change_page "Change Home screen page">
+
+<!--
+qtn_msk_change.attributes
+qtn_msk_change.layout "control_pane_t1/opt7"
+qtn_msk_change.release "TB9.2"
+qtn_msk_change.description "Change"
+qtn_msk_change.grammar "Change"
+qtn_msk_change.parents "control_pane"
+-->
+<!ENTITY qtn_msk_change "Change">
+
+<!--
+qtn_hs_show_profiles.attributes
+qtn_hs_show_profiles.layout "list_single_pane_t1_cp2"
+qtn_hs_show_profiles.release "TB9.2"
+qtn_hs_show_profiles.description "Show all profiles"
+qtn_hs_show_profiles.grammar "Show all profiles"
+qtn_hs_show_profiles.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_show_profiles "Show all profiles">
+
+<!--
+qtn_set_right_idle_softkey.attributes
+qtn_set_right_idle_softkey.layout "list_single_pane_t1_cp2"
+qtn_set_right_idle_softkey.release "TB9.2"
+qtn_set_right_idle_softkey.description "Right selection key"
+qtn_set_right_idle_softkey.grammar "Right selection key"
+qtn_set_right_idle_softkey.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_set_right_idle_softkey "Right selection key">
+
+<!--
+text_softkey_select.attributes
+text_softkey_select.layout "control_pane_t1/opt7"
+text_softkey_select.release "TB9.2"
+text_softkey_select.description "Select"
+text_softkey_select.grammar "Select"
+text_softkey_select.parents "control_pane"
+-->
+<!ENTITY text_softkey_select "Select">
+
+<!--
+text_softkey_cancel.attributes
+text_softkey_cancel.layout "control_pane_t1/opt7"
+text_softkey_cancel.release "TB9.2"
+text_softkey_cancel.description "Cancel"
+text_softkey_cancel.grammar "Cancel"
+text_softkey_cancel.parents "control_pane"
+-->
+<!ENTITY text_softkey_cancel "Cancel">
+
+<!--
+qtn_hs_online.attributes
+qtn_hs_online.layout "list_single_pane_t1_cp2"
+qtn_hs_online.release "TB9.2"
+qtn_hs_online.description "Online"
+qtn_hs_online.grammar "Online"
+qtn_hs_online.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_online "Switch Home to online">
+
+<!--
+qtn_hs_offline.attributes
+qtn_hs_offline.layout "list_single_pane_t1_cp2"
+qtn_hs_offline.release "TB9.2"
+qtn_hs_offline.description "Offline"
+qtn_hs_offline.grammar "Offline"
+qtn_hs_offline.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_offline "Switch Home to offline">
+
+<!--
+qtn_hs_longtap_settings.attributes
+qtn_hs_longtap_settings.layout "list_single_touch_menu_pane_t1"
+qtn_hs_longtap_settings.release "TB9.2"
+qtn_hs_longtap_settings.description "String which is shown in long tap menu of Home screen if tapped widget has settings."
+qtn_hs_longtap_settings.parents "control_pane"
+-->
+<!ENTITY qtn_hs_longtap_settings "Settings">
+
+<!--
+qtn_hs_longtap_remove_element.attributes
+qtn_hs_longtap_remove_element.layout "list_single_touch_menu_pane_t1"
+qtn_hs_longtap_remove_element.release "TB9.2"
+qtn_hs_longtap_remove_element.description "String which is shown in long tap menu of Home screen if tapped some widget which is removable."
+qtn_hs_longtap_remove_element.parents "control_pane"
+-->
+<!ENTITY qtn_hs_longtap_remove_element "Remove">
+
+<!--
+qtn_hs_longtap_add.attributes
+qtn_hs_longtap_add.layout "list_single_touch_menu_pane_t1"
+qtn_hs_longtap_add.release "TB9.2"
+qtn_hs_longtap_add.description "String which is shown in long tap menu of Home screen if tapped empty space in home screen."
+qtn_hs_longtap_add.parents "control_pane"
+-->
+<!ENTITY qtn_hs_longtap_add  "Add content">
+
+<!--
+qtn_hs_change_longtap_wallpaper.attributes
+qtn_hs_change_longtap_wallpaper.layout "list_single_touch_menu_pane_t1"
+qtn_hs_change_longtap_wallpaper.release "TB9.2"
+qtn_hs_change_longtap_wallpaper.description "String which is shown in long tap menu of Home screen."
+qtn_hs_change_longtap_wallpaper.parents "control_pane"
+-->
+<!ENTITY qtn_hs_change_longtap_wallpaper "Change wallpaper">
+
+<!--
+qtn_hs_download_new_widgets.attributes
+qtn_hs_download_new_widgets.layout "list_single_pane_t1_cp2"
+qtn_hs_download_new_widgets.release "TB9.2"
+qtn_hs_download_new_widgets.description "User can download new HS widgets String is visible in add content list query"
+qtn_hs_download_new_widgets.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_download_new_widgets "Download">
+
+<!--
+qtn_hs_edit_replace.attributes
+qtn_hs_edit_replace.layout "list_single_touch_menu_pane_t1"
+qtn_hs_edit_replace.release "TB9.2"
+qtn_hs_edit_replace.description "Changes focused widget"
+qtn_hs_edit_replace.parents ""
+-->
+<!ENTITY qtn_hs_edit_replace "Replace">
+
+<!--
+qtn_hs_page_options_delete.attributes
+qtn_hs_page_options_delete.layout "list_single_pane_t1_cp2"
+qtn_hs_page_options_delete.release "TB9.2"
+qtn_hs_page_options_delete.description "deletes current home screen page"
+qtn_hs_page_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_page_options_delete "Delete page">
+
+<!--
+qtn_hs_page_options_new.attributes
+qtn_hs_page_options_new.layout "list_single_pane_t1_cp2"
+qtn_hs_page_options_new.release "TB9.2"
+qtn_hs_page_options_new.description "creates new home screen page"
+qtn_hs_page_options_new.parents ""
+-->
+<!ENTITY qtn_hs_page_options_new "New page">
+
+<!--
+qtn_hs_title_editing_view.attributes
+qtn_hs_title_editing_view.layout "title_pane_t2"
+qtn_hs_title_editing_view.release "TB9.2"
+qtn_hs_title_editing_view.description "view title in editing mode"
+qtn_hs_title_editing_view.parents ""
+-->
+<!ENTITY qtn_hs_title_editing_view "Editing view">
+
+<!--
+text_softkey_call.attributes
+text_softkey_call.layout "control_pane_t1/opt7"
+text_softkey_call.release "TB9.2"
+text_softkey_call.description "RSK caption call inactive"
+text_softkey_call.parents ""
+-->
+<!ENTITY text_softkey_call "Call">
+
+<!--
+qtn_hs_edit_widget_catalog.attributes
+qtn_hs_edit_widget_catalog.layout "list_single_pane_t1_cp2"
+qtn_hs_edit_widget_catalog.release "TB9.2"
+qtn_hs_edit_widget_catalog.description "Added new option menu item to Edit mode for opening the widget catalog"
+qtn_hs_edit_widget_catalog.grammar "Widget Catalog"
+qtn_hs_edit_widget_catalog.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_edit_widget_catalog "Widget Catalog">
+
+<!--
+qtn_hs_page_edit_options_delete.attributes
+qtn_hs_page_edit_options_delete.layout "list_single_pane_t1_cp2"
+qtn_hs_page_edit_options_delete.release "TB9.2"
+qtn_hs_page_edit_options_delete.description "Deletes the current Home screen page and focus goes to the next available Home screen page in Edit mode"
+qtn_hs_page_edit_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_page_edit_options_delete "Delete page">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.xml	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,296 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE xmluiml SYSTEM "View.dtd">
+<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
+    <view id="hs_qhd_tch_view">
+        <actions>
+            <action>
+                <!-- End key -->
+                <trigger name="keyevent">
+                    <property name="scancode" value="197"/> ><!-- End key -->
+                    <property name="eventtype" value="1"/>
+                </trigger>
+                <!-- dismiss if edit mode active -->
+                <event name="system/reportexiteditmode"/>
+            </action>
+            <action>
+                <trigger name="editmode" value="enter"/>
+                <event name="system/set">
+                    <property name="name" value="focusable"/>
+                    <property name="value" value="true"/>
+                    <property name="type" value="string"/>
+                    <property name="class" value="plugins"/>
+                </event>
+                <event name="system/seteditmode">
+                    <property name="id" value="hs_popup_open_hold"/>
+                    <property name="class" value="widget_indication"/>                                       
+                </event>                                    
+            </action>                
+            <action>
+                <trigger name="editmode" value="exit"/>
+                <event name="system/set">
+                    <property name="name" value="focusable"/>
+                    <property name="value" value="false"/>
+                    <property name="type" value="string"/>
+                    <property name="class" value="plugins"/>
+                </event>
+                <event name="system/reseteditmode">
+                    <property name="id" value="hs_popup_open_hold"/>
+                    <property name="class" value="widget_indication"/>                                        
+                </event>                                                    
+            </action>                                
+            <action>
+                <trigger name="swipe" direction="left" conditional="true"/>
+                <event name="system/activatenextview" effectid="1003"/>
+            </action>
+            <action>
+                <trigger name="swipe" direction="right" conditional="true"/>
+                <event name="system/activatepreviousview" effectid="1004"/>
+            </action>
+            <action>
+                <trigger name="screendevicechange" reason="portrait"/>
+                <event name="system/set">
+                    <property name="name" value="padding-left"/>
+                    <property name="value" value="17px"/>
+                    <property name="type" value="numeric"/>
+                    <property name="id" value="plugins_container"/>
+                </event>
+                <event name="system/set">
+                    <property name="name" value="padding-right"/>
+                    <property name="value" value="17px"/>
+                    <property name="type" value="numeric"/>
+                    <property name="id" value="plugins_container"/>
+                </event>
+            </action>
+            <action>
+                <trigger name="screendevicechange" reason="landscape"/>
+                <event name="system/set">
+                    <property name="name" value="padding-left"/>
+                    <property name="value" value="0px"/>
+                    <property name="type" value="numeric"/>
+                    <property name="id" value="plugins_container"/>
+                </event>
+                <event name="system/set">
+                    <property name="name" value="padding-right"/>
+                    <property name="value" value="0px"/>
+                    <property name="type" value="numeric"/>
+                    <property name="id" value="plugins_container"/>
+                </event>
+            </action>
+        </actions>
+
+        <!-- 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>
+        </box>
+
+        <!-- plugins' actions handler -->
+        <actionshandler id="plugin_actions">
+            <actions>
+                <action>
+                    <trigger id="hs_popup_open_hold" name="hold" conditional="true" />
+                    <event name="system/reportentereditmode" effectid="1005"/>
+                </action>
+            </actions>
+        </actionshandler>
+
+        <!-- Avkon stylus popup menu is not layout capable -->
+        <styluspopup id="hs_popup_menu" display="none">
+            <!-- menuitems controlled by widgets' <menuextension> -->
+            <widgetmenuitem id="hs_popup_widget_settings" source="hs_widget_menuitem_settings" label="&qtn_hs_longtap_settings;" />
+            <widgetmenuitem id="hs_popup_widget_general_1" source="hs_widget_general_stylus_popup_1"/>
+            <widgetmenuitem id="hs_popup_widget_general_2" source="hs_widget_general_stylus_popup_2"/>
+            <!--<widgetmenuitem id="hs_popup_widget_refresh" source="hs_widget_menuitem_refresh" label="Refresh" />-->
+            <!-- "Remove" item initialized in runtime to check whether popup is on top of widget -->
+            <dynmenuitem id="hs_popup_remove_widget" type="hs_remove_widget" label="&qtn_hs_longtap_remove_element;">
+                <actions>
+                    <action>
+                        <trigger name="activate"/>
+                        <event name="system/removefocusedwidget"/>
+                    </action>
+                </actions>
+            </dynmenuitem>
+        </styluspopup>
+        <menubar id="hs_menubar">
+            <!-- menu item grouping table is traversed through in run-time always when options menu is launched. -->
+            <menuitemgrouping>
+                <!-- These items are shown when content is visible -->
+                <menuitemgroup id="Menu/NormalMode">
+                    <property name="hs_edit_widgets"/>
+                    <property name="hs_set_online"/>
+                    <property name="hs_set_offline"/>
+                    <property name="hs_add_view"/>
+                    <property name="hs_remove_view"/>
+                </menuitemgroup>
+                <!-- These items are shown in edit mode, if not otherwise changed in the declaration -->
+                <menuitemgroup id="Menu/EditMode">
+                    <property name="hs_widget_catalog"/>
+                    <property name="hs_remove_widget"/>
+                    <property name="hs_widget_settings"/>
+                    <property name="hs_widget_general_1"/>
+                    <property name="hs_widget_general_2"/>
+                    <property name="hs_add_view"/>
+                    <property name="hs_remove_view"/>
+                    <property name="hs_change_wallpaper"/>
+                </menuitemgroup>
+                <!-- These items are always shown, if not otherwise changed in the declaration -->
+                <menuitemgroup id="Menu/AlwaysShown">
+                    <property name="hs_show_help"/>
+                </menuitemgroup>
+            </menuitemgrouping>
+            <menu id="hs_options_menu">
+                <menuitem id="hs_widget_catalog" label="&qtn_hs_widget_catalog;">
+                    <actions>
+                        <action>
+                            <trigger name="activate"/>
+                            <event name="system/runaddwidgetquery"/>
+                        </action>
+                    </actions>
+                </menuitem>
+                <!-- menuitems controlled by widgets' <menuextension> element -->
+                <widgetmenuitem id="hs_widget_settings" source="hs_widget_menuitem_settings" label="&qtn_hs_widget_settings;"/>
+                <widgetmenuitem id="hs_widget_general_1" source="hs_widget_general_options_menu_1"/>
+                <widgetmenuitem id="hs_widget_general_2" source="hs_widget_general_options_menu_2"/>
+                <dynmenuitem id="hs_remove_widget" type="hs_remove_widget" label="&qtn_hs_remove_widget;">
+                    <actions>
+                        <action>
+                            <trigger name="activate"/>
+                            <event name="system/removefocusedwidget"/>
+                        </action>
+                    </actions>
+                </dynmenuitem>
+                <!--<widgetmenuitem id="hs_widget_refresh" source="hs_widget_menuitem_refresh" label="&qtn_hs_refresh_widget;" />-->
+                <menuitem id="hs_edit_widgets" label="&qtn_hs_edit_content;">
+                    <actions>
+                        <action>
+                            <trigger name="activate"/>
+                            <event name="system/reportentereditmode" effectid="1005"/>
+                        </action>
+                    </actions>
+                </menuitem>
+                <menuitem id="hs_change_wallpaper" label="&qtn_hs_change_wallpaper;">
+                    <actions>
+                        <action>
+                            <trigger name="activate"/>
+                            <!--Wallpaper-->
+                            <event name="system/setwallpaper"/>
+                        </action>
+                    </actions>
+                </menuitem>
+                <dynmenuitem id="hs_add_view" type="hs_add_view" label="&qtn_hs_page_options_new;">
+                    <actions>
+                        <action>
+                            <trigger name="activate"/>
+                            <event name="system/addview" effectid="1009"/>
+                        </action>
+                    </actions>
+                </dynmenuitem>
+                <dynmenuitem id="hs_remove_view" type="hs_remove_view" label="&qtn_hs_page_options_delete;">
+                    <actions>
+                        <action>
+                            <trigger name="activate"/>
+                            <event name="system/removeview" effectid="1010"/>
+                        </action>
+                    </actions>
+                </dynmenuitem>
+                <dynmenuitem id="hs_set_online" type="hs_online" label="&qtn_hs_online;">
+                    <actions>
+                        <action>
+                            <trigger name="activate"/>
+                            <event name="EventHandler/SetOnline"/>
+                        </action>
+                    </actions>
+                </dynmenuitem>
+                <dynmenuitem id="hs_set_offline" type="hs_offline" label="&qtn_hs_offline;">
+                    <actions>
+                        <action>
+                            <trigger name="activate"/>
+                            <event name="EventHandler/SetOffline"/>
+                        </action>
+                    </actions>
+                </dynmenuitem>
+                <menuitem id="hs_show_help" label="&qtn_options_help;">
+                    <actions>
+                        <action>
+                            <trigger name="activate"/>
+                            <event name="EventHandler/ShowHelp"/>
+                        </action>
+                    </actions>
+                </menuitem>
+            </menu>
+            <softkey id="lsk" type="left" label="&text_softkey_options;">
+                <actions>
+                    <action>
+                        <trigger name="activate"/>
+                        <event name="system/trydisplayingmenu">
+                            <property name="id" value="hs_options_menu"/>
+                        </event>
+                    </action>
+                </actions>
+            </softkey>
+            <softkey id="rsk" type="right" mode="mode_callinactive" label="&text_softkey_call;">
+                <actions>
+                    <action>                        
+                        <trigger name="activate"/>
+                        <event name="EventHandler/ActivateView" uid="0x100058B3" viewid="0x10282D81" messageid="0x1"/>
+                    </action>
+                    <action>
+                        <trigger name="hold"/>
+                        <!-- Voice command-->
+                        <event name="EventHandler/LaunchApp" uid="0x101F8543"/>
+                    </action>
+                </actions>
+            </softkey>
+            <softkey id="rsk_incall" type="right" mode="mode_callactive" label="&text_softkey_back;">
+                <actions>
+                    <action>                        
+                        <trigger name="activate"/>
+                        <event name="EventHandler/ActivatePhoneView" />
+                    </action>
+                </actions>
+            </softkey>
+            <softkey id="rsk_done" type="right" mode="mode_edit" label="&text_softkey_done;">
+                <actions>
+                    <action>
+                        <trigger name="activate"/>
+                        <event name="system/reportexiteditmode" effectid="1006"/>
+                    </action>
+                </actions>
+            </softkey>
+            <softkey id="msk_ltr" type="middle" label=""> <!--TODO: Remove label when MSK icon available-->
+                <actions>
+                    <action>
+                        <trigger name="activate"/>
+                        <event name="system/activatenextview" effectid="1003"/>
+                    </action>
+                </actions>
+                <!--image id="switcher_icon"/-->
+            </softkey>
+            <softkey id="msk_rtl" type="middle" label=""> <!--TODO: Remove label when MSK icon available-->
+                <actions>
+                    <action>
+                        <trigger name="activate"/>
+                        <event name="system/activatepreviousview" effectid="1004"/>
+                    </action>
+                </actions>
+                <!--image id="switcher_icon"/-->
+            </softkey>
+        </menubar>
+    </view>
+</xmluiml>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/37/View.css	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,86 @@
+view 
+{
+    direction: ltr;
+    block-progression: tb;
+    background-image: wallpaper;
+    swipe: true;
+
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+    direction: rtl;
+    block-progression: rl;
+    padding-top: 3px;
+}
+
+plugin.plugins
+{
+    height: 82px; 
+    width: 312px; 
+
+    margin-bottom: 4px;
+    margin-right: 5px;
+    margin-left: 5px;
+    _s60-longtap: true;
+    nav-index: appearance;
+}
+
+plugin:edit
+{
+    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;
+}
+
+trigger#hs_popup_open_up
+{
+    display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+    display: block;
+}
+
+softkey#rsk
+{
+    _s60-longtap: true;
+    _s60-aspect-ratio: preserve;
+}  
+
+softkey#msk_ltr
+{
+    display: none;
+}
+
+softkey#msk_rtl
+{
+    display: block;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/50/View.css	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,86 @@
+view 
+{
+    direction: ltr;
+    block-progression: tb;
+    background-image: wallpaper;
+    swipe: true;
+
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+    direction: rtl;
+    block-progression: rl;
+    padding-top: 3px;
+}
+
+plugin.plugins
+{
+    height: 82px; 
+    width: 312px; 
+
+    margin-bottom: 4px;
+    margin-right: 5px;
+    margin-left: 5px;
+    _s60-longtap: true;
+    nav-index: appearance;
+}
+
+plugin:edit
+{
+    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;
+}
+
+trigger#hs_popup_open_up
+{
+    display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+    display: block;
+}
+
+softkey#rsk
+{
+    _s60-longtap: true;
+    _s60-aspect-ratio: preserve;
+}  
+
+softkey#msk_ltr
+{
+    display: none;
+}
+
+softkey#msk_rtl
+{
+    display: block;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/57/View.css	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,86 @@
+view 
+{
+    direction: ltr;
+    block-progression: tb;
+    background-image: wallpaper;
+    swipe: true;
+
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+    direction: rtl;
+    block-progression: rl;
+    padding-top: 3px;
+}
+
+plugin.plugins
+{
+    height: 82px; 
+    width: 312px; 
+
+    margin-bottom: 4px;
+    margin-right: 5px;
+    margin-left: 5px;
+    _s60-longtap: true;
+    nav-index: appearance;
+}
+
+plugin:edit
+{
+    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;
+}
+
+trigger#hs_popup_open_up
+{
+    display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+    display: block;
+}
+
+softkey#rsk
+{
+    _s60-longtap: true;
+    _s60-aspect-ratio: preserve;
+}  
+
+softkey#msk_ltr
+{
+    display: none;
+}
+
+softkey#msk_rtl
+{
+    display: block;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/94/View.css	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,86 @@
+view 
+{
+    direction: ltr;
+    block-progression: tb;
+    background-image: wallpaper;
+    swipe: true;
+
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+    direction: rtl;
+    block-progression: rl;
+    padding-top: 3px;
+}
+
+plugin.plugins
+{
+    height: 82px; 
+    width: 312px; 
+
+    margin-bottom: 4px;
+    margin-right: 5px;
+    margin-left: 5px;
+    _s60-longtap: true;
+    nav-index: appearance;
+}
+
+plugin:edit
+{
+    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;
+}
+
+trigger#hs_popup_open_up
+{
+    display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+    display: block;
+}
+
+softkey#rsk
+{
+    _s60-longtap: true;
+    _s60-aspect-ratio: preserve;
+}  
+
+softkey#msk_ltr
+{
+    display: none;
+}
+
+softkey#msk_rtl
+{
+    display: block;
+}
Binary file idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.confml has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/conf/view200286e5.gcfml	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,138 @@
+<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"/>
+	<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>
+				<control>
+				  <settings>
+				    <item>
+					    <xsl:attribute name="id"><xsl:value-of select="HomescreenPlugins/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>
+								</property>
+						</item> 
+					  <xsl:choose>
+						  <xsl:when test="HomescreenPlugins/Background = 1">
+							  <item>
+								  <xsl:attribute name="id"><xsl:value-of select="HomescreenPlugins/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>
+								    </property>
+								</item>     
+				      </xsl:when>
+				      <xsl:when test="HomescreenPlugins/Background = 2">
+						    <item>
+								  <xsl:attribute name="id"><xsl:value-of select="HomescreenPlugins/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>
+								    </property>
+								</item>     
+				      </xsl:when>
+				      <xsl:otherwise>
+				      </xsl:otherwise>
+				    </xsl:choose>
+				  </settings>
+					<plugins>
+						<xsl:for-each select="HomescreenPlugins/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>
+								<xsl:attribute name="template_id"><xsl:value-of select="TemplateIdentifier"/></xsl:attribute>
+								<xsl:attribute name="locking_status"><xsl:value-of select="LockingStatus"/></xsl:attribute>
+								<xsl:if test="ShortcutWidget = 1">
+								    <intial_settings>
+								      <settings>
+								        <xsl:if test="Customize1Shortcut = 1">
+								          <item>
+								          <xsl:attribute name="id"><xsl:value-of select="Shortcut1ItemId"/></xsl:attribute>
+								          <xsl:attribute name="name"><xsl:value-of select="Shortcut1ItemName"/></xsl:attribute>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameType"/></xsl:attribute>								             
+  							              <xsl:attribute name="value"><xsl:value-of select="Shortcut1Type"/></xsl:attribute>
+								            </property>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameUid"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut1Uid"/></xsl:attribute>
+								            </property>
+				                  </item>
+				                </xsl:if>
+				                <xsl:if test="Customize2Shortcut = 1">
+				                  <item>
+				                  <xsl:attribute name="id"><xsl:value-of select="Shortcut2ItemId"/></xsl:attribute>
+								          <xsl:attribute name="name"><xsl:value-of select="Shortcut2ItemName"/></xsl:attribute>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameType"/></xsl:attribute> 
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut2Type"/></xsl:attribute>
+								            </property>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameUid"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut2Uid"/></xsl:attribute>
+								            </property>
+				                  </item>
+				                </xsl:if>
+				                <xsl:if test="Customize3Shortcut = 1">
+				                  <item>
+				                  <xsl:attribute name="id"><xsl:value-of select="Shortcut3ItemId"/></xsl:attribute>
+								          <xsl:attribute name="name"><xsl:value-of select="Shortcut3ItemName"/></xsl:attribute>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameType"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut3Type"/></xsl:attribute>
+								            </property>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameUid"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut3Uid"/></xsl:attribute>
+								            </property>
+				                  </item>
+				                </xsl:if>
+				                <xsl:if test="Customize4Shortcut = 1">
+				                  <item>
+				                  <xsl:attribute name="id"><xsl:value-of select="Shortcut4ItemId"/></xsl:attribute>
+								          <xsl:attribute name="name"><xsl:value-of select="Shortcut4ItemName"/></xsl:attribute>
+								            <property>
+								             <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameType"/></xsl:attribute>
+								             <xsl:attribute name="value"><xsl:value-of select="Shortcut4Type"/></xsl:attribute>
+								            </property>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameUid"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut4Uid"/></xsl:attribute>
+								            </property>
+								          </item>
+				                </xsl:if>
+				              </settings>
+				            </intial_settings>
+			            </xsl:if>
+							</plugin>
+						</xsl:for-each>
+					</plugins>
+				</control>
+			</configuration>
+		</xsl:template>
+	</xsl:stylesheet>
+</file>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/group/bld.inf	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,77 @@
+/*
+* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* The information required for building
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+// Support for productization and Carbide.Ui customization
+//********************************************************
+../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/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
+../xuikon/00/View.xml /epoc32/data/Z/resource/homescreen/view_200286e5/xuikon/view.xml
+../xuikon/00/View.dtd /epoc32/data/Z/resource/homescreen/view_200286e5/xuikon/view.dtd
+
+// Arabic languages
+//*****************
+../xuikon/37/View.css /epoc32/data/Z/resource/homescreen/view_200286e5/xuikon/37/view.css
+../xuikon/50/View.css /epoc32/data/Z/resource/homescreen/view_200286e5/xuikon/50/view.css
+../xuikon/57/View.css /epoc32/data/Z/resource/homescreen/view_200286e5/xuikon/57/view.css
+../xuikon/94/View.css /epoc32/data/Z/resource/homescreen/view_200286e5/xuikon/94/view.css
+
+
+//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)
+
+// Support for S60 localization
+//*****************************
+#ifndef __VIEW_LOC__
+#define __VIEW_LOC__
+../loc/view.loc APP_LAYER_LOC_EXPORT_PATH(view.loc)
+#endif // __VIEW_LOC__
+
+// Support for S60 builds
+//***********************
+../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)
+
+
+// Dtd-localization
+//*****************
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME view_200286e5
+OPTION DTD_TYPE widget
+END
+
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+
+//  End of File  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/hsps/00/manifest.dat	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,59 @@
+<?xml version="1.0"?>
+
+<package version="1.0">
+
+
+
+  <family>qhd_tch</family>
+
+
+
+  <type>view</type>
+
+
+
+  <!-- interface uid -->
+
+	<interfaceuid>0x2001f48a</interfaceuid>
+
+
+
+	<!-- vendor uid -->
+
+	<provideruid>0x101fb657</provideruid>
+
+
+
+	<!-- configuration uid -->
+
+	<configurationuid>0x200286e5</configurationuid>
+
+
+
+	<!-- description -->
+
+	<fullname>&amp;qtn_view_200286e5_name;</fullname>
+
+	<shortname>ai3_view3</shortname>
+
+	<version>1.0</version>
+
+
+
+	<!-- configuration -->
+
+	<filexml>viewconfiguration.xml</filexml>
+
+	
+
+  <!-- Locale specific resources -->
+
+  <localization>
+
+    <fileresource>view.o0000</fileresource>
+
+  </localization>
+
+
+
+</package>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/hsps/00/viewconfiguration.xml	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<configuration max_child="6" xmlns:xi="http://www.w3.org/2001/xinclude">
+<control>
+<settings>
+<item id="hs_qhd_tch_view">
+<property name="use_empty_widget" value="true"/>
+</item>
+<item id="wallpaper">
+<property name="path" value=" "/>
+</item>
+</settings>
+<plugins>
+<plugin uid="0x2001CB7C" bundle_id="0" template_id="0" locking_status="none"/>
+<plugin uid="0x20026f4f" bundle_id="0" template_id="0" locking_status="none"/>
+<plugin uid="0x10207c18" bundle_id="0" template_id="0" locking_status="none"/>
+<plugin uid="0x2001f481" bundle_id="0" template_id="0" locking_status="none"/>
+<plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
+<plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="none"/>
+</plugins>
+</control>
+</configuration>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/loc/View.loc	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,268 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Localization strings for project Active Idle 3
+*
+*/
+
+// d: Help
+// l: list_single_pane_t1_cp2
+// w: 
+// r: TB9.2
+#define qtn_options_help "Help"
+
+// d: Open
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define qtn_msk_open "Open"
+
+// d: Options
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define text_softkey_done "Done"
+
+// d: Open 
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_options_open "Open"
+
+// d: Back
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define text_softkey_back "Back"
+
+// d: Empty string
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define shortcut_emptycaption " "
+
+// d: Add page
+// l: list_single_pane_t1_cp2
+// w: 
+// r: TB9.2
+#define qtn_hs_add_page "Add page"
+
+// d: Select
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_options_select_widget "Select"
+
+// d: Add content
+// l: list_single_pane_t1_cp2
+// w: 
+// r: TB9.2
+#define qtn_hs_add_widget "Add content"
+
+// d: Access the widget catalog
+// l: list_single_pane_t1_cp2
+// w: 
+// r: TB9.2
+#define qtn_hs_widget_catalog "Widget catalog"
+
+// d: Search
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define text_softkey_search "Search"
+
+// d: Options
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define text_softkey_options "Options"
+
+// d: Refresh 
+// l: list_single_pane_t1_cp2/opt3
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_widget "Refresh"
+
+// d: Focused widget
+// l: list_single_popup_submenu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_one_widget "One"
+
+// d: All widgets 
+// l: list_single_popup_submenu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_all_widgets "All"
+
+// d: Remove content 
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_remove_widget "Remove content"
+
+// d: Hide the content 
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_hide_widgets "Hide the content"
+
+// d: Edit contents 
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_edit_content "Edit content"
+
+// d: Change Wallpaper
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_wallpaper "Change Wallpaper"
+
+// d: Change Shortcut Settings
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_shortcut_settings "Change Shortcut Settings"
+
+// d: Widget settings
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_widget_settings "Widget settings"
+
+// d: Show widgets
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_show_widgets "Show the content"
+
+// d: Change Home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_page "Change Home screen page"
+
+// d: Change
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define qtn_msk_change "Change"
+
+// d: Show all profiles in Profiles widget
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_show_profiles "Show all profiles"
+
+// d: Right selection key
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_set_right_idle_softkey "Right selection key"
+
+// d: Select
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define text_softkey_select "Select"
+
+// d: Cancel
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define text_softkey_cancel "Cancel"
+
+// d: Options menu item which switches home to online. Web widgets get updates from network.
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_online "Switch Home to online"
+
+// d: Options menu item which switches home to offline. Web widgets are not updated
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_offline "Switch Home to offline"
+
+// d: String which is shown in long tap menu of Home screen if tapped widget has settings
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_settings "Settings"
+
+// d: String which is shown in long tap menu of Home screen if tapped some widget which is removable
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_remove_element "Remove"
+
+// d: String which is shown in long tap menu of Home screen if tapped empty space in home screen
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_add "Add content"
+
+// d: String which is shown in long tap menu of Home screen
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_change_longtap_wallpaper "Change wallpaper"
+
+// d: User can download new HS widgets. String is visible in add content list query
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_download_new_widgets "Download"
+
+// d: Changes focused widget
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_edit_replace "Replace"
+
+// d: deletes current home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_options_delete "Delete page"
+
+// d: creates new home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_options_new "New page"
+
+// d: view title in editing mode
+// l: title_pane_t2
+// w:
+// r: TB9.2
+#define qtn_hs_title_editing_view "Editing view"
+
+// d: Call
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define text_softkey_call "Call"
+
+// d: Added new option menu item to Edit mode for opening the widget catalog,
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_edit_widget_catalog "Widget Catalog"
+
+// d: Deletes the current Home screen page and focus goes to the next available Home screen page in Edit mode
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_edit_options_delete "Delete page"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/rom/view.iby	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* View widget HSPS-plugin IBY file.
+*
+*/
+
+#ifndef __AI3VIEW_200286E5_IBY__
+#define __AI3VIEW_200286E5_IBY__
+
+#if defined(__LAYOUT_360_640_TOUCH) || defined(__LAYOUT_640_360_TOUCH)
+
+// Enabled by DTD-localization tools
+data=ZPRIVATE\200159c0\install\view_200286e5\hsps\00\manifest.dat \private\200159c0\install\view_200286e5\hsps\00\manifest.dat
+
+#endif // __LAYOUT_360_640_TOUCH || __LAYOUT_640_360_TOUCH
+
+#endif // __AI3VIEW_200286E5_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/rom/view_customer.iby	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* View widget HSPS-plugin language specific IBY file.
+*
+*/
+
+#ifndef __AI3VIEW_200286E5_CUSTOMER_IBY__
+#define __AI3VIEW_200286E5_CUSTOMER_IBY__
+
+#if defined(__LAYOUT_360_640_TOUCH) || defined(__LAYOUT_640_360_TOUCH)
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\view_200286e5\xuikon\00\view.o0000 \private\200159c0\install\view_200286e5\xuikon\00\view.o0000
+
+#endif // __LAYOUT_360_640_TOUCH || __LAYOUT_640_360_TOUCH
+
+#endif // __AI3VIEW_200286E5_CUSTOMER_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/rom/view_resources.iby	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* View widget HSPS-plugin language specific IBY file.
+*
+*/
+
+#ifndef __AI3VIEW_200286E5_RESOURCES_IBY__
+#define __AI3VIEW_200286E5_RESOURCES_IBY__
+
+#if defined(__LAYOUT_360_640_TOUCH) || defined(__LAYOUT_640_360_TOUCH)
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\view_200286e5\xuikon\00\view.o0000 \private\200159c0\install\view_200286e5\xuikon\00\view.o0000
+
+#endif // __LAYOUT_360_640_TOUCH || __LAYOUT_640_360_TOUCH
+
+#endif // __AI3VIEW_200286E5_RESOURCES_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/rom/view_variant.iby	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* View widget HSPS-plugin variant specific IBY file.
+*
+*/
+
+#ifndef __AI3VIEW_200286E5_VARIANT_IBY__
+#define __AI3VIEW_200286E5_VARIANT_IBY__
+
+#if defined(__LAYOUT_360_640_TOUCH) || defined(__LAYOUT_640_360_TOUCH)
+
+// Enabled by variation tools, variant specific
+data=ZPRIVATE\200159c0\install\view_200286e5\hsps\00\viewconfiguration.xml \private\200159c0\install\view_200286e5\hsps\00\viewconfiguration.xml
+
+#endif // __LAYOUT_360_640_TOUCH || __LAYOUT_640_360_TOUCH
+
+#endif  // __AI3VIEW_200286E5_VARIANT_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.css	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,89 @@
+view 
+{
+    direction: ltr;
+    block-progression: tb;
+    background-image: wallpaper;
+    swipe: true;
+
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+    direction: ltr;
+    block-progression: rl;
+    padding-top: 3px;
+}
+
+plugin.plugins
+{
+    height: 82px; 
+    width: 312px; 
+
+    margin-bottom: 4px;
+    margin-right: 5px;
+    margin-left: 5px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+plugin:edit
+{
+    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;
+}
+
+trigger#hs_popup_open_up
+{
+    display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+    display: block;
+}
+
+softkey#rsk
+{
+    _s60-longtap: true;
+    _s60-aspect-ratio: preserve;
+}
+
+softkey#msk_ltr
+{
+    display: block;
+}
+
+softkey#msk_rtl
+{
+    display: none;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.dat	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<data>
+    <AppUid>E029CF57</AppUid>
+    <Provideruid>101FB657</Provideruid>
+    <ThemeUid>11001234</ThemeUid>
+    <ThemeFullName>DemoView</ThemeFullName>
+    <ThemeShortName>view</ThemeShortName>
+    <ThemeVersion>1.0</ThemeVersion>
+    <FileXML>view.xml</FileXML>
+    <FileCSS>view.css</FileCSS>
+    <FileDTD>view.dtd</FileDTD>	
+
+</data>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.dtd	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,428 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+============================================================================
+<FileName: "View.dtd">
+<PartOf  : "AI3">
+
+<FileDescription: "Localization strings for AI3">
+<FileVersion    : >
+
+<Copyright:
+"Copyright (c) 2005 Nokia Corporation.
+This material, including documentation and any related
+computer programs, is protected by copyright controlled by
+Nokia Corporation. All rights are reserved. Copying,
+including reproducing, storing,  adapting or translating, any
+or all of this material requires the prior written consent of
+Nokia Corporation. This material also contains confidential
+information which may not be disclosed to others without the
+prior written consent of Nokia Corporation.">
+============================================================================
+-->
+
+<!--
+qtn_options_help.attributes
+qtn_options_help.layout "list_single_pane_t1_cp2"
+qtn_options_help.release "TB9.2"
+qtn_options_help.description "Help"
+qtn_options_help.grammar "Help"
+qtn_options_help.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_options_help "Help">
+
+<!--
+qtn_msk_open.attributes
+qtn_msk_open.layout "control_pane_t1/opt7"
+qtn_msk_open.release "TB9.2"
+qtn_msk_open.description "Open"
+qtn_msk_open.grammar "Open"
+qtn_msk_open.parents "control_pane"
+-->
+<!ENTITY qtn_msk_open "Open">
+
+<!--
+text_softkey_done.attributes
+text_softkey_done.layout "control_pane_t1/opt7"
+text_softkey_done.release "TB9.2"
+text_softkey_done.description "Done"
+text_softkey_done.grammar "Done"
+text_softkey_done.parents "control_pane"
+-->
+<!ENTITY text_softkey_done "Done">
+
+<!--
+qtn_options_open.attributes
+qtn_options_open.layout "list_single_pane_t1_cp2"
+qtn_options_open.release "TB9.2"
+qtn_options_open.description "Open"
+qtn_options_open.grammar "Open"
+qtn_options_open.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_options_open "Open">
+
+<!--
+text_softkey_back.attributes
+text_softkey_back.layout "control_pane_t1/opt7"
+text_softkey_back.release "TB9.2"
+text_softkey_back.description "Back text for SK2"
+text_softkey_back.parents "control_pane"
+-->
+<!ENTITY text_softkey_back "Back">
+
+<!--
+shortcut_EmptyCaption.attributes
+shortcut_EmptyCaption.layout "control_pane_t1/opt7"
+shortcut_EmptyCaption.release "TB9.2"
+shortcut_EmptyCaption.description "Empty shortcut"
+shortcut_EmptyCaption.parents "list_ai2_gene_pane"
+-->
+<!ENTITY shortcut_EmptyCaption " ">
+
+<!--
+qtn_hs_add_page.attributes
+qtn_hs_add_page.layout "list_single_pane_t1_cp2"
+qtn_hs_add_page.release "TB9.2"
+qtn_hs_add_page.description "Add page"
+qtn_hs_add_page.grammar "Add page"
+qtn_hs_add_page.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_add_page "Add page">
+
+<!--
+qtn_options_select_widget.attributes
+qtn_options_select_widget.layout "list_single_pane_t1_cp2"
+qtn_options_select_widget.release "TB9.2"
+qtn_options_select_widget.description "Select"
+qtn_options_select_widget.grammar "Select"
+qtn_options_select_widget.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_options_select_widget "Select">
+
+<!--
+qtn_hs_add_widget.attributes
+qtn_hs_add_widget.layout "list_single_pane_t1_cp2"
+qtn_hs_add_widget.release "TB9.2"
+qtn_hs_add_widget.description "Add content"
+qtn_hs_add_widget.grammar "Add content"
+qtn_hs_add_widget.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_add_widget "Add content">
+
+<!--
+qtn_hs_widget_catalog.attributes
+qtn_hs_widget_catalog.layout "list_single_pane_t1_cp2"
+qtn_hs_widget_catalog.release "TB9.2"
+qtn_hs_widget_catalog.description "Widget catalog"
+qtn_hs_widget_catalog.grammar "Widget catalog"
+qtn_hs_widget_catalog.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_widget_catalog "Widget catalog">
+
+<!--
+text_softkey_search.attributes
+text_softkey_search.layout "control_pane_t1/opt7"
+text_softkey_search.release "TB9.2"
+text_softkey_search.description "Search"
+text_softkey_search.grammar "Search"
+text_softkey_search.parents "control_pane"
+-->
+<!ENTITY text_softkey_search "Search">
+
+<!--
+text_softkey_options.attributes
+text_softkey_options.layout "control_pane_t1/opt7"
+text_softkey_options.release "TB9.2"
+text_softkey_options.description "Options"
+text_softkey_options.grammar "Options"
+text_softkey_options.parents "control_pane"
+-->
+<!ENTITY text_softkey_options "Options">
+
+<!--
+qtn_hs_refresh_widget.attributes
+qtn_hs_refresh_widget.layout "list_single_pane_t1_cp2/opt3"
+qtn_hs_refresh_widget.release "TB9.2"
+qtn_hs_refresh_widget.description "Refresh"
+qtn_hs_refresh_widget.grammar "Refresh"
+qtn_hs_refresh_widget.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_refresh_widget "Refresh">
+
+<!--
+qtn_hs_refresh_one_widget.attributes
+qtn_hs_refresh_one_widget.layout "list_single_popup_submenu_pane_t1"
+qtn_hs_refresh_one_widget.release "TB9.2"
+qtn_hs_refresh_one_widget.description "One"
+qtn_hs_refresh_one_widget.grammar "One"
+qtn_hs_refresh_one_widget.parents "list_single_popup_submenu_pane"
+-->
+<!ENTITY qtn_hs_refresh_one_widget "One">
+
+<!--
+qtn_hs_refresh_all_widgets.attributes
+qtn_hs_refresh_all_widgets.layout "list_single_popup_submenu_pane_t1"
+qtn_hs_refresh_all_widgets.release "TB9.2"
+qtn_hs_refresh_all_widgets.description "All"
+qtn_hs_refresh_all_widgets.grammar "All"
+qtn_hs_refresh_all_widgets.parents "list_single_popup_submenu_pane"
+-->
+<!ENTITY qtn_hs_refresh_all_widgets "All">
+
+<!--
+qtn_hs_remove_widget.attributes
+qtn_hs_remove_widget.layout "list_single_pane_t1_cp2"
+qtn_hs_remove_widget.release "TB9.2"
+qtn_hs_remove_widget.description "Remove content"
+qtn_hs_remove_widget.grammar "Remove content"
+qtn_hs_remove_widget.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_remove_widget "Remove content">
+
+<!--
+qtn_hs_hide_widgets.attributes
+qtn_hs_hide_widgets.layout "list_single_pane_t1_cp2"
+qtn_hs_hide_widgets.release "TB9.2"
+qtn_hs_hide_widgets.description "Hide the content"
+qtn_hs_hide_widgets.grammar "Hide the content"
+qtn_hs_hide_widgets.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_hide_widgets "Hide the content">
+
+<!--
+qtn_hs_edit_content.attributes
+qtn_hs_edit_content.layout "list_single_pane_t1_cp2"
+qtn_hs_edit_content.release "TB9.2"
+qtn_hs_edit_content.description "Edit contents"
+qtn_hs_edit_content.grammar "Edit contents"
+qtn_hs_edit_content.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_edit_content "Edit content">
+
+<!--
+qtn_hs_change_wallpaper.attributes
+qtn_hs_change_wallpaper.layout "list_single_pane_t1_cp2"
+qtn_hs_change_wallpaper.release "TB9.2"
+qtn_hs_change_wallpaper.description "Change Wallpaper"
+qtn_hs_change_wallpaper.grammar "Change Wallpaper"
+qtn_hs_change_wallpaper.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_change_wallpaper "Change Wallpaper">
+
+<!--
+qtn_hs_change_shortcut_settings.attributes
+qtn_hs_change_shortcut_settings.layout "list_single_pane_t1_cp2"
+qtn_hs_change_shortcut_settings.release "TB9.2"
+qtn_hs_change_shortcut_settings.description "Change Shortcut Settings"
+qtn_hs_change_shortcut_settings.grammar "Change Shortcut Settings"
+qtn_hs_change_shortcut_settings.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_change_shortcut_settings "Change Shortcut Settings">
+
+<!--
+qtn_hs_widget_settings.attributes
+qtn_hs_widget_settings.layout "list_single_pane_t1_cp2"
+qtn_hs_widget_settings.release "TB9.2"
+qtn_hs_widget_settings.description "Widget settings"
+qtn_hs_widget_settings.grammar "Widget settings"
+qtn_hs_widget_settings.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_widget_settings "Widget settings">
+
+<!--
+qtn_hs_show_widgets.attributes
+qtn_hs_show_widgets.layout "list_single_pane_t1_cp2"
+qtn_hs_show_widgets.release "TB9.2"
+qtn_hs_show_widgets.description "Show widgets"
+qtn_hs_show_widgets.grammar "Show widgets"
+qtn_hs_show_widgets.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_show_widgets "Show the content">
+
+<!--
+qtn_hs_change_page.attributes
+qtn_hs_change_page.layout "list_single_pane_t1_cp2"
+qtn_hs_change_page.release "TB9.2"
+qtn_hs_change_page.description "Change Home screen page"
+qtn_hs_change_page.grammar "Change Home screen page"
+qtn_hs_change_page.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_change_page "Change Home screen page">
+
+<!--
+qtn_msk_change.attributes
+qtn_msk_change.layout "control_pane_t1/opt7"
+qtn_msk_change.release "TB9.2"
+qtn_msk_change.description "Change"
+qtn_msk_change.grammar "Change"
+qtn_msk_change.parents "control_pane"
+-->
+<!ENTITY qtn_msk_change "Change">
+
+<!--
+qtn_hs_show_profiles.attributes
+qtn_hs_show_profiles.layout "list_single_pane_t1_cp2"
+qtn_hs_show_profiles.release "TB9.2"
+qtn_hs_show_profiles.description "Show all profiles"
+qtn_hs_show_profiles.grammar "Show all profiles"
+qtn_hs_show_profiles.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_show_profiles "Show all profiles">
+
+<!--
+qtn_set_right_idle_softkey.attributes
+qtn_set_right_idle_softkey.layout "list_single_pane_t1_cp2"
+qtn_set_right_idle_softkey.release "TB9.2"
+qtn_set_right_idle_softkey.description "Right selection key"
+qtn_set_right_idle_softkey.grammar "Right selection key"
+qtn_set_right_idle_softkey.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_set_right_idle_softkey "Right selection key">
+
+<!--
+text_softkey_select.attributes
+text_softkey_select.layout "control_pane_t1/opt7"
+text_softkey_select.release "TB9.2"
+text_softkey_select.description "Select"
+text_softkey_select.grammar "Select"
+text_softkey_select.parents "control_pane"
+-->
+<!ENTITY text_softkey_select "Select">
+
+<!--
+text_softkey_cancel.attributes
+text_softkey_cancel.layout "control_pane_t1/opt7"
+text_softkey_cancel.release "TB9.2"
+text_softkey_cancel.description "Cancel"
+text_softkey_cancel.grammar "Cancel"
+text_softkey_cancel.parents "control_pane"
+-->
+<!ENTITY text_softkey_cancel "Cancel">
+
+<!--
+qtn_hs_online.attributes
+qtn_hs_online.layout "list_single_pane_t1_cp2"
+qtn_hs_online.release "TB9.2"
+qtn_hs_online.description "Online"
+qtn_hs_online.grammar "Online"
+qtn_hs_online.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_online "Switch Home to online">
+
+<!--
+qtn_hs_offline.attributes
+qtn_hs_offline.layout "list_single_pane_t1_cp2"
+qtn_hs_offline.release "TB9.2"
+qtn_hs_offline.description "Offline"
+qtn_hs_offline.grammar "Offline"
+qtn_hs_offline.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_offline "Switch Home to offline">
+
+<!--
+qtn_hs_longtap_settings.attributes
+qtn_hs_longtap_settings.layout "list_single_touch_menu_pane_t1"
+qtn_hs_longtap_settings.release "TB9.2"
+qtn_hs_longtap_settings.description "String which is shown in long tap menu of Home screen if tapped widget has settings."
+qtn_hs_longtap_settings.parents "control_pane"
+-->
+<!ENTITY qtn_hs_longtap_settings "Settings">
+
+<!--
+qtn_hs_longtap_remove_element.attributes
+qtn_hs_longtap_remove_element.layout "list_single_touch_menu_pane_t1"
+qtn_hs_longtap_remove_element.release "TB9.2"
+qtn_hs_longtap_remove_element.description "String which is shown in long tap menu of Home screen if tapped some widget which is removable."
+qtn_hs_longtap_remove_element.parents "control_pane"
+-->
+<!ENTITY qtn_hs_longtap_remove_element "Remove">
+
+<!--
+qtn_hs_longtap_add.attributes
+qtn_hs_longtap_add.layout "list_single_touch_menu_pane_t1"
+qtn_hs_longtap_add.release "TB9.2"
+qtn_hs_longtap_add.description "String which is shown in long tap menu of Home screen if tapped empty space in home screen."
+qtn_hs_longtap_add.parents "control_pane"
+-->
+<!ENTITY qtn_hs_longtap_add  "Add content">
+
+<!--
+qtn_hs_change_longtap_wallpaper.attributes
+qtn_hs_change_longtap_wallpaper.layout "list_single_touch_menu_pane_t1"
+qtn_hs_change_longtap_wallpaper.release "TB9.2"
+qtn_hs_change_longtap_wallpaper.description "String which is shown in long tap menu of Home screen."
+qtn_hs_change_longtap_wallpaper.parents "control_pane"
+-->
+<!ENTITY qtn_hs_change_longtap_wallpaper "Change wallpaper">
+
+<!--
+qtn_hs_download_new_widgets.attributes
+qtn_hs_download_new_widgets.layout "list_single_pane_t1_cp2"
+qtn_hs_download_new_widgets.release "TB9.2"
+qtn_hs_download_new_widgets.description "User can download new HS widgets String is visible in add content list query"
+qtn_hs_download_new_widgets.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_download_new_widgets "Download">
+
+<!--
+qtn_hs_edit_replace.attributes
+qtn_hs_edit_replace.layout "list_single_touch_menu_pane_t1"
+qtn_hs_edit_replace.release "TB9.2"
+qtn_hs_edit_replace.description "Changes focused widget"
+qtn_hs_edit_replace.parents ""
+-->
+<!ENTITY qtn_hs_edit_replace "Replace">
+
+<!--
+qtn_hs_page_options_delete.attributes
+qtn_hs_page_options_delete.layout "list_single_pane_t1_cp2"
+qtn_hs_page_options_delete.release "TB9.2"
+qtn_hs_page_options_delete.description "deletes current home screen page"
+qtn_hs_page_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_page_options_delete "Delete page">
+
+<!--
+qtn_hs_page_options_new.attributes
+qtn_hs_page_options_new.layout "list_single_pane_t1_cp2"
+qtn_hs_page_options_new.release "TB9.2"
+qtn_hs_page_options_new.description "creates new home screen page"
+qtn_hs_page_options_new.parents ""
+-->
+<!ENTITY qtn_hs_page_options_new "New page">
+
+<!--
+qtn_hs_title_editing_view.attributes
+qtn_hs_title_editing_view.layout "title_pane_t2"
+qtn_hs_title_editing_view.release "TB9.2"
+qtn_hs_title_editing_view.description "view title in editing mode"
+qtn_hs_title_editing_view.parents ""
+-->
+<!ENTITY qtn_hs_title_editing_view "Editing view">
+
+<!--
+text_softkey_call.attributes
+text_softkey_call.layout "control_pane_t1/opt7"
+text_softkey_call.release "TB9.2"
+text_softkey_call.description "RSK caption call inactive"
+text_softkey_call.parents ""
+-->
+<!ENTITY text_softkey_call "Call">
+
+<!--
+qtn_hs_edit_widget_catalog.attributes
+qtn_hs_edit_widget_catalog.layout "list_single_pane_t1_cp2"
+qtn_hs_edit_widget_catalog.release "TB9.2"
+qtn_hs_edit_widget_catalog.description "Added new option menu item to Edit mode for opening the widget catalog"
+qtn_hs_edit_widget_catalog.grammar "Widget Catalog"
+qtn_hs_edit_widget_catalog.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_edit_widget_catalog "Widget Catalog">
+
+<!--
+qtn_hs_page_edit_options_delete.attributes
+qtn_hs_page_edit_options_delete.layout "list_single_pane_t1_cp2"
+qtn_hs_page_edit_options_delete.release "TB9.2"
+qtn_hs_page_edit_options_delete.description "Deletes the current Home screen page and focus goes to the next available Home screen page in Edit mode"
+qtn_hs_page_edit_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_page_edit_options_delete "Delete page">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.xml	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,296 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE xmluiml SYSTEM "View.dtd">
+<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
+    <view id="hs_qhd_tch_view">
+        <actions>
+            <action>
+                <!-- End key -->
+                <trigger name="keyevent">
+                    <property name="scancode" value="197"/> ><!-- End key -->
+                    <property name="eventtype" value="1"/>
+                </trigger>
+                <!-- dismiss if edit mode active -->
+                <event name="system/reportexiteditmode"/>
+            </action>
+            <action>
+                <trigger name="editmode" value="enter"/>
+                <event name="system/set">
+                    <property name="name" value="focusable"/>
+                    <property name="value" value="true"/>
+                    <property name="type" value="string"/>
+                    <property name="class" value="plugins"/>
+                </event>
+                <event name="system/seteditmode">
+                    <property name="id" value="hs_popup_open_hold"/>
+                    <property name="class" value="widget_indication"/>                                       
+                </event>                                    
+            </action>                
+            <action>
+                <trigger name="editmode" value="exit"/>
+                <event name="system/set">
+                    <property name="name" value="focusable"/>
+                    <property name="value" value="false"/>
+                    <property name="type" value="string"/>
+                    <property name="class" value="plugins"/>
+                </event>
+                <event name="system/reseteditmode">
+                    <property name="id" value="hs_popup_open_hold"/>
+                    <property name="class" value="widget_indication"/>                                        
+                </event>                                                    
+            </action>                                
+            <action>
+                <trigger name="swipe" direction="left" conditional="true"/>
+                <event name="system/activatenextview" effectid="1003"/>
+            </action>
+            <action>
+                <trigger name="swipe" direction="right" conditional="true"/>
+                <event name="system/activatepreviousview" effectid="1004"/>
+            </action>
+            <action>
+                <trigger name="screendevicechange" reason="portrait"/>
+                <event name="system/set">
+                    <property name="name" value="padding-left"/>
+                    <property name="value" value="17px"/>
+                    <property name="type" value="numeric"/>
+                    <property name="id" value="plugins_container"/>
+                </event>
+                <event name="system/set">
+                    <property name="name" value="padding-right"/>
+                    <property name="value" value="17px"/>
+                    <property name="type" value="numeric"/>
+                    <property name="id" value="plugins_container"/>
+                </event>
+            </action>
+            <action>
+                <trigger name="screendevicechange" reason="landscape"/>
+                <event name="system/set">
+                    <property name="name" value="padding-left"/>
+                    <property name="value" value="0px"/>
+                    <property name="type" value="numeric"/>
+                    <property name="id" value="plugins_container"/>
+                </event>
+                <event name="system/set">
+                    <property name="name" value="padding-right"/>
+                    <property name="value" value="0px"/>
+                    <property name="type" value="numeric"/>
+                    <property name="id" value="plugins_container"/>
+                </event>
+            </action>
+        </actions>
+
+        <!-- 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>
+        </box>
+
+        <!-- plugins' actions handler -->
+        <actionshandler id="plugin_actions">
+            <actions>
+                <action>
+                    <trigger id="hs_popup_open_hold" name="hold" conditional="true" />
+                    <event name="system/reportentereditmode" effectid="1005"/>
+                </action>
+            </actions>
+        </actionshandler>
+
+        <!-- Avkon stylus popup menu is not layout capable -->
+        <styluspopup id="hs_popup_menu" display="none">
+            <!-- menuitems controlled by widgets' <menuextension> -->
+            <widgetmenuitem id="hs_popup_widget_settings" source="hs_widget_menuitem_settings" label="&qtn_hs_longtap_settings;" />
+            <widgetmenuitem id="hs_popup_widget_general_1" source="hs_widget_general_stylus_popup_1"/>
+            <widgetmenuitem id="hs_popup_widget_general_2" source="hs_widget_general_stylus_popup_2"/>
+            <!--<widgetmenuitem id="hs_popup_widget_refresh" source="hs_widget_menuitem_refresh" label="Refresh" />-->
+            <!-- "Remove" item initialized in runtime to check whether popup is on top of widget -->
+            <dynmenuitem id="hs_popup_remove_widget" type="hs_remove_widget" label="&qtn_hs_longtap_remove_element;">
+                <actions>
+                    <action>
+                        <trigger name="activate"/>
+                        <event name="system/removefocusedwidget"/>
+                    </action>
+                </actions>
+            </dynmenuitem>
+        </styluspopup>
+        <menubar id="hs_menubar">
+            <!-- menu item grouping table is traversed through in run-time always when options menu is launched. -->
+            <menuitemgrouping>
+                <!-- These items are shown when content is visible -->
+                <menuitemgroup id="Menu/NormalMode">
+                    <property name="hs_edit_widgets"/>
+                    <property name="hs_set_online"/>
+                    <property name="hs_set_offline"/>
+                    <property name="hs_add_view"/>
+                    <property name="hs_remove_view"/>
+                </menuitemgroup>
+                <!-- These items are shown in edit mode, if not otherwise changed in the declaration -->
+                <menuitemgroup id="Menu/EditMode">
+                    <property name="hs_widget_catalog"/>
+                    <property name="hs_remove_widget"/>
+                    <property name="hs_widget_settings"/>
+                    <property name="hs_widget_general_1"/>
+                    <property name="hs_widget_general_2"/>
+                    <property name="hs_add_view"/>
+                    <property name="hs_remove_view"/>
+                    <property name="hs_change_wallpaper"/>
+                </menuitemgroup>
+                <!-- These items are always shown, if not otherwise changed in the declaration -->
+                <menuitemgroup id="Menu/AlwaysShown">
+                    <property name="hs_show_help"/>
+                </menuitemgroup>
+            </menuitemgrouping>
+            <menu id="hs_options_menu">
+                <menuitem id="hs_widget_catalog" label="&qtn_hs_widget_catalog;">
+                    <actions>
+                        <action>
+                            <trigger name="activate"/>
+                            <event name="system/runaddwidgetquery"/>
+                        </action>
+                    </actions>
+                </menuitem>
+                <!-- menuitems controlled by widgets' <menuextension> element -->
+                <widgetmenuitem id="hs_widget_settings" source="hs_widget_menuitem_settings" label="&qtn_hs_widget_settings;"/>
+                <widgetmenuitem id="hs_widget_general_1" source="hs_widget_general_options_menu_1"/>
+                <widgetmenuitem id="hs_widget_general_2" source="hs_widget_general_options_menu_2"/>
+                <dynmenuitem id="hs_remove_widget" type="hs_remove_widget" label="&qtn_hs_remove_widget;">
+                    <actions>
+                        <action>
+                            <trigger name="activate"/>
+                            <event name="system/removefocusedwidget"/>
+                        </action>
+                    </actions>
+                </dynmenuitem>
+                <!--<widgetmenuitem id="hs_widget_refresh" source="hs_widget_menuitem_refresh" label="&qtn_hs_refresh_widget;" />-->
+                <menuitem id="hs_edit_widgets" label="&qtn_hs_edit_content;">
+                    <actions>
+                        <action>
+                            <trigger name="activate"/>
+                            <event name="system/reportentereditmode" effectid="1005"/>
+                        </action>
+                    </actions>
+                </menuitem>
+                <menuitem id="hs_change_wallpaper" label="&qtn_hs_change_wallpaper;">
+                    <actions>
+                        <action>
+                            <trigger name="activate"/>
+                            <!--Wallpaper-->
+                            <event name="system/setwallpaper"/>
+                        </action>
+                    </actions>
+                </menuitem>
+                <dynmenuitem id="hs_add_view" type="hs_add_view" label="&qtn_hs_page_options_new;">
+                    <actions>
+                        <action>
+                            <trigger name="activate"/>
+                            <event name="system/addview" effectid="1009"/>
+                        </action>
+                    </actions>
+                </dynmenuitem>
+                <dynmenuitem id="hs_remove_view" type="hs_remove_view" label="&qtn_hs_page_options_delete;">
+                    <actions>
+                        <action>
+                            <trigger name="activate"/>
+                            <event name="system/removeview" effectid="1010"/>
+                        </action>
+                    </actions>
+                </dynmenuitem>
+                <dynmenuitem id="hs_set_online" type="hs_online" label="&qtn_hs_online;">
+                    <actions>
+                        <action>
+                            <trigger name="activate"/>
+                            <event name="EventHandler/SetOnline"/>
+                        </action>
+                    </actions>
+                </dynmenuitem>
+                <dynmenuitem id="hs_set_offline" type="hs_offline" label="&qtn_hs_offline;">
+                    <actions>
+                        <action>
+                            <trigger name="activate"/>
+                            <event name="EventHandler/SetOffline"/>
+                        </action>
+                    </actions>
+                </dynmenuitem>
+                <menuitem id="hs_show_help" label="&qtn_options_help;">
+                    <actions>
+                        <action>
+                            <trigger name="activate"/>
+                            <event name="EventHandler/ShowHelp"/>
+                        </action>
+                    </actions>
+                </menuitem>
+            </menu>
+            <softkey id="lsk" type="left" label="&text_softkey_options;">
+                <actions>
+                    <action>
+                        <trigger name="activate"/>
+                        <event name="system/trydisplayingmenu">
+                            <property name="id" value="hs_options_menu"/>
+                        </event>
+                    </action>
+                </actions>
+            </softkey>
+            <softkey id="rsk" type="right" mode="mode_callinactive" label="&text_softkey_call;">
+                <actions>
+                    <action>                        
+                        <trigger name="activate"/>
+                        <event name="EventHandler/ActivateView" uid="0x100058B3" viewid="0x10282D81" messageid="0x1"/>
+                    </action>
+                    <action>
+                        <trigger name="hold"/>
+                        <!-- Voice command-->
+                        <event name="EventHandler/LaunchApp" uid="0x101F8543"/>
+                    </action>
+                </actions>
+            </softkey>
+            <softkey id="rsk_incall" type="right" mode="mode_callactive" label="&text_softkey_back;">
+                <actions>
+                    <action>                        
+                        <trigger name="activate"/>
+                        <event name="EventHandler/ActivatePhoneView" />
+                    </action>
+                </actions>
+            </softkey>
+            <softkey id="rsk_done" type="right" mode="mode_edit" label="&text_softkey_done;">
+                <actions>
+                    <action>
+                        <trigger name="activate"/>
+                        <event name="system/reportexiteditmode" effectid="1006"/>
+                    </action>
+                </actions>
+            </softkey>
+            <softkey id="msk_ltr" type="middle" label=""> <!--TODO: Remove label when MSK icon available-->
+                <actions>
+                    <action>
+                        <trigger name="activate"/>
+                        <event name="system/activatenextview" effectid="1003"/>
+                    </action>
+                </actions>
+                <!--image id="switcher_icon"/-->
+            </softkey>
+            <softkey id="msk_rtl" type="middle" label=""> <!--TODO: Remove label when MSK icon available-->
+                <actions>
+                    <action>
+                        <trigger name="activate"/>
+                        <event name="system/activatepreviousview" effectid="1004"/>
+                    </action>
+                </actions>
+                <!--image id="switcher_icon"/-->
+            </softkey>
+        </menubar>
+    </view>
+</xmluiml>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/37/View.css	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,86 @@
+view 
+{
+    direction: ltr;
+    block-progression: tb;
+    background-image: wallpaper;
+    swipe: true;
+
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+    direction: rtl;
+    block-progression: rl;
+    padding-top: 3px;
+}
+
+plugin.plugins
+{
+    height: 82px; 
+    width: 312px; 
+
+    margin-bottom: 4px;
+    margin-right: 5px;
+    margin-left: 5px;
+    _s60-longtap: true;
+    nav-index: appearance;
+}
+
+plugin:edit
+{
+    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;
+}
+
+trigger#hs_popup_open_up
+{
+    display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+    display: block;
+}
+
+softkey#rsk
+{
+    _s60-longtap: true;
+    _s60-aspect-ratio: preserve;
+}  
+
+softkey#msk_ltr
+{
+    display: none;
+}
+
+softkey#msk_rtl
+{
+    display: block;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/50/View.css	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,86 @@
+view 
+{
+    direction: ltr;
+    block-progression: tb;
+    background-image: wallpaper;
+    swipe: true;
+
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+    direction: rtl;
+    block-progression: rl;
+    padding-top: 3px;
+}
+
+plugin.plugins
+{
+    height: 82px; 
+    width: 312px; 
+
+    margin-bottom: 4px;
+    margin-right: 5px;
+    margin-left: 5px;
+    _s60-longtap: true;
+    nav-index: appearance;
+}
+
+plugin:edit
+{
+    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;
+}
+
+trigger#hs_popup_open_up
+{
+    display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+    display: block;
+}
+
+softkey#rsk
+{
+    _s60-longtap: true;
+    _s60-aspect-ratio: preserve;
+}  
+
+softkey#msk_ltr
+{
+    display: none;
+}
+
+softkey#msk_rtl
+{
+    display: block;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/57/View.css	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,86 @@
+view 
+{
+    direction: ltr;
+    block-progression: tb;
+    background-image: wallpaper;
+    swipe: true;
+
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+    direction: rtl;
+    block-progression: rl;
+    padding-top: 3px;
+}
+
+plugin.plugins
+{
+    height: 82px; 
+    width: 312px; 
+
+    margin-bottom: 4px;
+    margin-right: 5px;
+    margin-left: 5px;
+    _s60-longtap: true;
+    nav-index: appearance;
+}
+
+plugin:edit
+{
+    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;
+}
+
+trigger#hs_popup_open_up
+{
+    display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+    display: block;
+}
+
+softkey#rsk
+{
+    _s60-longtap: true;
+    _s60-aspect-ratio: preserve;
+}  
+
+softkey#msk_ltr
+{
+    display: none;
+}
+
+softkey#msk_rtl
+{
+    display: block;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/94/View.css	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,86 @@
+view 
+{
+    direction: ltr;
+    block-progression: tb;
+    background-image: wallpaper;
+    swipe: true;
+
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+    direction: rtl;
+    block-progression: rl;
+    padding-top: 3px;
+}
+
+plugin.plugins
+{
+    height: 82px; 
+    width: 312px; 
+
+    margin-bottom: 4px;
+    margin-right: 5px;
+    margin-left: 5px;
+    _s60-longtap: true;
+    nav-index: appearance;
+}
+
+plugin:edit
+{
+    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;
+}
+
+trigger#hs_popup_open_up
+{
+    display: none;
+}
+
+trigger#hs_popup_open_up:edit
+{
+    display: block;
+}
+
+softkey#rsk
+{
+    _s60-longtap: true;
+    _s60-aspect-ratio: preserve;
+}  
+
+softkey#msk_ltr
+{
+    display: none;
+}
+
+softkey#msk_rtl
+{
+    display: block;
+}
--- a/idlehomescreen/hscontentcontrol/bwins/hscontentcontrol.def	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/hscontentcontrol/bwins/hscontentcontrol.def	Fri Mar 12 15:41:49 2010 +0200
@@ -3,4 +3,5 @@
 	?GetHsContentController@CHsContentControlFactory@@QAEPAVMHsContentControlUi@@ABVTDesC8@@@Z @ 2 NONAME ; class MHsContentControlUi * CHsContentControlFactory::GetHsContentController(class TDesC8 const &)
 	??1CHsContentControlFactory@@UAE@XZ @ 3 NONAME ; CHsContentControlFactory::~CHsContentControlFactory(void)
 	?NewL@CHsContentControlFactory@@SAPAV1@AAVCXnAppUiAdapter@@@Z @ 4 NONAME ; class CHsContentControlFactory * CHsContentControlFactory::NewL(class CXnAppUiAdapter &)
+	?PrepareToExit@CHsContentControlFactory@@QAEXXZ @ 5 NONAME ; void CHsContentControlFactory::PrepareToExit(void)
 
--- a/idlehomescreen/hscontentcontrol/eabi/hscontentcontrol.def	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/hscontentcontrol/eabi/hscontentcontrol.def	Fri Mar 12 15:41:49 2010 +0200
@@ -5,4 +5,5 @@
 	_ZN24CHsContentControlFactoryD0Ev @ 4 NONAME
 	_ZN24CHsContentControlFactoryD1Ev @ 5 NONAME
 	_ZN24CHsContentControlFactoryD2Ev @ 6 NONAME
+	_ZN24CHsContentControlFactory13PrepareToExitEv @ 7 NONAME
 
--- a/idlehomescreen/hscontentcontrol/inc/hscontentcontrolfactory.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/hscontentcontrol/inc/hscontentcontrolfactory.h	Fri Mar 12 15:41:49 2010 +0200
@@ -88,6 +88,11 @@
     IMPORT_C MHsContentControlUi* GetHsContentController(
         const TDesC8& aControllerType );
 
+    /**
+     * 
+     */
+    IMPORT_C void PrepareToExit();
+
 private:
 
     /** 
--- a/idlehomescreen/hscontentcontrol/src/hscontentcontrolfactory.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/hscontentcontrol/src/hscontentcontrolfactory.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -103,22 +103,13 @@
 //
 EXPORT_C CHsContentControlFactory::~CHsContentControlFactory()
     {
+    delete iHsContentControlEComListener;
+    delete iHsContentControlUninstallMonitor;
+    
     iImplArray.ResetAndDestroy();
     iImplArray.Close();
     
-    if ( iHsContentControlUis.Count() > 0 )
-        {
-        for( TInt index( iHsContentControlUis.Count() - 1 ); index >= 0; --index )
-            {
-            CHsContentControlUi* cc( iHsContentControlUis[ index ] );
-            ReleaseHsCcUi( cc );
-            }
-        }
-
     iHsContentControlUis.ResetAndDestroy();
-    
-	delete iHsContentControlEComListener;
-    delete iHsContentControlUninstallMonitor;
     }
 
 // ---------------------------------------------------------------------------------
@@ -126,7 +117,7 @@
 // ---------------------------------------------------------------------------------
 //
 EXPORT_C MHsContentControlUi* CHsContentControlFactory::GetHsContentController(
-    const TDesC8& aControlType )    
+    const TDesC8& aControlType )
     {
     MHsContentControlUi* retval( FindHsContentController( aControlType ) ); 
     
@@ -167,6 +158,22 @@
     return retval;
     }
 
+// ---------------------------------------------------------------------------------
+// CHsContentControlFactory::PrepareToExit()
+// ---------------------------------------------------------------------------------
+//
+EXPORT_C void CHsContentControlFactory::PrepareToExit()
+    {
+    if ( iHsContentControlUis.Count() > 0 )
+        {
+        for( TInt index( iHsContentControlUis.Count() - 1 ); index >= 0; --index )
+            {
+            CHsContentControlUi* cc( iHsContentControlUis[ index ] );
+            ReleaseHsCcUi( cc );
+            }
+        }
+    }
+
 // ----------------------------------------------------------------------------
 // CHsContentControlFactory::FindHsContentController()
 // ----------------------------------------------------------------------------
@@ -245,7 +252,7 @@
     // If an implementation is not present in present in the plugInArray then its removed. 
     for( TInt index( iImplArray.Count() - 1 ); index >= 0 && !done; --index )
         {
-        uid = plugInArray[ index ]->ImplementationUid();
+        uid = iImplArray[ index ]->ImplementationUid();
         CImplementationInformation* implInfo = 
                 FindPluginImplInfo( uid, plugInArray );
         if ( implInfo && PluginUpgradeDowngrade( *implInfo ) )
--- a/idlehomescreen/inc/xnappuiadapter.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/inc/xnappuiadapter.h	Fri Mar 12 15:41:49 2010 +0200
@@ -34,6 +34,7 @@
 class MHsContentControlUi;
 class CXnEffectManager;
 class MHsContentControl;
+
 // Class declaration
 /**
  * Avkon adapter for Xuikon.
@@ -149,6 +150,7 @@
 
     /**
      * Routes the events from external rendering plug-ins to content plug-ins.
+     * To be overriden by subclass.
      *
      * @since S60 5.2
      * @param aEvent Event string
@@ -157,31 +159,45 @@
     IMPORT_C virtual void HandleEventL( const TDesC& aEvent, 
         CXnNodeAppIf& aDestination );
     
-public:
     /**
-     * From CEikAppUi.
+     * This is called when initial view is activated
+     * To be overriden by subclass.
+     * 
+     * @since S60 5.2
+     */
+    IMPORT_C virtual void UiActivated();
+    
+    /**     
      * Second-phase constructor
      *
      * @since Series 60 3.1
      */
     IMPORT_C void ConstructL();
 
-protected:
+    /**
+     * From CEikAppUi.
+     *
+     * @since Series 60 3.1
+     */
+    IMPORT_C void ProcessMessageL( TUid aUid, const TDesC8& aParams );
 
+protected:
+    // from CAknViewAppUi
+    
     /**
-     * From CAknAppUi.
+     * @see CAknViewAppUi
      *
      * @since Series 60 3.1
      */
     IMPORT_C void HandleResourceChangeL( TInt aType );
 
     /**
-     * From CAknAppUi.
+     * @see CAknViewAppUi
      *
-     * @since Series 60 5.2
+     * @since S60 5.2
      */
     IMPORT_C void PrepareToExit();
-
+        
 public:
     // new functions
         
@@ -266,7 +282,7 @@
      * Makes focus control visible
      *
      * @since S60 5.0     
-     */        
+     */
     void ShowFocus();
 
 private:
--- a/idlehomescreen/inc/xneditmode.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/inc/xneditmode.h	Fri Mar 12 15:41:49 2010 +0200
@@ -151,14 +151,6 @@
      * @since Series 60 5.0     
      */
     void UpdateScreen();
-
-    /**
-     * Sets the title for status pane
-     *
-     * @since Series 60 5.0
-     * @param aEdit Edit mode or not.
-     */
-    void SetStatusPaneTitleL( TBool aEdit );
     
 private:    
     // Constructors
--- a/idlehomescreen/inc/xnlistquerydialogadapter.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/inc/xnlistquerydialogadapter.h	Fri Mar 12 15:41:49 2010 +0200
@@ -29,6 +29,7 @@
 // FORWARD DECLARATIONS
 class CXnNodePluginIf;
 class CXnUiEngine;
+class CAknListQueryDialog;
 
 // CLASS DECLARATION
 
@@ -200,6 +201,10 @@
         void ModifyDynamicEventL( TInt aIndex );
             
     private:    // Data	
+        
+        // Dialog
+        CAknListQueryDialog* iDialog;
+        
         // Node 
         CXnNodePluginIf& iNode;
         /**
--- a/idlehomescreen/inc/xnnode.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/inc/xnnode.h	Fri Mar 12 15:41:49 2010 +0200
@@ -888,62 +888,6 @@
      * @see GetPropertyL
      * @return The property mapped to the key or NULL if not found.
      */
-    CXnProperty* VisibleRowsL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    CXnProperty* GridColumnsL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    CXnProperty* GridOrientationL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    CXnProperty* GridVerDirectionL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    CXnProperty* GridHorDirectionL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    CXnProperty* FocusHorLoopingL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    CXnProperty* FocusVerLoopingL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
     CXnProperty* ZIndexL();
 
     /**
@@ -971,30 +915,6 @@
     CXnProperty* BackgroundImageL();
 
     /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    CXnProperty* RefL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    CXnProperty* GridScrollBarMarginL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    CXnProperty* GridScrollBarWidthL();
-
-    /**
      * Sets the pointer of DOM node
      *
      * @since S60 3.1
@@ -1052,27 +972,6 @@
     void FixAdaptiveSizeL( const TSize& aFixedSize );
 
     /**
-     * Restarts the timer in a timed trigger.
-     *
-     * @param aDelay Delay in microseconds. If delay is zero, then the timer
-     *        is only cancelled.
-     */
-    void RestartTimedTrigger( TInt aDelay = 0 );
-
-    /**
-     * Sets default trigger delay.
-     *
-     * @param aDelay delay in microseconds. If new delay is not set, then
-     *        this value is used in restarting the timer.
-     */
-    void SetTriggerDelay( TTimeIntervalMicroSeconds32 aDelay );
-
-    /**
-     * Returns the default trigger delay.
-     */
-    TTimeIntervalMicroSeconds32 TriggerDelay();
-
-    /**
      * Marks node as dirty, adds it to UiEngine's dirty list and
      * clears rendered and laidout from the node and its children.
      *
@@ -1184,10 +1083,6 @@
      */
     CXnNodeAppIf* iAppIf;
 
-    /**
-     * delay in microseconds for timer.
-     */
-    TTimeIntervalMicroSeconds32 iTriggerDelay;
     };
 
 #endif
--- a/idlehomescreen/inc/xnnodeimpl.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/inc/xnnodeimpl.h	Fri Mar 12 15:41:49 2010 +0200
@@ -33,7 +33,6 @@
 class CXnProperty;
 class CXnNode;
 class CXnUiEngine;
-class CGridPropertyCache;
 class CLayoutPropertyCache;
 class CXnDomNode;
 class CXnScrollableControlAdapter;
@@ -797,62 +796,6 @@
      * @see GetPropertyL
      * @return The property mapped to the key or NULL if not found.
      */
-    CXnProperty* VisibleRowsL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    CXnProperty* GridColumnsL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    CXnProperty* GridOrientationL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    CXnProperty* GridVerDirectionL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    CXnProperty* GridHorDirectionL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    CXnProperty* FocusHorLoopingL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    CXnProperty* FocusVerLoopingL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
     CXnProperty* ZIndexL();
 
     /**
@@ -880,30 +823,6 @@
     CXnProperty* BackgroundImageL();
 
     /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    CXnProperty* RefL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    CXnProperty* GridScrollBarMarginL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    CXnProperty* GridScrollBarWidthL();
-
-    /**
      * Sets the pointer of DOM node
      *
      * @since S60 3.1
@@ -953,29 +872,6 @@
     void FixAdaptiveSizeL( const TSize& aFixedSize );
 
     /**
-     * Callback which will be called by the CPeriodic.
-     *
-     * @param aPtr User defined pointer.
-     * @return ETrue if the method should be called again.
-     */
-    static TInt PeriodicEventL( TAny* aPtr );
-
-    /**
-     * Returns a pointer to the periodic timer (for timed triggers).
-     */
-    CPeriodic* PeriodicTimer();
-
-    /**
-     * Creates a periodic timer (iPeriodicTimer).
-     */
-    void CreatePeriodicL();
-
-    /**
-     * Deletes a periodict timer (iPeriodicTimer)
-     */
-    void DeletePeriodic();
-
-    /**
      * Marks node as dirty, adds it to UiEngine's dirty list and
      * clears rendered and laidout from the node and its children.
      *
@@ -1016,7 +912,7 @@
      * Gets scrollable control.
      */
     CXnScrollableControlAdapter* ScrollableControl();
-        
+            
 private:
 
     TInt DoSetPropertyL( CXnProperty* aPropery );
@@ -1129,12 +1025,6 @@
     RArray< CXnDomProperty::TPseudoClass > iStates;
 
     /**
-     * Local cache for property with name KRef.
-     * Not own.
-     */
-    CXnProperty* iRef;
-
-    /**
      * Local cache for property with name KName.
      * Not own.
      */
@@ -1186,12 +1076,6 @@
      * Local property cache.
      * Own.
      */
-    CGridPropertyCache* iGridPropertyCache;
-
-    /**
-     * Local property cache.
-     * Own.
-     */
     CLayoutPropertyCache* iLayoutPropertyCache;
 
     /**
@@ -1216,11 +1100,6 @@
      */
     TInt iAdaptive;
 
-    /**
-     * The timer for the timed triggers.
-     * Own.
-     */
-    CPeriodic* iPeriodicTimer;
     };
 
 #endif
--- a/idlehomescreen/inc/xnnodepluginif.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/inc/xnnodepluginif.h	Fri Mar 12 15:41:49 2010 +0200
@@ -390,86 +390,6 @@
      * @see GetPropertyL
      * @return The property mapped to the key or NULL if not found.
      */
-    IMPORT_C CXnProperty* VisibleRowsL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    IMPORT_C CXnProperty* GridColumnsL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    IMPORT_C CXnProperty* GridOrientationL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    IMPORT_C CXnProperty* GridVerDirectionL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    IMPORT_C CXnProperty* GridHorDirectionL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    IMPORT_C CXnProperty* FocusHorLoopingL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    IMPORT_C CXnProperty* FocusVerLoopingL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    IMPORT_C CXnProperty* RefL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    IMPORT_C CXnProperty* GridScrollBarWidthL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
-    IMPORT_C CXnProperty* GridScrollBarMarginL();
-
-    /**
-     * Get property as indicated by method name.
-     *
-     * @see GetPropertyL
-     * @return The property mapped to the key or NULL if not found.
-     */
     IMPORT_C CXnProperty* PathL();
 
     /**
--- a/idlehomescreen/inc/xnproperty.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/inc/xnproperty.h	Fri Mar 12 15:41:49 2010 +0200
@@ -48,27 +48,13 @@
         _LIT8(KInitialFocus, "_s60-initial-focus");
         _LIT8(KFocusAppearance, "_s60-focus-appearance");                
         _LIT8(KDisabled, "disabled");
-//        _LIT8(KLocked, "locked");
-//        _LIT8(KStyleLocked, "stylelocked");
         _LIT8(KLongTap, "_s60-longtap");
         _LIT8(KSwipe, "swipe");
         _LIT8(KSwipeDestination, "_s60-swipe-destination");
         _LIT8(KBackgroundMask, "backgroundmask" );
-        _LIT8(KStylusStates, "stylusstates");
-        /*_LIT8(KTouchFeedbackDown, "touchfeedbackdown");
-        _LIT8(KTouchFeedbackUp, "touchfeedbackup");
-        _LIT8(KTouchFeedbackDrag, "touchfeedbackdrag");
-        _LIT8(KTouchFeedbackLongTap, "touchfeedbacklongtap");*/
-        _LIT8(KEventFilter, "eventfilter");
         _LIT8(KEffectId, "effectid");
-        _LIT8(KKeyMoveMode, "keymovemode");
         _LIT8(KSizeAware, "sizeaware");
         _LIT8(KVisualisationAware, "visualisationaware");
-        /*namespace touchfeedback
-            {
-            _LIT8(KFeedbackBasic, "basic");
-            _LIT8(KFeedbackSensitive, "sensitive");
-            }*/            
         }
     namespace tooltip
         {
@@ -77,7 +63,6 @@
         _LIT8(KPositionHint, "_s60-position-hint");
         namespace positionhint
             {
-//            _LIT8(KNone, "none");
             _LIT8(KAboveLeft, "aboveleft");
             _LIT8(KAboveRight, "aboveright");
             _LIT8(KBelowLeft, "belowleft");
@@ -98,10 +83,6 @@
         }
     namespace view
         {
-//        _LIT8(KUid, "uid");
-        _LIT8(KInitial, "initial");
-//        _LIT8(KTitle, "title");
-        _LIT8(KFocusVisibility, "_s60-focus-visibility");
         _LIT8(KStatusPaneLayout, "_s60-status-pane-layout");
         namespace statuspanelayout
             {
@@ -113,59 +94,18 @@
             _LIT8( KWideScreenFlat3Softkeys, "widescreen-flat-3softkeys" );
             }
         }
-    namespace grid
-        {
-//        _LIT8(KType, "type");
-//        namespace type
-//            {
-//            _LIT8(KSelection, "selection");
-//            _LIT8(KMarkable, "markable");
-//            }
-//        _LIT8(KSelectionType, "selectiontype");
-//        namespace selectiontype
-//            {
-//            _LIT8(KSingle, "single");
-//            _LIT8(KMulti, "multi");
-//            }
-//        _LIT8(KMarkingElement, "markingelement");
-//        _LIT8(KMarkingElementOff, "markingelementoff");
-//        _LIT8(KOpeningEffect, "openingeffect");
-        _LIT8(KS60GridColumns, "_s60-grid-columns");
-        _LIT8(KS60VisibleRows, "_s60-visible-list-rows");
-//        _LIT8(KS60GridColumnsLandscape, "_s60-grid-columns-landscape");
-//        _LIT8(KS60VisibleRowsLandscape, "_s60-visible-list-rows-landscape");
-//        _LIT8(KS60InitialSelection, "_s60-initial-list-selection");
-        _LIT8(KS60FocusHorLooping, "_s60-list-focus-horizontal-looping");
-        _LIT8(KS60FocusVerLooping, "_s60-list-focus-vertical-looping");
-        namespace s60_focus_looping
-            {
-            _LIT8(KStop, "stop");
-//            _LIT8(KLoop, "loop");
-//            _LIT8(KSnake, "snake");
-            }
-        _LIT8(KS60GridOrientation, "_s60-grid-orientation");
-        _LIT8(KS60GridVerDirection, "_s60-grid-ver-direction"); //lr, rl
-        _LIT8(KS60GridHorDirection, "_s60-grid-hor-direction"); //tb, bt
-//        _LIT8(KS60GridPreserveImageRatio, "_s60-grid-preserve-image-ratio");
-        _LIT8(KS60GridScrollbarWidth, "_s60-grid-scrollbar-width");
-        _LIT8(KS60GridScrollbarMargin, "_s60-grid-scrollbar-margin");
-        _LIT8(KGridCellTemplate, "gridcelltemplate");
-        _LIT8(KListRowTemplate, "listrowtemplate");
-        }
     namespace newsticker
         {
         _LIT8(KXnNewsticker, "newsticker");
         _LIT8(KXnScrollAmount, "_s60-scroll-amount");
         _LIT8(KXnScrollDelay, "_s60-scroll-delay");
         _LIT8(KXnStartDelay, "_s60-start-delay");
-        _LIT8(KXnNewstickerAnimationDelay, "_s60-animation-delay");
         _LIT8(KDisplayTime, "_s60-display-time");
         _LIT8(KScrollBehaviour, "_s60-scroll-behaviour");
         _LIT8(KScrollLoop, "_s60-scroll-loop");
         _LIT8(KRestartAfterUpdate, "_s60-restart-after-update");
         namespace scroll_behaviour
             {
-//            _LIT8(KScroll, "scroll");
             _LIT8(KSlide, "slide");
             _LIT8(KAlternate, "alternate");
             _LIT8(KScrollAlternate, "scroll-alternate");
@@ -176,44 +116,10 @@
         _LIT8(KTitleIndex, "titleindex" );
         _LIT8(KTitle, "title" );
         }
-/*    namespace trackster
-        {
-        _LIT8( KTrackster, "trackster" );
-        _LIT8( KTracksterCellTemplate, "trackstercelltemplate" );
-        _LIT8( KText, "text" );
-        _LIT8( KImage, "image" );
-        _LIT8( KCurveTypeCurve, "trackstercurve" );
-        _LIT8( KCurveTypeZoom, "tracksterzoom" );
-        _LIT8( KKeyPoint, "keypoint" );
-        _LIT8( KXCoordinate, "_s60-co-ordinate-x" );
-        _LIT8( KYCoordinate, "_s60-co-ordinate-y" );
-        _LIT8( KScrollTime, "_S60-scroll-time" );
-        _LIT8( KS60VisibleFocus, "_s60-visible-focus" );
-        _LIT8( KTracsterItems, "tracksteritems" );
-        _LIT8( KItemCount, "_s60-item-count" );
-        _LIT8( KVisibleFocus, "_s60-visible-focus" );
-        _LIT8( KItemPoints, "_s60-item-points" );
-        _LIT8( KTracksterType, "trackstertype" );
-        _LIT8( KTypeContainer, "container" );
-        _LIT8( KTypePreview, "preview" );
-        }*/
-/*    namespace anim
-        {
-        _LIT8(KS60ZoomingFactor, "_s60-zooming-factor");
-        _LIT8(KS60ZoomingTime, "_s60-zooming-time");
-        _LIT8(KS60StartDelay, "_s60-start-delay");
-        _LIT8(KS60AnimationDelay, "_s60-animation-delay");
-        _LIT8(KS60LoopAmount, "_s60-loop-amount");
-        _LIT8(KS60SmoothEnding, "_s60-smooth-ending");
-        _LIT8(KS60HighlightAnimation, "_s60-highlight-animation");
-        _LIT8(KS60FocusAnimationTime, "_s60-focus-animation-time");
-        _LIT8(KS60HWAcceleration, "_s60-hw-acceleration");
-        }*/
     namespace menu
         {
         namespace menutype
             {
-//            _LIT8(KMenuOptions, "menuoptions");
             _LIT8(KMenuOptionsNoTaskSwapper, "menuoptionsnotaskswapper");
             }
         _LIT8(KMenuItem, "menuitem" );
@@ -222,11 +128,8 @@
         _LIT8(KMenuType, "menutype");                
         _LIT8(KEvent, "event");
         _LIT8(KLabel, "label");
-//        _LIT8(KSelectionType, "selectiontype");
         _LIT8(KChecked, "checked");
-//        _LIT8(KMSKDotImage8,"#mskdot");
         _LIT(KMSKDotImage16,"#mskdot");       
-//        _LIT(KMSKDialerImage, "#dialer");
         _LIT8(KItemType, "type");
         }
     namespace listquerydialog
@@ -252,10 +155,6 @@
             _LIT8(KModeEdit, "mode_edit");
             }
         }
-    namespace text
-        {
-//        _LIT8(KLabel, "label");
-        }
     namespace image
         {
         _LIT8(KPath, "path");
@@ -271,7 +170,6 @@
             {
             _LIT8(KDigital, "digital");
             _LIT8(KAnalog, "analog");
-//            _LIT8(KLocale, "locale");
             }
             
         _LIT8(KS60AmPmFontSize, "_s60-ampm-font-size" );  
@@ -300,7 +198,6 @@
         namespace trigger
             {
             _LIT8(KName, "name");
-            _LIT8(KDelay, "delay");
             namespace name 
                 {
                 _LIT8(KLeft, "left");
@@ -310,7 +207,6 @@
                 _LIT8(KDownAndUp, "downup");
                 _LIT8(KActivate, "activate");
                 _LIT8(KHold, "hold");
-//                _LIT8(KHover, "hover");
                 _LIT8(KFocus, "focus");
                 _LIT8(KPassiveFocus, "passivefocus");
                 _LIT8(KGainFocus, "gainfocus");
@@ -318,28 +214,19 @@
                 _LIT8(KKeyEvent,     "keyevent");
                 _LIT8(KViewActivate, "viewactivate");
                 _LIT8(KViewDeactivate, "viewdeactivate");
-//                _LIT8(KStartup, "startup");
-//                _LIT8(KShutdown,  "shutdown");
                 _LIT8(KScreenDeviceChange, "screendevicechange");
-//                _LIT8(KUiDefinitionModificationStart, "uidefinitionmodificationstart");
-//                _LIT8(KUiDefinitionModificationEnd,   "uidefinitionmodificationend");
-                _LIT8(KForeground, "foreground");
-                _LIT8(KBackground, "background");
                 _LIT8(KStylus, "stylus");
                 _LIT8(KGainVisualisation, "gainvisualisation");
                 _LIT8(KLoseVisualisation, "losevisualisation");
-                /*_LIT8(KGainFocusNotification, "gainfocusnotification");*/
                 _LIT8(KSwipe, "swipe");
                 _LIT8(KSizeChanged, "sizechanged");                
                 _LIT8(KWidgetAmount, "widgetamount");
                 _LIT8(KTitleToScroll, "titletoscroll");
                 _LIT8(KTitleScrolled, "titlescrolled");
                 _LIT8(KTitleIndex, "titleindex");
-                /*_LIT8(KViewPagesCountChanged, "viewpagescountchanged");*/
                 _LIT8(KCallState, "callstate");
-                /*_LIT8(KViewAdditionCompleted, "viewadded" );*/
                 _LIT8(KEditMode, "editmode" );                
-                    
+
                 namespace swipe
                      {
                      _LIT8(KDirection, "direction");
@@ -349,11 +236,6 @@
                          _LIT8(KRight, "right");
                          }
                      }
-                namespace stylus
-                    {
-                    _LIT8(KStylusState, "stylusstate");
-                    _LIT8(KStylusEventType, "eventtype");
-                    }
                 namespace keyevent
                     {
                     _LIT8(KKeyCode, "keycode");
@@ -362,17 +244,13 @@
                     _LIT8(KEventType, "eventtype");
                     _LIT8(KRepeats, "repeats");
                     }
-                namespace uidefinitionmodification
+                namespace orientation
                     {
                     _LIT8(KReason, "reason");
                     namespace reason
                         {
-//                        _LIT8(KThemeActivated, "themeactivated");
-//                        _LIT8(KDisplaySwitch, "displayswitch");
                         _LIT8(KLandscape, "landscape");
                         _LIT8(KPortrait, "portrait");
-//                        _LIT8(KResolutionChange, "resolutionchange");
-//                        _LIT8(KLanguageSwitch, "languageswitch");
                         }
                     }
                 namespace callstate
@@ -385,29 +263,6 @@
                     _LIT8(KEnter, "enter");
                     _LIT8(KExit, "exit");
                     }                     
-                /*namespace viewpagescountchanged
-                    {
-                    _LIT8( KInfo, "info" );
-                    namespace info
-                        {
-                        _LIT8( KInfoMax, "max" );
-                        _LIT8( KInfoMin, "min" );
-                        _LIT8( KInfoMid, "mid" );
-                        _LIT8( KInfoMinMax, "minmax" );
-                        }
-                    }*/
-                /*namespace viewadditioncompleted
-                    {
-                    _LIT8( KAddedViewActivated, "activated" );
-                    }*/                    
-/*                namespace uisettingsmodification
-                    {
-                    _LIT8(KReason, "reason");
-                    namespace reason
-                        {
-                        _LIT8(KSettingsUpdated, "settingsupdated");
-                        }
-                    }*/
                 }
             }
         namespace event
@@ -422,9 +277,7 @@
             _LIT8(KSetEditMode, "system/seteditmode");            
             _LIT8(KResetEditMode, "system/reseteditmode");            
             _LIT8(KClearPassiveFocuses, "system/clearpassivefocuses");
-            _LIT8(KResetStylusCounter, "system/resetstyluscounter");
             _LIT8(KRunAddWidgetQuery, "system/runaddwidgetquery");            
-//            _LIT8(KRunRemoveWidgetQuery, "system/runremovewidgetquery");
             _LIT8(KRemoveFocusedWidget, "system/removefocusedwidget");            
             _LIT8(KRemoveWidget, "system/removewidget");            
             _LIT8(KAddWidget, "system/addwidget");
@@ -433,25 +286,13 @@
             _LIT8(KActivatePreviousView, "system/activatepreviousview");
             _LIT8(KAddView,"system/addview");
             _LIT8(KRemoveView,"system/removeview");
-            /*_LIT8(KFocusNext, "system/focusnext");
-            _LIT8(KFocusPrevious, "system/focusprevious");*/
             _LIT8(KActivate, "system/activate");
             _LIT8(KDeactivate, "system/deactivate");
-            _LIT8(KExit, "system/exitapplication");
             _LIT8(KSet, "system/set");
-            /*_LIT8(KUiDefinitionModificationStart, "system/uidefinitionmodificationstart");
-            _LIT8(KUiDefinitionModificationEnd, "system/uidefinitionmodificationend");
-            _LIT8(KUiSettingsModificationStart, "system/uisettingsmodificationstart");
-            _LIT8(KUiSettingsModificationEnd, "system/uisettingsmodificationend");     */
-            _LIT8(KRestartTriggerTimer, "system/restarttriggertimer" );
-            _LIT8(KCancelTriggerTimer, "system/canceltriggertimer" );   
-            /*_LIT8(KNotifyFocus, "system/notifyfocus" );    */
             _LIT8(KTryDisplayingMenu, "system/trydisplayingmenu");
             _LIT8(KTryDisplayingListQueryDialog, "system/trydisplayinglistquerydialog");
             _LIT8(KTryDisplayingStylusPopup, "system/trydisplayingstyluspopup");
             _LIT8(KToggleWidgetsVisibilty, "system/togglewidgetsvisibilty");
-            /*_LIT8(KStoreFocus, "system/storefocus");
-            _LIT8(KRestoreFocus, "system/restorefocus");*/
             _LIT8(KSetWallpaper, "system/setwallpaper");
             _LIT8(KActivateTextEditor, "system/activatetexteditor");
             _LIT8(KDeactivateTextEditor, "system/deactivatetexteditor");
@@ -502,11 +343,6 @@
                 _LIT8(KBlock, "block");
                 _LIT8(KNone, "none");
                 }
-/*            namespace focus
-                {
-                _LIT8(KSensitive, "sensitive");
-                _LIT8(KNone, "none");
-                }*/
             _LIT8(KS60DisplayPriority, "_s60-display-priority");
             _LIT8(KVisibility, "visibility");
             namespace visibility
@@ -515,12 +351,6 @@
                     _LIT8(KHidden, "hidden");
                     _LIT8(KBlank, "blank");
                     }
-//            _LIT8(KS60Orientation, "_s60-orientation");
-/*            namespace s60_orientation
-                    {
-                    _LIT8(KVertical, "vertical");
-                    _LIT8(KHorizontal, "horizontal");
-                    }*/
             _LIT8(KBlockProgression, "block-progression");
             namespace block_progression
                     {
@@ -546,7 +376,7 @@
                     {
                     _LIT8(KThin, "thin");
                     _LIT8(KMedium, "medium");
-//                  _LIT8(KThick, "thick");
+                    _LIT8(KThick, "thick");
                     }
             _LIT8(KBorderTopWidth, "border-top-width");
             _LIT8(KBorderRightWidth, "border-right-width");
@@ -561,10 +391,8 @@
                 {
                 _LIT8(KAbsolute, "absolute");
                 _LIT8(KStatic, "static");
-//                _LIT8(KFixed, "fixed");
                 _LIT8(KRelative, "relative");
                 _LIT8(KFloating, "floating");
-//                _LIT8(KInherit, "inherit");
                 }
             _LIT8(KTop, "top");
             _LIT8(KRight, "right");
@@ -575,11 +403,14 @@
             _LIT8(KMinHeight, "min-height");
             _LIT8(KMaxHeight, "max-height");
             _LIT8(KOverflow, "overflow");
-//            _LIT8(KTextOverflowMode, "text-overflow-mode");
             _LIT8(KZIndex, "z-index");
             _LIT8(KAuto, "auto");
             _LIT8(KAdaptive, "adaptive");
             _LIT8(KAppearance, "appearance");
+            namespace s60_focus_looping
+                {
+                _LIT8(KStop, "stop");
+                }
             }
         }//style
     namespace appearance
@@ -589,9 +420,8 @@
             //Color and background properties
             _LIT8(KColor,            "color");
             _LIT8(KEffectsColor,     "font-effects-color");
-//            _LIT8(KHighlightColor,   "highlight-color");
             _LIT8(KBackGroundColor,  "background-color");
-            _LIT8(KFocusBackground, "focus-background");
+            _LIT8(KFocusBackground,  "focus-background");
             _LIT8(KBackGroundImage,  "background-image");
             _LIT8(KBackGroundSize,   "background-size");
             _LIT8(KBackGroundRepeat, "background-repeat");
@@ -611,7 +441,6 @@
                 _LIT8(KRight, "right");
                 _LIT8(KTop, "top");
                 _LIT8(KBottom, "bottom");
-//                _LIT8(KCenter, "center");
                 }
             // Border properties
             _LIT8(KBorderStyle,     "border-style");
@@ -621,15 +450,8 @@
             _LIT8(KBorderLeftStyle,  "border-left-style");
             namespace borderstyle
                 {
-//                _LIT8(KNone, "none");
-//                _LIT8(KHidden, "hidden");
                 _LIT8(KDotted, "dotted");
-//                _LIT8(KDashed, "dashed");
                 _LIT8(KSolid, "solid");
-//                _LIT8(KDouble, "double");
-//                _LIT8(KDotDash, "dot-dash");
-//                _LIT8(KDotDotDash, "dot-dot-dash");
-//                _LIT8(KWave, "wave");
                 _LIT8(KGroove, "groove");
                 _LIT8(KRidge, "ridge");
                 _LIT8(KInset, "inset");
@@ -679,7 +501,7 @@
             namespace textvalign
                 {
                 _LIT8( KAlignTop, "top");
-//                _LIT8( KAlignCenter, "center");
+                _LIT8( KAlignCenter, "center");
                 _LIT8( KAlignBottom, "bottom");                               
                 }                               
             _LIT8(KTextEffects, "font-effects");
@@ -696,14 +518,12 @@
             namespace textoverflow
                 {
                 _LIT8(KClipMode, "clip");
-//                _LIT8(KEllipsisMode, "ellipsis");
                 _LIT8(KWrapMode,"wrap");
                 _LIT8(KMaxLineAmount,"max-line-amount");
                 }
             _LIT8(KWhiteSpaceCollapse, "white-space-collapse");
             namespace whitespace
                 {
-//                _LIT8(KPreserve, "preserve");
                 _LIT8(KCollapse, "collapse");
                 _LIT8(KPreserveBreaks, "preserve-breaks");
                 _LIT8(KDiscard, "discard");
--- a/idlehomescreen/inc/xnviewmanager.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/inc/xnviewmanager.h	Fri Mar 12 15:41:49 2010 +0200
@@ -21,6 +21,9 @@
 // System includes
 #include <e32base.h>
 
+// User includes
+#include "xnpropertysubscriber.h"
+
 // Forward declarations
 class CXnUiEngine;
 class CXnComposer;
@@ -82,7 +85,8 @@
  * @lib xn3layoutengine.lib
  * @since S60 5.0
  */
-NONSHARABLE_CLASS( CXnViewManager ) : public CBase
+NONSHARABLE_CLASS( CXnViewManager ) : public CBase,
+    public MXnPropertyChangeObserver
     {
 public:
     /**
@@ -115,6 +119,14 @@
      */
     void ConstructL();
 
+private:
+    // from MXnPropertyChangeObserver
+    
+    /**
+     * @see MXnPropertyChangeObserver
+     */
+    void PropertyChangedL( const TUint32 aKey, const TInt aValue );
+    
 public:
     // New functions
 
@@ -145,6 +157,9 @@
     void PluginDataL( RPointerArray< CXnPluginData >& aList, 
         TBool aGlobal = EFalse ) const;
 
+    TInt PluginDataL( const TDesC8& aParentId, 
+        RPointerArray< CXnPluginData >& aList ) const;
+
     RPointerArray< CXnNode >& AppearanceNodes() const;
 
     CArrayPtrSeg< CXnResource >& Resources() const ;
@@ -154,22 +169,21 @@
     void ReloadUiL();
 
     TInt LoadWidgetToPluginL(
-        CHsContentInfo& aContentInfo,
+        const CHsContentInfo& aContentInfo,
         CXnPluginData& aPluginData );
 
     TInt UnloadWidgetFromPluginL(
         CXnPluginData& aPluginData, TBool aForce = EFalse );
         
     TInt ReplaceWidgetToPluginL(
-        CHsContentInfo& aContentInfo,
-        CXnPluginData& aPluginData,
-        TBool aUseHsps = ETrue );
+        const CHsContentInfo& aContentInfo,
+        CXnPluginData& aPluginData );
 
     void ActivateNextViewL( TInt aEffectId = 0 );
 
     void ActivatePreviousViewL( TInt aEffectId = 0 );
 
-    TInt AddViewL( CHsContentInfo& aInfo );
+    TInt AddViewL( const CHsContentInfo& aInfo );
     
     void AddViewL( TInt aEffectId = 0 );
     
@@ -283,6 +297,12 @@
     CXnUiEngine* iUiEngine;
 
     /**
+     * UI startup phase observer
+     * Own.
+     */
+    CXnPropertySubscriber* iUiStartupPhase;
+    
+    /**
      * Comopser.
      * Own.
      */
@@ -332,19 +352,21 @@
     RPointerArray< MXnViewObserver > iObservers;
     
     /**
-     * OOM system handler. Owned.
+     * OOM system handler. 
+     * Own.
      */
     CXnOomSysHandler* iOomSysHandler;
     
+    /**
+     * Timer for system stability.
+     * Own.
+     */
+    CPeriodic* iStabilityTimer;
+        
 private:   
     // Friend classes
     
-    friend class CXnViewAdapter;       
-    
-    /**
-     * Timer for system stability.
-     */
-    CPeriodic* iStabilityTimer;
+    friend class CXnViewAdapter;           
     };
 
 // Inline functions
--- a/idlehomescreen/nativeuicontroller/group/ainatiui.mmp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/nativeuicontroller/group/ainatiui.mmp	Fri Mar 12 15:41:49 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2006 - 2010 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"
@@ -94,3 +94,4 @@
 #ifdef RD_TACTILE_FEEDBACK
 LIBRARY		touchfeedback.lib
 #endif
+LIBRARY         phonesettings.lib
--- a/idlehomescreen/nativeuicontroller/inc/aidialogrenderer.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/nativeuicontroller/inc/aidialogrenderer.h	Fri Mar 12 15:41:49 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-2010 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"
@@ -19,8 +19,11 @@
 #ifndef C_AIDIALOGRENDERER_H
 #define C_AIDIALOGRENDERER_H
 
-// System incldues
+// System includes
 #include <e32base.h>
+#include "ainativerenderer.h"
+#include <MPsetNetworkInfoObs.h> // for MPsetNetworkInfoObserver 
+#include <MPsetNetworkSelect.h>  // for MPsetNetworkSelect
 
 // User includes
 #include "ainativerenderer.h"
@@ -28,6 +31,10 @@
 // Forward declarations
 class CAknNoteDialog;
 class CHsContentPublisher;
+class CPsetNetwork;
+class CAknWaitDialog;
+class CPsetContainer;
+class CAknPopupList;
 
 namespace AiNativeUiController
 {
@@ -39,7 +46,7 @@
  *
  *  @since S60 3.2
  */
-NONSHARABLE_CLASS( CAiDialogRenderer ) : public CAiNativeRenderer
+NONSHARABLE_CLASS( CAiDialogRenderer ) : public CAiNativeRenderer, public MPsetNetworkInfoObserver
     {
 public:
 
@@ -54,6 +61,59 @@
     void DoCleanL( CHsContentPublisher& aPlugin, TInt aContent );
 
     void FocusObtainedL();
+    
+    // from base class MPsetNetworkInfoObserver
+    
+        /**
+         * @@see MPsetNetworkInfoObserver::HandleNetworkInfoReceivedL
+         */
+        void HandleNetworkInfoReceivedL( 
+                        const CNetworkInfoArray* aInfoArray, const TInt aResult );
+            
+        /**
+         * @@see MPsetNetworkInfoObserver::HandleSearchingNetworksL
+         */
+        void HandleSearchingNetworksL( TServiceRequest aRequest );
+            
+        /**
+         * @@see MPsetNetworkInfoObserver::HandleRequestingSelectedNetworkL
+         */
+        void HandleRequestingSelectedNetworkL( TBool aOngoing );
+    
+        /**
+         * @@see MPsetNetworkInfoObserver::HandleNetworkChangedL - not used
+         */
+        void HandleNetworkChangedL(
+                        const MPsetNetworkSelect::TNetworkInfo& aCurrentInfo,
+                        const RMobilePhone::TMobilePhoneRegistrationStatus& aStatus,
+                        const TInt aResult );
+     
+        /**
+         * @@see MPsetNetworkInfoObserver::HandleNetworkErrorL
+         */
+        void HandleNetworkErrorL( const TServiceRequest aRequest,
+                         const TInt aError );
+    
+        /**
+         * @@see MPsetNetworkInfoObserver::HandleCurrentNetworkInfoL - not used
+         */
+        void HandleCurrentNetworkInfoL( 
+                const MPsetNetworkSelect::TCurrentNetworkInfo& /* aCurrentInfo */, 
+                const TInt /* aResult */ ) {};
+            
+        /**
+         * @@see MPsetNetworkInfoObserver::HandleNetworkChangedL - not used
+         */
+        void HandleNetworkChangedL( 
+                const MPsetNetworkSelect::TNetworkInfo& /* aCurrentInfo */, 
+                const MPsetNetworkSelect::TCurrentNetworkStatus /* aStatus */, 
+                const TInt /* aResult */ ) {}; 
+    
+         /**
+         * @@see MPsetNetworkInfoObserver::HandleCallActivatedL
+         */
+        void HandleCallActivatedL() {};
+    
 
 private:
 
@@ -66,6 +126,40 @@
      */
     void ShowDialogL();
 
+    void ConstructL();
+
+    void PopulatePLMNListL();
+
+    /**
+     * Provides the network operator list.
+     */
+    void NetworkListL();
+
+    /**
+     * Sets title to a popup list.
+     * @param aList pointer to list
+     * @param aTitleID resource ID of the title
+     */
+    void SetTitleToPopupL( CAknPopupList& aList, TInt aTitleID );
+
+    /** 
+     * Creates a waiting note (member variable).
+     * @param aDelayOff is the note shown immediately or not
+     */
+    void CheckAndCreateDlgL( TBool aDelayOff );
+
+    /*
+     * Empties fetched network provider's list.
+     */
+    void PurgeNetworkList();
+
+    /**
+     * Shows a requested note.
+     * @param aResourceId reource ID for note text
+     * @param aType type of note
+     */
+    void ShowNoteL( TInt aResourceId, TInt aType );
+ 
 
 private: // data
 
@@ -92,6 +186,25 @@
     TInt iDialogId;
 #endif
 
+
+    //PhoneSettings engine object
+    CPsetNetwork*           iNetwork;
+    //PhoneSettings container
+    CPsetContainer*         iSettingsContainer;
+    //Requesting note
+    CAknWaitDialog*         iDlg;        
+    //Array of networks
+    CNetworkInfoArray*      iNetworkArray;
+    //Network selection list
+    CAknPopupList*          iNetworkPopupList;
+    //Has the user selected a valid network
+    TBool                   iApprovedNetwork;
+    TBool                   iSearchForNetworksActive;
+    TBool                   iPLMNListPopulateShowIsHandling;
+   
+    // Resource index
+    TInt                    iRscIndex;
+
     };
 
 } // namespace AiNativeUiController
--- a/idlehomescreen/nativeuicontroller/inc/aistatuspanel.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/nativeuicontroller/inc/aistatuspanel.h	Fri Mar 12 15:41:49 2010 +0200
@@ -201,10 +201,14 @@
      TInt iMaskHandle;
 
     /**
-     *
+     * Navidecorator observer
      */
      MAknNaviDecoratorObserver* iNaviDecoratorObserver;
 
+     /**
+      * Flag to indicate wheter text is published to title pane
+      */
+     TBool iTextInTitlePane;
     };
 
 } // namespace AiNativeUiController
--- a/idlehomescreen/nativeuicontroller/src/aidialogrenderer.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/nativeuicontroller/src/aidialogrenderer.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2005-2010 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"
@@ -32,6 +32,54 @@
 #include "aisecondarydisplayapi.h"
 #endif
 
+
+// AVKON headers
+#include <AknNoteWrappers.h>             // for Note Wrappers
+#include <AknPopup.h>                    // for Popup menus
+#include <AknWaitDialog.h>               // for CAknWaitDialog
+#include <StringLoader.h>                // for StringLoader
+#include <eiktxlbm.h>                    // for CTextListBoxModel
+#include <AknLists.h>                    // for AknPopupListEmpty
+#include <bautils.h>                     // for BaflUtils
+
+// Phonesettings headers
+#include <PsetContainer.h>               // for CPsetContainer
+#include <PsetNetwork.h>                 // for CPsetNetwork
+#include <PsetSAObserver.h>              // for CPsetSAObserver
+#include <gsmerror.h>                    // for GSM-specific error messages
+
+#include <GsNetworkPluginRsc.rsg>        // for resource IDs
+#include <CoreApplicationUIsSDKCRKeys.h> // for KCRUidCoreApplicationUIs, TCoreAppUIsNetworkConnectionAllowed
+#include <featmgr.h>
+
+const TInt KAIAlphaTagIconAdditionalChars = 5;
+// Length of long network name.
+const TInt KAIAlphaTagLongNameLength = 20;
+// Length of short network name.
+const TInt KAIAlphaTagShortNameLength = 10;
+
+// array granularity
+const TInt KAINetworkInfoArrayGranularity = 10;
+
+// Error note type ID - for Net view internal usage only
+const TInt KAIPPErrorNote = 5001;
+// Confirmation note type ID - for Net view internal usage only
+const TInt KAIPPConfirmationNote = 5002;
+//Information note type ID - for Net view internal usage only
+const TInt KAIPPInformationNote = 5003;
+
+const TInt KAIPLMNListPopupMenuItems = 3;
+
+// Some resources defined for GSNetworkPlugin are used
+_LIT(KGSNetworkPluginResource, "z:\\resource\\GsNetworkPluginRsc.rsc");
+
+enum TGSSoftKeys
+	{
+	EGSSoftkeyQuit = 1,
+	EGSSoftkeyEmpty
+	};
+
+
 using namespace AiNativeUiController;
 
 // ======== MEMBER FUNCTIONS ========
@@ -44,6 +92,7 @@
     {
     CAiDialogRenderer* self = new( ELeave ) CAiDialogRenderer;
     CleanupStack::PushL( self );
+	self->ConstructL();
     return self;
     }
 
@@ -54,6 +103,45 @@
 //
 CAiDialogRenderer::~CAiDialogRenderer()
     {
+    if ( FeatureManager::FeatureSupported( KFeatureIdFfManualSelectionPopulatedPlmnList ) )
+        {
+        if( iRscIndex )
+            {
+            CEikonEnv::Static()->DeleteResourceFile( iRscIndex );
+            }
+        if ( iNetwork )
+            {
+            if ( iSearchForNetworksActive )
+            {
+            // Reset back to previously used network
+            iNetwork->ResetNetworkSearch();
+            }
+        delete iNetwork;
+        }
+
+        if ( iNetworkArray )
+            {
+            iNetworkArray->Reset();
+            }
+        delete iNetworkArray;
+
+        if ( iDlg )
+            {
+            delete iDlg;
+            }
+        if ( iNetworkPopupList )
+            {
+            iNetworkPopupList->CancelPopup();
+            }
+
+        if ( iSettingsContainer )
+            {
+            delete iSettingsContainer;
+            }
+        }
+
+    FeatureManager::UnInitializeLib();
+
     delete iDialog;
     delete iText;
     }
@@ -66,14 +154,36 @@
 CAiDialogRenderer::CAiDialogRenderer()
     {
     }
-    
-// ----------------------------------------------------------------------------
-// CAiDialogRenderer::DoPublishL()
-//
-// ----------------------------------------------------------------------------
-//
-void CAiDialogRenderer::DoPublishL( CHsContentPublisher& aPlugin, 
-    TInt aContent, TInt aResource, TInt /*aIndex*/  )
+
+void CAiDialogRenderer::ConstructL()
+    {
+    FeatureManager::InitializeLibL();
+
+    if ( FeatureManager::FeatureSupported( KFeatureIdFfManualSelectionPopulatedPlmnList ) )
+        {
+        iSettingsContainer = CPsetContainer::NewL();
+        iNetwork = iSettingsContainer->CreateNetworkObjectL( *this );
+
+        iApprovedNetwork = EFalse;
+        CheckAndCreateDlgL( EFalse );
+        iSearchForNetworksActive = EFalse;
+        iPLMNListPopulateShowIsHandling = EFalse;
+
+        // Open the resource file.  Assume that the resource is stored on the same
+        // drive the DLL is installed on.
+        TFileName file;
+        Dll::FileName( file );
+        TParse parse;
+        parse.Set( KGSNetworkPluginResource, &file, NULL );
+        file = parse.FullName();
+        CEikonEnv* eikonEnv = CEikonEnv::Static();
+        BaflUtils::NearestLanguageFile( eikonEnv->FsSession(), file );
+        iRscIndex = eikonEnv->AddResourceFileL( file );
+        }
+    }
+
+void CAiDialogRenderer::DoPublishL( CHsContentPublisher& aPlugin,
+     TInt aContent, TInt aResource, TInt /*aIndex*/  )
     {
     const THsPublisherInfo& info( aPlugin.PublisherInfo() );
     
@@ -108,21 +218,42 @@
                     }
 	            if ( idleState == EPSAiForeground )
                     {
-  	                ShowDialogL();	                    
+                    ShowDialogL();
                     }
-	            
 	            break;
 	            }
+
+            case EAiDeviceStatusContentNetRegStatus:
+                 {
+                 MPsetNetworkSelect::TSelectMode mode =
+                         MPsetNetworkSelect::ENetSelectModeAutomatic;
+
+                 if ( iNetwork )
+                     {
+                     iNetwork->GetNetworkSelectMode( mode );
+                     }
+
+                 if ( mode == MPsetNetworkSelect::ENetSelectModeManual )
+                     {
+                     if ( aResource == EAiDeviceStatusResourceNetRegFail )
+                         {
+                         PopulatePLMNListL();
+                         }
+                     }
+                 break;
+                 }
+
+
 	        default:
 	            {
 	            User::Leave( KErrNotFound );
 	            break;
 	            }
-	        }
+	        };
     	}
     else
    		{
-   		User::Leave( KErrNotFound );	
+   		User::Leave( KErrNotFound );
    		}
     }
 
@@ -193,4 +324,419 @@
         }
     }
 
+void CAiDialogRenderer::PopulatePLMNListL()
+    {
+    // Ignore any subsequent EAiDeviceStatusResourcePLMNListPopulateShow content while one is handling
+    if ( iPLMNListPopulateShowIsHandling )
+		{
+		return;
+		}
+
+    iPLMNListPopulateShowIsHandling = ETrue;
+    iSearchForNetworksActive = ETrue;
+    iNetwork->GetAvailableNetworksL();
+    }
+
+// ---------------------------------------------------------------------------
+//
+// While request to find networks is processed
+//
+// ---------------------------------------------------------------------------
+void CAiDialogRenderer::HandleSearchingNetworksL(
+                      MPsetNetworkInfoObserver::TServiceRequest aRequest )
+    {
+    // Create a network info array if doesn't exist
+    if ( !iNetworkArray )
+        {
+     	iNetworkArray = new ( ELeave )
+        CNetworkInfoArray( KAINetworkInfoArrayGranularity );
+     	}
+
+	if ( aRequest != MPsetNetworkInfoObserver::EServiceRequestNone )
+		{
+		CheckAndCreateDlgL( EFalse );
+		iSearchForNetworksActive = ETrue;
+		TInt res = iDlg->ExecuteLD( R_SEARCHING_NOTE );
+		if ( res == EGSSoftkeyQuit )
+			{
+			iNetwork->CancelProcess();
+			iPLMNListPopulateShowIsHandling = EFalse;
+			}
+		}
+		else // If EServiceRequestNone received, hide the "Searching..." note
+			{
+			delete iDlg;
+			iDlg = NULL;
+			}
+	}
+
+// ---------------------------------------------------------------------------
+//
+// Handles network info
+//
+// ---------------------------------------------------------------------------
+void CAiDialogRenderer::HandleNetworkInfoReceivedL(
+     const CNetworkInfoArray* aInfoArray, const TInt /* aResult */ )
+	{
+	const TInt itemsCount = aInfoArray->Count();
+
+	// First delete old ones
+	iNetworkArray->Delete( 0, iNetworkArray->Count() );
+
+	// Then insert found networks
+	for ( TInt i = 0; i < itemsCount; i++ )
+		{
+		MPsetNetworkSelect::TNetworkInfo info = aInfoArray->At( i );
+		iNetworkArray->InsertL( i, info );
+		}
+
+	NetworkListL(); // After search complete, show results
+	}
+
+// ---------------------------------------------------------------------------
+//
+// While request to change network is processed, a note is shown
+//
+// ---------------------------------------------------------------------------
+void CAiDialogRenderer::HandleRequestingSelectedNetworkL( TBool aOngoing )
+	{
+	if ( aOngoing )
+		{
+		CheckAndCreateDlgL( ETrue );
+
+		if ( iDlg->ExecuteLD( R_REQUESTING_NOTE ) == EGSSoftkeyQuit )
+			{
+			iNetwork->CancelProcess();
+
+			CAknNoteDialog* dlg = new ( ELeave ) CAknNoteDialog(
+			 CAknNoteDialog::EConfirmationTone,
+			 CAknNoteDialog::EShortTimeout );
+			dlg->ExecuteLD( R_REGISTRATION_INTERRUPTED );
+			iApprovedNetwork = EFalse;
+			iPLMNListPopulateShowIsHandling = EFalse;
+			}
+		}
+	else
+		{
+		delete iDlg;
+		iDlg = NULL;
+		}
+	}
+
+// ---------------------------------------------------------------------------
+//
+// Handle network change
+//
+// ---------------------------------------------------------------------------
+void CAiDialogRenderer::HandleNetworkChangedL(
+                 const MPsetNetworkSelect::TNetworkInfo& aCurrentInfo,
+                 const RMobilePhone::TMobilePhoneRegistrationStatus& aStatus,
+                 const TInt aResult )
+	{
+    switch ( aStatus )
+		{
+	     case RMobilePhone::ERegisteredOnHomeNetwork:
+	         {
+	         ShowNoteL( R_HOME_NETWORK_SELECTED, KAIPPConfirmationNote );
+	         PurgeNetworkList();
+	         break;
+	         }
+	     case RMobilePhone::ERegisteredRoaming:
+	         {
+	         HBufC* stringholder = NULL;
+	         if ( aCurrentInfo.iLongName.Length() > 0 &&
+	             aCurrentInfo.iLongName.Length() <=
+	             MPsetNetworkSelect::ENetLongNameSize )
+	             {
+	             stringholder = StringLoader::LoadLC( R_NETSL_NETWORKSELECTED,
+	                                                  aCurrentInfo.iLongName );
+	             }
+	         else if (aCurrentInfo.iShortName.Length() > 0 &&
+	             aCurrentInfo.iShortName.Length() <=
+	             MPsetNetworkSelect::ENetShortNameSize )
+	             {
+	             stringholder = StringLoader::LoadLC( R_NETSL_NETWORKSELECTED,
+	                                                  aCurrentInfo.iShortName );
+	         }
+
+	         CAknConfirmationNote* note = new ( ELeave ) CAknConfirmationNote( ETrue );
+	         if ( stringholder )
+	             {
+                 note->ExecuteLD( *stringholder );
+                 CleanupStack::PopAndDestroy( stringholder );
+	             }
+	         
+	         //After list has been used, clear it.
+	         PurgeNetworkList();
+	         break;
+	         }
+	     case RMobilePhone::ERegistrationUnknown:
+	     case RMobilePhone::ENotRegisteredNoService:
+	     case RMobilePhone::ENotRegisteredEmergencyOnly:
+	     case RMobilePhone::ENotRegisteredSearching:
+	     case RMobilePhone::ERegisteredBusy:
+	     case RMobilePhone::ERegistrationDenied:
+	     default:
+	         break;
+	    }
+
+	iPLMNListPopulateShowIsHandling = EFalse;
+	iSearchForNetworksActive = EFalse;
+	}
+
+// ---------------------------------------------------------------------------
+//
+// Handles errors.
+//
+// ---------------------------------------------------------------------------
+void CAiDialogRenderer::HandleNetworkErrorL(
+	const MPsetNetworkInfoObserver::TServiceRequest aRequest,
+	const TInt aError )
+	{
+	TInt resourceTxt = KErrNone;
+
+	switch ( aRequest )
+		{
+		case MPsetNetworkInfoObserver::EServiceRequestGetNetworkInfo:
+		    {
+            iNetwork->CancelProcess();
+            iApprovedNetwork = EFalse;
+            break;
+		    }
+		case MPsetNetworkInfoObserver::EServiceRequestSetNetwork:
+		    {
+		    }
+		default:
+		    {
+		   break;
+		    }
+		}
+
+	TBool ignore = EFalse;
+
+	switch ( aError )
+		{
+		case KErrGsmNetCauseCallActive:
+		    {
+            ignore = ETrue; // Do not show an error
+            break;
+		    }
+		case KErrGsm0707NoNetworkService:
+		    {
+            resourceTxt = R_NO_NETWORK_FOUND;
+            break;
+		    }
+		case KErrGsmOfflineOpNotAllowed:
+		    {
+            resourceTxt = R_OFFLINE_MODE;
+            break;
+		    }
+		default:
+		    {
+            resourceTxt = R_NO_NETWORK_ACCESS;
+            break;
+		    }
+		}
+
+	if ( !ignore )
+		{
+		ShowNoteL( resourceTxt, KAIPPErrorNote );
+		iApprovedNetwork = EFalse;
+		}
+	}
+
+// ---------------------------------------------------------------------------
+//
+// Creates list of Network providers
+//
+// ---------------------------------------------------------------------------
+void CAiDialogRenderer::NetworkListL()
+     {
+     //if no net items were found, do not show list
+     if ( iNetworkArray->Count() > 0 )
+         {
+         while ( !iApprovedNetwork )
+             {
+             AknPopupListEmpty<CEikFormattedCellListBox>* list;
+             list = new ( ELeave ) CAknSinglePopupMenuStyleListBox;
+             CleanupStack::PushL( list );
+
+             if ( iNetworkPopupList )
+                 {
+                 iNetworkPopupList->CancelPopup();
+                 iNetworkPopupList = NULL;
+                 } //
+
+             iNetworkPopupList =
+                 CAknPopupList::NewL( list, R_AVKON_SOFTKEYS_OK_CANCEL );
+
+             list->ConstructL( iNetworkPopupList,
+                               CEikListBox::ELeftDownInViewRect );
+             list->CreateScrollBarFrameL( ETrue );
+             list->ScrollBarFrame()->SetScrollBarVisibilityL(
+                 CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto );
+
+             // Fill in the list texts
+             CDesCArrayFlat* items =
+                 new ( ELeave ) CDesCArrayFlat( KAIPLMNListPopupMenuItems );
+             CleanupStack::PushL( items );
+
+             const TInt itemsCount = iNetworkArray->Count();
+
+             for ( TInt loop = 0; loop < itemsCount; loop++ )
+                 {
+                 HBufC* insertString =
+                     HBufC::NewLC(
+                         KAIAlphaTagLongNameLength + KAIAlphaTagIconAdditionalChars );
+                 MPsetNetworkSelect::TNetworkInfo info =
+                     iNetworkArray->At( loop );
+
+                 if ( info.iLongName.Length() <= 0 ||
+                      info.iLongName.Length() > KAIAlphaTagLongNameLength )
+                     {
+                     // Short name received
+                     if ( info.iShortName.Length() > 0 &&
+                         info.iShortName.Length() <= KAIAlphaTagShortNameLength )
+                         {
+                         insertString->Des().Append( info.iShortName );
+                         } //
+                     } //
+                 // Long name received
+                 else
+                     {
+                     insertString->Des().Append( info.iLongName );
+                     } //
+
+                 items->AppendL( *insertString );
+                 CleanupStack::PopAndDestroy();
+                 }
+
+             CTextListBoxModel* model = list->Model();
+             model->SetItemTextArray( items );
+             model->SetOwnershipType( ELbmOwnsItemArray );
+             CleanupStack::Pop( items ); // Listbox model now owns this
+
+             // Set title for list
+             SetTitleToPopupL( *iNetworkPopupList, R_NETSL_FOUNDOPERATORS );
+
+             TInt res = 0;
+             // Show the PLMN list
+             if ( items->Count() )
+                 {
+                 res = iNetworkPopupList->ExecuteLD();
+                 } //
+
+             iNetworkPopupList = NULL;
+             iApprovedNetwork = ETrue; // User might want to quit
+             TInt selection = list->CurrentItemIndex();
+
+             CleanupStack::PopAndDestroy( list );
+
+             if ( res )
+                 {
+                 MPsetNetworkSelect::TNetworkInfo info =
+                     iNetworkArray->At( selection );
+                 info.iMode = MPsetNetworkSelect::ENetSelectModeManual;
+                 iNetwork->SelectNetworkL( info );
+                 } //
+             else // User selected "Cancel"
+                 {
+                 // Reset back to previously used network
+                 iNetwork->ResetNetworkSearch();
+                 iSearchForNetworksActive = EFalse;
+                 // After list has been used, clear it
+                 PurgeNetworkList();
+                 iPLMNListPopulateShowIsHandling = EFalse;
+                 } //
+             }
+         }
+
+     iApprovedNetwork = EFalse; // Initialize before new search
+     }
+
+// ---------------------------------------------------------------------------
+//
+// Creates dialog, if it is does not exist yet.
+//
+// ---------------------------------------------------------------------------
+//
+void CAiDialogRenderer::CheckAndCreateDlgL( TBool aDelayOff )
+	{
+	if ( !iDlg )
+	   {
+	   iDlg = new ( ELeave ) CAknWaitDialog(
+	       reinterpret_cast<CEikDialog**> ( &iDlg ), aDelayOff );
+	   }
+	}
+
+// ---------------------------------------------------------------------------
+//
+// Sets a title to a given popup list.
+//
+// ---------------------------------------------------------------------------
+void CAiDialogRenderer::SetTitleToPopupL( CAknPopupList& aList, TInt aTitleID )
+	{
+	HBufC* text = StringLoader::LoadLC( aTitleID );
+
+	aList.SetTitleL( *text );
+
+	CleanupStack::PopAndDestroy( text );
+	text = NULL;
+	}
+
+// ---------------------------------------------------------------------------
+//
+// Shows note.
+//
+// ---------------------------------------------------------------------------
+//
+void CAiDialogRenderer::ShowNoteL( TInt aResourceId, TInt aType )
+	{
+	HBufC* string = StringLoader::LoadLC( aResourceId );
+
+	switch ( aType )
+		{
+		case KAIPPErrorNote:
+		   {
+		   CAknErrorNote* note = new ( ELeave ) CAknErrorNote ( ETrue );
+		   note->ExecuteLD( *string );
+		   break;
+		   }
+		case KAIPPConfirmationNote:
+		   {
+		   CAknConfirmationNote* note =
+		       new ( ELeave ) CAknConfirmationNote( ETrue );
+		   note->ExecuteLD( *string );
+		   break;
+		   }
+		case KAIPPInformationNote:
+		   {
+		   CAknInformationNote* note =
+		       new ( ELeave ) CAknInformationNote( ETrue );
+		   note->ExecuteLD( *string );
+		   break;
+		   }
+		default:
+		   break;
+		}
+
+	CleanupStack::PopAndDestroy( string );
+	}
+
+// ---------------------------------------------------------------------------
+//
+// Empties fetched network provider's list
+//
+// ---------------------------------------------------------------------------
+//
+void CAiDialogRenderer::PurgeNetworkList()
+	{
+	if ( iNetworkArray )
+		{
+		iNetworkArray->Reset();
+		delete iNetworkArray;
+		iNetworkArray = NULL;
+		}
+	}
+
 // End of file
--- a/idlehomescreen/nativeuicontroller/src/aistatuspanel.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/nativeuicontroller/src/aistatuspanel.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -158,6 +158,9 @@
     if( !iTitlePaneText )
         {
         __PRINTS("XAI: Rendering text to title pane - invalid text, aborting");
+        
+        iTextInTitlePane = EFalse;
+        
         return;
         }
 
@@ -173,6 +176,9 @@
     iTitlePaneText = NULL;
 
     UpdatePhoneDisplayInfo( displayText );
+    
+    iTextInTitlePane = ETrue;
+    
     __PRINTS("XAI: Rendering text to title pane - done");
     }
 
@@ -183,6 +189,7 @@
     if( iBitmapHandle == KErrNotFound )
         {
         __PRINTS("XAI: Rendering bitmap to title pane - invalid bitmap handle, aborting");
+                
         return;
         }
 
@@ -275,6 +282,9 @@
     // undetermined stuff could occurr
     iBitmapHandle = KErrNotFound;
     iMaskHandle = KErrNotFound;
+    
+    iTextInTitlePane = EFalse;
+    
     __PRINTS("XAI: Rendering bitmap to title pane - done");
     }
 
@@ -386,7 +396,7 @@
 void CAiStatusPanel::StopTitlePaneScrollingL()
     {
     // stop scrolling
-    if( iTitlePane->Text() )
+    if(  iTextInTitlePane && iTitlePane->Text() )
         {
         iTitlePane->SetTextL( *iTitlePane->Text(), EFalse );
         }
@@ -395,7 +405,7 @@
 void CAiStatusPanel::ScrollTitlePaneTextL()
     {
     // start scrolling
-    if( iTitlePane->Text() )
+    if ( iTextInTitlePane && iTitlePane->Text() )           
         {
         iTitlePane->SetTextL( *iTitlePane->Text(), ETrue );
         }
--- a/idlehomescreen/nativeuicontroller/src/appui.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/nativeuicontroller/src/appui.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -197,18 +197,13 @@
 
     iFwEventHandler = iUiCtl->FwEventHandler();
    
-    TAiIdleKeySoundConfig keySoundConfig;
-    keySoundConfig.iKeySounds = KeySounds();
-    keySoundConfig.iContextResId = R_NATIVEUI_DEFAULT_SKEY_LIST;
-    iIdleIntegration = CAiUiIdleIntegration::NewL
-        ( *iEikonEnv, keySoundConfig, iFwEventHandler );
-
     iUiCtl->SetAppUi( this );
 
     if( iFwEventHandler )
         {
         iFwEventHandler->AppEnvReadyL();
         }
+    
     TBool isFullScreen = EFalse;
     //Get pointer to status pane
     CEikStatusPane* statusPane = static_cast<CAknAppUi*>( iEikonEnv->EikAppUi() )->StatusPane();
@@ -271,11 +266,12 @@
                                                  CCenRepNotifyHandler::EIntKey,
                                                  KAiStatusPaneLayout );
     iNotifyHandler->StartListeningL();
-
-    if( iFwEventHandler )
-        {
-        iFwEventHandler->HandleUiReadyEventL(*iUiCtl);
-        }
+    
+    TAiIdleKeySoundConfig keySoundConfig;
+    keySoundConfig.iKeySounds = KeySounds();
+    keySoundConfig.iContextResId = R_NATIVEUI_DEFAULT_SKEY_LIST;
+    iIdleIntegration = CAiUiIdleIntegration::NewL
+        ( *iEikonEnv, keySoundConfig, iFwEventHandler );
 
     // Check powerkey availability
     FeatureManager::InitializeLibL();
@@ -625,6 +621,11 @@
         {
         iStanbyContainerIF->StartL();
         }
+    
+    if( iFwEventHandler )
+        {
+        iFwEventHandler->HandleUiReadyEventL( *iUiCtl );
+        }           
     }
 
 void CAppUi::HandleNotifyInt( TUint32 aId, TInt aNewValue )
--- a/idlehomescreen/nativeuicontroller/src/nativeuicontroller.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/nativeuicontroller/src/nativeuicontroller.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -16,6 +16,7 @@
 */
 
 // System includes
+#include <startupdomainpskeys.h>
 #include <bautils.h>
 #include <e32property.h>
 #include <ecom/ecom.h>
@@ -455,9 +456,7 @@
         
         iPlugins.Append( profile );
         
-        iFwStateHandler->LoadPlugin( profile, EAiFwSystemStartup );
-        
-	    TRAP_IGNORE( iAppUi->StartL() );	        
+        iFwStateHandler->LoadPlugin( profile, EAiFwSystemStartup );        	        
         }
 
     // We need to load the resource file here if we are not main controller.
@@ -624,13 +623,13 @@
     TInt32 settingId = 0;
 
     TInt err = KErrNone;
-    TBool settingFound = EFalse;
+    //TBool settingFound = EFalse;
 
     CRepository *settingsRepository = CRepository::NewLC( TUid::Uid( KCRUidActiveIdleLV ) );
 
     while ( moreSettings )
         {
-        settingFound = EFalse;
+        //settingFound = EFalse;
 
         pluginIdPtr.Zero();
         settingValuePtr.Zero();
@@ -674,7 +673,7 @@
                         if ( item.Key() == settingId && item.PublisherId() == aPublisherInfo.Uid() )
                             {
                             item.SetValueL( settingValuePtr, EFalse );
-                            settingFound = ETrue;
+                            //settingFound = ETrue;
                             break;
                             }
                         }
@@ -724,9 +723,18 @@
 //
 void CNativeUiController::ActivateUI()
     {
-    if( iAppUi )
+    if( iAppUi && iRunningAsMain )
         {        
-        TRAP_IGNORE( iAppUi->StartL() );            
+        TRAP_IGNORE( iAppUi->StartL() );
+        
+        TInt value( EIdlePhase1Ok );
+        
+        RProperty::Get( KPSUidStartup, KPSIdlePhase1Ok, value ); 
+                                                                                              
+        if ( value == EIdlePhase1NOK )
+            {
+            RProperty::Set( KPSUidStartup, KPSIdlePhase1Ok, EIdlePhase1Ok );                                                                                                          
+            }                
         }
     }
 
Binary file idlehomescreen/widgetmanager/conf/widgetmanager.confml has changed
Binary file idlehomescreen/widgetmanager/conf/widgetmanager_20026F53.crml has changed
--- a/idlehomescreen/widgetmanager/data/widgetmanagerview.rss	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/data/widgetmanagerview.rss	Fri Mar 12 15:41:49 2010 +0200
@@ -23,7 +23,6 @@
 #include <avkon.loc>
 #include <appinfo.rh>
 #include <avkon.mbg>
-#include <activeidle3.loc>
 #include <widgetmanagerview.loc>
 
 #include "widgetmanager.hrh"
--- a/idlehomescreen/widgetmanager/group/widgetmanager.mmp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/group/widgetmanager.mmp	Fri Mar 12 15:41:49 2010 +0200
@@ -53,6 +53,7 @@
 SOURCE  wmconfiguration.cpp
 SOURCE  wminstaller.cpp
 SOURCE  wmprocessmonitor.cpp
+SOURCE  wmwidgetorderdata.cpp
 
 SOURCEPATH		../data
 START RESOURCE  20026F53.rss
--- a/idlehomescreen/widgetmanager/inc/wmconfiguration.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/inc/wmconfiguration.h	Fri Mar 12 15:41:49 2010 +0200
@@ -52,21 +52,7 @@
     void ConstructL();
 
 public: // API
-
-    /**
-     * portal button methods. This - along with the parameter -
-     * represents the action that the portal button is configured
-     * to do when pressed. The portal button itself should contain
-     * the execution code itself.
-     */
-    enum TMethod
-        {
-        ENone = 0, // no method
-        EHttp, // open browser to a certain page
-        EWidget, // open given widget with params
-        EApplication // launch an application
-        };
-
+    
     /**
      * Number of portal buttons (1 or more)
      */
@@ -107,7 +93,8 @@
     
     void LoadConfigurationL();
     TInt FindCorrectLanguageId();
-    HBufC* ReadParameterL( TInt aKey );
+    HBufC* ReadDescParameterL( TInt aKey );
+    void ReadIntParameter( TInt aKey, TInt32& aValue );
     HBufC* ReadLocalisedParameterL( TInt aOffset );
     void IndexConversion( TInt& aIndex );
 
@@ -140,20 +127,14 @@
     HBufC*                  iOviButtonIcon;
     
     /**
-     * OVI store button browser Url
-     * (browser is used if OVI client is not working)
-     */
-    HBufC*                  iOviButtonUrl;
-    
-    /**
      * OVI store button widget client param
      */
     HBufC*                  iOviStoreClientParam;
     
     /**
-     * OVI store button widget bundle ID
+     * OVI store laucher ui
      */
-    HBufC*                  iOviStoreBundleId;
+    TUid                      iOviStoreUid;
     
     /**
      * OPERATOR button text
--- a/idlehomescreen/widgetmanager/inc/wmcrkeys.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/inc/wmcrkeys.h	Fri Mar 12 15:41:49 2010 +0200
@@ -26,34 +26,30 @@
 
 // ************************************************************
 // LOCALISED parameters start here
-// Key Id's from 0x1 to 0x28 are reserved for languages.
+// Key Id's from 0x1 to 0x1E are reserved for languages.
 // LangId_0                 0x1
-// OviStoreBrowserUrl_0     0x2
-// OperatorUrl_0            0x3
-// OperatorButtonText_0     0x4
+// OperatorUrl_0            0x2
+// OperatorButtonText_0     0x3
 // ...
-// LangId_1                 0x5
+// LangId_1                 0x4
 // ...
-// LangId_9                 0x25
-// OviStoreBrowserUrl_9     0x26
-// OperatorUrl_9            0x27
-// OperatorButtonText_9     0x28 
+// LangId_9                 0x1C
+// OperatorUrl_9            0x1D
+// OperatorButtonText_9     0x1E 
 // ************************************************************
 
 /** localised set #0, language ID */
 const TUint32 KLangId0 = 0x1;
-/** localised set #0, Ovi store browser URL */
-const TUint32 KOviStoreBrowserUrl0 = 0x2;
 /** localised set #0, Operator button URL */
-const TUint32 KOperatorButtonUrl0 = 0x3;
+const TUint32 KOperatorButtonUrl0 = 0x2;
 /** localised set #0, Operator button text */
-const TUint32 KOperatorButtonText0 = 0x4;
+const TUint32 KOperatorButtonText0 = 0x3;
 
 /** localised set #1, language ID */
-const TUint32 KLangId1 = 0x5;
+const TUint32 KLangId1 = 0x4;
 
 /** localised set #9, language ID */
-const TUint32 KLangId9 = 0x25;
+const TUint32 KLangId9 = 0x1C;
 
 
 // ************************************************************
@@ -61,13 +57,13 @@
 // ************************************************************
 
 /** Key to Ovi Store Client param */
-const TUint32 KOviStoreClientParam = 0x29;
+const TUint32 KOviStoreClientParam = 0x1F;
 
 /** Key to Operator button icon */
-const TUint32 KOperatorButtonIcon = 0x2A;
+const TUint32 KOperatorButtonIcon = 0x20;
 
-/** Key to Ovi Store client BundleId */
-const TUint32 KOviStoreBundleId = 0x2B;
+/** Key to Ovi Store client Uid */
+const TUint32 KOviStoreUid = 0x21;
 
 
 
--- a/idlehomescreen/widgetmanager/inc/wmeffectmanager.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/inc/wmeffectmanager.h	Fri Mar 12 15:41:49 2010 +0200
@@ -25,8 +25,8 @@
 class CCoeEnv;
 // CONSTANTS
 // Effects
-const TInt KAppStartCommonDefaultStyle = 3;
-const TInt KAppExitCommonDefaultStyle = 5;
+const TInt KAppStartEffectStyle = 1007;
+const TInt KAppExitEffectStyle = 1008;
 
 /**
  *  Struct which holds needed info of effect.
--- a/idlehomescreen/widgetmanager/inc/wmimageconverter.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/inc/wmimageconverter.h	Fri Mar 12 15:41:49 2010 +0200
@@ -166,6 +166,11 @@
             const TDesC& aIconStr );
 
 private:
+    
+    TBool DoesScaleBitmapUseFallBack( CFbsBitmap* aSrcBitmap );
+    void ScaleBitmapL( const TSize& aSize, 
+                    CFbsBitmap* aTrgBitmap,
+                    CFbsBitmap* aSrcBitmap );    
     void ScaleBitmap( TInt aWidth, TInt aHeight );
     void ScaleMask( TInt aWidth, TInt aHeight );
     void CreateIconFromUidL( const TUid& aUid );
--- a/idlehomescreen/widgetmanager/inc/wminstaller.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/inc/wminstaller.h	Fri Mar 12 15:41:49 2010 +0200
@@ -103,6 +103,9 @@
      * wrt widget that is currently been uninstalled
      */    
     TUid iUid;
+    
+    
+    HBufC8* iMime;
     };
 
 #endif // __WMPLUGIN_
--- a/idlehomescreen/widgetmanager/inc/wmlistbox.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/inc/wmlistbox.h	Fri Mar 12 15:41:49 2010 +0200
@@ -32,6 +32,7 @@
 #include <aknlongtapdetector.h> 
 #include "wmwidgetdataobserver.h"
 #include "wmwidgetdata.h"
+#include "wmwidgetorderdata.h"
 
 // FORWARD DECLARATIONS
 class CWmListBox;
@@ -117,27 +118,6 @@
      * pointer to the listbox (not owned) 
      */
     CWmListBox* iListBox;
-
-
-    /**
-     * add-button colored bitmap (default color)
-     */
-    CFbsBitmap*         iAddWidgetBtnImage;
-    
-    /** 
-     * add-button mask 
-     */
-    CFbsBitmap*         iAddWidgetBtnMask;
-
-    /**
-     * add-button colored bitmap (highlighted color)
-     */
-    CFbsBitmap*         iAddWidgetBtnHighlightImage;
-    
-    /** 
-     * add-button mask 
-     */
-    CFbsBitmap*         iAddWidgetBtnHighlightMask;
     
     /** 
      * default logo (when widget does not have one) bitmap 
@@ -272,11 +252,11 @@
         };
 
     /** 
-     * sets the list sort order 
+     * Sorts the listbox's visible array 
      * 
      * @param aOrder sort order
      */
-    void SetSortOrderL( TSortOrder aOrder );
+    void DoSortToVisibleArray( TSortOrder aOrder );
     
     /**
      * Responds to layout switched.
@@ -295,6 +275,28 @@
      */
     TSize LogoSize();
 
+    /**
+     * gets the constant widget order data array
+     */
+    inline const ROrderArray& OrderDataArray();
+    
+    /** 
+     * Sorts the order array
+     * 
+     * @param aOrder sort order
+     */
+    void DoSortToOrderData( TSortOrder aOrder );
+    
+    /**
+     * Adds order data to array
+     */
+    void AddOrderDataL( CWmWidgetOrderData* aOrderData );
+    
+    /*
+     * Returns orderdata object by index
+     */
+    CWmWidgetOrderData* OrderData( TInt aItemIndex );
+    
 private: // from CEikTextListBox
     /**
      * Creates the item drawer.
@@ -338,7 +340,17 @@
             const CCoeControl* aParent,
             TInt aFlags );
     
-
+private:
+    /** 
+     * linear order for sorting, depending on the sort type being used 
+     */
+    TLinearOrder<CWmWidgetData> SortOrder( TSortOrder aOrder );
+    
+    /** 
+     * linear order for sorting, depending on the sort type being used 
+     */
+    TLinearOrder<CWmWidgetOrderData> SortOrderToOrderData( TSortOrder aOrder );
+    
 protected: // from MWmWidgetDataObserver
 
     /** 
@@ -348,13 +360,6 @@
      */
     void HandleWidgetDataChanged( CWmWidgetData* aWidgetData );
 
-private: // own methods
-
-    /** 
-     * linear order for sorting, depending on the sort type being used 
-     */
-    TLinearOrder<CWmWidgetData> SortOrder( TSortOrder aOrder );
-
 private:
 
     /** 
@@ -365,7 +370,7 @@
     /** 
      * array of widget data objects (the list model) 
      */
-    RWidgetDataValues   iWidgetDatas;
+    RWidgetDataValues   iVisibleWidgetArray;
 
     /** 
      * the currently active item ADD button's rectangle, for push recognition 
@@ -378,7 +383,12 @@
     TBool               iFindPaneIsVisible;
 	
     /** size of logo rect in list item */
-    TSize               iLogoSize;    
+    TSize               iLogoSize;
+    
+    /** 
+     * array of widget order objects
+     */
+    ROrderArray         iOrderDataArray;
 	};
 #include "wmlistbox.inl"
 
--- a/idlehomescreen/widgetmanager/inc/wmlistbox.inl	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/inc/wmlistbox.inl	Fri Mar 12 15:41:49 2010 +0200
@@ -33,12 +33,15 @@
   * @return count of widget data array
   */
  inline TInt CWmListBox::WidgetDataCount()
-     { return iWidgetDatas.Count(); }
+     { return iVisibleWidgetArray.Count(); }
  
  /**
   * gets the constant widget data array
   */
  inline const RWidgetDataValues& CWmListBox::WidgetDataArray()
-     { return iWidgetDatas; }
+     { return iVisibleWidgetArray; }
 
+ inline const ROrderArray& CWmListBox::OrderDataArray()
+      { return iOrderDataArray; }
+ 
 #endif /* WMLISTBOX_INL_ */
--- a/idlehomescreen/widgetmanager/inc/wmmaincontainer.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/inc/wmmaincontainer.h	Fri Mar 12 15:41:49 2010 +0200
@@ -148,7 +148,7 @@
 	/** 
 	 * executes findbox activation 
 	 */
-	void ActivateFindPaneL();
+	void ActivateFindPaneL( TBool aActivateAdabtive = EFalse );
 
     /** 
 	 * executes findbox deactivation 
@@ -381,6 +381,9 @@
      */
     CWmConfiguration*       iConfiguration;
     
+#ifdef _WM_UNIT_TEST
+    friend class CWmUnitTest;
+#endif
     };
 
 #endif // WMMAINCONTAINER_H
--- a/idlehomescreen/widgetmanager/inc/wmpersistentwidgetorder.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/inc/wmpersistentwidgetorder.h	Fri Mar 12 15:41:49 2010 +0200
@@ -22,6 +22,7 @@
 // INCLUDES
 #include <e32base.h>
 #include "wmwidgetdata.h"
+#include "wmwidgetorderdata.h"
 
 // FORWARD DECLARATIONS
 class RFs;
@@ -66,7 +67,7 @@
      * The instance can now be used to sort widget data.
      */
     void LoadL();
-  
+
     /**
      * Stores a sorted array of WmWidgetData types. Note that
      * the order will be directly stored and a copy will not
@@ -75,7 +76,7 @@
      * 
      * @param aArray the array of widget daya types
      */
-    void StoreL( const RWidgetDataValues& aArray );
+    void StoreL( const ROrderArray& aArray );
 
     /**
      * Retrieves an index of given widget data object within the list.
@@ -89,6 +90,17 @@
     TInt IndexOf( const CWmWidgetData& aWidgetData ) const;
 
     /**
+     * Retrieves an index of given widget order object within the order list.
+     * This index can be used to sort and organise. Note that LoadL()
+     * must be used prior to calling this method, and before that
+     * there must be something persisted.
+     * 
+     * @param aWidgetOrder data to seek index of in the sorted order
+     * @return the index found, or KErrNotFound if widget is new
+     */
+    TInt IndexOf( const CWmWidgetOrderData& aWidgetOrder ) const;
+    
+    /**
      * checks if the persistent widget order is empty. In this case it does
      * not make any sense to use the object to sort anything.
      * Note that before loading the object is always empty.
@@ -121,6 +133,9 @@
             /** compares a tag agains a widget data */
             TBool Matches( const CWmWidgetData& aWidgetData ) const;
 
+            /** compares a tag agains a widget order */
+            TBool Matches( const CWmWidgetOrderData& aWidgetOrder ) const;
+                        
             /** widget uid */
             TInt32 iUid;
 
--- a/idlehomescreen/widgetmanager/inc/wmplugin.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/inc/wmplugin.h	Fri Mar 12 15:41:49 2010 +0200
@@ -230,6 +230,10 @@
      * Handles installation
      */
     CWmInstaller* iWmInstaller;
+    
+#ifdef _WM_UNIT_TEST
+    friend class CWmUnitTest;
+#endif
     };
 
 #endif // __WMPLUGIN_
--- a/idlehomescreen/widgetmanager/inc/wmportalbutton.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/inc/wmportalbutton.h	Fri Mar 12 15:41:49 2010 +0200
@@ -83,6 +83,11 @@
     /** Observes the button's own activity  */
     void HandleControlEventL( CCoeControl* aControl, TCoeEvent aEventType );
     
+protected: // from CCoeControl
+
+    /** Handles pointer events.  */
+    void HandlePointerEventL( const TPointerEvent& aPointerEvent );
+    
 protected: // Constructors
     
     /** Constructor for performing 1st stage construction */
--- a/idlehomescreen/widgetmanager/inc/wmwidgetloaderao.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/inc/wmwidgetloaderao.h	Fri Mar 12 15:41:49 2010 +0200
@@ -100,13 +100,16 @@
      * adds a widget data entry to iWidgetsList
      * takes ownership of aContentInfo
      */
-    void AddWidgetDataL( CHsContentInfo* aContentInfo );
+    void AddWidgetDataL( CHsContentInfo* aContentInfo, TInt& aCount );
     
     /**
      * cleanup resources allocated runing one single run
      */
     void Cleanup();
     
+    /** Converts uid to TUid from TDesC8 */
+    TUid UidFromString( const TDesC8& aUidString ) const;
+    
 private: // data
 
     /** reference to the widget manager root */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/inc/wmwidgetorderdata.h	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,118 @@
+/*
+* 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:
+* CWmWidgetOrderData declaration
+*
+*/
+
+
+#ifndef WMWIDGETORDERDATA_H
+#define WMWIDGETORDERDATA_H
+
+// INCLUDES
+#include <e32std.h>
+#include <e32base.h>
+
+// FORWARD DECLARATIONS
+class CWmPersistentWidgetOrder;
+
+
+// CLASS DECLARATION
+/**
+ * CWmWidgetOrderData 
+ */
+NONSHARABLE_CLASS( CWmWidgetOrderData )
+    : public CBase
+    {
+
+public: // constructions
+    /**
+     * @param aPublisherId 
+     * @param aUid 
+     * @param aUid 
+     * @param aPersistentWidgetOrder
+     */
+    static CWmWidgetOrderData* NewL( 
+            const TDesC& aPublisherId, 
+            const TUid aUid, 
+            const TDesC& aName,
+            const CWmPersistentWidgetOrder* aPersistentWidgetOrder );
+
+    static CWmWidgetOrderData* NewLC(
+            const TDesC& aPublisherId, 
+            const TUid aUid, 
+            const TDesC& aName,
+            const CWmPersistentWidgetOrder* aPersistentWidgetOrder );
+        
+    /** Destructor. */
+    ~CWmWidgetOrderData();
+
+private: // private construction
+    /** Constructor for performing 1st stage construction */
+    CWmWidgetOrderData( const TUid aUid );
+
+    /** 2nd phase constructor */
+    void ConstructL( 
+            const TDesC& aPublisherId, 
+            const TDesC& aName,
+            const CWmPersistentWidgetOrder* aPersistentWidgetOrder );
+
+public:
+
+    /** Returns publisherId */
+    const TDesC& PublisherId() const;
+    
+    /** Returns Uid */
+    const TUid Uid() const;
+    
+    /** Returns Name */
+    const TDesC& Name() const; 
+            
+    /** comparator function for sort by name (compare two names) */    
+    static TInt CompareByName(
+                        const CWmWidgetOrderData& aDataOne,
+                        const CWmWidgetOrderData& aDataTwo );
+
+    /** comparator function for sorting by stored order */
+    static TInt CompareByPersistentWidgetOrder(
+            const CWmWidgetOrderData& aDataOne,
+            const CWmWidgetOrderData& aDataTwo );
+    
+    /** compare given values to member. Returns ETrue if matches*/
+    TBool EqualsTo( const TUid aUid, const TDesC& aPublisherId );
+    
+    /** set persistentorder data*/
+    void SetPersistentWidgetOrder( 
+            CWmPersistentWidgetOrder* aPersistentWidgetOrder );
+    
+    /** Updates name if param aName is different than iName */
+    void UpdateNameL( const TDesC& aName );
+    
+private: // data members
+    /** uid */
+    TUid iUid;
+    
+    /** publisherId */
+    HBufC* iPublisherId;
+    
+    /** Name */
+    HBufC* iName;
+    
+    /** persistent order of widgets (used in sorting) */
+    const CWmPersistentWidgetOrder* iPersistentWidgetOrder;
+    };
+
+typedef RPointerArray<CWmWidgetOrderData> ROrderArray;
+
+#endif // WMWIDGETORDERDATA_H
--- a/idlehomescreen/widgetmanager/sis/Create_update_sisx.bat	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/sis/Create_update_sisx.bat	Fri Mar 12 15:41:49 2010 +0200
@@ -23,9 +23,9 @@
 
 rem Create wm sis&sisx files
 makesis widgetmanager_udeb.pkg
-signsis widgetmanager_udeb.SIS widgetmanager_udeb.SISX Nokia_RnDCert_02.der Nokia_RnDCert_02.key
+signsis widgetmanager_udeb.SIS widgetmanager_udeb.SISX ..\internal\cert\Nokia_RnDCert_02.der ..\internal\cert\Nokia_RnDCert_02.key
 makesis widgetmanager_urel.pkg
-signsis widgetmanager_urel.SIS widgetmanager_urel.SISX Nokia_RnDCert_02.der Nokia_RnDCert_02.key
+signsis widgetmanager_urel.SIS widgetmanager_urel.SISX ..\internal\cert\Nokia_RnDCert_02.der ..\internal\cert\Nokia_RnDCert_02.key
 
 rem Create wm stubsis file
 makesis -s widgetmanager_stub.pkg
--- a/idlehomescreen/widgetmanager/src/wmconfiguration.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/src/wmconfiguration.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -30,7 +30,6 @@
 // some constants regarging the central repository localised section.
 // these will ensure CR localisation section compatibility even if
 // new strings are added
-const TInt KLangOffsetOviStoreUrl = KOviStoreBrowserUrl0 - KLangId0;
 const TInt KLangOffsetOperatorUrl = KOperatorButtonUrl0 - KLangId0;
 const TInt KLangOffsetOperatorText = KOperatorButtonText0 - KLangId0;
 const TInt KLangGroupSize = KLangId1 - KLangId0;
@@ -60,11 +59,10 @@
     : iResourceLoader( aResourceLoader )
 	{
     iRepository = NULL;
-    iOviStoreBundleId = NULL;
+    iOviStoreUid = KNullUid;
     iOviStoreClientParam = NULL;
     iOviButtonTitle = NULL;
     iOviButtonIcon = NULL;
-    iOviButtonUrl = NULL;
     iOperatorButtonTitle = NULL;
     iOperatorButtonIcon = NULL;
     iOperatorButtonUrl = NULL;
@@ -77,11 +75,9 @@
 CWmConfiguration::~CWmConfiguration()
 	{
     delete iRepository;
-    delete iOviStoreBundleId;
     delete iOviStoreClientParam;
     delete iOviButtonTitle;
     delete iOviButtonIcon;
-    delete iOviButtonUrl;
     delete iOperatorButtonTitle;
     delete iOperatorButtonIcon;
     delete iOperatorButtonUrl;
@@ -123,18 +119,17 @@
             TUid::Uid( KCrWidgetManagerm ) );
 
     // read fixed parameters
-    iOviStoreBundleId = ReadParameterL( KOviStoreBundleId );
-    iOviStoreClientParam = ReadParameterL( KOviStoreClientParam );
+    ReadIntParameter( KOviStoreUid, iOviStoreUid.iUid );
+    iOviStoreClientParam = ReadDescParameterL( KOviStoreClientParam ); 
     // determine language and read localised parameters
     iLanguageIndex = FindCorrectLanguageId();
-    iOviButtonUrl = ReadLocalisedParameterL( KLangOffsetOviStoreUrl );
     iOperatorButtonTitle = ReadLocalisedParameterL( KLangOffsetOperatorText );
     iOperatorButtonUrl = ReadLocalisedParameterL( KLangOffsetOperatorUrl );
 
     if ( iOperatorButtonUrl && iOperatorButtonUrl->Length() > 0 )
         {
         // construct the operator button icon.
-        iOperatorButtonIcon = ReadParameterL( KOperatorButtonIcon );
+        iOperatorButtonIcon = ReadDescParameterL( KOperatorButtonIcon );
         }
 
     delete iRepository;
@@ -178,10 +173,10 @@
     }
 
 // ---------------------------------------------------------
-// CWmConfiguration::ReadParameterL
+// CWmConfiguration::ReadDescParameterL
 // ---------------------------------------------------------
 //
-HBufC* CWmConfiguration::ReadParameterL( TInt aKey )
+HBufC* CWmConfiguration::ReadDescParameterL( TInt aKey )
     {
     TBuf<NCentralRepositoryConstants::KMaxUnicodeStringLength> buf;
     TInt err = iRepository->Get( aKey, buf );
@@ -196,6 +191,20 @@
     }
 
 // ---------------------------------------------------------
+// CWmConfiguration::ReadIntParameterIntL
+// ---------------------------------------------------------
+//
+void CWmConfiguration::ReadIntParameter( TInt aKey, TInt32& aValue )
+    {
+    TInt read = KErrNone;
+    TInt err = iRepository->Get( aKey, read );
+    if( err == KErrNone )
+        {
+        aValue = read;
+        }
+    }
+
+// ---------------------------------------------------------
 // CWmConfiguration::ReadLocalisedParameterL
 // ---------------------------------------------------------
 //
@@ -266,11 +275,8 @@
 //
 const TDesC& CWmConfiguration::PortalButtonBrowserUrl( TInt aIndex )
     {
-    if ( aIndex == 0 && iOviButtonUrl )
-        return *iOviButtonUrl;
-    else if ( aIndex == 1 && iOperatorButtonUrl )
+    if ( aIndex == 1 && iOperatorButtonUrl )
         return *iOperatorButtonUrl;
-
     return KNullDesC;
     }
 
@@ -280,14 +286,14 @@
 //
 TUid CWmConfiguration::PortalButtonClientUid( TInt aIndex )
     {
-    if ( aIndex == 0 && iOviStoreBundleId )
+    if ( aIndex == 0 )
         {
-        // idea: change iOviStoreBundleId to UID of laucher in cenrep
-        return TUid::Uid( 0x2002D07F );
-        }
+        return iOviStoreUid;
+        } 
     // Operator client uid not supported. 
     // If operator client is a widget we can use widget registry 
     // to fetch uid of operator widget save it to member and return that here
+    
     return KNullUid;
     }
 
--- a/idlehomescreen/widgetmanager/src/wmimageconverter.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/src/wmimageconverter.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -200,12 +200,11 @@
     {
     CFbsBitmap* bitmap = NULL;
     CFbsBitmap* mask = NULL;
-    
+   
+   
     if ( aUid.iUid >= KWidgetUidLowerBound &&
        aUid.iUid < KWidgetUidUpperBound  )
         {
-        // AknsUtils::CreateAppIconLC panics incase of WRT
-
         RApaLsSession lsSession;
         User::LeaveIfError( lsSession.Connect() );
         CleanupClosePushL( lsSession );
@@ -214,42 +213,53 @@
         CArrayFixFlat<TSize>* sizeArray = new (ELeave)
             CArrayFixFlat<TSize>( KAppSizeArraySize );
         CleanupStack::PushL( sizeArray );
+
         User::LeaveIfError( lsSession.GetAppIconSizes( aUid, *sizeArray ) );
-        TSize size;
+        
+        // there should be atleast one size available
+        if ( sizeArray->Count() == 0 ){ User::Leave( KErrNotReady ); };
+        
+        TSize size(0,0);
         for( TInt i=0; i < sizeArray->Count(); i++ )
             {
-            size = (*sizeArray)[i];
-            if ( size == iSize )
-                {
-                break;
-                }
+            TSize s = (*sizeArray)[i];
+            if ( size.iWidth < s.iWidth || size.iHeight < s.iHeight )
+                { size = s; }
+            if ( size == iSize ) { break; }
             }
+
         CApaMaskedBitmap* maskedBmp = CApaMaskedBitmap::NewLC();
         User::LeaveIfError( lsSession.GetAppIcon( aUid, size, *maskedBmp ) );
-        iBitmap = static_cast<CFbsBitmap*>( maskedBmp );  // ownership transfered
         
-        iMask = new ( ELeave ) CFbsBitmap;
-        User::LeaveIfError( iMask->Create( 
-                                    maskedBmp->Mask()->SizeInPixels(), 
-                                    maskedBmp->Mask()->DisplayMode() ) );
-        // duplicate mask, origional is owned by maskedBmp
-        iMask->Duplicate( maskedBmp->Mask()->Handle() );
-        CleanupStack::Pop( maskedBmp );
-        maskedBmp = NULL;
-        CleanupStack::PopAndDestroy(sizeArray); 
+        // handle bitmap
+        iBitmap = new ( ELeave ) CFbsBitmap;
+        User::LeaveIfError( iBitmap->Create( 
+                maskedBmp->SizeInPixels(), 
+                maskedBmp->DisplayMode() ) );
+
+        // scale bitmap
+        ScaleBitmapL( iSize, iBitmap, maskedBmp );  
+
+        // handle mask
+        if ( maskedBmp->Mask() )
+            {
+            iMask = new ( ELeave ) CFbsBitmap;
+            User::LeaveIfError( iMask->Create( 
+                    maskedBmp->Mask()->SizeInPixels(), 
+                    maskedBmp->Mask()->DisplayMode() ) );
+            
+            // scale mask
+            ScaleBitmapL( iSize, iMask, maskedBmp->Mask() );
+            }
+        
+        // cleanup
+        CleanupStack::PopAndDestroy( maskedBmp );
+        CleanupStack::PopAndDestroy( sizeArray ); 
         CleanupStack::PopAndDestroy( &lsSession );
-
-        // scale or notify
-        if ( size == iSize )
-            {
-            iState = EIdle;
-            iObserver->NotifyCompletion( KErrNone );
-            }
-        else
-            {
-            iScaleNeeded = ETrue;
-            ScaleBitmap( iSize.iWidth, iSize.iHeight );
-            }
+        
+        // notify
+        iState = EIdle;
+        iObserver->NotifyCompletion( KErrNone );
         }
     else if ( aUid.iUid != KNullUid.iUid )
         {
@@ -398,7 +408,7 @@
     
     iMask = new (ELeave) CFbsBitmap();
     iMask->Create( size, EGray256 ); 
-    
+
     if ( size != iSize )
         {
         iScaleNeeded = ETrue;
@@ -933,6 +943,283 @@
     }
 
 // ---------------------------------------------------------------------------
+// CWmImageConverter::DoesScaleBitmapUseFallBack
+// ---------------------------------------------------------------------------
+//
+TBool CWmImageConverter::DoesScaleBitmapUseFallBack( CFbsBitmap* aSrcBitmap )
+    {
+    if ( !aSrcBitmap )
+        {
+        return EFalse;
+        }
+
+    TDisplayMode displayMode = aSrcBitmap->DisplayMode();
+    TBool fallbackOnly = EFalse;
+
+    switch ( displayMode )
+        {
+        case EGray2:
+        case EGray4:
+        case EGray16:
+        case EColor16:
+        case EColor16M:
+        case ERgb:
+        case EColor16MA:
+            fallbackOnly = ETrue;
+            break;
+        case EGray256:
+        case EColor4K:
+        case EColor64K:
+        case EColor256:
+        case EColor16MU:
+            // These are the supported modes
+            break;
+        default:
+            fallbackOnly = ETrue;
+        }
+
+    return fallbackOnly;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CWmImageConverter::ScaleBitmapL
+// ---------------------------------------------------------------------------
+//
+void CWmImageConverter::ScaleBitmapL( 
+                            const TSize& aSize,
+                            CFbsBitmap* aTrgBitmap,
+                            CFbsBitmap* aSrcBitmap )
+    {
+    if ( !aSrcBitmap ) User::Leave( KErrArgument );
+    if ( !aTrgBitmap ) User::Leave( KErrArgument );
+    if ( aSrcBitmap->DisplayMode() != aTrgBitmap->DisplayMode() )
+        {
+        User::Leave( KErrArgument );
+        }
+    
+    TRect targetRect( aSize );
+
+    // calculate aspect ratio
+    TInt srcHeight = aSrcBitmap->SizeInPixels().iHeight;
+    TInt srcWidth = aSrcBitmap->SizeInPixels().iWidth;
+    TReal scaleRatio( 1 ); //no scale as defaul
+    
+    //If any dimension is 0, then we do not bother to scale
+    if ( targetRect.Width() > 0 && targetRect.Height() > 0 )
+        {
+        TReal xRatio = ( ( TReal )srcWidth / ( TReal )targetRect.Width() );
+        TReal yRatio = ( ( TReal )srcHeight / ( TReal )targetRect.Height() );
+        //Find out appropriate scaling factor
+        xRatio > yRatio ? ( scaleRatio = xRatio ) : ( scaleRatio = yRatio );
+        }
+
+    //Scale the size for target bitmap
+    targetRect.SetHeight( srcHeight / scaleRatio );
+    targetRect.SetWidth( srcWidth / scaleRatio );    
+    
+    TSize trgBitmapSize = aTrgBitmap->SizeInPixels();
+    
+    // calculate the valid drawing area
+    TRect drawRect = targetRect;
+    drawRect.Intersection( TRect( TPoint( 0, 0 ), trgBitmapSize ) );
+
+    if( drawRect.IsEmpty() || 
+        aSrcBitmap->SizeInPixels().iHeight <= 0 || 
+        aSrcBitmap->SizeInPixels().iWidth <= 0 )
+        {
+        User::Leave( KErrArgument );
+        }
+
+    TSize srcSize = aSrcBitmap->SizeInPixels();
+
+    TBool srcTemporary = EFalse;
+    if ( aSrcBitmap->IsRomBitmap() )
+        {
+        srcTemporary = ETrue;
+        }
+
+    TDisplayMode displayMode = aSrcBitmap->DisplayMode();
+    TBool fallbackOnly = DoesScaleBitmapUseFallBack( aSrcBitmap );
+
+    if ( fallbackOnly )
+        {
+        CFbsBitmapDevice* dev = CFbsBitmapDevice::NewL( aTrgBitmap );
+        CleanupStack::PushL( dev );
+        CFbsBitGc* gc = NULL;
+        User::LeaveIfError( dev->CreateContext( gc ) );
+        CleanupStack::PushL( gc );
+
+        // write alpha information if it exists
+        if ( aSrcBitmap->DisplayMode() == EColor16MA )
+            {
+            gc->SetDrawMode( CGraphicsContext::EDrawModeWriteAlpha );
+            }
+
+        // targetRect is used because DrawBitmap handles clipping automatically
+        gc->DrawBitmap( targetRect, aSrcBitmap );
+        CleanupStack::PopAndDestroy( 2 ); // dev, gc
+        return;
+        }
+
+    // Heap lock for FBServ large chunk to prevent background
+    // compression of aSrcBitmap after if IsCompressedInRAM returns EFalse
+    aSrcBitmap->LockHeapLC( ETrue ); // fbsheaplock
+    TBool fbsHeapLock = ETrue;
+    if ( aSrcBitmap->IsCompressedInRAM() )
+        {
+        srcTemporary = ETrue;
+        }
+
+    CFbsBitmap* realSource = aSrcBitmap;
+    if ( srcTemporary )
+        {
+        CleanupStack::PopAndDestroy(); // fbsheaplock
+        fbsHeapLock = EFalse;
+
+        realSource = new ( ELeave ) CFbsBitmap();
+        CleanupStack::PushL( realSource );
+        User::LeaveIfError(
+            realSource->Create( srcSize, aSrcBitmap->DisplayMode() ) );
+        CFbsBitmapDevice* dev = CFbsBitmapDevice::NewL( realSource );
+        CleanupStack::PushL( dev );
+        CFbsBitGc* gc = NULL;
+        User::LeaveIfError( dev->CreateContext( gc ) );
+        CleanupStack::PushL( gc );
+        gc->BitBlt( TPoint( 0, 0 ), aSrcBitmap );
+        CleanupStack::PopAndDestroy( 2 ); // dev, gc
+        }
+
+    if ( !fbsHeapLock )
+        {
+        // Heap lock for FBServ large chunk is only needed with large bitmaps.
+        if ( realSource->IsLargeBitmap() || aTrgBitmap->IsLargeBitmap() )
+            {
+            aTrgBitmap->LockHeapLC( ETrue ); // fbsheaplock
+            }
+        else
+            {
+            CleanupStack::PushL( ( TAny* )NULL );
+            }
+        }
+
+    TUint32* srcAddress = realSource->DataAddress();
+    TUint32* trgAddress = aTrgBitmap->DataAddress();
+
+    const TInt xSkip = ( srcSize.iWidth << 8 ) / targetRect.Width();
+    const TInt ySkip = ( srcSize.iHeight << 8 ) / targetRect.Height();
+
+    const TInt drawWidth  = drawRect.Width();
+    const TInt drawHeight = drawRect.Height();
+
+    TRect offsetRect( targetRect.iTl, drawRect.iTl );
+    const TInt yPosOffset = ySkip * offsetRect.Height();
+    const TInt xPosOffset = xSkip * offsetRect.Width();
+
+    if ( ( displayMode == EGray256 ) || ( displayMode == EColor256 ) )
+        {
+        TInt srcScanLen8 = CFbsBitmap::ScanLineLength(
+            srcSize.iWidth, displayMode );
+        TInt trgScanLen8 = CFbsBitmap::ScanLineLength(
+            trgBitmapSize.iWidth, displayMode );
+
+        TUint8* trgAddress8 = reinterpret_cast< TUint8* >( trgAddress );
+
+        TInt yPos = yPosOffset;
+        // skip left and top margins in the beginning
+        trgAddress8 += trgScanLen8 * drawRect.iTl.iY + drawRect.iTl.iX;
+
+        for ( TInt y = 0; y < drawHeight; y++ )
+            {
+            TUint8* srcAddress8 = reinterpret_cast< TUint8* >( srcAddress ) +
+                ( srcScanLen8 * ( yPos >> 8 ) );
+
+            TInt xPos = xPosOffset;
+            for ( TInt x = 0; x < drawWidth; x++ )
+                {
+                *( trgAddress8++ ) = srcAddress8[xPos >> 8];
+                xPos += xSkip;
+                }
+
+            yPos += ySkip;
+
+            trgAddress8 += trgScanLen8 - drawWidth;
+            }
+        }
+    else if ( displayMode == EColor4K || displayMode == EColor64K )
+        {
+        TInt srcScanLen16 = CFbsBitmap::ScanLineLength(
+            srcSize.iWidth, displayMode ) /2;
+        TInt trgScanLen16 = CFbsBitmap::ScanLineLength(
+            trgBitmapSize.iWidth, displayMode ) /2;
+
+        TUint16* trgAddress16 = reinterpret_cast< TUint16* >( trgAddress );
+
+        TInt yPos = yPosOffset;
+        // skip left and top margins in the beginning
+        trgAddress16 += trgScanLen16 * drawRect.iTl.iY + drawRect.iTl.iX;
+
+        for ( TInt y = 0; y < drawHeight; y++ )
+            {
+            TUint16* srcAddress16 = reinterpret_cast< TUint16* >( srcAddress ) +
+                ( srcScanLen16 * ( yPos >> 8 ) );
+
+            TInt xPos = xPosOffset;
+            for ( TInt x = 0; x < drawWidth; x++ )
+                {
+                *( trgAddress16++ ) = srcAddress16[xPos >> 8];
+                xPos += xSkip;
+                }
+
+            yPos += ySkip;
+
+            trgAddress16 += trgScanLen16 - drawWidth;
+            }
+        }
+    else if ( displayMode == EColor16MU )
+        {
+        TInt srcScanLen32 = CFbsBitmap::ScanLineLength(
+            srcSize.iWidth, displayMode ) /4;
+        TInt trgScanLen32 = CFbsBitmap::ScanLineLength(
+            trgBitmapSize.iWidth, displayMode ) /4;
+
+        TUint32* trgAddress32 = reinterpret_cast< TUint32* >( trgAddress );
+
+        TInt yPos = yPosOffset;
+        // skip left and top margins in the beginning
+        trgAddress32 += trgScanLen32 * drawRect.iTl.iY + drawRect.iTl.iX;
+
+        for ( TInt y = 0; y < drawHeight; y++ )
+            {
+            TUint32* srcAddress32 = reinterpret_cast< TUint32* >( srcAddress ) +
+                ( srcScanLen32 * ( yPos >> 8 ) );
+
+            TInt xPos = xPosOffset;
+            for ( TInt x = 0; x < drawWidth; x++ )
+                {
+                *( trgAddress32++ ) = srcAddress32[xPos >> 8];
+                xPos += xSkip;
+                }
+
+            yPos += ySkip;
+
+            trgAddress32 += trgScanLen32 - drawWidth;
+            }
+        }
+    else
+        {
+        User::Leave( KErrUnknown );
+        }
+
+    CleanupStack::PopAndDestroy(); // fbsheaplock
+
+    if ( srcTemporary )
+        {
+        CleanupStack::PopAndDestroy(); // realSource
+        }
+    }
+
+// ---------------------------------------------------------------------------
 // CWmImageConverter::Finished
 // ---------------------------------------------------------------------------
 //
--- a/idlehomescreen/widgetmanager/src/wminstaller.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/src/wminstaller.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -65,6 +65,7 @@
 //
 void CWmInstaller::ConstructL()
     {
+    iMime = KWrtMime().AllocL();
     iIdle = CIdle::NewL( CActive::EPriorityStandard );
     }
 
@@ -81,6 +82,7 @@
         iIdle->Cancel();
         }
     delete iIdle;
+    delete iMime;
     }
 
 // ---------------------------------------------------------
@@ -166,7 +168,7 @@
         optionsUninstall.iKillApp = SwiUI::EPolicyAllowed;
         SwiUI::TUninstallOptionsPckg uninstallOptionsPkg( optionsUninstall );
         iInstaller.SilentUninstall( iStatus, iUid, 
-                                uninstallOptionsPkg, KWrtMime );
+                                uninstallOptionsPkg, *iMime );
         
         aData->VisualizeUninstallL();
         SetActive();
--- a/idlehomescreen/widgetmanager/src/wmlistbox.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/src/wmlistbox.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -30,11 +30,13 @@
 #include <gulicon.h>
 #include <widgetmanagerview.rsg>
 #include <widgetmanager.mbg>
+
 #include "wmcommon.h"
 #include "wmplugin.h"
 #include "wmresourceloader.h"
 #include "wmlistbox.h"
 #include "wmwidgetdata.h"
+#include "wmwidgetorderdata.h"
 
 // CONSTANTS
 
@@ -98,30 +100,6 @@
             EMbmWidgetmanagerQgn_menu_hswidget,
             EMbmWidgetmanagerQgn_menu_hswidget_mask
             );
-
-    AknsUtils::CreateColorIconL(
-            skin,
-            KAknsIIDQgnIndiWmAdd,
-            KAknsIIDQsnTextColors,
-            EAknsCIQsnTextColorsCG6,
-            iAddWidgetBtnImage,
-            iAddWidgetBtnMask,
-            iWmPlugin.ResourceLoader().IconFilePath(),
-            EMbmWidgetmanagerAdd_widget_button,
-            EMbmWidgetmanagerAdd_widget_button_mask,
-            KRgbBlack );
-
-    AknsUtils::CreateColorIconL(
-            skin,
-            KAknsIIDQgnIndiWmAdd,
-            KAknsIIDQsnTextColors,
-            EAknsCIQsnTextColorsCG10,
-            iAddWidgetBtnHighlightImage,
-            iAddWidgetBtnHighlightMask,
-            iWmPlugin.ResourceLoader().IconFilePath(),
-            EMbmWidgetmanagerAdd_widget_button,
-            EMbmWidgetmanagerAdd_widget_button_mask,
-            KRgbWhite );
     
     // This is temporary fix for ou1cimx1#228810
     // Can be removed when avkon provides real fix for this error.
@@ -165,10 +143,6 @@
     // dispose icons
     delete iDefaultLogoImage;
     delete iDefaultLogoImageMask;
-    delete iAddWidgetBtnImage;
-    delete iAddWidgetBtnMask;
-    delete iAddWidgetBtnHighlightImage;
-    delete iAddWidgetBtnHighlightMask;
 	}
 
 // ---------------------------------------------------------
@@ -179,8 +153,7 @@
     {
 	TAknWindowLineLayout logoPane = 
 	          AknLayoutScalable_Apps::listrow_wgtman_pane_g1().LayoutLine();
-    TAknWindowLineLayout addPane = 
-              AknLayoutScalable_Apps::listrow_wgtman_pane_g2().LayoutLine();
+
     TAknLayoutRect layoutRect;
     TRect rect = TRect( ItemCellSize() );
     layoutRect.LayoutRect( rect, logoPane );
@@ -191,18 +164,6 @@
         iDefaultLogoImage, size, EAspectRatioPreserved );
     AknIconUtils::SetSize( 
         iDefaultLogoImageMask, size, EAspectRatioPreserved );
-    
-    // RESIZE ADD BTN BITMAPS ACCORDING TO LAYOUT
-    layoutRect.LayoutRect( rect, addPane );
-    size = layoutRect.Rect().Size();
-    AknIconUtils::SetSize( 
-        iAddWidgetBtnImage, size, EAspectRatioPreserved );
-    AknIconUtils::SetSize( 
-        iAddWidgetBtnMask, size, EAspectRatioPreserved );
-    AknIconUtils::SetSize( 
-        iAddWidgetBtnHighlightImage, size, EAspectRatioPreserved );
-    AknIconUtils::SetSize( 
-        iAddWidgetBtnHighlightMask, size, EAspectRatioPreserved );
     }
 	
 // ---------------------------------------------------------
@@ -239,7 +200,6 @@
                                   innerRect,
                                   KAknsIIDQsnFrList,
                                   KAknsIIDQsnFrListCenter );
-    
         }
     
     // DRAW LOGO
@@ -258,6 +218,7 @@
         logoLayout.DrawImage( gc, bitmap, mask );
         }
 
+    // DRAW NAME
     TRgb textColor;
     TAknsQsnTextColorsIndex index =
         ( aItemIsCurrent && listFocused && highlightEnabled )? 
@@ -265,9 +226,6 @@
 
     AknsUtils::GetCachedColor( 
                     skin, textColor, KAknsIIDQsnTextColors, index );
-
-    // DRAW TEXT
-
     TAknTextLineLayout titleTextLayout = 
               AknLayoutScalable_Apps::listrow_wgtman_pane_t1().LayoutLine();
 
@@ -275,38 +233,9 @@
     textLayoutTitle.LayoutText( itemRect, titleTextLayout );
     textLayoutTitle.DrawText( gc, wData.Name(), ETrue, textColor );
     
-    if ( !wData.IsUninstalling() &&
-        wData.HsContentInfo().CanBeAdded() )
+    if ( wData.IsUninstalling() )
         {
-        // DRAW ADD BUTTON
-        TAknLayoutRect addButtonLayout;
-        addButtonLayout.LayoutRect( itemRect,
-                AknLayoutScalable_Apps::listrow_wgtman_pane_g2().LayoutLine() );
-        if ( aItemIsCurrent && listFocused && highlightEnabled )
-            {
-            addButtonLayout.DrawImage( gc,                    
-                    iAddWidgetBtnHighlightImage, iAddWidgetBtnHighlightMask );
-            }
-        else
-            {
-            addButtonLayout.DrawImage( gc, 
-                    iAddWidgetBtnImage, iAddWidgetBtnMask );
-            }        
-        }
-
-    if ( !wData.IsUninstalling() )
-        {
-        TAknTextLineLayout descTextLayout =
-            AknLayoutScalable_Apps::listrow_wgtman_pane_t2().LayoutLine();
-        gc.SetPenSize(TSize(1,1));
-        // DRAW DESCRIPTION TEXT
-        TAknLayoutText textLayoutDes;
-        textLayoutDes.LayoutText( itemRect, descTextLayout );
-        textLayoutDes.DrawText( gc, wData.Description(), ETrue, textColor );
-        }
-    else
-        {
-        // draw animation
+        // DRAW UNINSTALL ANIMATION
         TAknLayoutRect animationLayout;
         animationLayout.LayoutRect( itemRect,
              AknLayoutScalable_Apps::wait_bar_pane_cp09().LayoutLine() );
@@ -346,65 +275,7 @@
 //
 void CWmListItemDrawer::HandleSkinChanged()
     {
-    CFbsBitmap* addWidgetBtnImage( NULL );
-    CFbsBitmap* addWidgetBtnMask( NULL );
-    CFbsBitmap* addWidgetBtnHighlightImage( NULL );
-    CFbsBitmap* addWidgetBtnHighlightMask( NULL );
-    MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-    
-    TRAPD( err, 
-        AknsUtils::CreateColorIconLC(
-                skin,
-                KAknsIIDQgnIndiWmAdd,
-                KAknsIIDQsnTextColors,
-                EAknsCIQsnTextColorsCG6,
-                addWidgetBtnImage,
-                addWidgetBtnMask,
-                iWmPlugin.ResourceLoader().IconFilePath(),
-                EMbmWidgetmanagerAdd_widget_button,
-                EMbmWidgetmanagerAdd_widget_button_mask,
-                KRgbBlack );
-        
-        AknsUtils::CreateColorIconLC(
-                skin,
-                KAknsIIDQgnIndiWmAdd,
-                KAknsIIDQsnTextColors,
-                EAknsCIQsnTextColorsCG10,
-                addWidgetBtnHighlightImage,
-                addWidgetBtnHighlightMask,
-                iWmPlugin.ResourceLoader().IconFilePath(),
-                EMbmWidgetmanagerAdd_widget_button,
-                EMbmWidgetmanagerAdd_widget_button_mask,
-                KRgbWhite );
-        
-        CleanupStack::Pop( 4 ); // pop icons
-        );
-    
-    if ( KErrNone == err )
-        {
-        // delete old icons
-        delete iAddWidgetBtnImage;
-        iAddWidgetBtnImage = NULL;
-        delete iAddWidgetBtnMask;
-        iAddWidgetBtnMask = NULL;
-        delete iAddWidgetBtnHighlightImage;
-        iAddWidgetBtnHighlightImage = NULL;
-        delete iAddWidgetBtnHighlightMask;
-        iAddWidgetBtnHighlightMask = NULL;
-        
-        // transfer ownership
-        iAddWidgetBtnImage = addWidgetBtnImage;
-        addWidgetBtnImage = NULL;
-        iAddWidgetBtnMask = addWidgetBtnMask;
-        addWidgetBtnMask = NULL;
-        iAddWidgetBtnHighlightImage = addWidgetBtnHighlightImage;
-        addWidgetBtnHighlightImage = NULL;
-        iAddWidgetBtnHighlightMask = addWidgetBtnHighlightMask;
-        addWidgetBtnHighlightMask = NULL;
-        
-        // resize new created icons
-        ResizeDefaultBitmaps();
-        }
+    ResizeDefaultBitmaps();
     }
 
 // ---------------------------------------------------------
@@ -442,7 +313,8 @@
 //
 CWmListBox::~CWmListBox()
     {
-    iWidgetDatas.ResetAndDestroy();
+    iVisibleWidgetArray.ResetAndDestroy();
+    iOrderDataArray.ResetAndDestroy();
     }
 
 // ---------------------------------------------------------
@@ -458,7 +330,7 @@
     SetContainerWindowL( *aParent );    
 
     // set model point to the widgets array
-    Model()->SetItemTextArray( &iWidgetDatas );
+    Model()->SetItemTextArray( &iVisibleWidgetArray );
     Model()->SetOwnershipType( ELbmDoesNotOwnItemArray );
 
     // set empty-text to null
@@ -474,7 +346,7 @@
 CWmWidgetData* CWmListBox::WidgetData()
     {
     TInt index = CurrentListBoxItemIndex();
-    return (index>=0 ? iWidgetDatas[index] : NULL);
+    return (index>=0 ? iVisibleWidgetArray[index] : NULL);
     }
 
 // ---------------------------------------------------------
@@ -483,7 +355,7 @@
 //
 CWmWidgetData& CWmListBox::WidgetData( TInt aItemIndex )
     {
-    return *iWidgetDatas[ RealIndex( aItemIndex ) ];
+    return *iVisibleWidgetArray[ RealIndex( aItemIndex ) ];
     }
 
 // ---------------------------------------------------------
@@ -496,7 +368,7 @@
     if ( aWidgetData )
         {
         aWidgetData->SetObserver( this );
-        iWidgetDatas.InsertInOrderAllowRepeatsL( aWidgetData,
+        iVisibleWidgetArray.InsertInOrderAllowRepeatsL( aWidgetData,
             SortOrder(EStoredOrder) );
         if ( aRedraw ) { HandleItemAdditionL(); }
         }
@@ -511,12 +383,25 @@
     TInt realIndex = RealIndex( aItemIndex );
     TBool current = ( aItemIndex == CurrentItemIndex() );
     // remove widget data
-    CWmWidgetData* data = iWidgetDatas[realIndex];
-    iWidgetDatas.Remove( realIndex );
+    CWmWidgetData* data = iVisibleWidgetArray[realIndex];
+    iVisibleWidgetArray.Remove( realIndex );
     // reorganise
     TRAP_IGNORE(
         AknListBoxUtils::HandleItemRemovalAndPositionHighlightL(
             this, realIndex, current ) );
+
+    // Remove item from order array
+    for ( TInt i = 0; i < iOrderDataArray.Count(); i++ )
+        {
+        CWmWidgetOrderData* order = iOrderDataArray[i];
+        if ( order->EqualsTo( data->Uid(), data->PublisherId() ) )
+            {
+            iOrderDataArray.Remove( i );
+            delete order;
+            order = NULL;
+            break;
+            }
+        }
     
     // delete now
     delete data;
@@ -540,10 +425,10 @@
 // CWmListBox::SetSortOrderL
 // ---------------------------------------------------------
 //
-void CWmListBox::SetSortOrderL( TSortOrder aOrder )
+void CWmListBox::DoSortToVisibleArray( TSortOrder aOrder )
     {
     // now sort the existing data
-    iWidgetDatas.Sort( SortOrder( aOrder ) );
+    iVisibleWidgetArray.Sort( SortOrder( aOrder ) );
     DrawNow();
     }
 
@@ -572,9 +457,9 @@
     {
     iLogoSize = TSize( 0, 0);
 	iLogoSize = LogoSize();
-    for ( TInt i=0; i<iWidgetDatas.Count(); i++)
+    for ( TInt i=0; i<iVisibleWidgetArray.Count(); i++)
         {
-        iWidgetDatas[i]->ReCreateLogo( iLogoSize );
+        iVisibleWidgetArray[i]->ReCreateLogo( iLogoSize );
         }
     }
 
@@ -601,7 +486,7 @@
     if ( !iFindPaneIsVisible )
         {
         // spontaneous change in the model. Cause table to redraw
-        TInt index = iWidgetDatas.Find( aWidgetData );
+        TInt index = iVisibleWidgetArray.Find( aWidgetData );
         if ( index >= 0 )
             {
             // redraw item.
@@ -763,5 +648,53 @@
     return NULL;
     }
 
+// ---------------------------------------------------------
+// CWmListBox::SortOrderToOrderData
+// ---------------------------------------------------------
+//
+TLinearOrder<CWmWidgetOrderData> CWmListBox::SortOrderToOrderData( TSortOrder aOrder )
+    {
+    if ( aOrder == EStoredOrder )
+        {
+        return TLinearOrder<CWmWidgetOrderData>(
+                CWmWidgetOrderData::CompareByPersistentWidgetOrder );
+        }
+    else
+        {
+        return TLinearOrder<CWmWidgetOrderData>(
+                CWmWidgetOrderData::CompareByName );
+        }
+    }
+
+// ---------------------------------------------------------
+// CWmListBox::SetSortOrderToOrderDataL
+// ---------------------------------------------------------
+//
+void CWmListBox::DoSortToOrderData( TSortOrder aOrder )
+    {
+    iOrderDataArray.Sort( SortOrderToOrderData( aOrder ) );
+    }
+
+// ---------------------------------------------------------
+// CWmListBox::AddWidgetDataL
+// ---------------------------------------------------------
+//
+void CWmListBox::AddOrderDataL( CWmWidgetOrderData* aOrderData )
+    {
+    if ( aOrderData )
+        {
+        iOrderDataArray.InsertInOrderAllowRepeatsL( aOrderData,
+                SortOrderToOrderData( EStoredOrder ) );
+        }
+    }
+
+// ---------------------------------------------------------
+// CWmListBox::OrderData
+// ---------------------------------------------------------
+//
+CWmWidgetOrderData* CWmListBox::OrderData( TInt aItemIndex )
+    {
+    return iOrderDataArray[ aItemIndex ];
+    }
 // End of File
 
--- a/idlehomescreen/widgetmanager/src/wmmaincontainer.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/src/wmmaincontainer.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -260,7 +260,7 @@
              aKeyEvent.iScanCode == EStdKeyBackspace && 
              aKeyEvent.iModifiers == EModifierAutorepeatable )
         {
-        return EKeyWasNotConsumed;
+        return EKeyWasConsumed;
         }
     
     // Handle search keyevent
@@ -310,7 +310,7 @@
             aKeyEvent.iScanCode < EStdKeyF1 &&
         TChar( aKeyEvent.iScanCode ).IsAlphaDigit() )
         {
-        ActivateFindPaneL();
+        ActivateFindPaneL( EFalse );
         
         if ( iFindPaneIsVisible )
             {
@@ -974,12 +974,7 @@
 //
 TBool CWmMainContainer::CanDoFind()
     {
-    TBool canDo( !iFindPaneIsVisible );
-    if ( canDo )
-        {
-        canDo = ( iFocusMode == EList || iFocusMode == ENowhere );
-        }
-    return canDo;
+    return !iFindPaneIsVisible;
     }
 
 // ---------------------------------------------------------
@@ -1081,7 +1076,7 @@
 // CWmMainContainer::ActivateFindPaneL
 // ---------------------------------------------------------------------------
 //
-void CWmMainContainer::ActivateFindPaneL()
+void CWmMainContainer::ActivateFindPaneL( TBool aActivateAdabtive )
     {
     if ( iFindbox && !iFindPaneIsVisible &&
             iWidgetsList->Model()->NumberOfItems() > KMinWidgets )
@@ -1102,13 +1097,16 @@
         iFindbox->ResetL();
         iFindbox->SetSearchTextL( KNullDesC );
         iFindbox->SetSkinEnabledL( ETrue );
-
         iFindPaneIsVisible = ETrue;
         iFindbox->MakeVisible( ETrue );
         
         // layout listbox and findbox
         LayoutControls();        
         
+        if ( aActivateAdabtive )
+            {
+            iFindbox->ShowAdaptiveSearchGrid();
+            }
         iFindbox->SetFocus( ETrue );
         iWidgetsList->SetFindPaneIsVisible( ETrue );
 
@@ -1176,15 +1174,16 @@
     {
     if ( iWidgetsList )
         {
-        iWidgetsList->SetSortOrderL( CWmListBox::EAlphabetical );
+        iWidgetsList->DoSortToVisibleArray( CWmListBox::EAlphabetical );
+        iWidgetsList->DoSortToOrderData( CWmListBox::EAlphabetical );
        
         //store changed list order
         CWmPersistentWidgetOrder* widgetOrder =
             CWmPersistentWidgetOrder::NewL( iWmPlugin.FileServer() );
         CleanupStack::PushL( widgetOrder );
-        widgetOrder->StoreL( iWidgetsList->WidgetDataArray() );
+        widgetOrder->StoreL( iWidgetsList->OrderDataArray() );
+		
         CleanupStack::PopAndDestroy( widgetOrder );
-
         }
     }
 
--- a/idlehomescreen/widgetmanager/src/wmmaincontainerview.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/src/wmmaincontainerview.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -363,7 +363,7 @@
 	{
     if ( iWmMainContainer )
         {
-        iWmMainContainer->ActivateFindPaneL();
+        iWmMainContainer->ActivateFindPaneL( ETrue );
         }
 	return ETrue;
 	}
--- a/idlehomescreen/widgetmanager/src/wmpersistentwidgetorder.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/src/wmpersistentwidgetorder.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -23,6 +23,7 @@
 #include <sysutil.h> 
 
 #include "wmwidgetdata.h"
+#include "wmwidgetorderdata.h"
 #include "wmpersistentwidgetorder.h"
 
 // CONSTANTS
@@ -67,6 +68,7 @@
 CWmPersistentWidgetOrder::~CWmPersistentWidgetOrder()
     {
     CleanupArray();
+    iTagArray.Close();
     }
 
 // ---------------------------------------------------------
@@ -107,45 +109,56 @@
 // CWmPersistentWidgetOrder::StoreL
 // ---------------------------------------------------------
 //
-void CWmPersistentWidgetOrder::StoreL( const RWidgetDataValues& aArray )
+void CWmPersistentWidgetOrder::StoreL( const ROrderArray& aArray )
     {
+
     // 1. create stream for storing the data to a file
     TFileName storeFileName;
     GetStoreFileNameL( storeFileName );
     CPermanentFileStore* fileStore = NULL;
     fileStore = CPermanentFileStore::ReplaceLC(
             iFs, storeFileName, EFileWrite );
-    fileStore->SetTypeL( KPermanentFileStoreLayoutUid );
-    RStoreWriteStream writer;
-    TStreamId id = writer.CreateLC( *fileStore );
-    // 2. write all content to the stream
-    writer.WriteInt32L( aArray.Count() );
-    for( TInt i=0; i<aArray.Count(); ++i )
+    
+    if ( fileStore )
         {
-        CWmWidgetData* data = aArray[i];
-        if ( !data || !data->IsValid() )
+        fileStore->SetTypeL( KPermanentFileStoreLayoutUid );
+        RStoreWriteStream writer;
+        TStreamId id = writer.CreateLC( *fileStore );
+        
+        // 2. write all content to the stream
+        writer.WriteInt32L( aArray.Count() );
+        for( TInt i=0; i<aArray.Count(); ++i )
             {
-            User::Leave( KErrArgument ); 
+            CWmWidgetOrderData* data = aArray[i];
+            
+            if ( !data  )
+                {
+                User::Leave( KErrArgument ); 
+                }
+            TInt32 uid = data->Uid().iUid;
+            const TDesC16& publisherId = data->PublisherId();
+            writer.WriteInt32L( uid );
+            writer.WriteInt32L( publisherId.Length() );
+            writer.WriteL( publisherId, publisherId.Length() );
+            
             }
-        TInt32 uid = data->Uid().iUid;
-        const TDesC16& publisherId = data->HsContentInfo().PublisherId();
-        writer.WriteInt32L( uid );
-        writer.WriteInt32L( publisherId.Length() );
-        writer.WriteL( publisherId, publisherId.Length() );
+        // 3. check available space and commit the stream
+        TInt streamsize = writer.Sink()->SizeL();
+        TBool belowCriticalLevel = SysUtil::DiskSpaceBelowCriticalLevelL(
+                &iFs, streamsize, EDriveC );
+        
+        if( !belowCriticalLevel )
+            {
+            writer.CommitL();
+            fileStore->SetRootL(id);
+            fileStore->CommitL();        
+            }
+        
+        // 4. cleanup
+        CleanupStack::PopAndDestroy( &writer );        
+        CleanupStack::PopAndDestroy( fileStore );
         }
-    // 3. check available space and commit the stream
-    TInt streamsize = writer.Sink()->SizeL();
-    TBool belowCriticalLevel = SysUtil::DiskSpaceBelowCriticalLevelL(
-            &iFs, streamsize, EDriveC );
-    if( !belowCriticalLevel )
-        {
-        writer.CommitL();
-        fileStore->SetRootL(id);
-        fileStore->CommitL();        
-        }
-    // 4. cleanup
-    CleanupStack::PopAndDestroy( &writer );
-    CleanupStack::PopAndDestroy( fileStore );
+    
     }
 
 // ---------------------------------------------------------
@@ -157,9 +170,9 @@
     for( TInt i=0; i<iTagArray.Count(); ++i )
         {
         delete iTagArray[i].iPublisherId;
-        iTagArray[i].iPublisherId = 0;
+        iTagArray[i].iPublisherId = NULL;
         }
-    iTagArray.Close();
+    iTagArray.Reset();
     }
 
 // ---------------------------------------------------------
@@ -211,6 +224,22 @@
     }
 
 // ---------------------------------------------------------
+// CWmPersistentWidgetOrder::IndexOf
+// ---------------------------------------------------------
+//
+TInt CWmPersistentWidgetOrder::IndexOf( 
+        const CWmWidgetOrderData& aWidgetOrder ) const
+    {
+    TInt found = KErrNotFound;
+    for( TInt i=0; i<iTagArray.Count() && found<0; ++i )
+        {
+        if ( iTagArray[i].Matches( aWidgetOrder ) )
+            found = i;
+        }
+    return found;
+    }
+
+// ---------------------------------------------------------
 // CWmPersistentWidgetOrder::Tag::Tag
 // ---------------------------------------------------------
 //
@@ -232,5 +261,15 @@
             aWidgetData.HsContentInfo().PublisherId() == *iPublisherId );
     }
 
+// ---------------------------------------------------------
+// CWmPersistentWidgetOrder::Tag::Matches
+// ---------------------------------------------------------
+//
+TBool CWmPersistentWidgetOrder::Tag::Matches(
+        const CWmWidgetOrderData& aWidgetOrder ) const
+    {
+    return ( aWidgetOrder.Uid().iUid == iUid &&
+            aWidgetOrder.PublisherId() == *iPublisherId );
+    }
 
 // end of file
--- a/idlehomescreen/widgetmanager/src/wmplugin.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/src/wmplugin.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -57,11 +57,17 @@
 //
 CWmPlugin::~CWmPlugin()
     {
+    if ( iWmInstaller && 
+       iWmInstaller->IsActive() )
+        {
+        iWmInstaller->Cancel();
+        }
+
     // delete members
     delete iResourceLoader;
     delete iEffectManager;
     delete iPostponedContent;
-	delete iWmInstaller;
+    delete iWmInstaller;
     }
 
 // ---------------------------------------------------------
@@ -113,7 +119,7 @@
         {
         TRAP_IGNORE( 
             iEffectManager->BeginFullscreenEffectL( 
-                KAppStartCommonDefaultStyle );
+                KAppStartEffectStyle );
             iViewAppUi->ActivateLocalViewL( 
                 TUid::Uid( EWmMainContainerViewId ) );
             );
@@ -180,7 +186,7 @@
         iWmMainContainer->SetClosingDown( ETrue );
         TRAP_IGNORE( 
             iEffectManager->BeginFullscreenEffectL(
-                KAppExitCommonDefaultStyle );
+                KAppExitEffectStyle );
             iViewAppUi->ActivateLocalViewL(
                 iPreviousViewUid.iViewUid ); 
             );
@@ -287,24 +293,16 @@
         {
         case KHsErrorViewFull:
         case KHsErrorDoesNotFit:
+            // Not enough space to add new widget to active page. 
+            // Remove some content first.
             ResourceLoader().InfoPopupL(
                 R_QTN_HS_ADD_WIDGET_NO_SPACE_NOTE, KNullDesC );
             break;
-            
-        case KHsErrorMaxInstanceCountExceeded:
-            {
-            TInt resource = ( iPostponedContent->Type() == KContentTemplate ) ?
-                resource = R_QTN_HS_ADD_WIDGET_MAX_REACHED : // wrt
-                resource = R_QTN_HS_ADD_WIDGET_MAX_COUNT_NOTE; // native
-            
-            ResourceLoader().InfoPopupL( resource, KNullDesC );
+        case KErrNoMemory:
+            // Not enough memory to add more content. 
+            // Please remove some Homescreen content and try again.
+            ResourceLoader().InfoPopupL( R_QTN_HS_HS_MEMORY_FULL, KNullDesC ); 
             break;
-            }
-            
-        case KErrNoMemory:
-            ResourceLoader().InfoPopupL( R_QTN_HS_HS_MEMORY_FULL, KNullDesC );
-            break;
-            
         default:
             ResourceLoader().ErrorPopup( aError );
             break;
--- a/idlehomescreen/widgetmanager/src/wmportalbutton.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/src/wmportalbutton.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -31,7 +31,7 @@
 #include <apgtask.h>
 #include <widgetregistryclient.h> // widgetreqistry
 #include <bacline.h>
-#include <EscapeUtils.h> 
+#include <escapeutils.h> 
 
 #include "wmportalbutton.h"
 #include "wmcommon.h"
@@ -42,13 +42,10 @@
 #include "wmprocessmonitor.h"
 
 // CONSTANTS
-_LIT( KOviUrlPrefix, "oviurl ");
-_LIT( KBrowserUrlPrefix, "browserurl ");
-_LIT( KSpace, " ");
-_LIT( Kurlprefix, "4 ");
+_LIT( KUrlPrefix, "4 ");
+
 
 const TUid KOSSBrowserUidValue = { 0x10008D39 };
-const TInt KMaxParam = 512;
 // MEMBER FUNCTIONS
 
 // ---------------------------------------------------------
@@ -128,28 +125,17 @@
     // construct the button
     CAknButton::ConstructL( NULL, NULL, NULL, NULL, aText, KNullDesC, 0 );
 
-    TAknsItemID frameId = KAknsIIDQgnHomeWmButton;
-    TAknsItemID frameCenterId = KAknsIIDQgnHomeWmButtonCenter;
-    TAknsItemID framePressedId = KAknsIIDQgnHomeWmButtonPressed;
-    TAknsItemID framePressedCenterId = KAknsIIDQgnHomeWmButtonPressedCenter;
-
-    SetFocusing( ETrue );
-    SetBackgroundIds( frameId,
-                      framePressedId,
-                      KAknsIIDQsnFrButtonInactive,
-                      framePressedId,
-                      KAknsIIDQsnFrButtonInactive );
     SetFrameAndCenterIds( 
-                        frameId,
-						frameCenterId,
-						KAknsIIDDefault,
-						KAknsIIDDefault,
-						KAknsIIDDefault,
-						KAknsIIDDefault,
-						framePressedId,
-						framePressedCenterId,
-						KAknsIIDDefault,
-						KAknsIIDDefault );
+            KAknsIIDQsnFrButtonNormal,
+            KAknsIIDQsnFrButtonCenterNormal,
+            KAknsIIDQsnFrButtonPressed,
+            KAknsIIDQsnFrButtonCenterPressed,
+            KAknsIIDQsnFrButtonInactive,
+            KAknsIIDQsnFrButtonCenterInactive,
+            KAknsIIDQsnFrButtonPressed,
+            KAknsIIDQsnFrButtonCenterPressed,
+            KAknsIIDQsnFrButtonInactive,
+            KAknsIIDQsnFrButtonCenterInactive );
     
     // start image converter for the icon
     iImageConverter = CWmImageConverter::NewL( this );
@@ -159,6 +145,9 @@
     // observe our own press events
     SetObserver( this );
     
+    SetFocusing( ETrue );
+    SetRequestExit( ETrue ); // notification request for button up event
+    
     // ready to be drawn
     ActivateL();
     }
@@ -177,12 +166,7 @@
             }
 		if ( !iProcessMonitor->IsActive() )
             {
-            // We will have laucher for starting ovi store but until
-            // it's added to SDK we need to start browser to ovi url
-            if ( 0 )
-                RunOviL( iWmMainContainer->Configuration() );
-            else
-                StartBrowserL( iWmMainContainer->Configuration() );
+            RunOviL( iWmMainContainer->Configuration() );
             }
         }
     else if ( iPortalButtonIndex == 1 )
@@ -202,36 +186,39 @@
 //
 void CWmPortalButton::RunOviL( CWmConfiguration& aConf )
     {
+    // param is: channel=homescreenwidgets 
+    // laucher uid: 0x2002D07F
     RApaLsSession session;
     User::LeaveIfError( session.Connect() );
     CleanupClosePushL( session );
     
     //get app info
     TApaAppInfo appInfo;
-    TUid launchUid; //plan was to save uid in cenrep and fetch it from there
+    TUid launchUid;
     launchUid = aConf.PortalButtonClientUid( iPortalButtonIndex );
-    User::LeaveIfError( session.GetAppInfo( appInfo, launchUid ) );
-   
-    // Form parameter
-    // it should look like this "oviurl url1 browserurl url2"  
-    HBufC* param = HBufC::NewLC( KMaxParam );
-    param->Des().Copy( KOviUrlPrefix );
-    HBufC* decodedParam = EscapeUtils::EscapeEncodeL( aConf.PortalButtonClientParam( iPortalButtonIndex ), EscapeUtils::EEscapeUrlEncoded );
-    CleanupStack::PushL( decodedParam );
-    param->Des().Append( *decodedParam );
-    param->Des().Append( KSpace );
-    param->Des().Append( KBrowserUrlPrefix );
-    decodedParam->Des().Copy( aConf.PortalButtonBrowserUrl( iPortalButtonIndex ) );
-    param->Des().Append( *decodedParam );
 
-    // do the launch
-    RProcess process;
-    User::LeaveIfError( process.Create( appInfo.iFullName, *param ) );
-    iProcessMonitor->Monitor( process );
-    process.Resume();
-
-    CleanupStack::PopAndDestroy( decodedParam );
-    CleanupStack::PopAndDestroy( param );
+    TInt err = session.GetAppInfo( appInfo, launchUid );
+    if ( err != KErrNone )
+        {
+        //This is temp until we have laucher in SDK
+        StartBrowserL( aConf );
+        }
+    else
+        {
+        // Form parameter
+        HBufC* param = HBufC::NewLC( aConf.PortalButtonClientParam( iPortalButtonIndex ).Length() );
+        param->Des().Copy( aConf.PortalButtonClientParam( iPortalButtonIndex ) );
+        
+        // do the launch
+        RProcess process;
+        User::LeaveIfError( process.Create( appInfo.iFullName, *param ) );
+    
+        iProcessMonitor->Monitor( process );
+        process.Resume();
+    
+        CleanupStack::PopAndDestroy( param );
+        }
+    
     CleanupStack::PopAndDestroy( &session );
     }
 
@@ -245,16 +232,27 @@
     User::LeaveIfError( session.Connect() );
     CleanupClosePushL( session );
 
-    // browser start parameters
-    HBufC* param = HBufC::NewLC( 
-            aConf.PortalButtonBrowserUrl( iPortalButtonIndex ).Length() + 
-            Kurlprefix().Length() );
-    
-    param->Des().Copy( Kurlprefix );
-    param->Des().Append( aConf.PortalButtonBrowserUrl( iPortalButtonIndex ) );
+    HBufC* param = NULL;
+    if ( iPortalButtonIndex == 1 )
+        {
+        // browser start parameter
+        param = HBufC::NewLC( 
+                aConf.PortalButtonBrowserUrl( iPortalButtonIndex ).Length() + 
+                        KUrlPrefix().Length() );
+        
+        param->Des().Copy( KUrlPrefix );
+        param->Des().Append( aConf.PortalButtonBrowserUrl( iPortalButtonIndex ) );
+        }
+    else
+        {
+        // becouse launcher knows url we need to have it temp here
+        // until laucher is available
+        _LIT( KTempUrl, "4 https://store.ovi.com/applications/");
+        param = HBufC::NewLC( KTempUrl().Length() );
+        param->Des().Copy( KTempUrl );
+        }
     
     TUid id( KOSSBrowserUidValue );
-    
     TApaTaskList taskList( CEikonEnv::Static()->WsSession() );
     TApaTask task = taskList.FindApp( id );
     if( task.Exists() )
@@ -284,27 +282,62 @@
 // CWmPortalButton::RunOperatorL
 // ---------------------------------------------------------
 //
-void CWmPortalButton::RunOperatorL( CWmConfiguration& /*aConf*/ )
+void CWmPortalButton::RunOperatorL( CWmConfiguration& aConf )
     {
-    //TODO: current info is that this will be a widget
+    // Current info is that this will be a widget
+    // meanwhile we just start browser
+    StartBrowserL( aConf );
     }
 
 // ---------------------------------------------------------
 // CWmPortalButton::HandleControlEventL
 // ---------------------------------------------------------
 //
-void CWmPortalButton::HandleControlEventL( CCoeControl* /*aControl*/,
+void CWmPortalButton::HandleControlEventL( CCoeControl* aControl,
         TCoeEvent aEventType )
     {
-    // execute portal action when button pressed (short or long press)
-    if ( aEventType == EEventStateChanged ||
-        aEventType == ELongPressEndedEvent )
+    if ( aControl == this )
         {
-        ExecuteL();
+        if ( aEventType == EEventStateChanged ||
+            aEventType == ELongPressEndedEvent ||
+            aEventType == EEventRequestCancel )
+            {
+            DrawDeferred();
+            }
+        // execute portal action when button pressed (short or long press)
+        if ( aEventType == EEventRequestExit )
+            {
+            SetFocus( EFalse );
+            DrawNow();
+            ExecuteL();
+            }
         }
     }
 
 // ---------------------------------------------------------
+// CWmPortalButton::HandlePointerEventL
+// ---------------------------------------------------------
+//
+void CWmPortalButton::HandlePointerEventL( 
+        const TPointerEvent& aPointerEvent )
+    {
+    CAknButton::HandlePointerEventL( aPointerEvent );
+    
+    // remove focus from button if button is released outside rect 
+    if ( aPointerEvent.iType == TPointerEvent::EDrag )
+        {
+        TBool wasFoucused( IsFocused() );
+        SetFocus( Rect().Contains( aPointerEvent.iPosition ) );
+        if ( wasFoucused != IsFocused() ){ DrawNow(); }
+        }
+    else if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
+        {
+        SetFocus( EFalse ); // remove focus when button released.
+        }
+    }
+
+
+// ---------------------------------------------------------
 // CWmPortalButton::LayoutIconSize
 // ---------------------------------------------------------
 //
@@ -370,11 +403,17 @@
         if ( iButtonIcon && iButtonIconMask )
             {
             TSize size = LayoutIconSize();
-            AknIconUtils::SetSize( 
+            if ( iButtonIcon->SizeInPixels() != size )
+                {
+                AknIconUtils::SetSize( 
                     iButtonIcon, size, EAspectRatioPreserved );
-            AknIconUtils::SetSize( 
+                }
+            if ( iButtonIconMask->SizeInPixels() != size )
+                {
+                AknIconUtils::SetSize( 
                     iButtonIconMask, size, EAspectRatioPreserved );
-            DrawDeferred();            
+                }
+            DrawDeferred();
             }
         }
     else
@@ -399,13 +438,13 @@
     CWindowGc& gc = SystemGc();
     MAknsSkinInstance* skin = AknsUtils::SkinInstance();
 
- 	TAknsItemID frameId = ( KAknsIIDQgnHomeWmButton );
-    TAknsItemID frameCenterId = ( KAknsIIDQgnHomeWmButtonCenter );
+ 	TAknsItemID frameId = ( KAknsIIDQsnFrButtonNormal );
+    TAknsItemID frameCenterId = ( KAknsIIDQsnFrButtonCenterNormal );
  	
     if ( iButtonPressed )
     	{
-        frameId = ( KAknsIIDQgnHomeWmButtonPressed );
-        frameCenterId = ( KAknsIIDQgnHomeWmButtonPressedCenter );
+        frameId = ( KAknsIIDQsnFrButtonPressed );
+        frameCenterId = ( KAknsIIDQsnFrButtonCenterPressed );
     	}
     else if ( IsDimmed() )
         {
@@ -414,8 +453,8 @@
         }
     else if ( IsFocused() )
         {
-        frameId = KAknsIIDQsnFrList;
-        frameCenterId = KAknsIIDQsnFrListCenter;
+        frameId = KAknsIIDQsnFrButtonHighlight;
+        frameCenterId = KAknsIIDQsnFrButtonHighlightCenter;
         }
     
     iBgContext->SetFrame( frameId );
@@ -423,7 +462,7 @@
     iBgContext->SetFrameRects( rect, innerRect );
 
     if ( !AknsDrawUtils::Background( skin, iBgContext, NULL, 
-                    gc, rect, KAknsDrawParamNoClearUnderImage ) )
+        gc, rect, KAknsDrawParamNoClearUnderImage ) )
         {
         gc.SetBrushColor( KRgbRed );
         gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
@@ -511,6 +550,12 @@
         AknsUtils::GetCachedColor( 
                 skin, textColor, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG6 );        
         }
+    else
+        {
+        // default for button
+        AknsUtils::GetCachedColor( 
+                skin, textColor, KAknsIIDQsnTextColors, EAknsCIQsnTextColorsCG80 ); 
+        }
     aGc.SetPenColor( textColor);
     
     // Layout data not correct, add some space for text
--- a/idlehomescreen/widgetmanager/src/wmwidgetdata.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/src/wmwidgetdata.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -280,6 +280,9 @@
         {
         iconStr = aIconStr.Alloc();
         }
+    
+    // nothing to do if no iconstr
+    if ( !iconStr ){ return; }
 
     TSize size( iLogoSize );
     if ( iLogoImage ) { size = iLogoImage->SizeInPixels(); }
@@ -295,7 +298,8 @@
     iconStr = NULL;
     
     // handle result
-    if ( KErrNone == err && IsPrepairingLogo() )
+    if ( KErrNone == err && iWait &&
+        IsPrepairingLogo() )
         {
         iWait->Start();
         }
--- a/idlehomescreen/widgetmanager/src/wmwidgetloaderao.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/src/wmwidgetloaderao.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -24,6 +24,7 @@
 #include "wmlistbox.h"
 #include "wmwidgetloaderao.h"
 #include "wminstaller.h"
+#include "wmwidgetorderdata.h"
 
 #include <hscontentcontroller.h> // content control api
 #include <hscontentinfoarray.h> // content control api
@@ -139,13 +140,17 @@
     iWidgetOrder = CWmPersistentWidgetOrder::NewL( iWmPlugin.FileServer() );
     TRAPD( loadError, iWidgetOrder->LoadL() );
 
-    // 3. prepare the widget data list
+    // 3. prepare the widget data array & sort order array
     for( TInt i=0; i<iWidgetsList.WidgetDataCount(); ++i )
         {
         iWidgetsList.WidgetData(i).SetPersistentWidgetOrder( iWidgetOrder );
         iWidgetsList.WidgetData(i).SetValid( EFalse );
         }
-
+    for( TInt i = 0; i < iWidgetsList.OrderDataArray().Count(); ++i )
+        {
+        iWidgetsList.OrderData(i)->SetPersistentWidgetOrder( iWidgetOrder );
+        }
+    
     // 4. loop through the content array and compare it against the existing
     // widget data.
     TInt widgetsAdded = 0;
@@ -162,18 +167,27 @@
         CWmWidgetData* existingData = FindWidgetData( *contentInfo );
         if ( existingData )
             {
-            // update existing widget data
+            // update existing visible widget data
             existingData->SetValid( ETrue );
             if ( existingData->ReplaceContentInfoL( contentInfo ) )
                 {
+                // Update name to order array if name changed
+                for ( TInt i=0; i < iWidgetsList.OrderDataArray().Count(); i++ )
+                    {
+                    CWmWidgetOrderData* order = iWidgetsList.OrderData(i);
+                    if ( order->EqualsTo( 
+                            existingData->Uid(), existingData->PublisherId() ) )
+                        {
+                        order->UpdateNameL( existingData->Name() );
+                        }
+                    }
                 ++widgetsChanged;
                 }
             }
         else
             {
             // add a new widget data
-            AddWidgetDataL( contentInfo );
-            ++widgetsAdded;
+            AddWidgetDataL( contentInfo, widgetsAdded );
             }
         }
 
@@ -219,9 +233,8 @@
     // 8. store list order if necessary
     if ( loadError != KErrNone || widgetsAdded > 0 || widgetsRemoved > 0 )
         {
-        iWidgetOrder->StoreL( iWidgetsList.WidgetDataArray() );
+        iWidgetOrder->StoreL( iWidgetsList.OrderDataArray() );
         }
-
     }
 
 // ---------------------------------------------------------
@@ -247,31 +260,65 @@
 // ---------------------------------------------------------
 //
 void CWmWidgetLoaderAo::AddWidgetDataL(
-        CHsContentInfo* aContentInfo )
+        CHsContentInfo* aContentInfo, TInt& aCount )
     {
     CleanupStack::PushL( aContentInfo );
     if ( !iWidgetRegistry )
         {
         iWidgetRegistry = new (ELeave) RWidgetRegistryClientSession();
-        User::LeaveIfError( iWidgetRegistry->Connect() );
+        TInt err = iWidgetRegistry->Connect();
+        if ( KErrNone != err )
+            {
+            delete iWidgetRegistry;
+            iWidgetRegistry = NULL;
+            User::Leave( err );
+            }
         }
-    CleanupStack::Pop( aContentInfo );
+            
+    // Becouse we show only widgets that can be added we need two arrays
+    // to maintain order data and visible data. 
+    // All widgets are added to listbox's iOrderDataArray and 
+    // widgets that CanBeAdded are added also to iVisibleWidgetArray.
+    CWmWidgetOrderData* order = CWmWidgetOrderData::NewLC(
+            aContentInfo->PublisherId(), 
+            UidFromString( aContentInfo->Uid() ), 
+            aContentInfo->Name(),
+            iWidgetOrder
+            );
+    
+    // add to order data
+    iWidgetsList.AddOrderDataL( order );
+    CleanupStack::Pop( order );
     
-    CWmWidgetData* widgetData = CWmWidgetData::NewLC(
-            iWidgetsList.LogoSize(),
-            iWmPlugin.ResourceLoader(),
-            aContentInfo, iWidgetRegistry );
-    widgetData->SetPersistentWidgetOrder( iWidgetOrder );
-    widgetData->SetValid( ETrue );
-       
-    if ( iUninstallUid != KNullUid &&
-        iUninstallUid == widgetData->PublisherUid() )
+    if ( aContentInfo->CanBeAdded() )
         {
-        widgetData->VisualizeUninstallL();
+		// widgetdata takes ownership of contentinfo
+        CleanupStack::Pop( aContentInfo );
+        
+        CWmWidgetData* widgetData = CWmWidgetData::NewLC(
+                iWidgetsList.LogoSize(),
+                iWmPlugin.ResourceLoader(),
+                aContentInfo, iWidgetRegistry );
+        widgetData->SetPersistentWidgetOrder( iWidgetOrder );
+        widgetData->SetValid( ETrue );
+        
+        // start uninstall animation if this widget
+        // is currently been unistalled
+        if ( iUninstallUid != KNullUid &&
+            iUninstallUid == widgetData->PublisherUid() )
+            {
+            widgetData->VisualizeUninstallL();
+            }
+        // add to visible data
+        iWidgetsList.AddWidgetDataL( widgetData, EFalse );
+        CleanupStack::Pop( widgetData );
+		aCount++;
         }
-    
-    iWidgetsList.AddWidgetDataL( widgetData, EFalse );
-    CleanupStack::Pop( widgetData );
+    else
+        {
+        //delete aContentInfo when it's not added to iVisibleWidgetArray
+        CleanupStack::PopAndDestroy( aContentInfo );
+        }
     }
 
 // ---------------------------------------------------------------------------
@@ -298,5 +345,24 @@
     iWidgetOrder = NULL;
     }
 
+// ----------------------------------------------------
+// CWmWidgetData::UidFromString
+// ----------------------------------------------------
+//
+TUid CWmWidgetLoaderAo::UidFromString( const TDesC8& aUidString ) const
+    {
+    TUid uid( KNullUid );
+    const TInt KHexPrefixLength = 2;
+    if ( aUidString.Length() > KHexPrefixLength )
+        {
+        TUint id = 0;
+        TLex8 lex( aUidString.Mid( KHexPrefixLength ) );
+        if ( lex.Val( id, EHex ) == KErrNone )
+            {
+            uid.iUid = (TInt32)id;
+            }
+        }
+    return uid;
+    }
 // end of file
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/src/wmwidgetorderdata.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,187 @@
+/*
+* 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:
+* CWmWidgetOrderData implementation.
+*
+*/
+
+
+// INCLUDE FILES
+#include <e32base.h>
+#include <e32std.h>
+#include "wmwidgetorderdata.h"
+#include "wmpersistentwidgetorder.h"
+
+// ---------------------------------------------------------
+// CWmWidgetOrderData::NewL
+// ---------------------------------------------------------
+//
+CWmWidgetOrderData* CWmWidgetOrderData::NewL( 
+        const TDesC& aPublisherId, 
+        const TUid aUid, 
+        const TDesC& aName,
+        const CWmPersistentWidgetOrder* aPersistentWidgetOrder )
+    {
+    CWmWidgetOrderData* self = CWmWidgetOrderData::NewLC(
+            aPublisherId, aUid, aName, aPersistentWidgetOrder );
+    CleanupStack::Pop(); // self;
+    return self;
+    }
+
+// ---------------------------------------------------------
+// CWmWidgetOrderData::NewLC
+// ---------------------------------------------------------
+//
+CWmWidgetOrderData* CWmWidgetOrderData::NewLC(
+        const TDesC& aPublisherId, 
+        const TUid aUid, 
+        const TDesC& aName,
+        const CWmPersistentWidgetOrder* aPersistentWidgetOrder )
+    {
+    CWmWidgetOrderData* self = new ( ELeave ) CWmWidgetOrderData( aUid );
+    CleanupStack::PushL(self);
+    self->ConstructL( aPublisherId, aName, aPersistentWidgetOrder );
+    return self;
+    }
+
+// ---------------------------------------------------------
+// CWmWidgetOrderData::CWmWidgetOrderData
+// ---------------------------------------------------------
+//
+CWmWidgetOrderData::CWmWidgetOrderData( const TUid aUid )
+    : iUid( aUid )
+    {
+    }
+
+// ---------------------------------------------------------
+// CWmWidgetOrderData::ConstructL
+// ---------------------------------------------------------
+//
+void CWmWidgetOrderData::ConstructL( 
+        const TDesC& aPublisherId, 
+        const TDesC& aName,
+        const CWmPersistentWidgetOrder* aPersistentWidgetOrder )
+    {
+    iPublisherId = aPublisherId.AllocL();
+    iName = aName.AllocL();
+    iPersistentWidgetOrder = aPersistentWidgetOrder;
+    }
+
+// ---------------------------------------------------------
+// CWmWidgetOrderData::~CWmWidgetOrderData
+// ---------------------------------------------------------
+//
+CWmWidgetOrderData::~CWmWidgetOrderData() 
+    {
+    delete iPublisherId;
+    delete iName;
+    //delete iPersistentWidgetOrder // TODO: is needed???
+    }
+
+// ---------------------------------------------------------
+// CWmWidgetOrderData::PublisherId
+// ---------------------------------------------------------
+//
+const TDesC& CWmWidgetOrderData::PublisherId() const
+    {
+    return ( iPublisherId ) ? *iPublisherId : KNullDesC();
+    }
+  
+// ---------------------------------------------------------
+// CWmWidgetOrderData::Uid
+// ---------------------------------------------------------
+//
+const TUid CWmWidgetOrderData::Uid() const
+    {
+    return iUid;
+    }
+
+// ---------------------------------------------------------
+// CWmWidgetOrderData::Name
+// ---------------------------------------------------------
+//
+const TDesC& CWmWidgetOrderData::Name() const
+    {
+    return ( iName ) ? *iName : KNullDesC();  
+    }
+
+// ---------------------------------------------------------
+// CWmWidgetOrderData::CompareByName
+// ---------------------------------------------------------
+//
+TInt CWmWidgetOrderData::CompareByName( 
+        const CWmWidgetOrderData& aDataOne, const CWmWidgetOrderData& aDataTwo )
+    {
+    // negate the result for ascending alphabetical order
+    TInt result = aDataOne.Name().CompareC( aDataTwo.Name() );
+    return result;
+    }
+
+// ---------------------------------------------------------
+// CWmWidgetOrderData::CompareByPersistentWidgetOrder
+// ---------------------------------------------------------
+//
+TInt CWmWidgetOrderData::CompareByPersistentWidgetOrder( 
+        const CWmWidgetOrderData& aDataOne, const CWmWidgetOrderData& aDataTwo )
+    {
+    TInt result;
+    const CWmPersistentWidgetOrder* order = aDataOne.iPersistentWidgetOrder;
+    if ( order && !order->IsEmpty() )
+        {
+        result = order->IndexOf( aDataOne ) - order->IndexOf( aDataTwo );
+        }
+    else
+        {
+        // fallback: if persistent widget order is not available
+        // or it is empty (this is the case on first start, or if the persistent
+        // file is corrupted or deleted) -> order widgets by name.
+        result = CompareByName( aDataOne, aDataTwo );
+        }
+    return result;
+    }
+
+// ---------------------------------------------------------
+// CWmWidgetOrderData::EqualsTo
+// ---------------------------------------------------------
+//
+TBool CWmWidgetOrderData::EqualsTo( const TUid aUid, const TDesC& aPublisherId )
+    {
+    return ( iUid == aUid && *iPublisherId == aPublisherId );
+    }
+
+// ---------------------------------------------------------
+// CWmWidgetOrderData::SetPersistentWidgetOrder
+// ---------------------------------------------------------
+//
+void CWmWidgetOrderData::SetPersistentWidgetOrder( 
+        CWmPersistentWidgetOrder* aPersistentWidgetOrder )
+    {
+    iPersistentWidgetOrder = aPersistentWidgetOrder;
+    }
+
+// ---------------------------------------------------------
+// CWmWidgetOrderData::UpdateName
+// ---------------------------------------------------------
+//
+void CWmWidgetOrderData::UpdateNameL( const TDesC& aName )
+    {
+    if ( iName->Compare( aName ) != KErrNone )
+        {
+        delete iName;
+        iName = NULL;
+        iName = aName.AllocL();
+        }
+    }
+
+// End of file
--- a/idlehomescreen/widgetmanager/tsrc/wmunittest/conf/ui_wmunittest.cfg	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/conf/ui_wmunittest.cfg	Fri Mar 12 15:41:49 2010 +0200
@@ -17,6 +17,8 @@
 LOGO_PATH 102
 CAN_BE_ADDED 103
 CAN_BE_REMOVED 104
+KPUBLISHERID 105
+KTYPE 106
 
 EUnrecognized 0
 EUidIcon 1
@@ -1060,6 +1062,49 @@
 //-------------------------------------------------------------------------------
 //
 
+// Tests Uninstall
+[Test]
+title Uninstall
+create wmunittest test
+test PluginCreate
+test InstallWrtWidget "c:\testframework\wmunittest\wmlogo\test.wgz"
+test SetMass 1
+test ChangeContent 0 KPUBLISHERID "com.nokia.widget.foreca.touchweather"
+test PluginActivate
+pause 500
+test UninstallUid
+test Uninstall
+test UninstallUid
+test WaitUninstallToFinnish
+test CleanUninstall
+pause 3000
+test PluginDeactivate
+pause 500
+test PluginDelete
+test WasUnistalled "com.nokia.widget.foreca.touchweather"
+delete test
+[Endtest]
+
+// Tests Uninstall
+[Test]
+title Cancel Uninstall
+create wmunittest test
+test PluginCreate
+test InstallWrtWidget "c:\testframework\wmunittest\wmlogo\test.wgz"
+test SetMass 1
+test ChangeContent 0 KPUBLISHERID "com.nokia.widget.foreca.touchweather"
+test PluginActivate
+pause 500
+test Uninstall
+pause 500
+test CancelUninstall
+pause 500
+test PluginDeactivate
+pause 500
+test PluginDelete
+delete test
+[Endtest]
+
 // Tests error note
 [Test]
 title Other error note
--- a/idlehomescreen/widgetmanager/tsrc/wmunittest/group/Create_sisx.bat	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/group/Create_sisx.bat	Fri Mar 12 15:41:49 2010 +0200
@@ -16,4 +16,4 @@
 
 rem Create wm sis&sisx files
 makesis wmunittest.pkg
-signsis wmunittest.SIS wmunittest.SISX Nokia_RnDCert_02.der Nokia_RnDCert_02.key
+signsis wmunittest.SIS wmunittest.SISX ..\..\..\internal\cert\Nokia_RnDCert_02.der ..\..\..\internal\cert\Nokia_RnDCert_02.key
--- a/idlehomescreen/widgetmanager/tsrc/wmunittest/group/wmunittest.mmp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/group/wmunittest.mmp	Fri Mar 12 15:41:49 2010 +0200
@@ -25,6 +25,8 @@
 UID             0x1000008D 0x101FB3E3
 
 CAPABILITY      ALL -TCB
+MACRO           _WM_UNIT_TEST
+
 VENDORID        VID_DEFAULT
 SECUREID        0x101FB3E3
 
@@ -52,7 +54,8 @@
 SOURCE          wmwidgetloaderao.cpp
 SOURCE          wmconfiguration.cpp
 SOURCE          wminstaller.cpp
-SOURCE  	      wmprocessmonitor.cpp
+SOURCE          wmprocessmonitor.cpp
+SOURCE          wmwidgetorderdata.cpp
 
 SOURCEPATH      ../src
 SOURCE          wmunittest.cpp
@@ -60,6 +63,7 @@
 SOURCE          wmunittest_plugin.cpp
 SOURCE          wmunittest_sortorder.cpp
 SOURCE          wmunittest_converter.cpp
+SOURCE          wmunittest_uninstaller.cpp
 
 // same as in widgetmanager.mmp
 LIBRARY	    euser.lib
@@ -102,6 +106,8 @@
 LIBRARY     centralrepository.lib
 LIBRARY     bmpanim.lib // AknBitmap animation
 LIBRARY     inetprotutil.lib
+LIBRARY     bitgdi.lib // CFbsBitmapDevice
+LIBRARY     charconv.lib
 
 // libraries needed by the test framework
 LIBRARY     stiftestinterface.lib
--- a/idlehomescreen/widgetmanager/tsrc/wmunittest/inc/wmunittest.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/inc/wmunittest.h	Fri Mar 12 15:41:49 2010 +0200
@@ -25,8 +25,10 @@
 #include <testclassassert.h>
 #include <s32file.h> // RFs
 
+#include "wmwidgetorderdata.h"
 #include "wmimageconverter.h" // MConverterObserver
 #include <hscontentcontroller.h>
+#include "wminstaller.h"
 
 // MACROS
 #define TEST_CLASS_VERSION_MAJOR 0
@@ -58,7 +60,7 @@
 class CHsContentInfo;
 class CHsContentInfoArray;
 class RWidgetDataValues;
-
+class CWmInstaller;
 
 // CLASS DECLARATION
 /**
@@ -95,6 +97,7 @@
 
         
         TInt WidgetListL( CHsContentInfoArray& aArray );
+        TInt WidgetListL( CHsContentInfo& aInfo, CHsContentInfoArray& aArray );
         TInt ViewListL( CHsContentInfoArray& aArray );
         TInt AppListL( CHsContentInfoArray& aArray );
         TInt AddWidgetL( CHsContentInfo& aInfo );
@@ -169,12 +172,24 @@
         // cancel ongoing convert
         TInt CancelConvertL( CStifItemParser& aItem );
 
-
-    private: // members used in testing
+        // TESTING UNISTALL
+        TInt UninstallL( CStifItemParser& aItem );
+        TInt WaitUninstallToFinnishL( CStifItemParser& aItem );
+        TInt UninstallUidL( CStifItemParser& aItem );
+        TInt CleanUninstall( CStifItemParser& aItem );
+        TInt WasUnistalledL( CStifItemParser& aItem );
+        TInt CancelUninstall( CStifItemParser& aItem );
+        
+    private: // helper functions for test cases
 
         void CreateContentInfoArrayL( CHsContentInfoArray& aArray, TInt aCount );
-        void CreateWidgetDataArrayL( RWidgetDataValues& aArray, TInt aCount );
-
+        void CreateWidgetDataArrayL( ROrderArray& aArray, TInt aCount );
+        TUid UidFromString( const TDesC8& aUidString ) const;
+        void StartTimerL();
+        static TInt Timeout( TAny* aPtr );
+        
+    private: // members used in testing
+        
         // file server
         RFs iFs;
 
@@ -202,6 +217,12 @@
         // multipurpose test data count
         TInt iMass;
 
+        // uninstall uid
+        TUid iUninstallUid;
+        
+        // timer for waiting uninstall to finnish
+        CPeriodic* iTimer;
+        
         // requested changes to the content
         TInt iChangeIndex;
         TInt iChangeType;
--- a/idlehomescreen/widgetmanager/tsrc/wmunittest/src/wmunittest_all.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/src/wmunittest_all.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -79,6 +79,14 @@
         ENTRY( "ImageConverterConversionMethod", CWmUnitTest::ImageConverterConversionMethodL ),
         ENTRY( "CancelConvert", CWmUnitTest::CancelConvertL ),
         
+        // uninstall
+        ENTRY( "Uninstall", CWmUnitTest::UninstallL ),
+        ENTRY( "UninstallUid", CWmUnitTest::UninstallUidL ),
+        ENTRY( "WaitUninstallToFinnish", CWmUnitTest::WaitUninstallToFinnishL ),
+        ENTRY( "CleanUninstall", CWmUnitTest::CleanUninstall ),
+        ENTRY( "WasUnistalled", CWmUnitTest::WasUnistalledL ),
+        ENTRY( "CancelUninstall", CWmUnitTest::CancelUninstall ),
+        
         };
 
     const TInt count = sizeof( KFunctions ) / 
--- a/idlehomescreen/widgetmanager/tsrc/wmunittest/src/wmunittest_plugin.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/src/wmunittest_plugin.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -22,6 +22,7 @@
 #include <stiftestinterface.h>
 #include <bautils.h>
 #include <aknsskininstance.h>
+#include <utf.h>
 #include "wmunittest.h"
 // components to test
 #include "wmplugin.h"
@@ -47,7 +48,8 @@
 const TInt KLogoPath = 102;
 const TInt KCanBeAdded = 103;
 const TInt KCanBeRemoved = 104;
-
+const TInt KPublisherId = 105;
+const TInt KType = 106;
 
 // ============================ MEMBER FUNCTIONS ===============================
 
@@ -98,7 +100,7 @@
 TInt CWmUnitTest::PluginDeactivateL( CStifItemParser& /*aItem*/ )
     {
     if ( iWmPlugin == 0 ) User::Leave( KErrArgument );
-    iWmPlugin->CloseView();
+    iWmPlugin->DeActivate();
     _RETURN("PluginActivateL End", KErrNone);
     }
 
@@ -123,6 +125,11 @@
     return KErrNone;
     }
 
+TInt CWmUnitTest::WidgetListL( CHsContentInfo& aInfo, CHsContentInfoArray& aArray )
+    {
+    return KErrNone;
+    }
+
 TInt CWmUnitTest::ViewListL( CHsContentInfoArray& /*aArray*/ )
     {
     return KErrNone;
@@ -165,12 +172,12 @@
 
 TInt CWmUnitTest::ActiveViewL( CHsContentInfo& /*aInfo*/ )
     {
-    return 0;
+    return KErrNone;
     }
 
 TInt CWmUnitTest::ActiveAppL( CHsContentInfo& /*aInfo*/ )
     {
-    return 0;
+    return KErrNone;
     }
 
 
@@ -236,6 +243,14 @@
             { info->SetCanBeAdded( s2b(*iChangeValue) ); }
         else if ( iChangeType == KCanBeRemoved )
             { info->SetCanBeRemoved( s2b(*iChangeValue) ); }
+        else if ( iChangeType == KPublisherId )
+            { info->SetPublisherIdL( *iChangeValue ); }
+        else if ( iChangeType == KType )
+            {
+            TBuf8<128> buf;
+            CnvUtfConverter::ConvertFromUnicodeToUtf8( buf, *iChangeValue );
+            info->SetTypeL( buf ); 
+            }
         }
     }
 
--- a/idlehomescreen/widgetmanager/tsrc/wmunittest/src/wmunittest_sortorder.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/src/wmunittest_sortorder.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -26,6 +26,7 @@
 // components to test
 #include "wmpersistentwidgetorder.h"
 #include "wmwidgetdata.h"
+#include "wmwidgetorderdata.h"
 #include <hscontentinfo.h>
 #include <hscontentinfoarray.h>
 #include <widgetregistryclient.h> // widgetreqistry
@@ -85,7 +86,7 @@
     TInt ret = KErrNone;
 
     _CLEANUPCHECK_BEGIN
-    RWidgetDataValues array;
+    ROrderArray array;
     CleanupClosePushL( array );
     CreateWidgetDataArrayL( array, iMass );
     iWmWidgetOrder->StoreL( array );
@@ -126,7 +127,7 @@
 
     _CLEANUPCHECK_BEGIN
     // test IndexOf
-    RWidgetDataValues array;
+    ROrderArray array;
     CreateWidgetDataArrayL( array, iMass );
     for( TInt i=0; i<array.Count() && ret==KErrNone; ++i )
         {
@@ -145,35 +146,45 @@
 // CWmUnitTest::CreateWidgetDataArrayL
 // -----------------------------------------------------------------------------
 //
-void CWmUnitTest::CreateWidgetDataArrayL( RWidgetDataValues& aArray, TInt aCount )
+void CWmUnitTest::CreateWidgetDataArrayL( ROrderArray& aArray, TInt aCount )
     {
     // first create an array of content info classes
     CHsContentInfoArray* contentArray = CHsContentInfoArray::NewL();
     CleanupStack::PushL( contentArray );
     CreateContentInfoArrayL( *contentArray, aCount );
-    // connect to widget registry
-    RWidgetRegistryClientSession registryClient;
-    User::LeaveIfError( registryClient.Connect() );
-    CleanupClosePushL( registryClient );
-    TSize dummySize(40,40);
-    CWmResourceLoader* resLoader = NULL; // not used in this case
-    while( contentArray->Array().Count() > 0 )
-        {        
-        CWmWidgetData* data = CWmWidgetData::NewL(
-                dummySize, *resLoader, 
-                contentArray->Array()[0],
-                &registryClient);
 
-        contentArray->Array().Remove( 0 );
+    for ( TInt i = 0; i < contentArray->Array().Count(); i++ )
+        {
+        CHsContentInfo* contentInfo = contentArray->Array()[i];
+        CWmWidgetOrderData* data = CWmWidgetOrderData::NewL(
+                contentInfo->PublisherId(), 
+                UidFromString ( contentInfo->Uid() ), 
+                contentInfo->Name(),
+                iWmWidgetOrder );
+        
         CleanupStack::PushL( data );
         aArray.AppendL( data );
         CleanupStack::Pop( data );
         }
- 
-    registryClient.Disconnect();
-    CleanupStack::PopAndDestroy( &registryClient );
+
+    contentArray->Array().ResetAndDestroy();
     CleanupStack::PopAndDestroy( contentArray );
     }
 
+TUid CWmUnitTest::UidFromString( const TDesC8& aUidString ) const
+    {
+    TUid uid( TUid::Null() );
+    const TInt KHexPrefixLength = 2;
+    if ( aUidString.Length() > KHexPrefixLength )
+        {
+        TUint id = 0;
+        TLex8 lex( aUidString.Mid( KHexPrefixLength ) );
+        if ( lex.Val( id, EHex ) == KErrNone )
+            {
+            uid.iUid = (TInt32)id;
+            }
+        }
+    return uid;
+    }
 
 // End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/widgetmanager/tsrc/wmunittest/src/wmunittest_uninstaller.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -0,0 +1,184 @@
+/*
+* 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:
+*
+*/
+
+//INCLUDE FILES
+#include <e32svr.h>
+#include <stdlib.h>
+#include <stifparser.h>
+#include <stiftestinterface.h>
+#include <bautils.h>
+#include <aknsskininstance.h>
+#include <swinstapi.h>
+#include <swinstdefs.h>
+#include <coemain.h>
+#include <EIKENV.H> 
+#include <widgetregistryclient.h> // widgetreqistry
+#include "wmresourceloader.h"
+
+#include "hscontentinfo.h"
+#include "wmplugin.h"
+#include "wmwidgetdata.h"
+#include "wmunittest.h"
+#include "wminstaller.h"
+#include "wmmainContainer.h"
+#include "wmlistbox.h"
+ 
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::UninstallL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::UninstallL( CStifItemParser& aItem )
+    {
+    TInt ret = KErrNone;
+    CWmWidgetData* data = 
+            iWmPlugin->iWmMainContainer->iWidgetsList->WidgetData();
+    iUninstallUid = data->PublisherUid();
+    iWmPlugin->WmInstaller().UninstallL( data );
+    
+    _RETURN("UninstallL End", ret);
+    }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::CleanUninstall
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::CleanUninstall( CStifItemParser& /*aItem*/ )
+    {
+    if ( iTimer )
+        {
+        if ( iTimer->IsActive() )
+            iTimer->Cancel();
+
+        delete iTimer;
+        iTimer = NULL;
+        }
+    _RETURN("CleanUninstall End", KErrNone );
+    }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::UninstallUidL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::UninstallUidL( CStifItemParser& /*aItem*/ )
+    {
+    TInt ret = KErrNone;
+
+    TUid installUid = iWmPlugin->WmInstaller().UninstallUid(); 
+    if ( installUid != iUninstallUid )
+        {
+        ret = KErrNotFound;
+        }
+    _RETURN("UninstallUidL End", ret);
+    }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::WaitUninstallToFinnishL
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::WaitUninstallToFinnishL( CStifItemParser& /*aItem*/ )
+    {
+    TInt ret = KErrNone;
+    
+    if ( iWmPlugin->WmInstaller().IsActive() )
+        {
+        StartTimerL();
+        CActiveScheduler::Start();
+        
+        if ( iWmPlugin->WmInstaller().UninstallUid() != KNullUid ||
+                iWmPlugin->WmInstaller().IsActive() )
+            {
+            ret = KErrGeneral;
+            }
+        }
+    _RETURN("WaitUninstallToFinnishL End", ret);
+    }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::WasUnistalled
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::WasUnistalledL( CStifItemParser& aItem )
+    {
+    TInt ret = KErrNone;
+    TPtrC id;
+    aItem.SetParsingType( CStifItemParser::EQuoteStyleParsing );
+    aItem.GetNextString( id );
+        
+    RWidgetRegistryClientSession widgetRegistry;
+    User::LeaveIfError( widgetRegistry.Connect() );
+    CleanupClosePushL( widgetRegistry );
+    
+    TInt uid = widgetRegistry.GetWidgetUidL( id );
+    
+    if ( uid != KErrNone )
+        {
+        ret = KErrGeneral;
+        }
+    CleanupStack::PopAndDestroy( &widgetRegistry );
+    
+    _RETURN("WasUnistalled End", ret);
+    }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::CancelUninstall
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::CancelUninstall( CStifItemParser& aItem )
+    {
+    TInt ret = KErrNone;
+    iWmPlugin->WmInstaller().Cancel();
+    
+    TBool active = iWmPlugin->WmInstaller().IsActive();
+    if ( active )
+        {
+        ret = KErrGeneral;
+        }
+    _RETURN("CancelUninstall End", ret );
+    }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::StartTimer
+// -----------------------------------------------------------------------------
+//
+void CWmUnitTest::StartTimerL()
+    {
+    if ( !iTimer )
+        iTimer = CPeriodic::NewL( CActive::EPriorityStandard );
+    
+    TTimeIntervalMicroSeconds32 delay( 4*1000*1000 ); // 2 sec
+    iTimer->Start( delay, delay, TCallBack( Timeout, this ) );
+    }
+
+// -----------------------------------------------------------------------------
+// CWmUnitTest::Timeout
+// -----------------------------------------------------------------------------
+//
+TInt CWmUnitTest::Timeout( TAny* aPtr )
+    {
+    CWmUnitTest* self = static_cast<CWmUnitTest*>( aPtr );
+    if ( self->iWmPlugin->WmInstaller().IsActive() )
+        {
+        return 1;
+        }
+    else
+        {
+        self->iTimer->Cancel();
+        CActiveScheduler::Stop();
+        return 0;
+        }
+    }
--- a/idlehomescreen/xmluicontroller/inc/appui.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluicontroller/inc/appui.h	Fri Mar 12 15:41:49 2010 +0200
@@ -79,8 +79,46 @@
         RPointerArray< CXnNodeAppIf >* aList = NULL );
     
     void HandleEnterEditModeL( TBool aEnter );
-	    
+       
+private:
+    // new functions
+    
+    /**
+     * Starts long press recognizer of Send key.
+     * 
+     * @since S60 5.2
+     */
+    void StartKeyTimerL();
+    
+    /**
+     * Stops Send key long press recognizer.
+     * 
+     * @since S60 5.2
+     */
+    void StopKeyTimer();
     
+    /**
+     * Launches Voice command application after long Send key is pressed.
+     * 
+     * @since S60 5.2
+     */
+    void LaunchVoiceCommandL();
+    
+    /**
+     * Callback function for long press timer of the Send key.
+     * 
+     * @since S60 5.2
+     */
+    static TInt ReportLongPressL( TAny* aThis );
+    
+    /**
+     * Sets title pane text
+     * 
+     * @since S60 5.2
+     * @param aText Text to set
+     */
+    void SetTitlePaneTextL( const TDesC& aText );
+       
 private:
     // from MCoeViewActivationObserver
     
@@ -94,9 +132,16 @@
     // new functions
     
     /**
+     * Activates UI. Called by UI controller during bootup sequence.
+     * 
+     * @since S60 5.2
+     */
+    void ActivateUi();
+    
+    /**
      * Sets plugins online state
      * 
-     * @since S60 5.0
+     * @since S60 5.2
      * @param aOnline ETrue to enter online, EFalse to offline
      * 
      */
@@ -113,7 +158,7 @@
     /**
      * Gets online/offline helper object
      *
-     * @since S60 5.0
+     * @since S60 5.2
      * @return online/offline helper
      */
     COnlineOfflineHelper* Helper() const;
@@ -138,12 +183,14 @@
     CAiUiIdleIntegration* iIdleIntegration;
     /** Online/Offline helper object, owned */
     COnlineOfflineHelper* iHelper;
+    /** Timer for Send key long press recognition, owned */
+    CPeriodic* iKeyTimer;
+    /** Edit mode title pane text, owned */
+    HBufC* iEditModeTitle;
     /** DeviceStatus publisher info */
     THsPublisherInfo iDeviceStatusInfo;
     /** Flag to indicate whether edit mode is active */
-    TBool iInEditMode;
-    /** Flag to indicate UI shutdown sequence is ongoing */
-    TBool iUiShutdown;
+    TBool iInEditMode;    
     };
     
 }  // namespace AiXmlUiController
--- a/idlehomescreen/xmluicontroller/src/ai3xmlui.rss	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluicontroller/src/ai3xmlui.rss	Fri Mar 12 15:41:49 2010 +0200
@@ -29,6 +29,7 @@
 #include <avkon.mbg>
 #include <e32keys.h>
 #include <activeidle3.loc>
+
 // ========== RESOURCE DEFINITIONS ============================================
 
 RESOURCE RSS_SIGNATURE { }
@@ -142,6 +143,11 @@
     buf = qtn_hs_operation_failed_no_disk;
     }
 
+RESOURCE TBUF r_qtn_hs_title_editmode
+    {
+    buf = qtn_hs_title_editing;
+    }
+
 // home screen online dialog
 RESOURCE DIALOG r_yes_no_hs_online
     {
--- a/idlehomescreen/xmluicontroller/src/appui.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluicontroller/src/appui.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -17,12 +17,16 @@
 
 // System includes
 #include <centralrepository.h>
-#include <avkon.rsg>                    // For status pane layout resource ids
-#include <startupdomainpskeys.h>
-#include <e32property.h>                // For RProperty
+#include <avkon.rsg>                    
+#include <e32property.h>                
 #include <activeidle2domainpskeys.h>
-#include <AknDlgShut.h>                 // Avkon dialog shutter.
+#include <AknDlgShut.h>                 
 #include <aknview.h>
+#include <apacmdln.h>
+#include <logsuicmdstarter.h>
+#include <aknconsts.h>
+#include <akntitle.h>
+#include <StringLoader.h>
 
 // User includes
 #include <hspublisherinfo.h>
@@ -44,17 +48,18 @@
 #include "aiuiidleintegration.h"
 #include "xmluicontrollerpanic.h"
 
-#include "debug.h"
-#include "ai3perf.h"
 #include "xndomnode.h"
 #include "xnproperty.h"
 #include "xnuiengineappif.h"
 #include "onlineofflinehelper.h"
 #include "ainativeuiplugins.h"
 
+#include "debug.h"
+
 // Constants
 // EAiDeviceStatusContentNetworkIdentity content id
 _LIT( KNetworkIdentity, "NetworkIdentity" );
+const TUid KVoiceUiUID = { 0x101F8543 };
 
 using namespace AiXmlUiController;
 
@@ -75,18 +80,23 @@
 //
 void CAppUi::ConstructL()
     {
-    AI3_PERF_START(perfdata, "xmluicontroller: CAppUi::ConstructL")
-        
+    __TICK( "CAppUi::ConstructL" );
+    
     // 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: XnAppUiAdapted::ConstructL",
+    __TIME("XML UI: CXnAppUiAdapter::ConstructL",
         CXnAppUiAdapter::ConstructL();       
     ) 
-        
+      
+    CAknAppUiBase::SetKeyEventFlags( CAknAppUiBase::EDisableSendKeyShort |
+                                     CAknAppUiBase::EDisableSendKeyLong );
+    
     // Register for XML UI view activation & deactivation
     AddViewActivationObserverL( this );
     
@@ -114,26 +124,14 @@
     keySoundConfig.iKeySounds = KeySounds();
     keySoundConfig.iContextResId = R_XUI_DEFAULT_SKEY_LIST;
     
-    iIdleIntegration = CAiUiIdleIntegration::NewL
-        ( *iEikonEnv, keySoundConfig, iUiCtl.FwEventHandler() );
-                         
     iUiCtl.NotifyAppEnvReadyL();
-        
-    CAknAppUiBase::SetKeyEventFlags( CAknAppUiBase::EDisableSendKeyShort |
-                                     CAknAppUiBase::EDisableSendKeyLong );
-
+    
     iHelper = COnlineOfflineHelper::NewL( iUiCtl );
     
-    // Load device status plugin here because it is always needed    
-    iDeviceStatusInfo = THsPublisherInfo( KDeviceStatusPluginUid, 
-        KDeviceStatusPluginName, KNullDesC8 ); 
-                
-    iUiCtl.FwStateHandler()->LoadPlugin( 
-            iDeviceStatusInfo, EAiFwSystemStartup );        
-    
-    __HEAP("XML UI: Done - Construct App UI");
-    
-    AI3_PERF_STOP(perfdata, "xmluicontroller: CAppUi::ConstructL")
+    iIdleIntegration = CAiUiIdleIntegration::NewL
+        ( *iEikonEnv, keySoundConfig, iUiCtl.FwEventHandler() );
+               
+    __TICK( "CAppUi::ConstructL - done" );          
     }
 
 // ----------------------------------------------------------------------------
@@ -155,6 +153,8 @@
 //
 CAppUi::~CAppUi()
     {
+    delete iEditModeTitle;
+    delete iKeyTimer;
     delete iHelper;
     delete iEventHandler;
     delete iContentRenderer;
@@ -162,13 +162,50 @@
     }
 
 // ----------------------------------------------------------------------------
+// CAppUi::ActivateUi()
+// ----------------------------------------------------------------------------
+//
+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 ) );              
+        }                  
+
+    if ( iDeviceStatusInfo.Uid() == TUid::Null() )
+        {
+        __PRINTS( "*** CAppUi::ActivateUI - Loading DeviceStatus plugin" );
+        
+        _LIT8( KNs, "namespace" );
+        
+        // Load device status plugin here because it is always needed    
+        iDeviceStatusInfo = THsPublisherInfo( KDeviceStatusPluginUid, 
+            KDeviceStatusPluginName, KNs ); 
+                           
+        iUiCtl.FwStateHandler()->LoadPlugin( 
+            iDeviceStatusInfo, EAiFwSystemStartup );                                       
+        }
+    
+    iUiCtl.FwEventHandler()->HandleUiReadyEventL( iUiCtl );
+    
+    __PRINTS( "*** CAppUi::ActivateUi - done" );
+    }
+
+// ----------------------------------------------------------------------------
 // CAppUi::PrepareToExit()
 // ----------------------------------------------------------------------------
 //
 void CAppUi::PrepareToExit()
-    {
-    iUiShutdown = ETrue;
-
+    {    
     RemoveViewActivationObserver( this );
     
     iUiCtl.FwEventHandler()->HandleUiShutdown( iUiCtl );
@@ -226,13 +263,36 @@
             TKeyEvent key;
             
             key.iScanCode = EStdKeyNo;
-            key.iCode = EStdKeyNull;
+            key.iCode = EKeyNull;
             key.iModifiers = 0;
             key.iRepeats = 0;
             
             iCoeEnv->SimulateKeyEventL( key, EEventKey );            
             }        
         }
+    
+    if( aEvent.Type() == EEventKeyDown )
+        {
+        if( aEvent.Key()->iScanCode == EStdKeyYes )
+            {
+            // Send key was pushed and long press recognition is started
+            StartKeyTimerL();
+            }
+        }
+    
+    if( aEvent.Type() == EEventKeyUp )
+        {
+        if( aEvent.Key()->iScanCode == EStdKeyYes )
+            {
+            if( iKeyTimer && iKeyTimer->IsActive() )
+                {
+                // up event is coming before long press of Send key is recognized
+                // Start dialled calls
+                StopKeyTimer();
+                LogsUiCmdStarter::CmdStartL( LogsUiCmdStarterConsts::KDialledView() );
+                }
+            }
+        }
          	  
     if( iIdleIntegration )
         {
@@ -285,12 +345,6 @@
 //
 TInt CAppUi::LoadPublisher( CXnNodeAppIf& aPublisher, TInt aReason )
     {
-    if ( iUiShutdown )
-        {
-        // Framework has already destroyed all publishers
-        return KErrNone;
-        }
-    
     THsPublisherInfo info;
     
     TRAP_IGNORE( iUiCtl.PublisherInfoL( aPublisher, info ) );
@@ -311,12 +365,6 @@
 //
 TInt CAppUi::DestroyPublisher( CXnNodeAppIf& aPublisher, TInt aReason )
     {
-    if ( iUiShutdown )
-        {
-        // Framework has already destroyed all publishers
-        return KErrNone;
-        }
-    
     THsPublisherInfo info;
            
     TRAP_IGNORE( iUiCtl.PublisherInfoL( aPublisher, info ) );
@@ -334,12 +382,6 @@
 TBool CAppUi::DynInitMenuItemL( const TDesC& aItemType, 
     RPointerArray< CXnNodeAppIf >* aList )
     {
-    if ( iUiShutdown )
-        {
-        // Framework has already destroyed all publishers
-        return EFalse;
-        }
-    
     _LIT( KOnline, "hs_online" );
     _LIT( KOffline, "hs_offline" );
     
@@ -376,11 +418,8 @@
 // ----------------------------------------------------------------------------
 //
 void CAppUi::SetOnlineStateL( TBool aOnline )
-    {
-    if ( !iUiShutdown )
-        {
-        iHelper->ProcessOnlineStateL( aOnline );    
-        }
+    {       
+    iHelper->ProcessOnlineStateL( aOnline );        
     }
 
 // ----------------------------------------------------------------------------
@@ -409,13 +448,26 @@
     {
     if ( iInEditMode != aEnter )
         {
+        TVwsViewId activeViewId;
+        TInt err( GetActiveViewId( activeViewId ) );
+
         if ( aEnter )
-            {            
+            {        
             iUiCtl.FwEventHandler()->SuspendContent( 
                 iDeviceStatusInfo, KNetworkIdentity );
+            
+            if ( !err && View().ViewId() == activeViewId )
+                {
+                SetTitlePaneTextL( *iEditModeTitle );
+                }            
             }
         else
             {
+            if ( !err && View().ViewId() == activeViewId )
+                {
+                SetTitlePaneTextL( KNullDesC );
+                }
+        
             iUiCtl.FwEventHandler()->RefreshContent( 
                 iDeviceStatusInfo, KNetworkIdentity );            
             }
@@ -435,7 +487,7 @@
     
     TInt err( GetActiveViewId( activeViewId ) );
     
-    if ( iInEditMode || err == KErrNotFound )
+    if ( err == KErrNotFound )
         {
         return;
         }
@@ -444,17 +496,143 @@
     TVwsViewId xmlViewId( View().ViewId() );
                      
     if ( xmlViewId == aNewlyActivatedViewId && activeViewId != xmlViewId )
-          {        
-          // Xml Ui view became active         
-          iUiCtl.FwEventHandler()->RefreshContent( 
-              iDeviceStatusInfo, KNetworkIdentity );                                
-          }    
+        { 
+        if ( iInEditMode )
+            {
+            TRAP_IGNORE( SetTitlePaneTextL( *iEditModeTitle ) );
+            }
+        else
+            {
+            // Xml Ui view became active         
+            iUiCtl.FwEventHandler()->RefreshContent( 
+                iDeviceStatusInfo, KNetworkIdentity );                                        
+            }
+        }    
     else if ( xmlViewId == aViewIdToBeDeactivated && activeViewId == xmlViewId )
-          {
-          // Xml Ui view became inactive
-          iUiCtl.FwEventHandler()->SuspendContent( 
-              iDeviceStatusInfo, KNetworkIdentity );          
-          }
-      }    
+        {
+        if ( iInEditMode )
+            {
+            TRAP_IGNORE( SetTitlePaneTextL( KNullDesC ) );
+            }
+        else
+            {
+            // Xml Ui view became inactive
+            iUiCtl.FwEventHandler()->SuspendContent( 
+                iDeviceStatusInfo, KNetworkIdentity );                  
+            }
+        }
+    } 
+
+// ----------------------------------------------------------------------------
+// CAppUi::StartKeyTimerL()
+// Starts long press recognizer of Send key.
+// ----------------------------------------------------------------------------
+//
+void CAppUi::StartKeyTimerL()
+    {
+    if ( !iKeyTimer )
+        {
+        iKeyTimer = CPeriodic::NewL( CActive::EPriorityStandard );
+        }
+    else if ( iKeyTimer->IsActive() )
+        {
+        iKeyTimer->Cancel();
+        }
+    iKeyTimer->Start( KAknKeyboardRepeatInitialDelay,
+                      KAknKeyboardRepeatInitialDelay, 
+                      TCallBack ( ReportLongPressL, this ) );
+    }
+
+// ----------------------------------------------------------------------------
+// CAppUi::StopKeyTimer()
+// Stops Send key long press recognizer.
+// ----------------------------------------------------------------------------
+//
+void CAppUi::StopKeyTimer()
+    {
+    if ( iKeyTimer && iKeyTimer->IsActive() )
+        {
+        iKeyTimer->Cancel();
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CAppUi::HandleViewActivation()
+// Launches Voice command application after long Send key is pressed.
+// ----------------------------------------------------------------------------
+//
+void CAppUi::LaunchVoiceCommandL()
+    {
+    TApaTaskList apaTaskList( iCoeEnv->WsSession() );
+    TApaTask apaTask = apaTaskList.FindApp( KVoiceUiUID );
+    
+    if ( apaTask.Exists() )
+        {
+        apaTask.BringToForeground();
+        }
+    else
+        {
+        RApaLsSession apaLsSession;
+        User::LeaveIfError( apaLsSession.Connect() );
+        CleanupClosePushL( apaLsSession );
+        
+        TApaAppInfo appInfo;
+        
+        if( apaLsSession.GetAppInfo( appInfo, KVoiceUiUID ) == KErrNone )
+            {
+            CApaCommandLine* cmdLine = CApaCommandLine::NewLC();
+            cmdLine->SetExecutableNameL( appInfo.iFullName );
+            cmdLine->SetCommandL( EApaCommandRun );
+            User::LeaveIfError( apaLsSession.StartApp( *cmdLine ) );
+            CleanupStack::PopAndDestroy( cmdLine );
+            }
+        CleanupStack::PopAndDestroy( &apaLsSession );
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CAppUi::ReportLongPressL()
+// Callback function for long press timer of the Send key.
+// ----------------------------------------------------------------------------
+//
+TInt CAppUi::ReportLongPressL( TAny* aThis )
+    {
+    CAppUi* self = reinterpret_cast <CAppUi* > ( aThis );
+    
+    self->StopKeyTimer();
+    
+    if ( iAvkonAppUi->IsForeground() )
+        {
+        self->LaunchVoiceCommandL();
+        }
+    
+    return 1; // CPeriodic ignores return value
+    }
+
+// ----------------------------------------------------------------------------
+// CAppUi::SetTitlePaneTextL()
+// 
+// ----------------------------------------------------------------------------
+//
+void CAppUi::SetTitlePaneTextL( const TDesC& aText )
+    {
+    CEikStatusPane* sp( StatusPane() );
+    
+    TUid titlePaneUid( TUid::Uid( EEikStatusPaneUidTitle ) );
+           
+    CEikStatusPaneBase::TPaneCapabilities subPaneTitle( 
+        sp->PaneCapabilities( titlePaneUid ) ); 
+                    
+    if ( subPaneTitle.IsPresent() && subPaneTitle.IsAppOwned() )
+        {
+        CAknTitlePane* title = 
+            static_cast< CAknTitlePane* >( sp->ControlL( titlePaneUid ) ); 
+        
+        if ( title )
+            {
+            title->SetTextL( aText );        
+            }               
+        }
+    }
 
 // End of File.
--- a/idlehomescreen/xmluicontroller/src/xmluicontroller.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluicontroller/src/xmluicontroller.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -259,22 +259,15 @@
 // ----------------------------------------------------------------------------
 //
 void CXmlUiController::NotifyAppEnvReadyL()
-    {
+    {    
+    iCPSpublisher = CContentPublisher::NewL( *this );
+    
+    iExitTimer = CPeriodic::NewL( CActive::EPriorityStandard );    
+
     if( iFwEventHandler )
         {
-        iFwEventHandler->AppEnvReadyL();
-        iFwEventHandler->HandleUiReadyEventL( *this );
-        }
-    
-    if( !iCPSpublisher )
-        {
-        iCPSpublisher = CContentPublisher::NewL( *this );
-        }
-    
-    if( !iExitTimer )
-        {
-        iExitTimer = CPeriodic::NewL( CActive::EPriorityStandard );        
-        }
+        iFwEventHandler->AppEnvReadyL();        
+        }          
     }
 
 // ----------------------------------------------------------------------------
@@ -599,6 +592,10 @@
 //
 void CXmlUiController::ActivateUI()
     {
+    if ( iRunningAsMain && iAppUi )
+        {
+        iAppUi->ActivateUi();
+        }
     }
 
 // ----------------------------------------------------------------------------
@@ -670,10 +667,12 @@
 //
 void CXmlUiController::RunApplicationL()
     {
-    iRunningAsMain = ETrue;
+    __PRINTS( "*** CXmlUiController::RunApplicationL" );
     
+    iRunningAsMain = ETrue;
+                                                    
     User::LeaveIfError( 
-        EikStart::RunApplication( &CXmlUiController::NewApplication ) );
+        EikStart::RunApplication( &CXmlUiController::NewApplication ) );       
     }
 
 // ----------------------------------------------------------------------------
@@ -815,9 +814,18 @@
 //
 CApaApplication* CXmlUiController::NewApplication()
     {
-    CXmlUiController* self = static_cast<CXmlUiController*>(Dll::Tls());
-    __ASSERT_ALWAYS( self, Panic(ECriticalPointerNull) );
-    return CApplication::New(*self);
+    __TICK( "CXmlUiController::NewApplication" );
+    __TIME_MARK( time );
+    
+    CXmlUiController* self = static_cast< CXmlUiController* >( Dll::Tls() );
+    
+    __ASSERT_ALWAYS( self, Panic( ECriticalPointerNull ) );
+    
+    CApplication* app = CApplication::New( *self );    
+    
+    __TIME_ENDMARK( "CXmlUiController::NewApplication, done", time );
+    
+    return app;
     }
 
 const TImplementationProxy KImplementationTable[] =
--- a/idlehomescreen/xmluirendering/ecomelement/xndomvisitor/inc/xnliteral.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/ecomelement/xndomvisitor/inc/xnliteral.h	Fri Mar 12 15:41:49 2010 +0200
@@ -47,13 +47,6 @@
 
 //Control
 _STLIT8(KButton,      "button");
-_STLIT8(KGrid,        "grid");
-_STLIT8(KListItem,    "listitem");
-_STLIT8(KDataGrid,    "datagrid");
-_STLIT8(KGridCellTemplate,    "gridcelltemplate");
-_STLIT8(KList,        "list");
-_STLIT8(KDataList,    "datalist");
-_STLIT8(KListRowTemplate, "listrowtemplate");
 _STLIT8(KMenuBar,     "menubar");
 _STLIT8(KMenu,        "menu");
 _STLIT8(KMenuItem,    "menuitem");
@@ -144,18 +137,6 @@
 //For text,list,datalist, grid, datagrid elements
 _STLIT8(KOverflow,          "overflow");
 
-//List And grid properties
-_STLIT8(KVisibleRows,      "_s60-visible-list-rows");
-_STLIT8(KInitialSelection, "_s60-initial-list-selection");
-_STLIT8(KFocusHorLooping,  "_s60-list-focus-horizontal-looping");
-_STLIT8(KFocusVerLooping,  "_s60-list-focus-vertical-looping");
-
-//Datagrid & grid properties
-_STLIT8(KGridColumns,       "_s60-grid-columns");
-_STLIT8(KS60GridOrientation, "_s60-grid-orientation");
-_STLIT8(KS60GridVerDirection, "_s60-grid-ver-direction"); //lr, rl
-_STLIT8(KS60GridHorDirection, "_s60-grid-hor-direction"); //tb, bt
-
 //Views and view properties
 _STLIT8(KViewDecoration,       "_s60-view-decoration");
 _STLIT8(KTabStyle,             "_s60-tab-style");
@@ -258,23 +239,6 @@
 	    {(const void*)&KOverflow,       EFalse}
 	};
 	
-const TXnPropertyProxy KXnGridAndListPropertyTable[] =
-	{
-	    {(const void*)&KVisibleRows,          EFalse},
-	    {(const void*)&KInitialSelection,     EFalse},
-	    {(const void*)&KFocusHorLooping,      EFalse},
-	    {(const void*)&KFocusVerLooping,      EFalse},
-	    {(const void*)&KOverflow,             EFalse}
-	};
-
-const TXnPropertyProxy KXnDataGridAndGridPropertyTable[] =
-	{
-	    {(const void*)&KGridColumns,            EFalse},
-	    {(const void*)&KS60GridOrientation,     EFalse},
-	    {(const void*)&KS60GridVerDirection,    EFalse},
-	    {(const void*)&KS60GridHorDirection,    EFalse}
-	};
-	
 const TXnPropertyProxy KXnViewsAndViewPropertyTable[] =
 	{
 	    {(const void*)&KViewDecoration,          EFalse},
--- a/idlehomescreen/xmluirendering/ecomelement/xndomvisitor/src/xndomvisitor.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/ecomelement/xndomvisitor/src/xndomvisitor.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -33,8 +33,6 @@
 LOCAL_C void SetCommonPropertiesL( TAny* aData );
 LOCAL_C void SetElementWithTextPropertiesL( TAny* aData );
 LOCAL_C void SetTextElementPropertiesL( TAny* aData );
-LOCAL_C void SetGridAndListPropertiesL( TAny* aData );
-LOCAL_C void SetDataGridAndGridPropertiesL( TAny* aData );
 LOCAL_C void SetViewsAndViewPropertiesL( TAny* aData );
 LOCAL_C void SetViewPropertiesL( TAny* aData );
 
@@ -56,13 +54,6 @@
         { (const void*)&KApplication,       NULL,                           EEmpty},
         { (const void*)&KDesc,              NULL,                           EPCData},
         { (const void*)&KButton,            &SetTextElementPropertiesL,     EEmpty},
-        { (const void*)&KGrid,              &SetDataGridAndGridPropertiesL, EEmpty},
-        { (const void*)&KListItem,          &SetElementWithTextPropertiesL, EEmpty},
-        { (const void*)&KDataGrid,          &SetDataGridAndGridPropertiesL, EEmpty},
-        { (const void*)&KGridCellTemplate,  &SetCommonPropertiesL,          EEmpty},
-        { (const void*)&KList,              &SetGridAndListPropertiesL,     EEmpty},
-        { (const void*)&KDataList,          &SetGridAndListPropertiesL,     EEmpty},
-        { (const void*)&KListRowTemplate,   &SetCommonPropertiesL,          EEmpty},
         { (const void*)&KMenuBar,           NULL,                           EEmpty},
         { (const void*)&KMenu,              NULL,                           EEmpty},
         { (const void*)&KMenuItem,          NULL,                           EEmpty},
@@ -141,22 +132,7 @@
     SetElementWithTextPropertiesL( aData );
     TInt count( sizeof (KXnTextElementPropertyTable) / sizeof(TXnPropertyProxy) );
     SetPropertiesL( KXnTextElementPropertyTable, count, aData );
-    }
-
-LOCAL_C void SetGridAndListPropertiesL( TAny* aData )
-    {
-    SetCommonPropertiesL( aData );
-    TInt count( sizeof (KXnGridAndListPropertyTable) / sizeof(TXnPropertyProxy) );
-    SetPropertiesL( KXnGridAndListPropertyTable, count, aData );
-    }
-
-LOCAL_C void SetDataGridAndGridPropertiesL( TAny* aData )
-    {
-    SetGridAndListPropertiesL( aData );
-    TInt count( sizeof (KXnDataGridAndGridPropertyTable) / sizeof(TXnPropertyProxy) );
-    SetPropertiesL( KXnDataGridAndGridPropertyTable, count, aData );
-    }
-        
+    }        
 
 LOCAL_C void SetViewsAndViewPropertiesL( TAny* aData )
     {
--- a/idlehomescreen/xmluirendering/renderingplugins/xnanimationfactory/inc/xnanimationadapter.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnanimationfactory/inc/xnanimationadapter.h	Fri Mar 12 15:41:49 2010 +0200
@@ -50,13 +50,16 @@
         virtual ~CXnAnimationAdapter();
     
     public: // From Base classes 
-        /**
-        * From CXnControlAdapter Handles the property changes.
-        * @since Series 60 3.1
-        * @return void.
-        */    
+        
+        // From CXnControlAdapter
         void DoHandlePropertyChangeL(CXnProperty* aProperty = NULL);
         
+        // From CXnControlAdapter
+        void DoEnterPowerSaveModeL( TModeEvent aEvent );
+        
+        // From CXnControlAdapter
+        void DoExitPowerSaveModeL( TModeEvent aEvent );
+        
     protected:
         /**
          * From CCoeControl.
@@ -124,6 +127,9 @@
        
         // Timer for animation, owned  
         CPeriodic* iPeriodicTimer;
+        
+        // Whether the renderer is in power save mode or not
+        TBool iInPowerSaveMode;
    };
 
 #endif      // _XNANIMATIONAPADAPTER_H
--- a/idlehomescreen/xmluirendering/renderingplugins/xnanimationfactory/src/xnanimationadapter.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnanimationfactory/src/xnanimationadapter.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -18,6 +18,8 @@
 #include <AknsDrawUtils.h>
 #include <AknsConstants.h>
 #include <barsread.h>
+#include <debug.h>
+
 #include "xnnodepluginif.h"
 #include "xndomproperty.h"
 #include "xnproperty.h"
@@ -112,6 +114,26 @@
     }
 
 // -----------------------------------------------------------------------------
+// CXnAnimationAdapter::DoEnterPowerSaveModeL
+// -----------------------------------------------------------------------------
+//
+void CXnAnimationAdapter::DoEnterPowerSaveModeL( TModeEvent /*aEvent*/ )
+    {
+    iInPowerSaveMode = ETrue;
+    StopAnimation();
+    }
+
+// -----------------------------------------------------------------------------
+// CXnAnimationAdapter::DoExitPowerSaveModeL
+// -----------------------------------------------------------------------------
+//
+void CXnAnimationAdapter::DoExitPowerSaveModeL( TModeEvent /*aEvent*/ )
+    {
+    iInPowerSaveMode = EFalse;
+    StartAnimation();
+    }
+
+// -----------------------------------------------------------------------------
 // CXnNewstickerAdapter::MakeVisible()
 // -----------------------------------------------------------------------------
 //
@@ -176,6 +198,7 @@
 //
 TInt CXnAnimationAdapter::TimerCallBack(TAny* aAny)
     {
+    __PRINTS( "CXnAnimationAdapter::TimerCallback, timer runs" );
     CXnAnimationAdapter* self = static_cast<CXnAnimationAdapter*> (aAny);
 
     // Update widget
@@ -190,7 +213,7 @@
 //
 void CXnAnimationAdapter::StartAnimation()
     {
-    if ( !iPeriodicTimer && IsVisible() )
+    if ( !iPeriodicTimer && IsVisible() && !iInPowerSaveMode )
         {
        TRAPD(err, iPeriodicTimer = CPeriodic::NewL(CActive::EPriorityIdle) );
        if ( err == KErrNone )
--- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockadapter.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockadapter.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -275,6 +275,7 @@
         if( iForeground )
             {
             UpdateDisplay(); // starts timer after update
+            iClockControl->StartTimer();
             }
         else
             {
--- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockcontrol.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockcontrol.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -18,6 +18,7 @@
 
 // SYSTEM INCLUDE FILES
 #include <e32std.h>         // for RChangeNotifier
+#include <debug.h>
 
 // USER INCLUDE FILES
 #include "xncontroladapter.h"
@@ -61,6 +62,7 @@
 
         void RunL()
             {
+            __PRINTS( "CXnClockChangeHandler::RunL, timer runs" );            
             if( iStatus.Int() & ( EChangesLocale | EChangesSystemTime ) )
                 {
                 iClient.TimeOrLocaleChanged();
@@ -244,9 +246,6 @@
         homeTime.HomeTime();
 
         TRAP_IGNORE( iFace->DrawL( *iAdapter, aGc, aRect, homeTime ) );
-        
-        // Ensure timer is active
-        const_cast< CXnClockControl* >( this )->StartTimer();
         }
     }
 
@@ -257,6 +256,7 @@
 //
 TInt CXnClockControl::TimerCallback( TAny* aThis )
     {
+    __PRINTS( "CXnClockControl::TimerCallback, timer runs" );
     CXnClockControl* self = static_cast< CXnClockControl* >( aThis );
 
     // Update the clock display
--- a/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewstickeradapter.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewstickeradapter.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -21,6 +21,7 @@
 #include <AknUtils.h>
 #include <AknMarqueeControl.h>
 #include <AknBidiTextUtils.h>
+#include <debug.h>
 
 // User includes
 #include "xnviewnodeimpl.h"
@@ -684,6 +685,7 @@
 //
 TInt CXnNewstickerAdapter::PeriodicEventL( TAny* aPtr )
     {
+    __PRINTS( "CXnNewstickerAdapter::PeriodicEventL, timer runs" );
     CXnNewstickerAdapter* self = static_cast< CXnNewstickerAdapter* >( aPtr );
     self->DoScroll();
   
--- a/idlehomescreen/xmluirendering/renderingplugins/xnpopupfactory/group/xnpopupfactory.mmp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnpopupfactory/group/xnpopupfactory.mmp	Fri Mar 12 15:41:49 2010 +0200
@@ -45,6 +45,7 @@
 LIBRARY         xn3domdocument.lib
 LIBRARY	        avkon.lib
 LIBRARY         ws32.lib
+LIBRARY         gfxtrans.lib
 
 START RESOURCE  xn3popupfactory.rss
 #ifdef SYMBIAN_SECURE_ECOM
--- a/idlehomescreen/xmluirendering/renderingplugins/xnpopupfactory/inc/xnpopupadapter.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnpopupfactory/inc/xnpopupadapter.h	Fri Mar 12 15:41:49 2010 +0200
@@ -86,7 +86,13 @@
 	/**
 	* @see CXnControlAdapter
 	*/
-    void DoHandlePropertyChangeL(CXnProperty* aProperty = NULL); 
+    void DoHandlePropertyChangeL(CXnProperty* aProperty = NULL);
+
+private: // from base class
+    /**
+    * @see CCoeControl documentation        
+    */         
+    void MakeVisible( TBool aVisible );
    
 private:
     void Draw(const TRect& aRect) const;
--- a/idlehomescreen/xmluirendering/renderingplugins/xnpopupfactory/src/xnpopupadapter.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnpopupfactory/src/xnpopupadapter.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -26,6 +26,8 @@
 #include "xncomponent.h"
 
 #include <AknUtils.h>
+#include <gfxtranseffect/gfxtranseffect.h>
+#include <akntransitionutils.h>
 
 const TInt KStartDelay = 1000000;
 const TInt KDisplayTime = 0;
@@ -295,6 +297,8 @@
     CXnControlAdapter::ConstructL(aNode);
     iNode = &aNode;
     iAppUi = CCoeEnv::Static()->AppUi();
+    
+    GfxTransEffect::Register( this, KGfxPreviewPopupControlUid );
     }
     
 // -----------------------------------------------------------------------------
@@ -314,6 +318,7 @@
 CXnPopupAdapter::~CXnPopupAdapter()
     {
     delete iActiveObject;
+    GfxTransEffect::Deregister( this );
     }
 
 // -----------------------------------------------------------------------------
@@ -541,4 +546,31 @@
     this->SetRect( rect );
     }
 
+// -----------------------------------------------------------------------------
+// CXnPopupAdapter::MakeVisible
+// 
+// -----------------------------------------------------------------------------
+// 
+void CXnPopupAdapter::MakeVisible( TBool aVisible )
+    {
+    if ( aVisible == IsVisible() )
+        {
+        return;
+        }
+    
+    if ( aVisible )
+        {
+        GfxTransEffect::Begin( this, KGfxControlAppearAction );
+        }
+    else
+        {
+        GfxTransEffect::Begin( this, KGfxControlDisappearAction );
+        }
+
+    CCoeControl::MakeVisible( aVisible );
+
+    GfxTransEffect::SetDemarcation( this, iPosition );
+    GfxTransEffect::End( this );
+    }
+
 // End of File
--- a/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/inc/xntexteditoradapter.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/inc/xntexteditoradapter.h	Fri Mar 12 15:41:49 2010 +0200
@@ -159,12 +159,8 @@
     TInt                    iMaxLines; 
     /** Flag to indicate whether focus loss is refused */
     TBool                   iRefusesFocusLoss;
-    /** Flag to indicate is partial input supported*/
-    TBool                   iPartialInputEnabled;
-    /** Flag to indicate is partial input open*/
-    TBool                   iPartialInputOpen;
-    /** Flag to indicate whether split input should be remove or not*/
-    TBool                   iRemoveSplitInputFromStack;
+    /** Split input states*/
+    TInt                    iSplitInputState;
     };
 
 #endif      // _XNTEXTEDITORADAPTER_H
--- a/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditoradapter.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditoradapter.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -50,6 +50,14 @@
 
 const TInt KMaxLength = 100;
 
+enum TSplitInputState
+    {
+    ESplitInputDisabled = 0,   
+    ESplitInputClosed,
+    ESplitInputOpen,
+    ESplitInputRemoveFromStack         
+    };
+
 _LIT8( KCpsPublishing, "cpspublishing" );
 _LIT8( KMaxLineAmount, "max-line-amount" );
 _LIT8( KMaxCharAmount, "max-char-amount" );
@@ -175,14 +183,13 @@
 
     // Enable partial Screen
     CXnProperty* enablepartialinput( iNode.GetPropertyL( KEnablePartialInput ) );
-    iPartialInputEnabled = EFalse;
-    iPartialInputOpen = EFalse;
+    iSplitInputState = ESplitInputDisabled;
      
     if ( enablepartialinput && 
          enablepartialinput->StringValue() == XnPropertyNames::KTrue )
         {
         iEditor->SetAknEditorFlags( EAknEditorFlagEnablePartialScreen );
-        iPartialInputEnabled = ETrue;
+        iSplitInputState = ESplitInputClosed;
         }
     
     iEditor->SetObserver( this );
@@ -310,33 +317,36 @@
         {      
         value = EPSAiDontForwardNumericKeysToPhone;
 
-        if( !iPartialInputEnabled )
+        if( iSplitInputState == ESplitInputDisabled )
             {
             TRAP_IGNORE( appui->AddToStackL( appui->View(), iEditor ) );            
             // AddToStackL calls iEditor->SetFocus( ETrue ); 
             }
-
+        else if( iSplitInputState == ESplitInputClosed )
+            {
+            iUiEngine->EnablePartialTouchInput(iNode , ETrue);
+            TRAP_IGNORE( appui->AddToStackL( appui->View(), iEditor ) ); 
+            iSplitInputState = ESplitInputOpen;
+            }
         }
     else
         {
         value = EPSAiForwardNumericKeysToPhone;
                                       
-        if( !iPartialInputEnabled )
+        if( iSplitInputState == ESplitInputDisabled )
             {    
             appui->RemoveFromStack( iEditor );            
             iEditor->SetFocus( EFalse, aDrawNow );
             }
-        else if(iPartialInputEnabled && iRemoveSplitInputFromStack )
+        else if( iSplitInputState == ESplitInputRemoveFromStack )
             {
             appui->RemoveFromStack( iEditor );            
             iEditor->SetFocus( EFalse, aDrawNow );
-            iPartialInputOpen = EFalse;
-            iRemoveSplitInputFromStack = EFalse;
-            }
-            
+            iSplitInputState = ESplitInputClosed;
+            }            
         }
 
-    if(iPartialInputOpen)
+    if( iSplitInputState == ESplitInputOpen )
         {
         value = EPSAiDontForwardNumericKeysToPhone;
         }
@@ -410,25 +420,15 @@
     {
     CXnAppUiAdapter* appui( 
         static_cast< CXnAppUiAdapter* >( iAvkonAppUi ) );
-
+ 
     switch( aReason )
             {           
-            case CXnTextEditor::KActivateTextEditor:
-                {
-                if( !iPartialInputOpen )
-                     {
-                     iUiEngine->EnablePartialTouchInput(iNode , ETrue);
-                     TRAP_IGNORE( appui->AddToStackL( appui->View(), iEditor ) ); 
-                     iPartialInputOpen = ETrue;
-                     }  
-                break;
-                }
             case CXnTextEditor::KDeactivateTextEditor:
                 {
-                if( iPartialInputOpen )
+                if( iSplitInputState == ESplitInputOpen )
                      {
                      iUiEngine->EnablePartialTouchInput(iNode, EFalse);
-                     iPartialInputOpen = EFalse;
+                     iSplitInputState = ESplitInputClosed;
                      appui->RemoveFromStack( iEditor );
                      iEditor->SetFocus( EFalse );
                      }              
@@ -436,12 +436,12 @@
                 }
             case CXnTextEditor::KRemoveSplitInputFromStack:
                 {
-                iRemoveSplitInputFromStack = ETrue;
+                iSplitInputState = ESplitInputRemoveFromStack;
                 break;
                 }
             case CXnTextEditor::KKeepSplitInputInStack:
                 {
-                iRemoveSplitInputFromStack = EFalse;
+                iSplitInputState = ESplitInputOpen;
                 break;
                 }
             default:                    
--- a/idlehomescreen/xmluirendering/renderingplugins/xntextfactory/src/xntextadapter.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/renderingplugins/xntextfactory/src/xntextadapter.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -141,33 +141,45 @@
                 
                 TInt lineCount( array->Count() );
                 
-                buffer = HBufC::NewLC( temp->Length() + ( lineCount - 1 ) );
-                
-                TPtr ptr( buffer->Des() );
-                                                
-                for( TInt i = 0; i < lineCount; i++ )
+                TInt bufLen = temp->Length() + ( lineCount - 1 );
+                if ( bufLen > 0 )
                     {
-                    TPtrC line( array->At( i ) );
-                    
-                    ptr.Append( line );
+                    buffer = HBufC::NewLC( bufLen );
                     
-                    if( i + 1 < lineCount )
+                    TPtr ptr( buffer->Des() );
+                                                    
+                    for( TInt i = 0; i < lineCount; i++ )
                         {
-                        ptr.Append( '\n' );
-                        }                    
+                        TPtrC line( array->At( i ) );
+                        
+                        ptr.Append( line );
+                        
+                        if( i + 1 < lineCount )
+                            {
+                            ptr.Append( '\n' );
+                            }                    
+                        }
+                        
+                    CleanupStack::Pop();
+                    CleanupStack::PopAndDestroy( temp );
+                    CleanupStack::PushL( buffer );
                     }
-                    
-                CleanupStack::Pop();
-                CleanupStack::PopAndDestroy( temp );
-                CleanupStack::PushL( buffer );                                                    
+                else
+                    {
+                    CleanupStack::PopAndDestroy( temp );
+                    }
                 }    	        
 
             // The text is already in visual form, no need for conversion
             conversion = EFalse;
 
-            aLabel.SetTextL( *buffer );            
-                        
-            CleanupStack::PopAndDestroy( 2 ); // buffer, array                                       
+            if ( buffer )
+                {
+                aLabel.SetTextL( *buffer );
+                CleanupStack::PopAndDestroy( buffer );
+                }
+            
+            CleanupStack::PopAndDestroy(); // array                                       
     	    }
         else
             {
--- a/idlehomescreen/xmluirendering/uiengine/bwins/xn3layoutengineu.def	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/bwins/xn3layoutengineu.def	Fri Mar 12 15:41:49 2010 +0200
@@ -30,215 +30,207 @@
 	?HandlePowerSaveModeL@CXnUtils@@SAHPAVCXnNode@@HH@Z @ 29 NONAME ; int CXnUtils::HandlePowerSaveModeL(class CXnNode *, int, int)
 	?ContentBitmaps@CXnControlAdapter@@QAEXAAPAVCFbsBitmap@@0@Z @ 30 NONAME ; void CXnControlAdapter::ContentBitmaps(class CFbsBitmap * &, class CFbsBitmap * &)
 	?HandlePropertyChangeL@CXnControlAdapter@@QAEXPAVCXnProperty@@@Z @ 31 NONAME ; void CXnControlAdapter::HandlePropertyChangeL(class CXnProperty *)
-	?FocusHorLoopingL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 32 NONAME ; class CXnProperty * CXnNodePluginIf::FocusHorLoopingL(void)
-	?Control@CXnNodePluginIf@@QBEPAVCXnControlAdapter@@XZ @ 33 NONAME ; class CXnControlAdapter * CXnNodePluginIf::Control(void) const
-	?DestroyPublisher@CXnAppUiAdapter@@UAEHAAVCXnNodeAppIf@@H@Z @ 34 NONAME ; int CXnAppUiAdapter::DestroyPublisher(class CXnNodeAppIf &, int)
-	?GetPropertyL@CXnNodeAppIf@@QBEPAVCXnProperty@@AAV2@@Z @ 35 NONAME ; class CXnProperty * CXnNodeAppIf::GetPropertyL(class CXnProperty &) const
-	?MakeInterfaceL@CXnComponentNodeImpl@@UAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 36 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnComponentNodeImpl::MakeInterfaceL(class TDesC8 const &)
-	?SkinChanged@CXnControlAdapter@@UAEXXZ @ 37 NONAME ; void CXnControlAdapter::SkinChanged(void)
-	?SetContentBitmaps@CXnControlAdapter@@QAEXPAVCFbsBitmap@@0@Z @ 38 NONAME ; void CXnControlAdapter::SetContentBitmaps(class CFbsBitmap *, class CFbsBitmap *)
-	?FindNodeByClassL@TXnUiEngineAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@ABVTDesC16@@0@Z @ 39 NONAME ; class RPointerArray<class CXnNodeAppIf> TXnUiEngineAppIf::FindNodeByClassL(class TDesC16 const &, class TDesC16 const &)
-	?SetDataL@CXnControlAdapter@@UAEXABVTDesC8@@ABVTDesC16@@H@Z @ 40 NONAME ; void CXnControlAdapter::SetDataL(class TDesC8 const &, class TDesC16 const &, int)
-	?ComponentNodeImpl@CXnNodePluginIf@@QAEPAVCXnComponentNodeImpl@@XZ @ 41 NONAME ; class CXnComponentNodeImpl * CXnNodePluginIf::ComponentNodeImpl(void)
-	??0CXnViewsNodeImpl@@IAE@XZ @ 42 NONAME ; CXnViewsNodeImpl::CXnViewsNodeImpl(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)
-	?VisibleRowsL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 54 NONAME ; class CXnProperty * CXnNodePluginIf::VisibleRowsL(void)
-	?UiEngineL@CXnNodeAppIf@@QAEPAVTXnUiEngineAppIf@@XZ @ 55 NONAME ; class TXnUiEngineAppIf * CXnNodeAppIf::UiEngineL(void)
-	?LongTapDetector@CXnControlAdapter@@QBEPAVCAknLongTapDetector@@XZ @ 56 NONAME ; class CAknLongTapDetector * CXnControlAdapter::LongTapDetector(void) const
-	??0CXnAppUiAdapter@@QAE@VTUid@@@Z @ 57 NONAME ; CXnAppUiAdapter::CXnAppUiAdapter(class TUid)
-	?Rect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 58 NONAME ; class TRect CXnNodePluginIf::Rect(void)
-	?AddChildL@CXnNodePluginIf@@QAEXPAV1@@Z @ 59 NONAME ; void CXnNodePluginIf::AddChildL(class CXnNodePluginIf *)
-	?SetNode@CXnComponent@@QAEXAAVCXnNodePluginIf@@@Z @ 60 NONAME ; void CXnComponent::SetNode(class CXnNodePluginIf &)
-	?ResetStylusCounter@CXnControlAdapter@@QAEXXZ @ 61 NONAME ; void CXnControlAdapter::ResetStylusCounter(void)
-	?SetComponent@CXnComponentNodeImpl@@QAEXPAVCXnComponent@@@Z @ 62 NONAME ; void CXnComponentNodeImpl::SetComponent(class CXnComponent *)
-	?LayoutUIL@TXnUiEnginePluginIf@@QAEXPAVCXnNodePluginIf@@@Z @ 63 NONAME ; void TXnUiEnginePluginIf::LayoutUIL(class CXnNodePluginIf *)
-	?FocusVisible@TXnUiEnginePluginIf@@QAEHXZ @ 64 NONAME ; int TXnUiEnginePluginIf::FocusVisible(void)
-	?ExitPowerSaveModeL@CXnControlAdapter@@QAEXW4TModeEvent@1@@Z @ 65 NONAME ; void CXnControlAdapter::ExitPowerSaveModeL(enum CXnControlAdapter::TModeEvent)
-	?GetThemeResource@TXnUiEngineAppIf@@QAEHABVTDesC16@@AAVRFile@@@Z @ 66 NONAME ; int TXnUiEngineAppIf::GetThemeResource(class TDesC16 const &, class RFile &)
-	?ConstructL@CXnComponent@@IAEXXZ @ 67 NONAME ; void CXnComponent::ConstructL(void)
-	?FindResource@CXnUtils@@SAPAVCXnResource@@AAV?$CArrayPtrSeg@VCXnResource@@@@ABVTDesC16@@AAH@Z @ 68 NONAME ; class CXnResource * CXnUtils::FindResource(class CArrayPtrSeg<class CXnResource> &, class TDesC16 const &, int &)
-	?UnsetStateL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 69 NONAME ; void CXnNodeAppIf::UnsetStateL(class TDesC8 const &)
-	?Uid@CXnDocument@@QAE?AVTUid@@XZ @ 70 NONAME ; class TUid CXnDocument::Uid(void)
-	?FocusChanged@CXnControlAdapter@@UAEXW4TDrawNow@@@Z @ 71 NONAME ; void CXnControlAdapter::FocusChanged(enum TDrawNow)
-	?SetBlank@CXnControlAdapter@@QAEXH@Z @ 72 NONAME ; void CXnControlAdapter::SetBlank(int)
-	?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)
-	?GridOrientationL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 80 NONAME ; class CXnProperty * CXnNodePluginIf::GridOrientationL(void)
-	?HandleXuikonEventL@CXnAppUiAdapter@@UAEXAAVCXnNodeAppIf@@0AAVCXnDomNode@@1@Z @ 81 NONAME ; void CXnAppUiAdapter::HandleXuikonEventL(class CXnNodeAppIf &, class CXnNodeAppIf &, class CXnDomNode &, class CXnDomNode &)
-	?RenderUIL@TXnUiEngineAppIf@@QAEXPAVCXnNodeAppIf@@@Z @ 82 NONAME ; void TXnUiEngineAppIf::RenderUIL(class CXnNodeAppIf *)
-	?PrepareToExit@CXnAppUiAdapter@@MAEXXZ @ 83 NONAME ; void CXnAppUiAdapter::PrepareToExit(void)
-	?DoHandlePropertyChangeL@CXnControlAdapter@@UAEXPAVCXnProperty@@@Z @ 84 NONAME ; void CXnControlAdapter::DoHandlePropertyChangeL(class CXnProperty *)
-	?ConstructL@CXnControlAdapter@@IAEXAAVCXnNodePluginIf@@@Z @ 85 NONAME ; void CXnControlAdapter::ConstructL(class CXnNodePluginIf &)
-	?FocusedNode@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@XZ @ 86 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FocusedNode(void)
-	?SetDataL@CXnComponent@@QAEXABVTDesC8@@ABVTDesC16@@H@Z @ 87 NONAME ; void CXnComponent::SetDataL(class TDesC8 const &, class TDesC16 const &, int)
-	?OfferKeyEventL@CXnControlAdapter@@UAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 88 NONAME ; enum TKeyResponse CXnControlAdapter::OfferKeyEventL(struct TKeyEvent const &, enum TEventCode)
-	?IsDrawingAllowed@CXnControlAdapter@@QBEHXZ @ 89 NONAME ; int CXnControlAdapter::IsDrawingAllowed(void) const
-	?DisplayL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 90 NONAME ; class CXnProperty * CXnNodePluginIf::DisplayL(void)
-	?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@PAVCXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 91 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class CXnDomPropertyValue *, class CXnDomStringPool &)
-	?Rect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 92 NONAME ; class TRect CXnNodeAppIf::Rect(void)
-	?NewL@CXnComponentNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 93 NONAME ; class CXnComponentNodeImpl * CXnComponentNodeImpl::NewL(class CXnType *)
-	?GridVerDirectionL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 94 NONAME ; class CXnProperty * CXnNodePluginIf::GridVerDirectionL(void)
-	?WidgetsVisible@TXnUiEngineAppIf@@QBEHXZ @ 95 NONAME ; int TXnUiEngineAppIf::WidgetsVisible(void) const
-	?Type@CXnNodePluginIf@@QAEPAVCXnType@@XZ @ 96 NONAME ; class CXnType * CXnNodePluginIf::Type(void)
-	?MakeXnComponentL@MXnComponentFactory@@EAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 97 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::MakeXnComponentL(class CXnNodePluginIf &, class CXnComponent * &)
-	?ActivateViewL@TXnUiEngineAppIf@@QAEXAAVCXnNodeAppIf@@@Z @ 98 NONAME ; void TXnUiEngineAppIf::ActivateViewL(class CXnNodeAppIf &)
-	?UnsetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 99 NONAME ; void CXnNodePluginIf::UnsetStateL(class TDesC8 const &)
-	?StringValueL@CXnProperty@@QAEPAVHBufC16@@XZ @ 100 NONAME ; class HBufC16 * CXnProperty::StringValueL(void)
-	?DisableRenderUiLC@TXnUiEnginePluginIf@@QAEXXZ @ 101 NONAME ; void TXnUiEnginePluginIf::DisableRenderUiLC(void)
-	?SetPropertyL@CXnNodeAppIf@@QAEXPAVCXnProperty@@@Z @ 102 NONAME ; void CXnNodeAppIf::SetPropertyL(class CXnProperty *)
-	?View@CXnAppUiAdapter@@QBEAAVCAknView@@XZ @ 103 NONAME ; class CAknView & CXnAppUiAdapter::View(void) const
-	?ViewNodeImpl@CXnNodePluginIf@@QAEPAVCXnViewNodeImpl@@XZ @ 104 NONAME ; class CXnViewNodeImpl * CXnNodePluginIf::ViewNodeImpl(void)
-	?StripQuotes@CXnUtils@@SAXAAPAVHBufC16@@@Z @ 105 NONAME ; void CXnUtils::StripQuotes(class HBufC16 * &)
-	?SetPCDataL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 106 NONAME ; void CXnNodePluginIf::SetPCDataL(class TDesC8 const &)
-	?VisibilityL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 107 NONAME ; class CXnProperty * CXnNodePluginIf::VisibilityL(void)
-	?Draw@CXnControlAdapter@@MBEXABVTRect@@@Z @ 108 NONAME ; void CXnControlAdapter::Draw(class TRect const &) const
-	??1CXnApplication@@UAE@XZ @ 109 NONAME ; CXnApplication::~CXnApplication(void)
-	?DoesNodeNeedComponentImplL@MXnComponentFactory@@QAEHABVTDesC8@@@Z @ 110 NONAME ; int MXnComponentFactory::DoesNodeNeedComponentImplL(class TDesC8 const &)
-	?ConstructL@CXnViewsNodeImpl@@IAEXPAVCXnType@@@Z @ 111 NONAME ; void CXnViewsNodeImpl::ConstructL(class CXnType *)
-	?StringPool@TXnUiEngineAppIf@@QAEAAVCXnDomStringPool@@XZ @ 112 NONAME ; class CXnDomStringPool & TXnUiEngineAppIf::StringPool(void)
-	?UiEngineL@CXnNodePluginIf@@QAEPAVTXnUiEnginePluginIf@@XZ @ 113 NONAME ; class TXnUiEnginePluginIf * CXnNodePluginIf::UiEngineL(void)
-	?ShowFocus@TXnUiEnginePluginIf@@QAEHXZ @ 114 NONAME ; int TXnUiEnginePluginIf::ShowFocus(void)
-	?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@@Z @ 115 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &)
-	?PluginNodeL@TXnUiEnginePluginIf@@QAEAAVCXnNodePluginIf@@PAV2@@Z @ 116 NONAME ; class CXnNodePluginIf & TXnUiEnginePluginIf::PluginNodeL(class CXnNodePluginIf *)
-	?VerticalPixelValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 117 NONAME ; int TXnUiEnginePluginIf::VerticalPixelValueL(class CXnProperty *, int)
-	?SetComponent@CXnControlAdapter@@QAEXPAVCXnComponent@@@Z @ 118 NONAME ; void CXnControlAdapter::SetComponent(class CXnComponent *)
-	??0MXnNodePredicate@@QAE@XZ @ 119 NONAME ; MXnNodePredicate::MXnNodePredicate(void)
-	??1CXnViewsNodeImpl@@UAE@XZ @ 120 NONAME ; CXnViewsNodeImpl::~CXnViewsNodeImpl(void)
-	?HandleControlEventL@CXnControlAdapter@@UAEXPAVCCoeControl@@W4TCoeEvent@MCoeControlObserver@@@Z @ 121 NONAME ; void CXnControlAdapter::HandleControlEventL(class CCoeControl *, enum MCoeControlObserver::TCoeEvent)
-	?ActivateViewL@TXnUiEnginePluginIf@@QAEXAAVCXnNodePluginIf@@@Z @ 122 NONAME ; void TXnUiEnginePluginIf::ActivateViewL(class CXnNodePluginIf &)
-	?HandleScreenDeviceChangedL@CXnControlAdapter@@UAEXXZ @ 123 NONAME ; void CXnControlAdapter::HandleScreenDeviceChangedL(void)
-	?SizeChanged@CXnControlAdapter@@MAEXXZ @ 124 NONAME ; void CXnControlAdapter::SizeChanged(void)
-	?CountComponentControls@CXnControlAdapter@@MBEHXZ @ 125 NONAME ; int CXnControlAdapter::CountComponentControls(void) const
-	?HideTooltipsL@CXnNodeAppIf@@QAEXXZ @ 126 NONAME ; void CXnNodeAppIf::HideTooltipsL(void)
-	?GetPropertyL@CXnNodeAppIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 127 NONAME ; class CXnProperty * CXnNodeAppIf::GetPropertyL(class TDesC8 const &) const
-	?GridScrollBarWidthL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 128 NONAME ; class CXnProperty * CXnNodePluginIf::GridScrollBarWidthL(void)
-	?DeactivateFocusedNodeL@TXnUiEnginePluginIf@@QAEXXZ @ 129 NONAME ; void TXnUiEnginePluginIf::DeactivateFocusedNodeL(void)
-	?FindNodeByClassL@TXnUiEngineAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@ABVTDesC8@@0@Z @ 130 NONAME ; class RPointerArray<class CXnNodeAppIf> TXnUiEngineAppIf::FindNodeByClassL(class TDesC8 const &, class TDesC8 const &)
-	?Match@MXnNodePredicate@@UAEHAAVCXnNode@@@Z @ 131 NONAME ; int MXnNodePredicate::Match(class CXnNode &)
-	?GetBitmapAndMask@CXnControlAdapter@@QAEXABVTDesC16@@0AAPAVCFbsBitmap@@1@Z @ 132 NONAME ; void CXnControlAdapter::GetBitmapAndMask(class TDesC16 const &, class TDesC16 const &, class CFbsBitmap * &, class CFbsBitmap * &)
-	?NewL@CXnViewsNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 133 NONAME ; class CXnViewsNodeImpl * CXnViewsNodeImpl::NewL(class CXnType *)
-	?PaddingRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 134 NONAME ; class TRect CXnNodeAppIf::PaddingRect(void)
-	?SetMarginRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 135 NONAME ; void CXnNodePluginIf::SetMarginRect(class TRect const &)
-	?IsDialogDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 136 NONAME ; int TXnUiEnginePluginIf::IsDialogDisplaying(void)
-	?HandleEventL@CXnAppUiAdapter@@UAEXABVTDesC16@@AAVCXnNodeAppIf@@@Z @ 137 NONAME ; void CXnAppUiAdapter::HandleEventL(class TDesC16 const &, class CXnNodeAppIf &)
-	?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 138 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class TDesC8 const &) const
-	?SetPropertyArrayL@CXnNodeAppIf@@QAEXPAV?$RPointerArray@VCXnProperty@@@@@Z @ 139 NONAME ; void CXnNodeAppIf::SetPropertyArrayL(class RPointerArray<class CXnProperty> *)
-	?RestorePreviousFocusedNode@TXnUiEnginePluginIf@@QAEXXZ @ 140 NONAME ; void TXnUiEnginePluginIf::RestorePreviousFocusedNode(void)
-	?RemoveViewL@CXnAppUiAdapter@@QAEXAAVCAknView@@@Z @ 141 NONAME ; void CXnAppUiAdapter::RemoveViewL(class CAknView &)
-	?EnterPowerSaveModeL@CXnComponent@@UAEXXZ @ 142 NONAME ; void CXnComponent::EnterPowerSaveModeL(void)
-	?SetRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 143 NONAME ; void CXnNodePluginIf::SetRect(class TRect const &)
-	??0CXnComponent@@IAE@XZ @ 144 NONAME ; CXnComponent::CXnComponent(void)
-	?CollapseWhiteSpace@CXnUtils@@SAXAAVCXnNodePluginIf@@AAVTDes16@@@Z @ 145 NONAME ; void CXnUtils::CollapseWhiteSpace(class CXnNodePluginIf &, class TDes16 &)
-	?SetHandleTooltip@CXnNodePluginIf@@QAEXH@Z @ 146 NONAME ; void CXnNodePluginIf::SetHandleTooltip(int)
-	??1CXnAppUiAdapter@@UAE@XZ @ 147 NONAME ; CXnAppUiAdapter::~CXnAppUiAdapter(void)
-	?NewL@CXnControlAdapter@@SAPAV1@AAVCXnNodePluginIf@@@Z @ 148 NONAME ; class CXnControlAdapter * CXnControlAdapter::NewL(class CXnNodePluginIf &)
-	?EnableLongTapAnimation@CXnControlAdapter@@QAEXH@Z @ 149 NONAME ; void CXnControlAdapter::EnableLongTapAnimation(int)
-	?RefL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 150 NONAME ; class CXnProperty * CXnNodePluginIf::RefL(void)
-	?SetPaddingRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 151 NONAME ; void CXnNodePluginIf::SetPaddingRect(class TRect const &)
-	?FocusVerLoopingL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 152 NONAME ; class CXnProperty * CXnNodePluginIf::FocusVerLoopingL(void)
-	?SetFocusedNode@TXnUiEnginePluginIf@@QAEXPAVCXnNodePluginIf@@@Z @ 153 NONAME ; void TXnUiEnginePluginIf::SetFocusedNode(class CXnNodePluginIf *)
-	?ExitPowerSaveModeL@CXnComponent@@UAEXXZ @ 154 NONAME ; void CXnComponent::ExitPowerSaveModeL(void)
-	?EnableSwipeL@TXnUiEnginePluginIf@@QAEXH@Z @ 155 NONAME ; void TXnUiEnginePluginIf::EnableSwipeL(int)
-	?GetPCData@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 156 NONAME ; class TDesC8 const & CXnNodeAppIf::GetPCData(void) const
-	?Namespace@CXnNodeAppIf@@QAEABVTDesC8@@XZ @ 157 NONAME ; class TDesC8 const & CXnNodeAppIf::Namespace(void)
-	??1CXnComponentNodeImpl@@UAE@XZ @ 158 NONAME ; CXnComponentNodeImpl::~CXnComponentNodeImpl(void)
-	?SetPropertyWithoutNotificationL@CXnNodePluginIf@@QAEXPAVCXnProperty@@@Z @ 159 NONAME ; void CXnNodePluginIf::SetPropertyWithoutNotificationL(class CXnProperty *)
-	?GetPCData@CXnNodePluginIf@@QBEABVTDesC8@@XZ @ 160 NONAME ; class TDesC8 const & CXnNodePluginIf::GetPCData(void) const
-	?SetPCDataL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 161 NONAME ; void CXnNodeAppIf::SetPCDataL(class TDesC8 const &)
-	?Resources@TXnUiEnginePluginIf@@QAEAAV?$CArrayPtrSeg@VCXnResource@@@@XZ @ 162 NONAME ; class CArrayPtrSeg<class CXnResource> & TXnUiEnginePluginIf::Resources(void)
-	?SetContentBitmaps@CXnControlAdapter@@QAEXABVTDesC16@@0@Z @ 163 NONAME ; void CXnControlAdapter::SetContentBitmaps(class TDesC16 const &, class TDesC16 const &)
-	??1CXnControlAdapter@@UAE@XZ @ 164 NONAME ; CXnControlAdapter::~CXnControlAdapter(void)
-	??1MXnNodePredicate@@UAE@XZ @ 165 NONAME ; MXnNodePredicate::~MXnNodePredicate(void)
-	?HorizontalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 166 NONAME ; int TXnUiEnginePluginIf::HorizontalTwipValueL(class CXnProperty *, int)
-	?ConstructL@CXnAppUiAdapter@@UAEXXZ @ 167 NONAME ; void CXnAppUiAdapter::ConstructL(void)
-	?CreateFontL@CXnUtils@@SAXAAVCXnNodePluginIf@@AAPAVCFont@@AAH@Z @ 168 NONAME ; void CXnUtils::CreateFontL(class CXnNodePluginIf &, class CFont * &, int &)
-	??0CXnApplication@@QAE@VTUid@@@Z @ 169 NONAME ; CXnApplication::CXnApplication(class TUid)
-	?ComponentControl@CXnControlAdapter@@MBEPAVCCoeControl@@H@Z @ 170 NONAME ; class CCoeControl * CXnControlAdapter::ComponentControl(int) const
-	?HandleLongTapEventL@CXnControlAdapter@@UAEXABVTPoint@@0@Z @ 171 NONAME ; void CXnControlAdapter::HandleLongTapEventL(class TPoint const &, class TPoint const &)
-	?ParentL@CXnNodeAppIf@@QBEPAV1@XZ @ 172 NONAME ; class CXnNodeAppIf * CXnNodeAppIf::ParentL(void) const
-	??1CXnComponent@@UAE@XZ @ 173 NONAME ; CXnComponent::~CXnComponent(void)
-	?ControlAdapter@CXnComponent@@QAEPAVCXnControlAdapter@@XZ @ 174 NONAME ; class CXnControlAdapter * CXnComponent::ControlAdapter(void)
-	?DrawContentImage@CXnControlAdapter@@IBEXXZ @ 175 NONAME ; void CXnControlAdapter::DrawContentImage(void) const
-	?Component@CXnComponentNodeImpl@@QAEPAVCXnComponent@@XZ @ 176 NONAME ; class CXnComponent * CXnComponentNodeImpl::Component(void)
-	?GridScrollBarMarginL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 177 NONAME ; class CXnProperty * CXnNodePluginIf::GridScrollBarMarginL(void)
-	?WidgetsVisible@TXnUiEnginePluginIf@@QBEHXZ @ 178 NONAME ; int TXnUiEnginePluginIf::WidgetsVisible(void) const
-	?SetControlAdapter@CXnComponent@@QAEXPAVCXnControlAdapter@@@Z @ 179 NONAME ; void CXnComponent::SetControlAdapter(class CXnControlAdapter *)
-	?GridColumnsL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 180 NONAME ; class CXnProperty * CXnNodePluginIf::GridColumnsL(void)
-	?SetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 181 NONAME ; void CXnNodePluginIf::SetStateL(class TDesC8 const &)
-	?DoesComponentNeedCreation@CXnComponentNodeImpl@@QBEHXZ @ 182 NONAME ; int CXnComponentNodeImpl::DoesComponentNeedCreation(void) const
-	??0CXnDocument@@QAE@AAVCEikApplication@@VTUid@@@Z @ 183 NONAME ; CXnDocument::CXnDocument(class CEikApplication &, class TUid)
-	?FindNodeByClassL@TXnUiEnginePluginIf@@QAE?AV?$RPointerArray@VCXnNodePluginIf@@@@ABVTDesC16@@@Z @ 184 NONAME ; class RPointerArray<class CXnNodePluginIf> TXnUiEnginePluginIf::FindNodeByClassL(class TDesC16 const &)
-	?GridHorDirectionL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 185 NONAME ; class CXnProperty * CXnNodePluginIf::GridHorDirectionL(void)
-	?InternalDomNodeType@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 186 NONAME ; class TDesC8 const & CXnNodeAppIf::InternalDomNodeType(void) const
-	?StringPool@TXnUiEnginePluginIf@@QAEAAVCXnDomStringPool@@XZ @ 187 NONAME ; class CXnDomStringPool & TXnUiEnginePluginIf::StringPool(void)
-	?SetStateL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 188 NONAME ; void CXnNodeAppIf::SetStateL(class TDesC8 const &)
-	?Type@CXnNodeAppIf@@QAEPAVCXnType@@XZ @ 189 NONAME ; class CXnType * CXnNodeAppIf::Type(void)
-	?BorderRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 190 NONAME ; class TRect CXnNodeAppIf::BorderRect(void)
-	?IdL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 191 NONAME ; class CXnProperty * CXnNodePluginIf::IdL(void)
-	?RootNodeL@TXnUiEngineAppIf@@QAEAAVCXnNodeAppIf@@XZ @ 192 NONAME ; class CXnNodeAppIf & TXnUiEngineAppIf::RootNodeL(void)
-	?CreateXnComponentL@MXnComponentFactory@@QAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 193 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::CreateXnComponentL(class CXnNodePluginIf &, class CXnComponent * &)
-	?RefreshMenuL@TXnUiEngineAppIf@@QAEXXZ @ 194 NONAME ; void TXnUiEngineAppIf::RefreshMenuL(void)
-	?PaddingRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 195 NONAME ; class TRect CXnNodePluginIf::PaddingRect(void)
-	?MeasureAdaptiveContentL@CXnControlAdapter@@UAE?AVTSize@@ABV2@@Z @ 196 NONAME ; class TSize CXnControlAdapter::MeasureAdaptiveContentL(class TSize const &)
-	?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@0W4TPrimitiveValueType@CXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 197 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class TDesC8 const &, enum CXnDomPropertyValue::TPrimitiveValueType, class CXnDomStringPool &)
-	?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@AAV2@@Z @ 198 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class CXnProperty &) const
-	?HitRegion@TXnUiEnginePluginIf@@QBEPAVCXnControlAdapter@@XZ @ 199 NONAME ; class CXnControlAdapter * TXnUiEnginePluginIf::HitRegion(void) const
-	?MarginRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 200 NONAME ; class TRect CXnNodeAppIf::MarginRect(void)
-	?MakeInterfaceL@CXnComponent@@UAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 201 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnComponent::MakeInterfaceL(class TDesC8 const &)
-	?EditMode@TXnUiEnginePluginIf@@QAEHXZ @ 202 NONAME ; int TXnUiEnginePluginIf::EditMode(void)
-	?FindNodeByIdL@TXnUiEnginePluginIf@@QAEPAVCXnNodePluginIf@@ABVTDesC8@@0@Z @ 203 NONAME ; class CXnNodePluginIf * TXnUiEnginePluginIf::FindNodeByIdL(class TDesC8 const &, class TDesC8 const &)
-	?EnableRenderUi@CXnUiEngineImpl@@CAXPAX@Z @ 204 NONAME ; void CXnUiEngineImpl::EnableRenderUi(void *)
-	?IsMenuDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 205 NONAME ; int TXnUiEnginePluginIf::IsMenuDisplaying(void)
-	?IsMenuDisplaying@TXnUiEngineAppIf@@QAEHXZ @ 206 NONAME ; int TXnUiEngineAppIf::IsMenuDisplaying(void)
-	?NewL@CXnProperty@@SAPAV1@PAVCXnDomProperty@@@Z @ 207 NONAME ; class CXnProperty * CXnProperty::NewL(class CXnDomProperty *)
-	?ConstructL@CXnComponentNodeImpl@@IAEXPAVCXnType@@@Z @ 208 NONAME ; void CXnComponentNodeImpl::ConstructL(class CXnType *)
-	?ChildrenL@CXnNodeAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@XZ @ 209 NONAME ; class RPointerArray<class CXnNodeAppIf> CXnNodeAppIf::ChildrenL(void)
-	?LoadPublisher@CXnAppUiAdapter@@UAEHAAVCXnNodeAppIf@@H@Z @ 210 NONAME ; int CXnAppUiAdapter::LoadPublisher(class CXnNodeAppIf &, int)
-	?ConvertHslToRgb@CXnUtils@@SA?AVTRgb@@HHH@Z @ 211 NONAME ; class TRgb CXnUtils::ConvertHslToRgb(int, int, int)
-	?LoadBitmap@CXnControlAdapter@@QAEPAVCFbsBitmap@@ABVTDesC16@@@Z @ 212 NONAME ; class CFbsBitmap * CXnControlAdapter::LoadBitmap(class TDesC16 const &)
-	??0MXnComponentFactory@@IAE@XZ @ 213 NONAME ; MXnComponentFactory::MXnComponentFactory(void)
-	?SetComponent@CXnViewsNodeImpl@@QAEXPAVCXnComponent@@@Z @ 214 NONAME ; void CXnViewsNodeImpl::SetComponent(class CXnComponent *)
-	?BorderRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 215 NONAME ; class TRect CXnNodePluginIf::BorderRect(void)
-	?CreateDocumentL@CXnApplication@@MAEPAVCApaDocument@@XZ @ 216 NONAME ; class CApaDocument * CXnApplication::CreateDocumentL(void)
-	?CreateFontL@CXnUtils@@SAXABVTDesC16@@HVTFontStyle@@AAPAVCFont@@AAH@Z @ 217 NONAME ; void CXnUtils::CreateFontL(class TDesC16 const &, int, class TFontStyle, class CFont * &, int &)
-	?GetPluginNodeArrayL@TXnUiEngineAppIf@@QAEHAAV?$RPointerArray@VCXnNodeAppIf@@@@@Z @ 218 NONAME ; int TXnUiEngineAppIf::GetPluginNodeArrayL(class RPointerArray<class CXnNodeAppIf> &)
-	?MakeXnControlAdapterL@MXnComponentFactory@@EAEPAVCXnControlAdapter@@AAVCXnNodePluginIf@@PAV2@@Z @ 219 NONAME ; class CXnControlAdapter * MXnComponentFactory::MakeXnControlAdapterL(class CXnNodePluginIf &, class CXnControlAdapter *)
-	?IsDrawingAllowed@CXnNodePluginIf@@QBEHXZ @ 220 NONAME ; int CXnNodePluginIf::IsDrawingAllowed(void) const
-	?MakeInterfaceL@CXnNodeAppIf@@QAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 221 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnNodeAppIf::MakeInterfaceL(class TDesC8 const &)
-	?VerticalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 222 NONAME ; int TXnUiEnginePluginIf::VerticalTwipValueL(class CXnProperty *, int)
-	?Component@CXnControlAdapter@@QAEPAVCXnComponent@@XZ @ 223 NONAME ; class CXnComponent * CXnControlAdapter::Component(void)
-	?FloatValueL@CXnProperty@@QAENXZ @ 224 NONAME ; double CXnProperty::FloatValueL(void)
-	?SetUiEngine@TXnUiEngineAppIf@@QAEXPAVCXnUiEngine@@@Z @ 225 NONAME ; void TXnUiEngineAppIf::SetUiEngine(class CXnUiEngine *)
-	?FindNodeByIdL@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@ABVTDesC16@@0@Z @ 226 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FindNodeByIdL(class TDesC16 const &, class TDesC16 const &)
-	?IsEditMode@TXnUiEngineAppIf@@QAEHXZ @ 227 NONAME ; int TXnUiEngineAppIf::IsEditMode(void)
-	?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@AAH@Z @ 228 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &, int &)
-	?RootNodeL@TXnUiEnginePluginIf@@QAEAAVCXnNodePluginIf@@XZ @ 229 NONAME ; class CXnNodePluginIf & TXnUiEnginePluginIf::RootNodeL(void)
-	?CreateAppUiL@CXnDocument@@UAEPAVCEikAppUi@@XZ @ 230 NONAME ; class CEikAppUi * CXnDocument::CreateAppUiL(void)
-	?PathL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 231 NONAME ; class CXnProperty * CXnNodePluginIf::PathL(void)
-	?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@NW4TPrimitiveValueType@CXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 232 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, double, enum CXnDomPropertyValue::TPrimitiveValueType, class CXnDomStringPool &)
-	?MaskPathL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 233 NONAME ; class CXnProperty * CXnNodePluginIf::MaskPathL(void)
-	?AppDllUid@CXnApplication@@MBE?AVTUid@@XZ @ 234 NONAME ; class TUid CXnApplication::AppDllUid(void) const
-	?DoExitPowerSaveModeL@CXnControlAdapter@@UAEXW4TModeEvent@1@@Z @ 235 NONAME ; void CXnControlAdapter::DoExitPowerSaveModeL(enum CXnControlAdapter::TModeEvent)
-	?LabelL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 236 NONAME ; class CXnProperty * CXnNodePluginIf::LabelL(void)
-	?Component@CXnViewsNodeImpl@@QAEPAVCXnComponent@@XZ @ 237 NONAME ; class CXnComponent * CXnViewsNodeImpl::Component(void)
-	?GetRgbValue@CXnUtils@@SAHAAVTRgb@@ABVTDesC8@@@Z @ 238 NONAME ; int CXnUtils::GetRgbValue(class TRgb &, class TDesC8 const &)
-	?StringValue@CXnProperty@@QAEABVTDesC8@@XZ @ 239 NONAME ; class TDesC8 const & CXnProperty::StringValue(void)
-	?SetVisible@CXnControlAdapter@@QAEXH@Z @ 240 NONAME ; void CXnControlAdapter::SetVisible(int)
-	?Node@CXnComponent@@QAEPAVCXnNodePluginIf@@XZ @ 241 NONAME ; class CXnNodePluginIf * CXnComponent::Node(void)
-	?EnablePartialTouchInput@TXnUiEnginePluginIf@@QAEXAAVCXnNodePluginIf@@H@Z @ 242 NONAME ; void TXnUiEnginePluginIf::EnablePartialTouchInput(class CXnNodePluginIf &, int)
+	?Control@CXnNodePluginIf@@QBEPAVCXnControlAdapter@@XZ @ 32 NONAME ; class CXnControlAdapter * CXnNodePluginIf::Control(void) const
+	?DestroyPublisher@CXnAppUiAdapter@@UAEHAAVCXnNodeAppIf@@H@Z @ 33 NONAME ; int CXnAppUiAdapter::DestroyPublisher(class CXnNodeAppIf &, int)
+	?GetPropertyL@CXnNodeAppIf@@QBEPAVCXnProperty@@AAV2@@Z @ 34 NONAME ; class CXnProperty * CXnNodeAppIf::GetPropertyL(class CXnProperty &) const
+	?MakeInterfaceL@CXnComponentNodeImpl@@UAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 35 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnComponentNodeImpl::MakeInterfaceL(class TDesC8 const &)
+	?SkinChanged@CXnControlAdapter@@UAEXXZ @ 36 NONAME ; void CXnControlAdapter::SkinChanged(void)
+	?SetContentBitmaps@CXnControlAdapter@@QAEXPAVCFbsBitmap@@0@Z @ 37 NONAME ; void CXnControlAdapter::SetContentBitmaps(class CFbsBitmap *, class CFbsBitmap *)
+	?FindNodeByClassL@TXnUiEngineAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@ABVTDesC16@@0@Z @ 38 NONAME ; class RPointerArray<class CXnNodeAppIf> TXnUiEngineAppIf::FindNodeByClassL(class TDesC16 const &, class TDesC16 const &)
+	?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)
+	?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 &)
 
--- a/idlehomescreen/xmluirendering/uiengine/eabi/xn3layoutengineu.def	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/eabi/xn3layoutengineu.def	Fri Mar 12 15:41:49 2010 +0200
@@ -56,241 +56,233 @@
 	_ZN14CXnApplicationD2Ev @ 55 NONAME
 	_ZN15CXnAppUiAdapter10ConstructLEv @ 56 NONAME
 	_ZN15CXnAppUiAdapter11RemoveViewLER8CAknView @ 57 NONAME
-	_ZN15CXnAppUiAdapter12HandleEventLERK7TDesC16R12CXnNodeAppIf @ 58 NONAME
-	_ZN15CXnAppUiAdapter13LoadPublisherER12CXnNodeAppIfi @ 59 NONAME
-	_ZN15CXnAppUiAdapter13PrepareToExitEv @ 60 NONAME
-	_ZN15CXnAppUiAdapter16DestroyPublisherER12CXnNodeAppIfi @ 61 NONAME
-	_ZN15CXnAppUiAdapter16DynInitMenuItemLERK7TDesC16P13RPointerArrayI12CXnNodeAppIfE @ 62 NONAME
-	_ZN15CXnAppUiAdapter18HandleXuikonEventLER12CXnNodeAppIfS1_R10CXnDomNodeS3_ @ 63 NONAME
-	_ZN15CXnAppUiAdapter20HandleEnterEditModeLEi @ 64 NONAME
-	_ZN15CXnAppUiAdapter21HandleResourceChangeLEi @ 65 NONAME
-	_ZN15CXnAppUiAdapter9UiEngineLEv @ 66 NONAME
-	_ZN15CXnAppUiAdapterC1E4TUid @ 67 NONAME
-	_ZN15CXnAppUiAdapterC2E4TUid @ 68 NONAME
-	_ZN15CXnAppUiAdapterD0Ev @ 69 NONAME
-	_ZN15CXnAppUiAdapterD1Ev @ 70 NONAME
-	_ZN15CXnAppUiAdapterD2Ev @ 71 NONAME
-	_ZN15CXnNodePluginIf10BorderRectEv @ 72 NONAME
-	_ZN15CXnNodePluginIf10MarginRectEv @ 73 NONAME
-	_ZN15CXnNodePluginIf10SetPCDataLERK6TDesC8 @ 74 NONAME
-	_ZN15CXnNodePluginIf11PaddingRectEv @ 75 NONAME
-	_ZN15CXnNodePluginIf11UnsetStateLERK6TDesC8 @ 76 NONAME
-	_ZN15CXnNodePluginIf11VisibilityLEv @ 77 NONAME
-	_ZN15CXnNodePluginIf12GridColumnsLEv @ 78 NONAME
+	_ZN15CXnAppUiAdapter11UiActivatedEv @ 58 NONAME
+	_ZN15CXnAppUiAdapter12HandleEventLERK7TDesC16R12CXnNodeAppIf @ 59 NONAME
+	_ZN15CXnAppUiAdapter13LoadPublisherER12CXnNodeAppIfi @ 60 NONAME
+	_ZN15CXnAppUiAdapter13PrepareToExitEv @ 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
-	_ZN15CXnNodePluginIf12VisibleRowsLEv @ 81 NONAME
-	_ZN15CXnNodePluginIf13SetBorderRectERK5TRect @ 82 NONAME
-	_ZN15CXnNodePluginIf13SetMarginRectERK5TRect @ 83 NONAME
-	_ZN15CXnNodePluginIf14IsFocusedStateEv @ 84 NONAME
-	_ZN15CXnNodePluginIf14MakeInterfaceLERK6TDesC8 @ 85 NONAME
-	_ZN15CXnNodePluginIf14SetPaddingRectERK5TRect @ 86 NONAME
-	_ZN15CXnNodePluginIf16FocusHorLoopingLEv @ 87 NONAME
-	_ZN15CXnNodePluginIf16FocusVerLoopingLEv @ 88 NONAME
-	_ZN15CXnNodePluginIf16GridOrientationLEv @ 89 NONAME
-	_ZN15CXnNodePluginIf16SetHandleTooltipEi @ 90 NONAME
-	_ZN15CXnNodePluginIf16SetLayoutCapableEi @ 91 NONAME
-	_ZN15CXnNodePluginIf17ComponentNodeImplEv @ 92 NONAME
-	_ZN15CXnNodePluginIf17GridHorDirectionLEv @ 93 NONAME
-	_ZN15CXnNodePluginIf17GridVerDirectionLEv @ 94 NONAME
-	_ZN15CXnNodePluginIf19GridScrollBarWidthLEv @ 95 NONAME
-	_ZN15CXnNodePluginIf19ReportTriggerEventLERK6TDesC8S2_S2_ @ 96 NONAME
-	_ZN15CXnNodePluginIf20GridScrollBarMarginLEv @ 97 NONAME
-	_ZN15CXnNodePluginIf31SetPropertyWithoutNotificationLEP11CXnProperty @ 98 NONAME
-	_ZN15CXnNodePluginIf3IdLEv @ 99 NONAME
-	_ZN15CXnNodePluginIf4RectEv @ 100 NONAME
-	_ZN15CXnNodePluginIf4RefLEv @ 101 NONAME
-	_ZN15CXnNodePluginIf4TypeEv @ 102 NONAME
-	_ZN15CXnNodePluginIf5PathLEv @ 103 NONAME
-	_ZN15CXnNodePluginIf6AppIfLEv @ 104 NONAME
-	_ZN15CXnNodePluginIf6LabelLEv @ 105 NONAME
-	_ZN15CXnNodePluginIf7SetRectERK5TRect @ 106 NONAME
-	_ZN15CXnNodePluginIf8DisplayLEv @ 107 NONAME
-	_ZN15CXnNodePluginIf9AddChildLEPS_ @ 108 NONAME
-	_ZN15CXnNodePluginIf9ChildrenLEv @ 109 NONAME
-	_ZN15CXnNodePluginIf9MaskPathLEv @ 110 NONAME
-	_ZN15CXnNodePluginIf9NamespaceEv @ 111 NONAME
-	_ZN15CXnNodePluginIf9SetDirtyLEv @ 112 NONAME
-	_ZN15CXnNodePluginIf9SetStateLERK6TDesC8 @ 113 NONAME
-	_ZN15CXnNodePluginIf9UiEngineLEv @ 114 NONAME
-	_ZN15CXnUiEngineImpl14EnableRenderUiEPv @ 115 NONAME
-	_ZN16CXnViewsNodeImpl10ConstructLEP7CXnType @ 116 NONAME
-	_ZN16CXnViewsNodeImpl12SetComponentEP12CXnComponent @ 117 NONAME
-	_ZN16CXnViewsNodeImpl4NewLEP7CXnType @ 118 NONAME
-	_ZN16CXnViewsNodeImpl9ComponentEv @ 119 NONAME
-	_ZN16CXnViewsNodeImplC1Ev @ 120 NONAME
-	_ZN16CXnViewsNodeImplC2Ev @ 121 NONAME
-	_ZN16CXnViewsNodeImplD0Ev @ 122 NONAME
-	_ZN16CXnViewsNodeImplD1Ev @ 123 NONAME
-	_ZN16CXnViewsNodeImplD2Ev @ 124 NONAME
-	_ZN16MXnNodePredicate5MatchER7CXnNode @ 125 NONAME
-	_ZN16MXnNodePredicateC1Ev @ 126 NONAME
-	_ZN16MXnNodePredicateC2Ev @ 127 NONAME
-	_ZN16MXnNodePredicateD0Ev @ 128 NONAME
-	_ZN16MXnNodePredicateD1Ev @ 129 NONAME
-	_ZN16MXnNodePredicateD2Ev @ 130 NONAME
-	_ZN16TXnUiEngineAppIf10ActiveViewEv @ 131 NONAME
-	_ZN16TXnUiEngineAppIf10IsEditModeEv @ 132 NONAME
-	_ZN16TXnUiEngineAppIf10StringPoolEv @ 133 NONAME
-	_ZN16TXnUiEngineAppIf11FocusedNodeEv @ 134 NONAME
-	_ZN16TXnUiEngineAppIf11SetUiEngineEP11CXnUiEngine @ 135 NONAME
-	_ZN16TXnUiEngineAppIf12RefreshMenuLEv @ 136 NONAME
-	_ZN16TXnUiEngineAppIf13ActivateViewLER12CXnNodeAppIf @ 137 NONAME
-	_ZN16TXnUiEngineAppIf13FindNodeByIdLERK6TDesC8S2_ @ 138 NONAME
-	_ZN16TXnUiEngineAppIf13FindNodeByIdLERK7TDesC16S2_ @ 139 NONAME
-	_ZN16TXnUiEngineAppIf16FindNodeByClassLERK6TDesC8S2_ @ 140 NONAME
-	_ZN16TXnUiEngineAppIf16FindNodeByClassLERK7TDesC16S2_ @ 141 NONAME
-	_ZN16TXnUiEngineAppIf16GetThemeResourceERK7TDesC16R5RFile @ 142 NONAME
-	_ZN16TXnUiEngineAppIf16IsMenuDisplayingEv @ 143 NONAME
-	_ZN16TXnUiEngineAppIf19GetPluginNodeArrayLER13RPointerArrayI12CXnNodeAppIfE @ 144 NONAME
-	_ZN16TXnUiEngineAppIf23FindContentSourceNodesLERK6TDesC8 @ 145 NONAME
-	_ZN16TXnUiEngineAppIf9RenderUILEP12CXnNodeAppIf @ 146 NONAME
-	_ZN16TXnUiEngineAppIf9RootNodeLEv @ 147 NONAME
-	_ZN17CXnControlAdapter10ConstructLER15CXnNodePluginIf @ 148 NONAME
-	_ZN17CXnControlAdapter10LoadBitmapERK7TDesC16 @ 149 NONAME
-	_ZN17CXnControlAdapter10SetVisibleEi @ 150 NONAME
-	_ZN17CXnControlAdapter11SizeChangedEv @ 151 NONAME
-	_ZN17CXnControlAdapter11SkinChangedEv @ 152 NONAME
-	_ZN17CXnControlAdapter12FocusChangedE8TDrawNow @ 153 NONAME
-	_ZN17CXnControlAdapter12SetComponentEP12CXnComponent @ 154 NONAME
-	_ZN17CXnControlAdapter14ContentBitmapsERP10CFbsBitmapS2_ @ 155 NONAME
-	_ZN17CXnControlAdapter14OfferKeyEventLERK9TKeyEvent10TEventCode @ 156 NONAME
-	_ZN17CXnControlAdapter15SetLocalUiZoomLE10TAknUiZoom @ 157 NONAME
-	_ZN17CXnControlAdapter16GetBitmapAndMaskERK7TDesC16S2_RP10CFbsBitmapS5_ @ 158 NONAME
-	_ZN17CXnControlAdapter17SetContentBitmapsEP10CFbsBitmapS1_ @ 159 NONAME
-	_ZN17CXnControlAdapter17SetContentBitmapsERK7TDesC16S2_ @ 160 NONAME
-	_ZN17CXnControlAdapter18ExitPowerSaveModeLENS_10TModeEventE @ 161 NONAME
-	_ZN17CXnControlAdapter18ResetStylusCounterEv @ 162 NONAME
-	_ZN17CXnControlAdapter19EnterPowerSaveModeLENS_10TModeEventE @ 163 NONAME
-	_ZN17CXnControlAdapter19HandleControlEventLEP11CCoeControlN19MCoeControlObserver9TCoeEventE @ 164 NONAME
-	_ZN17CXnControlAdapter19HandleLongTapEventLERK6TPointS2_ @ 165 NONAME
-	_ZN17CXnControlAdapter19HandlePointerEventLERK13TPointerEvent @ 166 NONAME
-	_ZN17CXnControlAdapter20DoExitPowerSaveModeLENS_10TModeEventE @ 167 NONAME
-	_ZN17CXnControlAdapter21DoEnterPowerSaveModeLENS_10TModeEventE @ 168 NONAME
-	_ZN17CXnControlAdapter21HandlePropertyChangeLEP11CXnProperty @ 169 NONAME
-	_ZN17CXnControlAdapter22EnableLongTapAnimationEi @ 170 NONAME
-	_ZN17CXnControlAdapter23DoHandlePropertyChangeLEP11CXnProperty @ 171 NONAME
-	_ZN17CXnControlAdapter23MeasureAdaptiveContentLERK5TSize @ 172 NONAME
-	_ZN17CXnControlAdapter26HandleScreenDeviceChangedLEv @ 173 NONAME
-	_ZN17CXnControlAdapter4NewLER15CXnNodePluginIf @ 174 NONAME
-	_ZN17CXnControlAdapter8SetBlankEi @ 175 NONAME
-	_ZN17CXnControlAdapter8SetDataLERK6TDesC8RK7TDesC16i @ 176 NONAME
-	_ZN17CXnControlAdapter9ComponentEv @ 177 NONAME
-	_ZN17CXnControlAdapterC1Ev @ 178 NONAME
-	_ZN17CXnControlAdapterC2Ev @ 179 NONAME
-	_ZN17CXnControlAdapterD0Ev @ 180 NONAME
-	_ZN17CXnControlAdapterD1Ev @ 181 NONAME
-	_ZN17CXnControlAdapterD2Ev @ 182 NONAME
-	_ZN19MXnComponentFactory16MakeXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 183 NONAME
-	_ZN19MXnComponentFactory18CreateXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 184 NONAME
-	_ZN19MXnComponentFactory21MakeXnControlAdapterLER15CXnNodePluginIfP17CXnControlAdapter @ 185 NONAME
-	_ZN19MXnComponentFactory26DoesNodeNeedComponentImplLERK6TDesC8 @ 186 NONAME
-	_ZN19MXnComponentFactoryC2Ev @ 187 NONAME
-	_ZN19MXnComponentFactoryD0Ev @ 188 NONAME
-	_ZN19MXnComponentFactoryD1Ev @ 189 NONAME
-	_ZN19MXnComponentFactoryD2Ev @ 190 NONAME
-	_ZN19TXnUiEnginePluginIf10StringPoolEv @ 191 NONAME
-	_ZN19TXnUiEnginePluginIf11PluginNodeLEP15CXnNodePluginIf @ 192 NONAME
-	_ZN19TXnUiEnginePluginIf12EnableSwipeLEi @ 193 NONAME
-	_ZN19TXnUiEnginePluginIf12FocusVisibleEv @ 194 NONAME
-	_ZN19TXnUiEnginePluginIf12FocusedNodeLEv @ 195 NONAME
-	_ZN19TXnUiEnginePluginIf13ActivateViewLER15CXnNodePluginIf @ 196 NONAME
-	_ZN19TXnUiEnginePluginIf13AddDirtyNodeLER15CXnNodePluginIf @ 197 NONAME
-	_ZN19TXnUiEnginePluginIf13FindNodeByIdLERK6TDesC8S2_ @ 198 NONAME
-	_ZN19TXnUiEnginePluginIf13FindNodeByIdLERK7TDesC16S2_ @ 199 NONAME
-	_ZN19TXnUiEnginePluginIf13SwipeEnabledLEv @ 200 NONAME
-	_ZN19TXnUiEnginePluginIf14SetFocusedNodeEP15CXnNodePluginIf @ 201 NONAME
-	_ZN19TXnUiEnginePluginIf16FindNodeByClassLERK7TDesC16 @ 202 NONAME
-	_ZN19TXnUiEnginePluginIf16IsMenuDisplayingEv @ 203 NONAME
-	_ZN19TXnUiEnginePluginIf16ScreenDeviceSizeEv @ 204 NONAME
-	_ZN19TXnUiEnginePluginIf16SetFocusVisibleLEi @ 205 NONAME
-	_ZN19TXnUiEnginePluginIf17DisableRenderUiLCEv @ 206 NONAME
-	_ZN19TXnUiEnginePluginIf18IsDialogDisplayingEv @ 207 NONAME
-	_ZN19TXnUiEnginePluginIf18VerticalTwipValueLEP11CXnPropertyi @ 208 NONAME
-	_ZN19TXnUiEnginePluginIf19VerticalPixelValueLEP11CXnPropertyi @ 209 NONAME
-	_ZN19TXnUiEnginePluginIf20HorizontalTwipValueLEP11CXnPropertyi @ 210 NONAME
-	_ZN19TXnUiEnginePluginIf21HorizontalPixelValueLEP11CXnPropertyi @ 211 NONAME
-	_ZN19TXnUiEnginePluginIf22DeactivateFocusedNodeLEv @ 212 NONAME
-	_ZN19TXnUiEnginePluginIf26RestorePreviousFocusedNodeEv @ 213 NONAME
-	_ZN19TXnUiEnginePluginIf8EditModeEv @ 214 NONAME
-	_ZN19TXnUiEnginePluginIf9LayoutUILEP15CXnNodePluginIf @ 215 NONAME
-	_ZN19TXnUiEnginePluginIf9RenderUILEP15CXnNodePluginIf @ 216 NONAME
-	_ZN19TXnUiEnginePluginIf9ResourcesEv @ 217 NONAME
-	_ZN19TXnUiEnginePluginIf9RootNodeLEv @ 218 NONAME
-	_ZN19TXnUiEnginePluginIf9ShowFocusEv @ 219 NONAME
-	_ZN20CXnComponentNodeImpl10ConstructLEP7CXnType @ 220 NONAME
-	_ZN20CXnComponentNodeImpl12SetComponentEP12CXnComponent @ 221 NONAME
-	_ZN20CXnComponentNodeImpl14MakeInterfaceLERK6TDesC8 @ 222 NONAME
-	_ZN20CXnComponentNodeImpl25SetComponentNeedsCreationEi @ 223 NONAME
-	_ZN20CXnComponentNodeImpl4NewLEP7CXnType @ 224 NONAME
-	_ZN20CXnComponentNodeImpl9ComponentEv @ 225 NONAME
-	_ZN20CXnComponentNodeImplC1Ev @ 226 NONAME
-	_ZN20CXnComponentNodeImplC2Ev @ 227 NONAME
-	_ZN20CXnComponentNodeImplD0Ev @ 228 NONAME
-	_ZN20CXnComponentNodeImplD1Ev @ 229 NONAME
-	_ZN20CXnComponentNodeImplD2Ev @ 230 NONAME
-	_ZN8CXnUtils11CreateFontLER15CXnNodePluginIfRP5CFontRi @ 231 NONAME
-	_ZN8CXnUtils11CreateFontLERK7TDesC16i10TFontStyleRP5CFontRi @ 232 NONAME
-	_ZN8CXnUtils11GetRgbValueER4TRgbRK6TDesC8 @ 233 NONAME
-	_ZN8CXnUtils11StripQuotesERP7HBufC16 @ 234 NONAME
-	_ZN8CXnUtils12FindResourceER12CArrayPtrSegI11CXnResourceERK7TDesC16Ri @ 235 NONAME
-	_ZN8CXnUtils12ScaleBitmapLERK5TRectP10CFbsBitmapS4_ @ 236 NONAME
-	_ZN8CXnUtils13TextAlignmentER15CXnNodePluginIf @ 237 NONAME
-	_ZN8CXnUtils15ConvertHslToRgbEiii @ 238 NONAME
-	_ZN8CXnUtils18CollapseWhiteSpaceER15CXnNodePluginIfR6TDes16 @ 239 NONAME
-	_ZN8CXnUtils18ResolveSkinItemIDLERK7TDesC16R11TAknsItemIDRi @ 240 NONAME
-	_ZN8CXnUtils20HandlePowerSaveModeLEP7CXnNodeii @ 241 NONAME
-	_ZNK11CXnProperty7EqualsLERS_ @ 242 NONAME
-	_ZNK12CXnNodeAppIf12GetPropertyLER11CXnProperty @ 243 NONAME
-	_ZNK12CXnNodeAppIf12GetPropertyLERK6TDesC8 @ 244 NONAME
-	_ZNK12CXnNodeAppIf19InternalDomNodeTypeEv @ 245 NONAME
-	_ZNK12CXnNodeAppIf7ParentLEv @ 246 NONAME
-	_ZNK12CXnNodeAppIf9GetPCDataEv @ 247 NONAME
-	_ZNK14CXnApplication9AppDllUidEv @ 248 NONAME
-	_ZNK15CXnAppUiAdapter4ViewEv @ 249 NONAME
-	_ZNK15CXnNodePluginIf12GetPropertyLER11CXnProperty @ 250 NONAME
-	_ZNK15CXnNodePluginIf12GetPropertyLERK6TDesC8 @ 251 NONAME
-	_ZNK15CXnNodePluginIf7ControlEv @ 252 NONAME
-	_ZNK15CXnNodePluginIf7ParentLEv @ 253 NONAME
-	_ZNK15CXnNodePluginIf9GetPCDataEv @ 254 NONAME
-	_ZNK16TXnUiEngineAppIf14WidgetsVisibleEv @ 255 NONAME
-	_ZNK17CXnControlAdapter15LongTapDetectorEv @ 256 NONAME
-	_ZNK17CXnControlAdapter16ComponentControlEi @ 257 NONAME
-	_ZNK17CXnControlAdapter16DrawContentImageEv @ 258 NONAME
-	_ZNK17CXnControlAdapter16IsDrawingAllowedEv @ 259 NONAME
-	_ZNK17CXnControlAdapter22CountComponentControlsEv @ 260 NONAME
-	_ZNK17CXnControlAdapter4DrawERK5TRect @ 261 NONAME
-	_ZNK17CXnControlAdapter4DrawERK5TRectR9CWindowGc @ 262 NONAME
-	_ZNK19TXnUiEnginePluginIf14WidgetsVisibleEv @ 263 NONAME
-	_ZNK19TXnUiEnginePluginIf9HitRegionEv @ 264 NONAME
-	_ZNK20CXnComponentNodeImpl25DoesComponentNeedCreationEv @ 265 NONAME
-	_ZTI11CXnDocument @ 266 NONAME
-	_ZTI11CXnProperty @ 267 NONAME
-	_ZTI12CXnComponent @ 268 NONAME
-	_ZTI14CXnApplication @ 269 NONAME
-	_ZTI15CXnAppUiAdapter @ 270 NONAME
-	_ZTI16CXnViewsNodeImpl @ 271 NONAME
-	_ZTI16MXnNodePredicate @ 272 NONAME
-	_ZTI17CXnControlAdapter @ 273 NONAME
-	_ZTI18CXnListQueryDialog @ 274 NONAME
-	_ZTI19MXnComponentFactory @ 275 NONAME
-	_ZTI20CXnComponentNodeImpl @ 276 NONAME
-	_ZTI27CXnNodeBreadthFirstIteratorI7CXnNodeE @ 277 NONAME
-	_ZTIN21CXnControlAdapterImpl13TIconProviderE @ 278 NONAME
-	_ZTV11CXnDocument @ 279 NONAME
-	_ZTV11CXnProperty @ 280 NONAME
-	_ZTV12CXnComponent @ 281 NONAME
-	_ZTV14CXnApplication @ 282 NONAME
-	_ZTV15CXnAppUiAdapter @ 283 NONAME
-	_ZTV16CXnViewsNodeImpl @ 284 NONAME
-	_ZTV16MXnNodePredicate @ 285 NONAME
-	_ZTV17CXnControlAdapter @ 286 NONAME
-	_ZTV18CXnListQueryDialog @ 287 NONAME
-	_ZTV19MXnComponentFactory @ 288 NONAME
-	_ZTV20CXnComponentNodeImpl @ 289 NONAME
-	_ZTV27CXnNodeBreadthFirstIteratorI7CXnNodeE @ 290 NONAME
-	_ZTVN21CXnControlAdapterImpl13TIconProviderE @ 291 NONAME
-	_ZThn52_N17CXnControlAdapter19HandleControlEventLEP11CCoeControlN19MCoeControlObserver9TCoeEventE @ 292 NONAME
-	_ZThn60_N17CXnControlAdapter19HandleLongTapEventLERK6TPointS2_ @ 293 NONAME
-	_ZN19TXnUiEnginePluginIf23EnablePartialTouchInputER15CXnNodePluginIfi @ 294 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
 
--- a/idlehomescreen/xmluirendering/uiengine/group/xnlayoutengine.mmp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/group/xnlayoutengine.mmp	Fri Mar 12 15:41:49 2010 +0200
@@ -150,6 +150,7 @@
 LIBRARY    extrenderingplugin.lib
 LIBRARY    disknotifyhandler.lib
 LIBRARY	   platformenv.lib
+LIBRARY    hspluginsettings.lib
 
 #if defined(_XN3_DEBUG_) || defined(AI3_DEBUG_PERFORMANCE)
 LIBRARY    flogger.lib
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnappuiadapterimpl.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnappuiadapterimpl.h	Fri Mar 12 15:41:49 2010 +0200
@@ -116,7 +116,15 @@
      * @return Content control UI interface, NULL if not present
      */
     MHsContentControlUi* HsContentController( const TDesC8& aType ) const;
-		
+
+    /**
+     * Gets the Content control factory
+     *
+     * @since S60 5.0
+     * @return Content control factory
+     */
+    CHsContentControlFactory* HsContentControlFactory();
+    
     /**
      * Get the effect manager
      * 
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnbackgroundmanager.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnbackgroundmanager.h	Fri Mar 12 15:41:49 2010 +0200
@@ -175,7 +175,12 @@
     void ReadWallpaperFromCenrepL();
     void UpdateScreen();
     void DrawEditModeBackgroundSkin() const;
-    
+
+    /**
+     * Callback function to be used with CPeriodic.
+     */
+    static TInt TimerCallback( TAny *aPtr );
+
 private: // data
 
     /**
@@ -248,6 +253,12 @@
      */  
     HBufC* iBgImagePath;
 
+    /**
+     * Periodic timer.
+     * Own.
+     */
+    CPeriodic* iTimer;
+    
     };
 
 #endif      // CXNBACKGROUNDMANAGER_H
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnbgcontrol.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnbgcontrol.h	Fri Mar 12 15:41:49 2010 +0200
@@ -104,12 +104,7 @@
      * Service for removing grabbing controls
      */
     void ResetGrabbingL();
-    
-    /**
-     * Prepares control for destroying
-     */
-    void PrepareDestroy();
-  
+      
 private:  
 	// new functions
     
--- a/idlehomescreen/xmluirendering/uiengine/inc/xncontroladapterimpl.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xncontroladapterimpl.h	Fri Mar 12 15:41:49 2010 +0200
@@ -483,6 +483,7 @@
     void DrawBackgroundDataL( const TRect& aRect, CXnNode& aNode,
         CWindowGc& aGc );
     void DrawEditModeBgData( CXnNode& aNode, CWindowGc& aGc );
+    void DrawPlusSign( CXnNode& aNode, CWindowGc& aGc );
     void DrawTransparentColorL( CXnNode& aNode, CWindowGc& aGc,
         CFbsBitmap* aMask );
      void DrawBackgroundSkinL( CXnNode& aNode, CFbsBitmap* aMask, 
--- a/idlehomescreen/xmluirendering/uiengine/inc/xneditor.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xneditor.h	Fri Mar 12 15:41:49 2010 +0200
@@ -139,7 +139,7 @@
      * @since S60 5.0
      * @param aContentInfo content info 
      */
-    void ReplaceWidgetL( CHsContentInfo& aContentInfo, TBool aUseHsps = ETrue );
+    void ReplaceWidgetL( CHsContentInfo& aContentInfo );
     /**
      * Commit a new order of plugins to the HSPS.
      * 
@@ -199,7 +199,9 @@
     // from MHsContentController
     
     TInt WidgetListL( CHsContentInfoArray& aArray );
-    
+
+    TInt WidgetListL( CHsContentInfo& aInfo, CHsContentInfoArray& aArray );
+
     TInt ViewListL( CHsContentInfoArray& aArray );
     
     TInt AppListL( CHsContentInfoArray& aArray );
@@ -260,7 +262,13 @@
      * Notifies the MHsContentControl and the MHsContentControlUi if view list was changed.
      */
     void ViewListChanged();
-
+    
+    /**
+     * Creates content info for defined plugin
+     */
+    CHsContentInfo* CreateContentInfoLC( CXnPluginData& aPlugin, 
+        RPointerArray< CHsContentInfo >& aInfos );
+    
 private:
     // from MXnViewObserver    
     
--- a/idlehomescreen/xmluirendering/uiengine/inc/xneffectmanager.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xneffectmanager.h	Fri Mar 12 15:41:49 2010 +0200
@@ -35,7 +35,6 @@
     {
     CXnNode* iNode;
     TInt iState;
-    TInt iType;
     TInt iId;
     };
 
@@ -60,20 +59,6 @@
     ~CXnEffectManager();
     
     /**
-     * Begin handling of control effect.
-     * @param aId effect id
-     * @aPlugin Plugin data
-     */
-    void BeginControlEffectL( TInt aId, CXnPluginData& aPlugin );
-    
-    /**
-     * Begin handling of control effect.
-     * @param aId effect id
-     * @aPlugins Array of plugin datas
-     */
-    void BeginControlEffectL( TInt aId, RPointerArray<CXnPluginData>& aPlugins );
-    
-    /**
      * Begin handling of fullscreen effect.
      * @param aId effect id
      * @aView view data
@@ -97,27 +82,12 @@
      * @return ETrue if effect started, otherwise EFalse
      */
     TBool DoBeginFullscreenEffect( TXnEffect& aEffect );
-
-    /**
-     * Starts control effect.
-     * @param aEffect effect data
-     * @return ETrue if effect started, otherwise EFalse
-     */
-    TBool DoBeginControlEffect( TXnEffect& aEffect );
     
     /**
      * Removes and destroys effect from effect list.
      * @param aEffect effect data
      */
     void RemoveEffect( TXnEffect* aEffect );
-
-    /**
-     * Return number of ongoing effects of given type.
-     * @param aType effect type, fullscreen or control
-     * 
-     * @return Number of ongoing effects of given type
-     */
-    TInt EffectCount( TInt aType );
     
     /**
      * C++ default constructor.
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnfocuscontrol.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnfocuscontrol.h	Fri Mar 12 15:41:49 2010 +0200
@@ -22,9 +22,6 @@
 // System includes
 #include <e32base.h>
 
-// User includes
-#include "xninactivitymonitor.h"
-
 // Forward declarations
 class CXnAppUiAdapter;
 class CWindowGc;
@@ -36,8 +33,7 @@
  * @lib xn3layoutengine.lib
  * @since S60 5.0
  */
-NONSHARABLE_CLASS( CXnFocusControl ) : public CBase,
-    public MXnInactivityObserver
+NONSHARABLE_CLASS( CXnFocusControl ) : public CBase
     {
 public:    
     // Constructors and destructor
@@ -70,14 +66,6 @@
      */
     CXnFocusControl( CXnAppUiAdapter& aAppUiAdapter );
     
-private:
-    // from MXnInactivityObserver
-    
-    /**
-     * @see MXnInactivityObserver
-     */
-    void InactivityTimerExpired();
-
 public: 
     // new functions
     
@@ -116,8 +104,6 @@
     
     /** AppUiAdapter, Not owned */
     CXnAppUiAdapter& iAppUiAdapter;
-    /** Inactivity monitor, Owned */
-    CXnInactivityMonitor* iMonitor;
     /** Flag to indicate whether it is allowed to show focus */
     TBool iVisible;
     /** Flag to indicate refusal */
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.h	Fri Mar 12 15:41:49 2010 +0200
@@ -338,6 +338,13 @@
     virtual void InitialFocusNodesL( RPointerArray< CXnNode >& aList ) const;
 
     /**
+     * Returns list of popup nodes
+     * 
+     * @param aList List of popup nodes
+     */
+    virtual void PopupNodesL( RPointerArray< CXnNode >& aList ) const;
+
+    /**
      * Sets the plugin occupied     
      */
     inline void SetOccupied();
@@ -348,14 +355,7 @@
      * @return ETrue when occupied EFalse when not
      */
     inline TBool Occupied() const;
-    
-    /*
-     * Sets the plugin removable
-     * 
-     * @param aRemovable ETrue when removable EFalse when not
-     */    
-    inline void SetRemovable( TBool aRemovable );
-    
+        
     /*
      * Checks whether removable
      * 
@@ -424,6 +424,13 @@
      * Show oom error note
      */    
     void ShowOutOfMemError();
+    
+    /**
+     * Sets locking_status attribute (locked/none) 
+     * 
+     * @param aStatus "locked" / "none"
+     */
+    void SetLockingStatus( const TDesC8& aStatus );    
         
 private:
     // New functions
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.inl	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.inl	Fri Mar 12 15:41:49 2010 +0200
@@ -162,22 +162,6 @@
     };
 
 // ---------------------------------------------------------------------------
-// Sets removable
-// ---------------------------------------------------------------------------
-//
-inline void CXnPluginData::SetRemovable( TBool aRemovable )
-    {    
-    if( aRemovable )
-        {
-        iFlags.Set( EIsRemovable );        
-        }
-    else        
-        {
-        iFlags.Clear( EIsRemovable );        
-        }
-    };
-
-// ---------------------------------------------------------------------------
 // Returns removable
 // ---------------------------------------------------------------------------
 //
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnuistatelistener.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnuistatelistener.h	Fri Mar 12 15:41:49 2010 +0200
@@ -156,6 +156,13 @@
 public:
     // New functions
     
+    /**
+     * Prepares for application exit
+     * 
+     * @since S60 5.0
+     */
+    void PrepareToExit();
+    
     /*
      * Adds MXnUiStateObserver
      * 
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnviewadapter.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnviewadapter.h	Fri Mar 12 15:41:49 2010 +0200
@@ -77,7 +77,7 @@
      * 
      * @since S60 5.0
      */    
-    void PrepareDestroy();
+    void PrepareToExit();
 
     /**
      * Gets event dispatcher
@@ -116,8 +116,15 @@
      * 
      * @since S60 5.0
      */  
-	    void UpdateRskByModeL();  
-    
+    void UpdateRskByModeL();
+
+    /**
+     * Closes all popups for this container.
+     * 
+     * @since S60 5.0
+     */
+    void CloseAllPopupsL();
+
 public:
     // from CAknView
 
@@ -191,6 +198,29 @@
      * @since S60 5.0               
      */    
     void DeactivateContainerL();
+
+    /**
+     * Activates default container to view. 
+     * Deactivates internally previous container if it exists.
+     * 
+     * @since S60 5.0
+     * @param aEnterEditState ETrue if default container should be set to edit state.
+     */
+    void ActivateDefaultContainerL( TBool aEnterEditState = EFalse );
+
+    /**
+     * Sets edit state property of container
+     * 
+     * @since S60 5.0
+     * @param aView container
+     * @param aEnter ETrue if container should be set to edit state.
+     */
+    void EnterEditStateL( CXnViewData& aView, TBool aEnter );
+    
+    /**
+     * Callback function to be used with CPeriodic.
+     */
+    static TInt TimerCallback( TAny *aPtr );
     
 private:
 
@@ -226,7 +256,9 @@
     /** Active container, Not owned */
     const CXnViewData* iContainer;
     /** Flags */
-    TBitFlags32 iFlags; 
+    TBitFlags32 iFlags;
+    /** Timer to set window group order after default view is activated, owned */
+    CPeriodic* iTimer;
     };
 
 #endif // XNVIEWADAPTER_H
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnviewdata.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnviewdata.h	Fri Mar 12 15:41:49 2010 +0200
@@ -93,6 +93,11 @@
      * @see CXnPluginData           
      */    
     void AppearanceNodesL( RPointerArray< CXnNode >& aList ) const;
+
+    /**
+     * @see CXnPluginData           
+     */    
+    void PopupNodesL( RPointerArray< CXnNode >& aList ) const;
             
 public:   
     // New functions
@@ -143,7 +148,7 @@
      * @param aNode Node
      * @return Plugin data
      */
-    CXnPluginData& Plugin( CXnNode* aNode );
+    CXnPluginData* Plugin( CXnNode* aNode );
 
     /**
      * Finds and reurns plugin/view data for namespace
@@ -196,22 +201,19 @@
      *         Returns KNullCDes if wallpaper has not been set.
      */
     const TDesC& WallpaperImagePath() const;
-
+    
     /**
-     * Sets view's locking_status attribute (locked/none) to determine if view
-     * is prevented from removing/deleting or not
+     * Destroys all publishers in this view
      * 
-     * @param aLockingStatusString attr. locking_status ("locked"/"none")
+     * @param aReason Destroy reason
      */
-    void SetLockingStatus( const TDesC8& aLockingStatusString );
-        
+    void DestroyPublishers( TInt aReason );
+    
 private:
     // new functions
     
     void LoadPublishers();    
-    
-    void DestroyPublishers( TInt aReason );
-    
+           
     static TInt DoLoadPublishersL( TAny* aAny );
     
     void DoDestroyPublishersL( TInt aReason );
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnwidgetextensionadapter.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnwidgetextensionadapter.h	Fri Mar 12 15:41:49 2010 +0200
@@ -39,7 +39,8 @@
 *  @since Series 60 5.0
 */
 NONSHARABLE_CLASS( CXnWidgetExtensionAdapter ) : public CXnControlAdapter, 
-    public MXnUiStateObserver
+    public MXnUiStateObserver,
+    public MXnUiResourceChangeObserver
     {
 public: // Constructors and destructor
 
@@ -96,7 +97,20 @@
     /**
      * @see MXnUiStateObserver
      */    
-    void NotifyInCallStateChaged( TBool aInCall );    
+    void NotifyInCallStateChaged( TBool aInCall );
+
+private:
+    // from MXnUiResourceChangeObserver
+    
+    /**
+     * @see MXnUiResourceChangeObserver
+     */
+    void NotifyStatusPaneSizeChanged();
+
+    /**
+     * @see MXnUiResourceChangeObserver
+     */
+    void NotifyResourceChanged( TInt aType );
     
 private: 
     // Constructors
@@ -129,7 +143,9 @@
     /** AppUi, not owned */
     CXnAppUiAdapter* iAppUiAdapter;
     /** Flag to indicate whether <popup> is permanent */
-    TBool iPermanent;    
+    TBool iPermanent;
+    /** Is popup element */
+    TBool iPopup;
 	};
 
 #endif // __XNWIDGETEXTENSIONADAPTER_H__
--- a/idlehomescreen/xmluirendering/uiengine/src/xnappuiadapter.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnappuiadapter.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -18,6 +18,7 @@
 // System includes
 #include <aknview.h>
 #include <akntoolbar.h>
+#include <avkon.rsg>
 
 // User includes
 #include "xnappuiadapter.h"
@@ -25,12 +26,13 @@
 #include "xnviewadapter.h"
 #include "xnuiengineappif.h"
 #include "xnfocuscontrol.h"
+#include "hscontentcontrolfactory.h"
+#include "xnviewadapter.h"
 
 #include "xuikon_builds_cfg.hrh"
+#include "debug.h"
 
-#ifdef _XN_PERFORMANCE_TEST_
-#include "xntimemon.h"
-#endif
+_LIT8( KActivateDefaultView, "activatedefault" );
 
 // ============================ MEMBER FUNCTIONS ===============================
 
@@ -52,16 +54,16 @@
 //
 EXPORT_C void CXnAppUiAdapter::ConstructL()
     {
-#ifdef _XN_PERFORMANCE_TEST_
-    TInt start( 0 );
-    TInt end( 0 );
-    TInt diff( 0 );
-    CXnTimeMon::PrintUserMem( _L( "CXnAppUiAdapter::ConstructL(): - Calling CAknViewAppUi::BaseConstructL().." ) );
-    User::AllocSize( start );
-#endif //_XN_PERFORMANCE_TEST_
+    __TICK( "CXnAppUiAdapter::ConstructL" );    
+    __TIME_MARK( time );
 
+    __PRINTS( "*** CXnAppUiAdapter::ConstructL - BaseConstructL" );
+    __TIME_MARK( time2 );
+        
+    EnableLocalScreenClearer( EFalse );
+    
     CAknViewAppUi::BaseConstructL( EAknEnableSkin | EAknEnableMSK | EAknSingleClickCompatible );
-
+    
     CAknToolbar* toolbar( CurrentFixedToolbar() );
 
     if ( toolbar )
@@ -70,25 +72,13 @@
 
         toolbar->DisableToolbarL( ETrue );
         }
-    
-#ifdef _XN_PERFORMANCE_TEST_
-    User::AllocSize( end );
-    diff = end - start;
-    RDebug::Print( _L( "CAknViewAppUi::BaseConstructL allocation: %d" ), diff );
-    CXnTimeMon::PrintUserMem( _L( "CXnAppUiAdapter::ConstructL(): - Calling CXnAppUiAdapterImpl::NewL().." ) );
-    User::AllocSize( start );
-#endif //_XN_PERFORMANCE_TEST_
+        
+    __TIME_ENDMARK( "CXnAppUiAdapter::ConstructL - BaseConstructL, done", time2 );
     
     iImpl = CXnAppUiAdapterImpl::NewL( iApplicationUid, *this );
     iImpl->ConstructL();
-        
-#ifdef _XN_PERFORMANCE_TEST_
-    User::AllocSize( end );
-    diff = end-start;
-    RDebug::Print( _L( "Xuikon launch allocation: %d" ), diff );
-    
-    CXnTimeMon::PrintUserMem( _L( "CXnAppUiAdapter::ConstructL() .. all done." ) );
-#endif //_XN_PERFORMANCE_TEST_
+     
+    __TIME_ENDMARK( "CXnAppUiAdapter::ConstructL, done", time );
     }
 
 // -----------------------------------------------------------------------------
@@ -97,8 +87,7 @@
 // -----------------------------------------------------------------------------
 //
 EXPORT_C CXnAppUiAdapter::~CXnAppUiAdapter()
-    {
-    iExitingApp = ETrue;
+    {       
     delete iUiEngineAppIf;
     
     delete iImpl;    
@@ -111,9 +100,8 @@
 //
 EXPORT_C void CXnAppUiAdapter::HandleResourceChangeL( TInt aType )
     {
-#ifdef _XN_PERFORMANCE_TEST_
-    RDebug::Print( _L( "CXnAppUiAdapter::HandleResourceChangeL - start" ) );
-#endif //_XN_PERFORMANCE_TEST_
+    __PRINTS( "*** CXnAppUiAdapter::HandleResourceChangeL" );
+    __TIME_MARK( time );
 
     CAknViewAppUi::HandleResourceChangeL( aType );
 
@@ -122,9 +110,7 @@
         iImpl->HandleResourceChangeL( aType );
         }
 
-#ifdef _XN_PERFORMANCE_TEST_
-    RDebug::Print( _L( "CXnAppUiAdapter::HandleResourceChangeL - end" ) );
-#endif //_XN_PERFORMANCE_TEST_
+    __TIME_ENDMARK( "CXnAppUiAdapter::HandleResourceChangeL, done", time );
     }
 
 // -----------------------------------------------------------------------------
@@ -281,14 +267,49 @@
 EXPORT_C void CXnAppUiAdapter::PrepareToExit()
     {
     iExitingApp = ETrue;
-    delete iUiEngineAppIf;
-    iUiEngineAppIf = NULL;
-    delete iImpl;
-    iImpl = NULL;
+    
+    if ( iImpl )
+        {
+        iImpl->UiStateListener().PrepareToExit();
+
+        iImpl->ViewAdapter().PrepareToExit();
+        
+        iImpl->HsContentControlFactory()->PrepareToExit();
+        }
+
     CAknViewAppUi::PrepareToExit();
     }
 
 // -----------------------------------------------------------------------------
+// CXnAppUiAdapter::UiActivated
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CXnAppUiAdapter::UiActivated()
+    {
+    // Default empty implementation
+    }
+
+// -----------------------------------------------------------------------------
+// CXnAppUiAdapter::ProcessMessageL
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CXnAppUiAdapter::ProcessMessageL( TUid aUid,
+        const TDesC8& /*aParams*/ )
+    {
+    if ( aUid.iUid == KUidApaMessageSwitchOpenFileValue )
+        {
+        // activate default homescreen view.
+        // customcontrol is set so that window group order is not changed
+        SetCustomControl( 1 );
+        TRAP_IGNORE( ActivateLocalViewL(
+                View().Id(), TUid::Null(), KActivateDefaultView() ) );
+        SetCustomControl( 0 );
+        }
+    }
+
+// -----------------------------------------------------------------------------
 // CXnAppUiAdapter::ReloadUiL
 //
 // -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnappuiadapterimpl.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnappuiadapterimpl.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -19,6 +19,7 @@
 #include <hsccproviderclient.h>
 #include <hscontentcontroller.h>
 #include <hscontentcontrolui.h>
+#include <hspluginsettings.h>
 #include <bautils.h>
 #include <data_caging_path_literals.hrh>
 
@@ -28,6 +29,7 @@
 #include "xnviewmanager.h"
 #include "xnviewadapter.h"
 #include "xnuistatelistener.h"
+#include "xnbackgroundmanager.h"
 #include "hscontentcontrolfactory.h"
 #include "xneditor.h"
 #include "xnwallpaperview.h"
@@ -35,6 +37,8 @@
 
 #include "xnappuiadapterimpl.h"
 
+#include "debug.h"
+
 // Constants
 _LIT( KResourceDrive, "z:" );
 _LIT( KResourceFile, "xnuiengine.rsc" );
@@ -72,9 +76,15 @@
 //
 void CXnAppUiAdapterImpl::ConstructL()
     {       
-#ifdef _XN_PERFORMANCE_TEST_
-    RDebug::Print( _L( "CXnAppUiAdapterImpl::ConstructL() - start" ) );
-#endif //_XN_PERFORMANCE_TEST_
+    __PRINTS( "*** CXnAppUiAdapterImpl::ConstructL" );
+    __TIME_MARK( time );
+    
+    const TInt KMaxUidLength( 10 );
+    _LIT8( KUint, "%u" );
+    TBuf8< KMaxUidLength > uid;
+    uid.Format( KUint, iApplicationUid.iUid );    
+    
+    HSPluginSettingsIf::CHomescreenSettings::InitializeL( uid );
     
     TFileName resFile;
     resFile.Append( KResourceDrive );
@@ -99,17 +109,19 @@
     iViewAdapter = CXnViewAdapter::NewL( iAdapter );
        
     iViewManager->LoadUiL();
-    
+        
     iCcProviderClient = CHsCcProviderClient::NewL( iViewManager->Editor() );
     
     CXnWallpaperView* wallpaper = CXnWallpaperView::NewL( *iUiEngine );
-    iAdapter.AddViewL( wallpaper );
-           
-    iEffectManager = CXnEffectManager::NewL();    
+    CleanupStack::PushL( wallpaper );
     
-#ifdef _XN_PERFORMANCE_TEST_
-    RDebug::Print( _L( "CXnAppUiAdapterImpl::ConstructL() - end" ) );
-#endif //_XN_PERFORMANCE_TEST_    
+    // wallpaper view is owned by CAknViewAppUi
+    iAdapter.AddViewL( wallpaper );
+    CleanupStack::Pop( wallpaper );
+    
+    iEffectManager = CXnEffectManager::NewL();   
+    
+    __TIME_ENDMARK( "CXnAppUiAdapterImpl::ConstructL, done", time );    
     }
 
 // -----------------------------------------------------------------------------
@@ -119,17 +131,14 @@
 //
 void CXnAppUiAdapterImpl::ReloadUiL()
     {
-#ifdef _XN_PERFORMANCE_TEST_
-    RDebug::Print( _L( "CXnAppUiAdapterImpl::ReloadUiL() - start" ) );
-#endif //_XN_PERFORMANCE_TEST_
+    __PRINTS( "*** CXnAppUiAdapterImpl::ReloadUiL" );
+    __TIME_MARK( time );
 
     iViewAdapter->ReloadUiL();
            
     iViewManager->ReloadUiL();
-          
-#ifdef _XN_PERFORMANCE_TEST_
-    RDebug::Print( _L( "CXnAppUiAdapterImpl::ReloadUiL() - end" ) );
-#endif //_XN_PERFORMANCE_TEST_
+        
+    __TIME_ENDMARK( "CXnAppUiAdapterImpl::ReloadUiL, done", time );
     }
 
 // -----------------------------------------------------------------------------
@@ -139,13 +148,6 @@
 //
 CXnAppUiAdapterImpl::~CXnAppUiAdapterImpl()
     {  
-    delete iContentControlFactory;  
-    
-    if ( iViewAdapter )
-        {
-        iViewAdapter->PrepareDestroy();
-        }
-    
     delete iUiEngine;
     
     delete iUiStateListener;
@@ -155,8 +157,11 @@
     delete iCcProviderClient;
 
     delete iEffectManager;
+
+    CCoeEnv::Static()->DeleteResourceFile( iResourceOffset ) ;
+    HSPluginSettingsIf::CHomescreenSettings::UnInitialize();
     
-    CCoeEnv::Static()->DeleteResourceFile( iResourceOffset ) ;        
+    delete iContentControlFactory;
     }
 
 // -----------------------------------------------------------------------------
@@ -212,6 +217,16 @@
     }
 
 // -----------------------------------------------------------------------------
+// CXnAppUiAdapterImpl::HsContentControlFactory
+// Gets Content control factory
+// -----------------------------------------------------------------------------
+//
+CHsContentControlFactory* CXnAppUiAdapterImpl::HsContentControlFactory()
+    {
+    return iContentControlFactory;
+    }
+
+// -----------------------------------------------------------------------------
 // CXnAppUiAdapterImpl::EffectManager
 // Get effect manager.
 // -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -93,7 +93,9 @@
     User::LeaveIfError( iDiskNotifier->NotifyDisk() );
     
     // Reads from cenrep wheteher page specific wallpaper is enabled or not
-    CheckFeatureTypeL();
+    CheckFeatureTypeL();   
+
+    iTimer = CPeriodic::NewL( CActive::EPriorityIdle );
     }
 
 // -----------------------------------------------------------------------------
@@ -117,6 +119,7 @@
 //
 CXnBackgroundManager::~CXnBackgroundManager()
     {
+    delete iTimer;
     CleanCache();
     iSkinSrv.Close();
     delete iDiskNotifier;
@@ -150,11 +153,11 @@
                 
                 SystemGc().SetBrushColor( KRgbBlack );
                 SystemGc().Clear( aRect );
-                SystemGc().BitBlt( point, wallpaper ); 
+                SystemGc().DrawBitmap( TRect( point, bitmapSize), wallpaper );
                 }
             else
                 {
-                SystemGc().BitBlt( TPoint( 0, 0 ), wallpaper );
+                SystemGc().DrawBitmap( iRect, wallpaper );
                 }
 
             if( iViewManager.UiEngine().IsEditMode() )
@@ -178,11 +181,12 @@
             
             SystemGc().SetBrushColor( KRgbBlack );
             SystemGc().Clear( aRect );
-            SystemGc().BitBlt( point, iBgImage ); 
+            SystemGc().DrawBitmap( TRect( point, bitmapSize ), iBgImage );
+
             }
         else
             {
-            SystemGc().BitBlt( TPoint( 0, 0 ), iBgImage );
+            SystemGc().DrawBitmap( iRect, iBgImage );
             }
         if( iViewManager.UiEngine().IsEditMode() )
             {
@@ -363,11 +367,14 @@
         aOldView.WallpaperImagePath().Compare( aNewView.WallpaperImagePath() ) )
         {
         UpdateScreen();
-        TInt err = AknsWallpaperUtils::SetIdleWallpaper( aNewView.WallpaperImagePath(), NULL );
-        if( err == KErrNone )
+
+        // Since AknsWallpaperUtils::SetIdleWallpaper() call is slow, it is called
+        // asynchronously. In that way we can avoid it slowing down page switching.
+        if ( iTimer->IsActive() )
             {
-            iIntUpdate++;
+            iTimer->Cancel();
             }
+        iTimer->Start( 0, 1000, TCallBack( TimerCallback, this ) );
         }
     }
 
@@ -713,44 +720,42 @@
     CXnViewData& viewData( iViewManager.ActiveViewData() );
     const TDesC& old = viewData.WallpaperImagePath();
 
-    if( aFileName.Compare( old ) )
+    // Remove old from the cache
+    if( old != KNullDesC )
         {
-        // Remove old from the cache
-        if( old != KNullDesC )
-            {
-            RemoveWallpaperFromCache( old );
-            }
+        RemoveWallpaperFromCache( old );
+        }
 
-        // Add new to the cache
-        if( aFileName != KNullDesC )
+    // Add new to the cache
+    if( aFileName != KNullDesC )
+        {
+        if( CacheWallpaperL( aFileName, viewData ) == KErrNone )
             {
-            if( CacheWallpaperL( aFileName, viewData ) == KErrNone )
-                {
-                SaveWallpaperL(); // to HSPS
-                }
-            else
-                {
-                // image is corrupted or format is not supported
-                return KErrCACorruptContent;
-                }
+            SaveWallpaperL(); // to HSPS
             }
-        // WallpaperImage changed back to default. Update view data.
         else
             {
-            viewData.SetWallpaperImagePathL( KNullDesC );
-            viewData.SetWallpaperImage( NULL ); 
-            SaveWallpaperL(); // to HSPS
-            }
-
-        // Update screen
-        UpdateScreen();
-        
-        err = AknsWallpaperUtils::SetIdleWallpaper( aFileName, NULL );
-        if( err == KErrNone )
-            {
-            iIntUpdate++;
+            // image is corrupted or format is not supported
+            return KErrCACorruptContent;
             }
         }
+    // WallpaperImage changed back to default. Update view data.
+    else
+        {
+        viewData.SetWallpaperImagePathL( KNullDesC );
+        viewData.SetWallpaperImage( NULL ); 
+        SaveWallpaperL(); // to HSPS
+        }
+
+    // Update screen
+    UpdateScreen();
+    
+    err = AknsWallpaperUtils::SetIdleWallpaper( aFileName, NULL );
+    if( err == KErrNone )
+        {
+        iIntUpdate++;
+        }
+        
     return err;
     }
         
@@ -904,4 +909,23 @@
             iRect, shrunkRect, KAknsIIDQgnHomeEditBg, KAknsIIDDefault );
     }
 
+// -----------------------------------------------------------------------------
+// CXnBackgroundManager::TimerCallback
+// -----------------------------------------------------------------------------
+//
+TInt CXnBackgroundManager::TimerCallback(TAny *aPtr)
+    {
+    CXnBackgroundManager* bgManager = reinterpret_cast<CXnBackgroundManager*>( aPtr );    
+    bgManager->iTimer->Cancel();
+    
+    TInt err = AknsWallpaperUtils::SetIdleWallpaper( bgManager->
+        iViewManager.ActiveViewData().WallpaperImagePath(), NULL );
+    if( err == KErrNone )
+        {
+        bgManager->iIntUpdate++;
+        }   
+    return EFalse;
+    }
+
+
 //  End of File
--- a/idlehomescreen/xmluirendering/uiengine/src/xnbgcontrol.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnbgcontrol.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -249,17 +249,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// CXnBgControl::PrepareDestroy()
-// Prepares control for destroying
-// -----------------------------------------------------------------------------
-//
-void CXnBgControl::PrepareDestroy()
-    {
-    static_cast< CXnAppUiAdapter* >( iAvkonAppUi )
-            ->UiStateListener().RemoveObserver( *this );
-    }
-
-// -----------------------------------------------------------------------------
 // CXnBgControl::RemoveGrabbingControL()
 // Removes recursively grabbing controls
 // -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xncomposer.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xncomposer.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -45,7 +45,6 @@
 _LIT8( KViews, "views" );
 _LIT8( KWidget, "widget" );
 _LIT8( KUseEmptyWidget, "use_empty_widget" );
-_LIT8( KRemovable, "removable" );
 
 _LIT8( KEmptyWidgetUid, "0x2001F47F" );
 
@@ -347,25 +346,6 @@
     return EFalse;
     }
 
-// --------------------------------------------------------------------------
-// Removable
-// Determines whether this plugin is removable
-// --------------------------------------------------------------------------
-//
-static TBool Removable( CXnDomNode& aPlugin )
-    {    
-    CXnDomAttribute* attribute(
-        static_cast< CXnDomAttribute* >( 
-                aPlugin.AttributeList().FindByName( KRemovable ) ) );
-
-    if ( attribute && attribute->Value() == XnPropertyNames::KFalse )
-        {
-        return EFalse;
-        }
-    
-    return ETrue;
-    }
-
 // ======== MEMBER FUNCTIONS ========
 // --------------------------------------------------------------------------
 // CXnComposer::NewL
@@ -655,8 +635,12 @@
                     widget->SetOwner( node );
                     
                     if ( count < plugins.Count() )
-                        {                        
-                        widget->SetPluginIdL( plugins[ count ]->PluginId() );
+                        { 
+                        CPluginMap* plugin( plugins[count] );
+                        
+                        widget->SetPluginIdL( plugin->PluginId() );
+                        
+                        widget->SetLockingStatus( plugin->LockingStatus() );
                         }
                     
                     count++;
@@ -767,9 +751,7 @@
                     }
                 }
             }
-        
-        aPluginData.SetRemovable( Removable( *widgetRoot ) );
-
+                
         retval = KErrNone;                       
         }
     
--- a/idlehomescreen/xmluirendering/uiengine/src/xncontroladapterimpl.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xncontroladapterimpl.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -75,7 +75,6 @@
 const TInt KLongTapStartLongDelay( 500000 ); // 0.5s
 const TInt KLongTapTimeShortDelay( 600000 ); // 0.6s for SK
 const TInt KLongTapTimeLongDelay( 1500000 ); // 1.5s 
-_LIT( KWidgetBg, "SKIN(268458534 9916)" );
 
 // LOCAL FUNCTION PROTOTYPES
 static TRgb ConvertHslToRgb( TInt aHue, TInt aSaturation, TInt aLightness );
@@ -4037,7 +4036,6 @@
                 {
                 // Remove pressed down
                 node->UnsetStateL( XnPropertyNames::style::common::KPressedDown );
-                node->HideTooltipsL();            
                 }            
             }
         }
@@ -4058,7 +4056,9 @@
                 
                 if ( feedback )
                     {
-                    feedback->InstantFeedback( ETouchFeedbackBasic );
+                    feedback->InstantFeedback( iAdapter, ETouchFeedbackBasic, 
+                		                       ETouchFeedbackVibra,
+                		                       aPointerEvent );
                     }
 #endif
                 node->SetStateL( XnPropertyNames::style::common::KActive );
@@ -4090,6 +4090,12 @@
         DrawFocusAppearance( node, aGc );
         }
     
+    // Draw plus sign for empty plugins in edit mode.
+    if( node.UiEngine()->EditMode()->EditState() )
+        {
+        const_cast< CXnControlAdapterImpl* >( this )->DrawPlusSign( node, aGc );
+        }
+    
     if ( iAnimation )
         {
         TRect rect = iComponent->Node()->Rect();
@@ -4117,8 +4123,6 @@
     CXnNode& aNode,
     CWindowGc& aGc )
     {
-    // For widgets and plugins, drawing is handled differently in edit mode
-    const TDesC8& widgetType = aNode.DomNode()->Name();
     if( aNode.UiEngine()->EditMode()->EditState() )
         {
         DrawEditModeBgData( aNode, aGc );
@@ -4176,13 +4180,26 @@
         {
         TRect rect = aNode.PaddingRect();
         DrawBackgroundSkin( KAknsIIDQgnHomeEditBgWidget, aGc, rect );
-
-        CXnPluginData& data( aNode.UiEngine()->ViewManager()->ActiveViewData().Plugin( &aNode ) );
-        if( !data.Occupied() ) // Empty widget
+        }    
+    }
+
+// -----------------------------------------------------------------------------
+// CXnControlAdapterImpl::DrawPlusSign
+// 
+// -----------------------------------------------------------------------------
+//
+void CXnControlAdapterImpl::DrawPlusSign( CXnNode& aNode, CWindowGc& aGc )
+    {
+    const TDesC8& widgetType = aNode.DomNode()->Name();
+    if( widgetType == XnPropertyNames::KPlugin )
+        {
+        CXnPluginData* data( aNode.UiEngine()->ViewManager()->ActiveViewData().Plugin( &aNode ) );
+        if( data && !data->Occupied() ) // Empty widget
             {
             // Draw + -icon
             // Make rect as 50% of the widget's height.
             // It needs to be square in order to keep aspect ratio.
+            TRect rect = aNode.PaddingRect();
             TInt w = rect.Width();
             TInt h = rect.Height();
             rect.Shrink( ( w - h * 0.5 ) * 0.5, h * 0.25 );            
@@ -4287,21 +4304,12 @@
         aRect = aNode.PaddingRect();
         }
     
-    //CXnProperty* colorProperty( aNode.BackgroundColorL() );
     CXnProperty* colorProperty( aBgColor );
     if ( colorProperty )
         {
         HBufC* skinID = colorProperty->StringValueL();
         CleanupStack::PushL( skinID );
 
-        // Widget background should not be drawn in edit mode
-        if( aNode.UiEngine()->EditMode()->EditState() && 
-                skinID->Des() == KWidgetBg )
-            {
-            CleanupStack::PopAndDestroy( skinID );
-            return;
-            }
-
         if ( skinID->Length() != 0 )
             {
             TAknsItemID itemID;
--- a/idlehomescreen/xmluirendering/uiengine/src/xneditmode.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xneditmode.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -18,9 +18,7 @@
 // System includes
 #include <AknUtils.h>
 #include <gulgcmap.h>
-#include <akntitle.h>
 #include <barsread.h>
-#include <xnuiengine.rsg>
 
 #ifdef RD_TACTILE_FEEDBACK
 #include <touchfeedback.h>
@@ -42,6 +40,7 @@
 #include "xneditor.h"
 #include "xntype.h"
 #include "xnmenu.h"
+#include "xnbackgroundmanager.h"
 
 #include "xneditmode.h"
 
@@ -358,14 +357,21 @@
         
         Window().SetOrdinalPosition( 0 );
         Window().SetPointerGrab( ETrue );
-        Window().ClaimPointerGrab();               
+        Window().ClaimPointerGrab();      
+        
+        TRAP_IGNORE( appui.HandleEnterEditModeL( ETrue ) );                                
         }
     else
         {
         Window().SetPointerGrab( EFalse );
         
-        bg.DrawableWindow()->SetPointerGrab( ETrue );               
+        bg.DrawableWindow()->SetPointerGrab( ETrue );
+        
+        TRAP_IGNORE( appui.HandleEnterEditModeL( EFalse ) );                                                
         }
+    
+    // Update background
+    appui.ViewAdapter().BgManager().DrawNow();
     }
 
 // -----------------------------------------------------------------------------
@@ -483,10 +489,10 @@
                
         if ( node )
             {
-            CXnPluginData& plugin( iUiEngine.ViewManager()->
+            CXnPluginData* plugin( iUiEngine.ViewManager()->
                     ActiveViewData().Plugin( node ) );
             
-            if ( plugin.Occupied() )
+            if ( plugin && plugin->Occupied() )
                 {
                 StartDragL( *node );
                                   
@@ -542,7 +548,10 @@
     else if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
         {
 #ifdef RD_TACTILE_FEEDBACK                
-        Feedback( ETouchFeedbackBasic );
+        MTouchFeedback* feedback( MTouchFeedback::Instance() );
+        feedback->InstantFeedback( this,ETouchFeedbackBasic, 
+    		                       ETouchFeedbackVibra,
+    		                       aPointerEvent );
 #endif
         // Cancel
         if ( !iTargetNode || !iDraggingNode ||                 
@@ -563,10 +572,10 @@
                         
             if ( node && !iDragged )
                 {
-                CXnPluginData& plugin( iUiEngine.ViewManager()->
+                CXnPluginData* plugin( iUiEngine.ViewManager()->
                         ActiveViewData().Plugin( node ) );
 
-                if ( plugin.Occupied() )
+                if ( plugin && plugin->Occupied() )
                     {
                     CXnNode* popup( iUiEngine.StylusPopupNode() );
                     
@@ -637,10 +646,10 @@
         if ( focused && ( aKeyEvent.iScanCode == EStdKeyDevice3 ||
             aKeyEvent.iScanCode == EStdKeyEnter ) )
             {
-            CXnPluginData& plugin( iUiEngine.ViewManager()->
+            CXnPluginData* plugin( iUiEngine.ViewManager()->
                     ActiveViewData().Plugin( focused ) );
             
-            if ( plugin.Occupied() )
+            if ( plugin && plugin->Occupied() )
                 {
                 // Open context menu
                 CXnNode* menubar( iUiEngine.MenuBarNode() );
@@ -706,7 +715,7 @@
 void CXnEditMode::StartDragL( CXnNode& aNode )
     {  
     CXnControlAdapter* control( aNode.Control() );
-    
+        
     TRect rect( control->Rect() );
     
     // Clear first with alpha 
@@ -725,11 +734,25 @@
     CWindowGc* gc( control->CustomGc() );
             
     control->SetCustomGc( iMapGc );
+
+    TBool focusStateChanged( EFalse );
     
+    if( aNode.IsStateSet( XnPropertyNames::style::common::KFocus ) )
+        {        
+        aNode.UnsetStateL( XnPropertyNames::style::common::KFocus );
+        focusStateChanged = ETrue;
+        }
+
     control->DrawNow( rect );
-        
+
     control->SetCustomGc( gc );
-           
+
+    if( focusStateChanged )
+        {
+        aNode.SetStateL( XnPropertyNames::style::common::KFocus );
+        iUiEngine.RenderUIL( &aNode );
+        }
+
     if ( iWidget->SizeInPixels() != rect.Size() )
         {
         iWidget->Resize( rect.Size() );
@@ -797,10 +820,7 @@
     if ( aState == CXnEditMode::EDragAndDrop )
         {               
         iState = aState;
-        
-        iUiEngine.AppUiAdapter().HandleEnterEditModeL( ETrue );
-        SetStatusPaneTitleL( ETrue );
-        
+                
         MakeVisible( ETrue );               
         }
 
@@ -811,11 +831,7 @@
         iTargetNode = NULL;
         
         iState = aState;
-        
-        SetStatusPaneTitleL( EFalse );
-               
-        iUiEngine.AppUiAdapter().HandleEnterEditModeL( EFalse );
-        
+                
         MakeVisible( EFalse );
         }   
     }
@@ -831,35 +847,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// CXnEditMode::SetStatusPaneTitleL( TBool aEdit )
-// -----------------------------------------------------------------------------
-//
-void CXnEditMode::SetStatusPaneTitleL( TBool aEdit )
-    {
-    TUid titlePaneUid = TUid::Uid( EEikStatusPaneUidTitle );
-    CEikStatusPaneBase::TPaneCapabilities subPaneTitle = 
-        iUiEngine.AppUiAdapter().StatusPane()->PaneCapabilities( titlePaneUid );
-    if ( subPaneTitle.IsPresent() && subPaneTitle.IsAppOwned() )
-        {
-        CAknTitlePane* title = static_cast< CAknTitlePane* >( 
-            iUiEngine.AppUiAdapter().StatusPane()->ControlL( titlePaneUid ) );
-        if( aEdit )
-            {
-            TResourceReader reader;
-            CEikonEnv::Static()->CreateResourceReaderLC(
-                reader, R_QTN_HS_TITLE_EDITMODE );
-            title->SetFromResourceL( reader );
-            CleanupStack::PopAndDestroy(); // reader internal state
-            }
-        else
-            {
-            title->SetTextL( KNullDesC );
-            }
-
-        }
-    }
-
-// -----------------------------------------------------------------------------
 // CXnEditMode::StopDraggingL()
 // -----------------------------------------------------------------------------
 //
--- a/idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -68,13 +68,7 @@
 _LIT8( KEventPluginUnInstalled, "PluginUninstalled" );
 _LIT8( KEventRootConfActivated, "AppConfActivated" );
 _LIT8( KEventPluginUpdated, "PluginUpdated" );
-_LIT8( KEventPluginActivated, "PluginActivated" );
 _LIT8( KEventPluginInstalled, "PluginInstalled" );
-_LIT8( KEventPluginAdded, "PluginAdded" );
-_LIT8( KEventPluginRemoved, "PluginRemoved" );
-_LIT8( KEventPluginReplaced, "PluginReplaced" );
-
-_LIT8( KAi3Uid, "0x102750f0" );
 
 _LIT8( KEmptyWidgetUid, "0x2001F47F" );
 _LIT8( KDownload, "Editor/DownloadCaption" );
@@ -219,11 +213,11 @@
 
     if ( aPredicate )
         {
-        CXnPluginData& plugin( viewData.Plugin( aPredicate ) );
+        CXnPluginData* plugin( viewData.Plugin( aPredicate ) );
 
-        if ( !plugin.Occupied() )
+        if ( plugin && !plugin->Occupied() )
             {
-            return &plugin;
+            return plugin;
             }
         }
 
@@ -233,11 +227,11 @@
         {
         CXnNode* node( nodes[i] );
 
-        CXnPluginData& plugin( viewData.Plugin( node ) );
+        CXnPluginData* plugin( viewData.Plugin( node ) );
 
-        if ( !plugin.Occupied() )
+        if ( plugin && !plugin->Occupied() )
             {
-            return &plugin;
+            return plugin;
             }
         }
 
@@ -594,7 +588,7 @@
 // CXnEditor::ReplaceWidgetL
 // ---------------------------------------------------------------------------
 //
-void CXnEditor::ReplaceWidgetL( CHsContentInfo& aContentInfo, TBool aUseHsps ) 
+void CXnEditor::ReplaceWidgetL( CHsContentInfo& aContentInfo ) 
     {
     RPointerArray< CXnPluginData > plugins;
     CleanupClosePushL( plugins );
@@ -609,6 +603,15 @@
         
         if( plugin->PluginId() == aContentInfo.PluginId() )
             {
+            if ( aContentInfo.Type() == KNullDesC8 )
+                {
+                aContentInfo.SetTypeL( plugin->Type() );
+                }
+            
+            if ( aContentInfo.PublisherId() == KNullDesC )
+                {
+                aContentInfo.SetPublisherIdL( plugin->PublisherName() );
+                }
             match = plugin;
             break;
             }
@@ -616,7 +619,7 @@
     
     if( match )
         {
-        iViewManager.ReplaceWidgetToPluginL( aContentInfo, *match, aUseHsps );
+        iViewManager.ReplaceWidgetToPluginL( aContentInfo, *match );
         }
     
     CleanupStack::PopAndDestroy( &plugins );    
@@ -814,11 +817,11 @@
         return;
         }
 
-    CXnPluginData& plugin( iViewManager.ActiveViewData().Plugin( aNode ) );
+    CXnPluginData* plugin( iViewManager.ActiveViewData().Plugin( aNode ) );
 
-    if( plugin.Removable() )
+    if( plugin && plugin->Removable() )
         {
-        TRAPD( err, err = iViewManager.UnloadWidgetFromPluginL( plugin ) );
+        TRAPD( err, err = iViewManager.UnloadWidgetFromPluginL( *plugin ) );
         
         if ( err != KErrNone )
             {
@@ -850,15 +853,17 @@
 
     for ( TInt i = 0; i < aPluginArray->Count(); i++ )
         {
-        CXnPluginData& plugin( viewData.Plugin( ( *aPluginArray )[i] ) );
-
-        const TDesC8& id( plugin.PluginId() );
-        
-        if ( id != KNullDesC8 )
+        CXnPluginData* plugin( viewData.Plugin( ( *aPluginArray )[i] ) );
+        if ( plugin )
             {
-            ids->AppendL( id );
-            }              
-        }
+            const TDesC8& id( plugin->PluginId() );
+            
+            if ( id != KNullDesC8 )
+                {
+                ids->AppendL( id );
+                }
+            }
+        }        
 
     iHspsWrapper->MovePluginsL( configurationId, *ids );
 
@@ -878,19 +883,18 @@
 
     RPointerArray< CPublisherInfo >& publisherInfo(
         iPublisherMap->PublisherInfo() );
-
-    const TDesC& widgetName( aContentInfo.Name() );
+    
     const TDesC& publisherId( aContentInfo.PublisherId() );
 
     CPublisherInfo* info = NULL;
     
     for ( TInt i = 0; i < publisherInfo.Count(); i++ )
         {
-        info = publisherInfo[i];
+        CPublisherInfo* temp = publisherInfo[i];
 
-        if ( info->WidgetName() == widgetName &&
-            info->PublisherId() == publisherId )
+        if ( temp->PublisherId() == publisherId )
             {
+            info = temp;
             break;
             }
         }
@@ -1425,6 +1429,7 @@
 //
 void CXnEditor::NotifyViewDeactivatedL( const CXnViewData& /*aViewData*/)
     {
+    iTargetPlugin = NULL;
     }
 
 // ---------------------------------------------------------------------------
@@ -1472,30 +1477,11 @@
     const TDesC8& aEvent,
     const TDesC8& /*aAppConfUid*/,
     const TDesC8& aPluginName,
-    const TDesC8& aOrigUid,
+    const TDesC8& /*aOrigUid*/,
     const TDesC8& aPluginUid,
     const TDesC8& aPluginId )
     {
-    // Someone else has modified the configuration. Handle UI side here.
-    if( aEvent == KEventPluginAdded ||
-        aEvent == KEventPluginRemoved ||
-        aEvent == KEventPluginReplaced )
-        {
-        if( aOrigUid != KNullDesC8 && 
-            aOrigUid != KAi3Uid )
-            {
-            CHsContentInfo* info = CHsContentInfo::NewLC();
-            
-            info->SetNameL( aPluginName );
-            info->SetUidL( aPluginUid );
-            info->SetPluginIdL( aPluginId );
-            
-            ReplaceWidgetL( *info, EFalse );
-            
-            CleanupStack::PopAndDestroy( info );
-            }
-        }
-    else if ( aEvent == KEventPluginUnInstalled )
+    if ( aEvent == KEventPluginUnInstalled )
         {
         CHsContentInfo* info = CHsContentInfo::NewLC();
 
@@ -1529,9 +1515,6 @@
             CleanupStack::PopAndDestroy( info );
             }
         WidgetListChanged();
-        }    
-    else if ( aEvent == KEventPluginActivated )
-        {
         }
  
     return KErrNone;
@@ -1607,7 +1590,7 @@
     // get installed widgets from HSPS
     TemplatedWidgetsL( array );
     
-    FilterWidgetListL( aArray, EFalse );
+    FilterWidgetListL( aArray, ETrue );
     
     return KErrNone;
     }
@@ -1616,6 +1599,65 @@
 // from MHsContentController
 // -----------------------------------------------------------------------------
 //
+TInt CXnEditor::WidgetListL( CHsContentInfo& aInfo, CHsContentInfoArray& aArray )
+    {
+    TInt err( KErrNone );
+    RPointerArray< CXnPluginData > widgets;
+    CleanupClosePushL( widgets );
+    
+    if ( aInfo.Type() == KApplication )
+        {
+        if ( aInfo.Uid().CompareF( iViewManager.ActiveAppData().PluginUid() ) == 0 )
+            {
+            // Get widgets included in active application configuration
+            err = iViewManager.PluginDataL( KNullDesC8(), widgets );
+            }
+        else
+            {
+            // Invalid application configuration
+            err = KErrArgument;
+            }
+        }
+    else if ( aInfo.Type() == KView )
+        {
+        // Get widgets included in a view
+        err = iViewManager.PluginDataL( aInfo.PluginId(), widgets );
+        }
+    else
+        {
+        err = KErrArgument;
+        }
+    
+    if ( !err )
+        {
+        // Get installed widget content infos
+        RPointerArray< CHsContentInfo > array;
+        CleanupClosePushL( array );        
+        HSPSPluginsL( array, KKeyWidget );
+        TemplatedWidgetsL( array );
+
+        // Create content info for each found widget
+        for ( TInt i = 0; i < widgets.Count(); i++ )
+            {
+            CHsContentInfo* info = CreateContentInfoLC( *widgets[i], array );
+            if ( info )
+                {
+                aArray.Array().AppendL( info );
+                CleanupStack::Pop( info );
+                }
+            }
+        CleanupStack::PopAndDestroy(); // array
+        }
+    
+    CleanupStack::PopAndDestroy(); // widgets
+        
+    return err;
+    }
+
+// -----------------------------------------------------------------------------
+// from MHsContentController
+// -----------------------------------------------------------------------------
+//
 TInt CXnEditor::ViewListL( CHsContentInfoArray& aArray )
     {
     RPointerArray< CHsContentInfo >& array( aArray.Array() );
@@ -1658,18 +1700,16 @@
         return KErrArgument;
         }
 
-    if ( !aInfo.CanBeAdded() )
+    // the widget can not be added. Return proper error code
+    if ( IsCurrentViewFull() )
         {
-        // the widget can not be added. Return proper error code
-        if ( IsCurrentViewFull() )
-            {
-            return KHsErrorViewFull;
-            }
-        else
-            {
-            return KHsErrorMaxInstanceCountExceeded;
-            }
+        return KHsErrorViewFull;
         }
+    else if ( !aInfo.CanBeAdded() )
+        {
+        return KHsErrorMaxInstanceCountExceeded;
+        }
+
 
     CXnPluginData* plugin( NULL );
     
@@ -1829,6 +1869,7 @@
         CleanupStack::PushL( view );
         
         aInfo.SetNameL( view->PluginInfo().Name() );
+        aInfo.SetPluginIdL( plugin->PluginId() );
         aInfo.SetUidL( view->PluginInfo().Uid() );
         aInfo.SetTypeL( view->PluginInfo().Type() );
         aInfo.SetDescriptionL( view->PluginInfo().Description() );
@@ -1873,4 +1914,30 @@
     return err;     
     }
 
+// -----------------------------------------------------------------------------
+// CXnEditor::CreateContentInfoLC
+// -----------------------------------------------------------------------------
+//
+CHsContentInfo* CXnEditor::CreateContentInfoLC( CXnPluginData& aPlugin, 
+    RPointerArray< CHsContentInfo >& aInfos )
+    {
+    CHsContentInfo* contentInfo( NULL );
+    if ( aPlugin.Occupied() )
+        {
+        for ( TInt i = 0; i < aInfos.Count() && !contentInfo; i++ )
+            {
+            CHsContentInfo* info = aInfos[i];
+            if ( aPlugin.PluginUid().CompareF( info->Uid() ) == 0 && 
+                 ( ( aPlugin.PublisherName().Length() == 0 ) || 
+                   ( aPlugin.PublisherName().CompareF( info->PublisherId() ) == 0 ) ) )
+                {
+                contentInfo = info->CloneL();
+                CleanupStack::PushL( contentInfo );
+                contentInfo->SetPluginIdL( aPlugin.PluginId() );
+                }
+            }
+        }
+    return contentInfo;
+    }
+
 // End of file
--- a/idlehomescreen/xmluirendering/uiengine/src/xneffectmanager.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xneffectmanager.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -31,9 +31,6 @@
 #include <akntranseffect.h>                 // For transition effects
 
 // CONSTANTS
-const TInt KEffectTypeFullscreen = 1;
-const TInt KEffectTypeControl = 2;
-
 const TInt KWaitForLayout = 1;
 const TInt KEffectStarted = 2;
 
@@ -79,53 +76,13 @@
     }
 
 // -----------------------------------------------------------------------------
-// CXnEffectManager::BeginControlEffectL
-// -----------------------------------------------------------------------------
-//
-void CXnEffectManager::BeginControlEffectL( TInt /*aId*/, CXnPluginData& /*aPlugin*/ )
-    {
-    /*
-    TXnEffect* effect = new (ELeave) TXnEffect;
-    CleanupStack::PushL( effect );
-    effect->iId = aId;
-    effect->iType = KEffectTypeControl;
-    effect->iNode = aPlugin.Node()->LayoutNode();
-    iEffects.AppendL( effect );
-    CleanupStack::Pop( effect );
-    
-    if ( effect->iNode && !effect->iNode->IsLaidOut() )
-        {
-        effect->iState = KWaitForLayout;
-        }
-    else
-        {
-        DoBeginControlEffect( *effect );
-        }
-    */
-    }
-
-// -----------------------------------------------------------------------------
-// CXnEffectManager::BeginControlEffectL
-// -----------------------------------------------------------------------------
-//
-void CXnEffectManager::BeginControlEffectL( TInt aId,
-                RPointerArray<CXnPluginData>& aPlugins )
-    {
-    TInt count = aPlugins.Count();
-    for ( TInt i = 0; i < count; i++ )
-        {
-        BeginControlEffectL( aId, *aPlugins[i] );
-        }
-    }
-
-// -----------------------------------------------------------------------------
 // CXnEffectManager::BeginFullscreenEffectL
 // -----------------------------------------------------------------------------
 //
 void CXnEffectManager::BeginFullscreenEffectL( TInt aId, CXnViewData& aView )
     {
     // Only one fullscreen effect at time
-    if ( EffectCount( KEffectTypeFullscreen ) != 0 )
+    if ( iEffects.Count() != 0 )
         {
         return;
         }
@@ -133,7 +90,6 @@
     TXnEffect* effect = new (ELeave) TXnEffect;
     CleanupStack::PushL( effect );
     effect->iId = aId;
-    effect->iType = KEffectTypeFullscreen;
     effect->iNode = aView.ViewNode();
     iEffects.AppendL( effect );
     CleanupStack::Pop( effect );
@@ -157,16 +113,10 @@
     for ( TInt i = 0; i < iEffects.Count(); )
         {
         TXnEffect* effect = iEffects[i];
-        if ( effect && effect->iState == KEffectStarted )
+        if ( effect &&
+             effect->iState == KEffectStarted )
             {
-            if ( effect->iType == KEffectTypeFullscreen )
-                {
-                GfxTransEffect::EndFullScreen();
-                }
-            else if ( effect->iType == KEffectTypeControl )
-                {
-                GfxTransEffect::End( effect->iNode->Control() );
-                }
+            GfxTransEffect::EndFullScreen();
             RemoveEffect( effect );
             }
         else
@@ -188,16 +138,9 @@
         TXnEffect* effect = iEffects[i];
         if ( effect && effect->iNode &&
              effect->iState == KWaitForLayout &&
-             effect->iNode->IsLaidOut())
+             effect->iNode->IsLaidOut() )
             {
-            if ( effect->iType == KEffectTypeFullscreen )
-                {
-                effectStarted = DoBeginFullscreenEffect( *effect );
-                }
-            else if ( effect->iType == KEffectTypeControl )
-                {
-                effectStarted = DoBeginControlEffect( *effect );
-                }
+            effectStarted = DoBeginFullscreenEffect( *effect );
             }
         
         if ( effectStarted )
@@ -240,33 +183,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// CXnEffectManager::DoBeginControlEffect
-// -----------------------------------------------------------------------------
-//
-TBool CXnEffectManager::DoBeginControlEffect( TXnEffect& aEffect )
-    {
-    TBool ret = EFalse;
-    CCoeEnv* coe( CCoeEnv::Static() );
-           
-    if ( coe->WsSession().GetFocusWindowGroup() != 
-         coe->RootWin().Identifier() )
-        {
-        // Window group is not focused
-        return ret;
-        }
-
-    // Set effect begin point
-    if ( aEffect.iNode )
-        {
-        GfxTransEffect::Begin( aEffect.iNode->Control() , aEffect.iId );
-        aEffect.iState = KEffectStarted;
-        ret = ETrue;
-        }
-    
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
 // CXnEffectManager::RemoveEffect
 // -----------------------------------------------------------------------------
 //
@@ -281,22 +197,4 @@
         }
     }
 
-// -----------------------------------------------------------------------------
-// CXnEffectManager::EffectCount
-// -----------------------------------------------------------------------------
-//
-TInt CXnEffectManager::EffectCount( TInt aType )
-    {
-    TInt effectCount = 0;
-    TInt count = iEffects.Count();
-    for ( TInt i = 0; i < count; i++ )
-        {
-        if ( iEffects[i]->iType == aType )
-            {
-            effectCount++;
-            }
-        }
-    return effectCount;
-    }
-
 //  End of File
--- a/idlehomescreen/xmluirendering/uiengine/src/xnfocuscontrol.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnfocuscontrol.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -68,7 +68,6 @@
 //
 CXnFocusControl::~CXnFocusControl()
     {
-    delete iMonitor;
     }
 
 // -----------------------------------------------------------------------------
@@ -88,17 +87,6 @@
 //
 void CXnFocusControl::ConstructL()
     {   
-    iMonitor = CXnInactivityMonitor::NewL( *this );
-    }
-
-// -----------------------------------------------------------------------------
-// CXnFocusControl::InactivityTimerExpired()
-// 
-// -----------------------------------------------------------------------------
-//
-void CXnFocusControl::InactivityTimerExpired()
-    {       
-    MakeVisible( EFalse );    
     }
 
 // -----------------------------------------------------------------------------
@@ -126,8 +114,6 @@
             
             iRefused = EFalse;
             
-            iMonitor->Stop();
-                        
             CXnNode* node( iAppUiAdapter.UiEngine().FocusedNode() ); 
                                    
             if ( node )
@@ -156,8 +142,6 @@
             iRefused = EFalse;
             
             iVisible = aVisible;
-            
-            iMonitor->Start();            
             }              
         }        
     }
--- a/idlehomescreen/xmluirendering/uiengine/src/xnkeyeventdispatcher.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnkeyeventdispatcher.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -195,7 +195,7 @@
             {
             CEikCba* cba = 
                 static_cast< CEikCba* >( iCbaContainer->ButtonGroup() ); 
-                    
+                
             if ( destination == cba && iCbaContainer->IsVisible() )
                 {
                 CXnMenuAdapter* adapter( MenuAdapter( iMenuNode ) );
@@ -205,6 +205,18 @@
                     TRAP_IGNORE( 
                         adapter->HandlePointerEventL( *aEvent.Pointer() ) );
                     }
+
+                // if focus was lost due to longtap & button not being released
+                // appui will set flag to ignorekeyevent for this control as it has
+                // lost focus ( voice command become active ) after longtap detected.
+                // this causes cba button to stay in pressed state. send this buttonup
+                // event manually so that cba can draw itself correctly 
+                // case id: ou1cimx1#265200
+                if ( event.iType == TPointerEvent::EButton1Up &&
+                    !cba->IsFocused() )
+                    {
+                    TRAP_IGNORE( cba->HandlePointerEventL( event ) );
+                    }
                 }
             }
         }
@@ -480,7 +492,10 @@
             }
         else
             {
-            iCbaContainer->MakeVisible( ETrue );
+            if ( !iCbaContainer->IsVisible() )
+                {
+                iCbaContainer->MakeVisible( ETrue );
+                }            
             }
         }
     else
@@ -616,10 +631,10 @@
             CXnViewData& activeViewData(
                 iUiEngine.ViewManager()->ActiveViewData() );
     
-            const CXnPluginData& pluginData(
+            const CXnPluginData* pluginData(
                 activeViewData.Plugin( iNode ) );
     
-            if ( &pluginData == &aPluginData )
+            if ( pluginData == &aPluginData )
                 {
                 // The plugin is removed which was holding focus
                 ClearStateL();
@@ -661,10 +676,10 @@
         // first, search only in plugins which have popup window open
         for ( TInt i = 0; i < list.Count(); i++ )
             {
-            CXnPluginData& plugin( activeView.Plugin( list[i] ) );
-            if ( plugin.IsDisplayingPopup() )
+            CXnPluginData* plugin( activeView.Plugin( list[i] ) );
+            if ( plugin && plugin->IsDisplayingPopup() )
                 {
-                plugin.InitialFocusNodesL( initial );
+                plugin->InitialFocusNodesL( initial );
                 }
             }
         
@@ -674,8 +689,11 @@
             {        
             for ( TInt i = 0; i < list.Count(); i++ )
                 {
-                CXnPluginData& plugin( activeView.Plugin( list[i] ) );
-                plugin.InitialFocusNodesL( initial );
+                CXnPluginData* plugin( activeView.Plugin( list[i] ) );
+                if ( plugin )
+                    {
+                    plugin->InitialFocusNodesL( initial );
+                    }
                 }
             }
         
--- a/idlehomescreen/xmluirendering/uiengine/src/xnlistquerydialogadapter.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnlistquerydialogadapter.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -35,7 +35,9 @@
 #include "xndomlist.h"
 #include "xndomattribute.h"
 
+
 // ======== LOCAL FUNCTIONS ========
+
 // ---------------------------------------------------------------------------
 // Finds recursively node by type
 // @return    returns pointer to desired node, NULL if nothing found 
@@ -225,9 +227,17 @@
 // -----------------------------------------------------------------------------
 // 
 void CXnListQueryDialogAdapter::ReplaceItemL(const TDesC& aText, TInt aIndex )
-    {
+    {    
+    if ( iDialog )
+        {
+        iDialog->DismissQueryL();        
+        }    
+
+    iDialog = NULL;
+    
     aIndex += iStaticItems.Count();
     TInt count( iItemArray->Count());
+    
     if( aIndex >= count )
         {
         iItemArray->AppendL( aText );
@@ -236,7 +246,7 @@
         {
         iItemArray->Delete( aIndex );
         iItemArray->InsertL( aIndex, aText );
-        }
+        }    
     }
 
 // -----------------------------------------------------------------------------
@@ -244,13 +254,22 @@
 // -----------------------------------------------------------------------------
 // 
 void CXnListQueryDialogAdapter::InsertItemL(const TDesC& aText, TInt aIndex )
-    {
+    {    
+    if ( iDialog )
+        {
+        iDialog->DismissQueryL();
+        }    
+    
+    iDialog = NULL;
+    
     aIndex += iStaticItems.Count();
     TInt count( iItemArray->Count());
+    
     if( count < aIndex )
         {
         aIndex = count;
         }
+    
     iItemArray->InsertL( aIndex, aText );
     }
 
@@ -260,11 +279,19 @@
 // 
 void CXnListQueryDialogAdapter::DeleteItem( TInt aIndex )
     {
+    if ( iDialog )
+        {
+        TRAP_IGNORE( iDialog->DismissQueryL() );
+        }
+    
+    iDialog = NULL;
+    
     aIndex += iStaticItems.Count();
+    
     if( aIndex < iItemArray->Count())
         {
         iItemArray->Delete( aIndex );
-        }    
+        }       
     }
 
 // -----------------------------------------------------------------------------
@@ -273,16 +300,23 @@
 //
 void CXnListQueryDialogAdapter::TryDisplayingDialogL( )
     {
+    if ( iDialog )
+        {
+        iDialog->DismissQueryL();
+        }
+    
+    iDialog = NULL;
+    
     CXnAppUiAdapter& appui( static_cast< CXnAppUiAdapter& >( *iAvkonAppUi ) );
     
     appui.HideFocus();
     
     TInt selectedIndex( 0 );
     
-    CAknListQueryDialog* query =
-       new ( ELeave ) CAknListQueryDialog( &selectedIndex );
-
-    query->PrepareLC( R_XML_LISTQUERY );
+    CAknListQueryDialog* dialog =
+       new ( ELeave ) CAknListQueryDialog( &selectedIndex );                 
+    dialog->PrepareLC( R_XML_LISTQUERY );
+    
 /* Not tested
     CAknPopupHeadingPane* heading( query->QueryHeading() );
     if ( heading )
@@ -303,13 +337,17 @@
             }
         }
 */
-    query->SetItemTextArray( iItemArray );
-    query->SetOwnershipType( ELbmDoesNotOwnItemArray );
-
-    if ( query->RunLD() )
+    dialog->SetItemTextArray( iItemArray );
+    dialog->SetOwnershipType( ELbmDoesNotOwnItemArray );
+    
+    iDialog = dialog;
+    
+    if ( dialog->RunLD() )
         {
         ActivateItemL( selectedIndex );
-        }
+        }            
+           
+    iDialog = NULL;
     }
 
 // -----------------------------------------------------------------------------
@@ -346,6 +384,11 @@
     CXnDomAttribute* attribute = static_cast<CXnDomAttribute*> 
         (eventNode->AttributeList().FindByName( XnPropertyNames::action::event::KName ));
     
+    if ( !attribute )
+        {
+        return;
+        }
+    
     HBufC8* nameStr( attribute->Value().AllocLC());
     TPtr8 namePtr = nameStr->Des();
     
--- a/idlehomescreen/xmluirendering/uiengine/src/xnnode.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnnode.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -822,41 +822,6 @@
     return iImpl->NavIndexL();
     }
 
-CXnProperty* CXnNode::VisibleRowsL()
-    {
-    return iImpl->VisibleRowsL();
-    }
-
-CXnProperty* CXnNode::GridColumnsL()
-    {
-    return iImpl->GridColumnsL();
-    }
-
-CXnProperty* CXnNode::GridOrientationL()
-    {
-    return iImpl->GridOrientationL();
-    }
-
-CXnProperty* CXnNode::GridVerDirectionL()
-    {
-    return iImpl->GridVerDirectionL();
-    }
-
-CXnProperty* CXnNode::GridHorDirectionL()
-    {
-    return iImpl->GridHorDirectionL();
-    }
-
-CXnProperty* CXnNode::FocusHorLoopingL()
-    {
-    return iImpl->FocusHorLoopingL();
-    }
-
-CXnProperty* CXnNode::FocusVerLoopingL()
-    {
-    return iImpl->FocusVerLoopingL();
-    }
-
 CXnProperty* CXnNode::ZIndexL()
     {
     return iImpl->ZIndexL();
@@ -877,21 +842,6 @@
     return iImpl->FocusBackgroundL();
     }
 
-CXnProperty* CXnNode::RefL()
-    {
-    return iImpl->RefL();
-    }
-
-CXnProperty* CXnNode::GridScrollBarMarginL()
-    {
-    return iImpl->GridScrollBarMarginL();
-    }
-
-CXnProperty* CXnNode::GridScrollBarWidthL()
-    {
-    return iImpl->GridScrollBarWidthL();
-    }
-
 // -----------------------------------------------------------------------------
 // CXnNode::SetDomNode
 // Sets the DOM node pointer
@@ -966,51 +916,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// CXnNode::RestartTimedTrigger
-// Restarts the timed trigger.
-// -----------------------------------------------------------------------------
-//
-void CXnNode::RestartTimedTrigger( TInt aDelay )
-    {
-    CPeriodic* timer = iImpl->PeriodicTimer();
-    if ( timer )
-        {
-        if ( timer->IsActive() )
-            {
-            timer->Cancel();
-            if ( aDelay > 0 )
-                {
-                timer->After( aDelay );
-                }
-            else
-                {
-                iImpl->DeletePeriodic();
-                }
-            }
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CXnNode::SetTriggerDelay
-// Sets default trigger delay
-// -----------------------------------------------------------------------------
-//
-void CXnNode::SetTriggerDelay( TTimeIntervalMicroSeconds32 aDelay )
-    {
-    iTriggerDelay = aDelay;
-    }
-
-// -----------------------------------------------------------------------------
-// CXnNode::TriggerDelay
-// Returns default trigger delay
-// -----------------------------------------------------------------------------
-//
-TTimeIntervalMicroSeconds32 CXnNode::TriggerDelay()
-    {
-    return iTriggerDelay;
-    }
-
-// -----------------------------------------------------------------------------
 // CXnNode::SetDirtyL
 // Marks the node dirty
 // -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -54,7 +54,6 @@
 #include "xntexteditor.h"
 
 // Local constants
-_LIT8( KRef, "ref" );
 _LIT8( KId, "id" );
 _LIT8( KName, "name" );
 _LIT8( KToolTip, "tooltip" );
@@ -63,10 +62,6 @@
 
 _LIT8( KActionsHandler, "actionshandler" );
 
-const TReal KS60ScrollbarDefaultWidth = 1.5;
-const TReal KS60ScrollbarDefaultMargin = 0.25;
-const TReal KS60ScrollbarDefaultWidthPenEnabled = 3;
-const TReal KS60ScrollbarDefaultMarginPenEnabled = 0.5;
 const TInt KUnitMaxLen = 2;
 const TInt KOneView = 1;
 
@@ -88,30 +83,6 @@
 _LIT8( KGainEnd, "gainend" );
 _LIT8( KLoseEnd, "loseend" );
 
-// Local classes
-struct TXnTimedTrigger
-    {
-    CXnNodeImpl* iNodeImpl;
-    CXnUiEngine* iEngine;
-    CXnNode* iNode;
-    CXnNode* iEventData;
-    CXnDomNode* iActionNode;
-    CXnDomNode* iTriggerNode;
-    };
-
-struct CGridPropertyCache : public CBase
-    {
-    CXnProperty* iVisibleRows;
-    CXnProperty* iGridColumns;
-    CXnProperty* iGridOrientation;
-    CXnProperty* iGridVerDirection;
-    CXnProperty* iGridHorDirection;
-    CXnProperty* iFocusHorLooping;
-    CXnProperty* iFocusVerLooping;
-    CXnProperty* iGridScrollBarWidth;
-    CXnProperty* iGridScrollBarMargin;
-    };
-
 struct CLayoutPropertyCache : public CBase
     {
     CLayoutPropertyCache() :
@@ -282,9 +253,6 @@
 
 // Local function prototypes
 static TBool IsTriggerRunnableL( CXnDomNode& aTriggerNode );
-static CXnNode* RefNodeL(
-    CXnNodeImpl* aThis, CXnProperty* aRef, CXnUiEngine* aUiEngine );
-static const TDesC8* CheckRefAttributeL( CXnProperty* aRef );
 static TBool DoMatchTriggerForKeyEventL(
     const TKeyEvent& aKeyEvent,
     TEventCode aType,
@@ -294,7 +262,6 @@
     RPointerArray< CXnNode >& aFocusCandidates );
 static void RunAppUiNotificationL( CXnUiEngine& aEngine, CXnNode& aNode,
     CXnDomNode& aEventNode, CXnDomNode& aTriggerNode, CXnNode& aEventData );
-static void RunAppExit( CXnUiEngine& aEngine );
 static void RunFullScreenEffectL(
     CXnUiEngine& aEngine, CXnDomNode& aEventNode );
 static void RunActivateViewL(
@@ -338,8 +305,6 @@
 static void RunTryDisplayingListQueryDialogL(
     CXnNodeImpl* aThis, CXnUiEngine& aEngine, CXnDomNode& aEventNode );
 static void RunSetInitialFocusL( CXnUiEngine& aEngine );
-static void ResolveTriggerDelayL(
-    CXnUiEngine& aEngine, CXnDomNode& aNode, TInt& aDelay );
 static TBool RunEventL(
     CXnNodeImpl* aThis, CXnUiEngine& aEngine, CXnNode& aNode,
     CXnDomNode& aEventNode, CXnDomNode& aTriggerNode, CXnNode& aEventData );
@@ -1380,7 +1345,6 @@
 static void SetCachedProperty(
     CXnProperty* aProperty,
     CLayoutPropertyCache*& aLayoutPropertyCache,
-    CXnProperty*& aRef,
     CXnProperty*& aName,
     CXnProperty*& aValue,
     CXnProperty*& aLabel,
@@ -1389,7 +1353,6 @@
     CXnProperty*& aId,
     CXnProperty*& aPath,
     CXnProperty*& aMaskPath,
-    CGridPropertyCache*& aGridPropertyCache,
     TBool aInitializing,
     TBool aArrayOnly)
     {
@@ -1482,10 +1445,6 @@
         {
         aMaskPath = aProperty;
         }
-    else if ( name == KRef )
-        {
-        aRef = aProperty;
-        }
     else if ( name == XnPropertyNames::style::common::KMarginLeft )
         {
         DoSetCachedProperty(
@@ -1750,105 +1709,6 @@
             aLayoutPropertyCache->iNavIndexes,
             aInitializing, aArrayOnly );
         }
-    else if ( name == XnPropertyNames::grid::KS60VisibleRows )
-        {
-        if ( !aGridPropertyCache )
-            {
-            aGridPropertyCache = new CGridPropertyCache;
-            }
-        if ( aGridPropertyCache )
-            {
-            aGridPropertyCache->iVisibleRows = aProperty;
-            }
-        }
-    else if ( name == XnPropertyNames::grid::KS60GridColumns )
-        {
-        if ( !aGridPropertyCache )
-            {
-            aGridPropertyCache = new CGridPropertyCache;
-            }
-        if ( aGridPropertyCache )
-            {
-            aGridPropertyCache->iGridColumns = aProperty;
-            }
-        }
-    else if ( name == XnPropertyNames::grid::KS60GridOrientation )
-        {
-        if ( !aGridPropertyCache )
-            {
-            aGridPropertyCache = new CGridPropertyCache;
-            }
-        if ( aGridPropertyCache )
-            {
-            aGridPropertyCache->iGridOrientation = aProperty;
-            }
-        }
-    else if ( name == XnPropertyNames::grid::KS60GridVerDirection )
-        {
-        if ( !aGridPropertyCache )
-            {
-            aGridPropertyCache = new CGridPropertyCache;
-            }
-        if ( aGridPropertyCache )
-            {
-            aGridPropertyCache->iGridVerDirection = aProperty;
-            }
-        }
-    else if ( name == XnPropertyNames::grid::KS60GridHorDirection )
-        {
-        if ( !aGridPropertyCache )
-            {
-            aGridPropertyCache = new CGridPropertyCache;
-            }
-        if ( aGridPropertyCache )
-            {
-            aGridPropertyCache->iGridHorDirection = aProperty;
-            }
-        }
-    else if ( name == XnPropertyNames::grid::KS60FocusHorLooping )
-        {
-        if ( !aGridPropertyCache )
-            {
-            aGridPropertyCache = new CGridPropertyCache;
-            }
-        if ( aGridPropertyCache )
-            {
-            aGridPropertyCache->iFocusHorLooping = aProperty;
-            }
-        }
-    else if ( name == XnPropertyNames::grid::KS60FocusVerLooping )
-        {
-        if ( !aGridPropertyCache )
-            {
-            aGridPropertyCache = new CGridPropertyCache;
-            }
-        if ( aGridPropertyCache )
-            {
-            aGridPropertyCache->iFocusVerLooping = aProperty;
-            }
-        }
-    else if ( name == XnPropertyNames::grid::KS60GridScrollbarWidth )
-        {
-        if ( !aGridPropertyCache )
-            {
-            aGridPropertyCache = new CGridPropertyCache;
-            }
-        if ( aGridPropertyCache )
-            {
-            aGridPropertyCache->iGridScrollBarWidth = aProperty;
-            }
-        }
-    else if ( name == XnPropertyNames::grid::KS60GridScrollbarMargin )
-        {
-        if ( !aGridPropertyCache )
-            {
-            aGridPropertyCache = new CGridPropertyCache;
-            }
-        if ( aGridPropertyCache )
-            {
-            aGridPropertyCache->iGridScrollBarMargin = aProperty;
-            }
-        }
     }
 
 // -----------------------------------------------------------------------------
@@ -2315,20 +2175,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// CheckRefAttributeL
-// -----------------------------------------------------------------------------
-//
-static const TDesC8* CheckRefAttributeL( CXnProperty* aRef )
-    {
-    if ( !aRef )
-        {
-        return NULL;
-        }
-
-    return &aRef->StringValue();
-    }
-
-// -----------------------------------------------------------------------------
 // DoMatchTriggerForKeyEventL
 // -----------------------------------------------------------------------------
 //
@@ -2471,187 +2317,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// MatchTimedTriggerPropertiesL
-// -----------------------------------------------------------------------------
-//
-static TBool MatchTimedTriggerPropertiesL( CXnDomNode& aTriggerNode )
-    {
-    CXnDomList& children = aTriggerNode.ChildNodes();
-    TInt count = children.Length();
-    if ( count > 0 )
-        {
-        for ( TInt i = 0; i < count; ++i )
-            {
-            CXnDomNode* child = static_cast< CXnDomNode* >( children.Item( i ) );
-            const TDesC8& name = child->AttributeValue( XnPropertyNames::action::KName );
-            if ( name == XnPropertyNames::action::trigger::KDelay )
-                {
-                return ETrue;
-                }
-            }
-        }
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// MatchStylusTriggerL
-// -----------------------------------------------------------------------------
-//
-static TBool MatchStylusTriggerL(
-    CXnNode& aMatchingTriggerNode,
-    CXnDomNode& aTreeTriggerNode )
-    {
-    TInt ret( EFalse );
-
-    CXnDomList& treeChildren = aTreeTriggerNode.ChildNodes();
-    TInt treeCount = treeChildren.Length();
-
-    RPointerArray< CXnNode >& matchingChildren = aMatchingTriggerNode.Children();
-    TInt matchCount = matchingChildren.Count();
-
-    if ( treeCount == 0 )
-        {
-        // If stylus-trigger does not have properties, trigger is run with stylus up.
-        for ( TInt i = 0; i < matchCount; ++i )
-            {
-            CXnNode* node = matchingChildren[i];
-            CXnProperty* nameProperty = node->NameL();
-            if ( nameProperty )
-                {
-                const TDesC8& name = nameProperty->StringValue();
-                if ( name ==
-                     XnPropertyNames::action::trigger::name::stylus::KStylusEventType )
-                    {
-                    CXnProperty* valueProperty = node->ValueL();
-                    if ( valueProperty )
-                        {
-                        const TDesC8& name = valueProperty->StringValue();
-                        if ( name == XnPropertyNames::action::trigger::name::KDownAndUp )
-                            {
-                            return ETrue;
-                            }
-                        }
-                    }
-                }
-            }
-        return EFalse;
-        }
-
-    // Fetch trigger data defined in the theme
-    TInt treeTriggerState( 1 );
-    HBufC8* treeTriggerType( NULL );
-    for ( TInt i = 0; i < treeCount; ++i )
-        {
-        CXnDomNode* domNode = static_cast< CXnDomNode* >( treeChildren.Item( i ) );
-        CXnDomList& attrs = domNode->AttributeList();
-        CXnDomAttribute* nameAttribute = static_cast< CXnDomAttribute* >(
-            attrs.FindByName( XnPropertyNames::action::KName ) );
-        CXnDomAttribute* valueAttribute = static_cast< CXnDomAttribute* >(
-            attrs.FindByName( XnPropertyNames::action::KValue ) );
-        if ( !nameAttribute || !valueAttribute )
-            {
-            continue;
-            }
-        if ( nameAttribute->Value() ==
-             XnPropertyNames::action::trigger::name::stylus::KStylusState )
-            {
-            TLex8 lex( valueAttribute->Value() );
-            lex.Val( treeTriggerState );
-            }
-        else if ( nameAttribute->Value() ==
-                  XnPropertyNames::action::trigger::name::stylus::KStylusEventType )
-            {
-            // just in case
-            if ( treeTriggerType )
-                {
-                CleanupStack::PopAndDestroy( treeTriggerType );
-                treeTriggerType = NULL;
-                }
-            const TDesC8& value = valueAttribute->Value();
-            treeTriggerType = HBufC8::NewL( value.Length() );
-            TPtr8 ptr = treeTriggerType->Des();
-            ptr = value;
-            CleanupStack::PushL( treeTriggerType );
-            }
-        }
-
-    // If not defined, use the default value 'up'
-    if ( !treeTriggerType )
-        {
-        treeTriggerType = HBufC8::NewL( 10 );
-        TPtr8 ptr = treeTriggerType->Des();
-        ptr.Append( XnPropertyNames::action::trigger::name::KDownAndUp );
-        CleanupStack::PushL( treeTriggerType );
-        }
-
-    // Fetch matching trigger data.
-    TInt matchTriggerState( 1 );
-    HBufC8* matchTriggerType( NULL );
-    for ( TInt i = 0; i < matchCount; ++i )
-        {
-        CXnNode* matchNode = matchingChildren[i];
-        CXnProperty* nameProperty = matchNode->NameL();
-        CXnProperty* valueProperty = matchNode->ValueL();
-        if ( nameProperty && valueProperty )
-            {
-            if ( nameProperty->StringValue() ==
-                 XnPropertyNames::action::trigger::name::stylus::KStylusState )
-                {
-                TLex8 lex( valueProperty->StringValue() );
-                lex.Val( matchTriggerState );
-                }
-            else if ( nameProperty->StringValue() ==
-                      XnPropertyNames::action::trigger::name::stylus::KStylusEventType )
-                {
-                // just in case
-                if ( matchTriggerType )
-                    {
-                    CleanupStack::PopAndDestroy( matchTriggerType );
-                    matchTriggerType = NULL;
-                    }
-                const TDesC8& value = valueProperty->StringValue();
-                matchTriggerType = HBufC8::NewL( value.Length() );
-                TPtr8 ptr = matchTriggerType->Des();
-                ptr = value;
-                CleanupStack::PushL( matchTriggerType );
-                }
-            }
-        }
-
-    if ( treeTriggerState == matchTriggerState )
-        {
-        // just in case
-        if ( !matchTriggerType )
-            {
-            ret = EFalse;
-            }
-        else if ( treeTriggerType->Des() == matchTriggerType->Des() )
-            {
-            ret = ETrue;
-            }
-        // still, if trigger type is 'KUp' it should match to 'KDownAndUp' event
-        else if ( treeTriggerType->Des() ==
-                  XnPropertyNames::action::trigger::name::KUp )
-            {
-            if ( matchTriggerType->Des() ==
-                 XnPropertyNames::action::trigger::name::KDownAndUp )
-                {
-                ret = ETrue;
-                }
-            }
-        }
-    if ( matchTriggerType )
-        {
-        CleanupStack::PopAndDestroy( matchTriggerType );
-        }
-    if ( treeTriggerType )
-        {
-        CleanupStack::PopAndDestroy( treeTriggerType );
-        }
-    return ret;
-    }
-
-// -----------------------------------------------------------------------------
 // MatchActivateTriggerPropertiesL
 // Checks if triggered node properties match
 // ones defined in theme
@@ -2749,7 +2414,7 @@
     CXnDomList& attributeList( aTriggerNode.AttributeList() );
 
     const TDesC8& reason(
-        XnPropertyNames::action::trigger::name::uidefinitionmodification::KReason );
+        XnPropertyNames::action::trigger::name::orientation::KReason );
 
     CXnDomAttribute* attribute( static_cast< CXnDomAttribute* >
         ( attributeList.FindByName( reason ) ) );
@@ -2763,9 +2428,9 @@
     const TDesC8& value( attribute->Value() );
 
     if ( value ==
-         XnPropertyNames::action::trigger::name::uidefinitionmodification::reason::KLandscape ||
+         XnPropertyNames::action::trigger::name::orientation::reason::KLandscape ||
          value ==
-         XnPropertyNames::action::trigger::name::uidefinitionmodification::reason::KPortrait )
+         XnPropertyNames::action::trigger::name::orientation::reason::KPortrait )
         {
         CXnProperty* reasonProp( aEventData.GetPropertyL( reason ) );
 
@@ -2914,7 +2579,7 @@
     CXnNode& aEventData,
     CXnDomNode& aActionNode,
     CXnDomNode& aTriggerNode,
-    TInt aSource )
+    TInt /*aSource*/ )
     {
     const TDesC8& nameString( aTriggerNode.AttributeValue( KName ) );
 
@@ -2928,61 +2593,15 @@
 
     if ( nameString == eventNameString )
         {
-        if ( nameString == XnPropertyNames::action::trigger::name::KStylus )
-            {
-            if ( !MatchStylusTriggerL( aEventData, aTriggerNode ) )
-                {
-                return EFalse;
-                }
-            }
         // Check if triggernode properties match the ones defined in theme
         // This is for identifying keyup in activate-trigger
-        else if ( nameString == XnPropertyNames::action::trigger::name::KActivate )
+        if ( nameString == XnPropertyNames::action::trigger::name::KActivate )
             {
             if ( !MatchActivateTriggerPropertiesL( aEventData, aTriggerNode ) )
                 {
                 return EFalse;
                 }
             }
-        // Check if the trigger is timed trigger
-        else if ( MatchTimedTriggerPropertiesL( aTriggerNode ) )
-            {
-            if ( !aThis->PeriodicTimer() )
-                {
-                aThis->CreatePeriodicL();
-                }
-
-            if ( !aThis->PeriodicTimer()->IsActive() )
-                {
-                TXnTimedTrigger* params = new ( ELeave ) TXnTimedTrigger;
-                CleanupStack::PushL( params );
-
-                params->iNodeImpl = aThis;
-                params->iEngine = &aEngine;
-                params->iNode = &aNode;
-                params->iEventData = &aEventData;
-                params->iActionNode = &aActionNode;
-                params->iTriggerNode = &aTriggerNode;
-
-                TInt delay( 0 );
-
-                ResolveTriggerDelayL( aEngine, aTriggerNode, delay );
-                aNode.SetTriggerDelay( delay );
-
-                CleanupStack::Pop( params );
-
-                aThis->PeriodicTimer()->Start(
-                    TTimeIntervalMicroSeconds32( delay ),
-                    TTimeIntervalMicroSeconds32( delay ),
-                    TCallBack( CXnNodeImpl::PeriodicEventL, params ) );
-
-                return ETrue;
-                }
-            else
-                {
-                return EFalse;
-                }
-            }
         else if ( nameString == XnPropertyNames::action::trigger::name::KTitleToScroll ||
                   nameString == XnPropertyNames::action::trigger::name::KTitleScrolled )
             {
@@ -3015,27 +2634,6 @@
                 return EFalse;
                 }
             }
-        else if ( aSource != XnEventSource::EUnknown )
-            {
-            CXnDomAttribute* attr = static_cast< CXnDomAttribute* >
-                ( aTriggerNode.AttributeList().FindByName(
-                    XnPropertyNames::common::KEventFilter ) );
-            if ( attr )
-                {
-                if ( attr->Value().Find(XnPropertyNames::action::trigger::name::KStylus)
-                     != KErrNotFound &&
-                     aSource == XnEventSource::EStylus )
-                    {
-                    return EFalse;
-                    }
-                else if ( attr->Value().Find(XnPropertyNames::action::trigger::name::KKeyEvent)
-                          != KErrNotFound &&
-                          aSource == XnEventSource::EKey )
-                    {
-                    return EFalse;
-                    }
-                }
-            }
 
         RunEventsL( aThis, aEngine, aNode, aActionNode, aTriggerNode, aEventData );
 
@@ -3159,17 +2757,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// RunAppExit
-// -----------------------------------------------------------------------------
-//
-static void RunAppExit( CXnUiEngine& aEngine )
-    {
-    CXnAppUiAdapter& adapter( aEngine.AppUiAdapter() );
-    
-    adapter.Exit();
-    }
-
-// -----------------------------------------------------------------------------
 // RunFullScreenEffectL
 // -----------------------------------------------------------------------------
 //
@@ -3353,9 +2940,7 @@
     CXnNodeImpl* aThis,
     CXnUiEngine& aEngine,
     CXnDomNode& aEventNode )
-    {    
-    TBool keyEditMode(EFalse);
-    
+    {        
     aEngine.DisableRenderUiLC();
    
     // Set plugins to edit state
@@ -3420,68 +3005,28 @@
 
                     CleanupStack::PopAndDestroy( array );
                     }
-                else if ( name == XnPropertyNames::common::KKeyMoveMode )
-                    {
-                    if ( value == XnPropertyNames::KTrue )
-                        {
-                        keyEditMode = ETrue;
-                        }
-                    }
-                }
-            }
-        }
-    if ( keyEditMode )
-        {
-        for ( TInt i = 0; i < plugins.Count(); i++ )
-            {
-            if ( plugins[i]->Occupied() )
-                {
-                CXnNode* node( plugins[i]->Owner()->LayoutNode() );
-                                             
-                node->SetStateL( XnPropertyNames::style::common::KEdit );                                       
-                }
-            }
-        
-        aEngine.EditMode()->SetEditModeL( CXnEditMode::EKeyMove );
-
-        // Put focus to parent plugin if focused node is not a plugin already
-        CXnNode* focusedNode = aEngine.FocusedNode();
+                }
+            }
+        }
+    TBool useEmpty( aEngine.ViewManager()->ActiveViewData().UseEmptyWidget() );
+    
+    for ( TInt i = 0; i < plugins.Count(); i++ )
+        {
+        CXnNode* node( plugins[i]->Owner()->LayoutNode() );
         
-        if ( focusedNode && focusedNode->DomNode()->Name() != _L8( "plugin" ) )
-            {
-            for ( CXnNode* candidate =
-                  focusedNode; candidate; candidate = candidate->Parent() )
-                {
-                if ( candidate->DomNode()->Name() == _L8( "plugin" ) )
-                    {
-                    candidate->SetStateL( XnPropertyNames::style::common::KFocus );
-                    break;
-                    }
-                }
-            }
-        }
-    else 
-        {        
-        TBool useEmpty( aEngine.ViewManager()->ActiveViewData().UseEmptyWidget() );
-        
-        for ( TInt i = 0; i < plugins.Count(); i++ )
-            {
-            CXnNode* node( plugins[i]->Owner()->LayoutNode() );
-            
-            node->SetStateL( XnPropertyNames::style::common::KEdit );
-                                   
-            if ( !plugins[i]->Occupied() && useEmpty )
-                {                               
-                // Make empty space visible
-                SetStringPropertyToNodeL( *sp, *node,
-                    XnPropertyNames::style::common::KVisibility,
-                    XnPropertyNames::style::common::visibility::KVisible );                    
-                }                                              
-            }
-        
+        node->SetStateL( XnPropertyNames::style::common::KEdit );
+                               
+        if ( !plugins[i]->Occupied() && useEmpty )
+            {                               
+            // Make empty space visible
+            SetStringPropertyToNodeL( *sp, *node,
+                XnPropertyNames::style::common::KVisibility,
+                XnPropertyNames::style::common::visibility::KVisible );                    
+            }                                              
+        }
+    
         aEngine.EditMode()->SetEditModeL( CXnEditMode::EDragAndDrop );        
-        aEngine.AppUiAdapter().ViewAdapter().BgManager().DrawNow();
-        }
+        aEngine.AppUiAdapter().ViewAdapter().CloseAllPopupsL();
 
     CleanupStack::PopAndDestroy();
     
@@ -3497,9 +3042,6 @@
     CXnUiEngine& aEngine,
     CXnDomNode& aEventNode )
     {    
-    TBool keyEditMode( 
-            aEngine.EditMode()->EditState() == CXnEditMode::EKeyMove );
-    
     CXnDomList& children( aEventNode.ChildNodes() );
 
     TInt count( children.Length() );
@@ -3558,40 +3100,24 @@
 
     CXnDomStringPool* sp( aEventNode.StringPool() );
 
-    if ( keyEditMode )
-        {
-        for ( TInt i = 0; i < plugins.Count(); i++ )
-            {
-            if ( plugins[i]->Occupied() )
-                {
-                CXnNode* node( plugins[i]->Owner()->LayoutNode() );
-                                             
-                node->UnsetStateL( XnPropertyNames::style::common::KEdit );                                       
-                }
-            }        
-        }
-    else
-        {
-        TBool useEmpty( aEngine.ViewManager()->ActiveViewData().UseEmptyWidget() );
+    TBool useEmpty( aEngine.ViewManager()->ActiveViewData().UseEmptyWidget() );
+    
+    for ( TInt i = 0; i < plugins.Count(); i++ )
+        {
+        CXnNode* node( plugins[i]->Owner()->LayoutNode() );
+        
+        node->UnsetStateL( XnPropertyNames::style::common::KEdit );
         
-        for ( TInt i = 0; i < plugins.Count(); i++ )
-            {
-            CXnNode* node( plugins[i]->Owner()->LayoutNode() );
-            
-            node->UnsetStateL( XnPropertyNames::style::common::KEdit );
-            
-            if ( !plugins[i]->Occupied() && useEmpty )
-                {                               
-                // Make empty space blank
-                SetStringPropertyToNodeL( *sp, *node,
-                    XnPropertyNames::style::common::KVisibility,
-                    XnPropertyNames::style::common::visibility::KBlank );                    
-                }
-            }                
-        }
+        if ( !plugins[i]->Occupied() && useEmpty )
+            {                               
+            // Make empty space blank
+            SetStringPropertyToNodeL( *sp, *node,
+                XnPropertyNames::style::common::KVisibility,
+                XnPropertyNames::style::common::visibility::KBlank );                    
+            }
+        }                
     
     aEngine.EditMode()->SetEditModeL( CXnEditMode::ENone );   
-    aEngine.AppUiAdapter().ViewAdapter().BgManager().DrawNow();
 
     aEngine.AppUiAdapter().ViewAdapter().UpdateRskByModeL();
     }
@@ -3832,28 +3358,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// RunResetStylusCounterL
-// -----------------------------------------------------------------------------
-//
-static void RunResetStylusCounterL(
-    CXnNodeImpl* aThis,
-    CXnUiEngine& aEngine,
-    const TDesC8& aId )
-    {
-    CXnNode* node( aEngine.FindNodeByIdL( aId, aThis->Namespace() ) );
-
-    if ( node )
-        {
-        CXnControlAdapter* adapter( node->Control() );
-
-        if ( adapter )
-            {
-            adapter->ResetStylusCounter();
-            }
-        }
-    }
-
-// -----------------------------------------------------------------------------
 // GetSystemSetDataL
 // -----------------------------------------------------------------------------
 //
@@ -4155,11 +3659,11 @@
 
         for( TInt i = 0; i < pluginNodes.Count(); i++ )
             {
-            CXnPluginData& data( viewData.Plugin( pluginNodes[i] ) );
+            CXnPluginData* data( viewData.Plugin( pluginNodes[i] ) );
             
-            if( data.Occupied() )
-                {
-                plugins.AppendL( &data );
+            if( data && data->Occupied() )
+                {
+                plugins.AppendL( data );
                 }
             }
         
@@ -4302,35 +3806,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// ResolveTriggerDelayL
-// -----------------------------------------------------------------------------
-//
-static void ResolveTriggerDelayL(
-    CXnUiEngine& /*aEngine*/,
-    CXnDomNode& aNode,
-    TInt& aDelay )
-    {
-    CXnDomList& children = aNode.ChildNodes();
-    for ( TInt i = 0; i < children.Length(); i++ )
-        {
-        CXnDomNode* child = static_cast< CXnDomNode* >( children.Item( i ) );
-        const TDesC8& name = child->AttributeValue( XnPropertyNames::action::KName );
-        if ( name == XnPropertyNames::action::trigger::KDelay )
-            {
-            const TDesC8& value = child->AttributeValue( XnPropertyNames::action::KValue );
-            if ( value != KNullDesC8 )
-                {
-                TInt triggerDelay( 0 );
-                TLex8 lex;
-                lex.Assign( value );
-                lex.Val( triggerDelay );
-                aDelay = triggerDelay;
-                }
-            }
-        }
-    }
-
-// -----------------------------------------------------------------------------
 // RunEventL
 // -----------------------------------------------------------------------------
 //
@@ -4402,19 +3877,6 @@
         RunResetEditL( aThis, aEngine, aEventNode );
         return ETrue;
         }
-    else if ( nameString == XnPropertyNames::action::event::KResetStylusCounter )
-        {
-        HBufC8* id( NULL );
-
-        GetSystemSetDataL( aEventNode, id );
-        CleanupStack::PushL( id );
-
-        RunResetStylusCounterL( aThis, aEngine, *id );
-
-        CleanupStack::PopAndDestroy( id );
-
-        return EFalse;
-        }
     else if ( nameString == XnPropertyNames::action::event::KRunAddWidgetQuery )
         {
         aEngine.Editor()->AddWidgetL();
@@ -4465,10 +3927,6 @@
         RunDeactivateL( aThis, aEngine, aEventNode );
         return ETrue;
         }
-    else if ( nameString == XnPropertyNames::action::event::KExit )
-        {
-        RunAppExit( aEngine );
-        }
     else if ( nameString == XnPropertyNames::action::event::KTryDisplayingMenu )
         {
         RunTryDisplayingMenuL( aEngine, aEventNode );
@@ -4548,29 +4006,6 @@
                 
         return ETrue;
         }
-    else if ( nameString == XnPropertyNames::action::event::KRestartTriggerTimer )
-        {
-        TInt delay( 0 );
-
-        ResolveTriggerDelayL( aEngine, aEventNode, delay );
-
-        if ( delay > 0 )
-            {
-            aNode.RestartTimedTrigger( delay );
-            }
-        else
-            {
-            TTimeIntervalMicroSeconds32 delayms = aNode.TriggerDelay();
-            aNode.RestartTimedTrigger( delayms.Int() );
-            }
-
-        return ETrue;
-        }
-    else if ( nameString == XnPropertyNames::action::event::KCancelTriggerTimer )
-        {
-        aNode.RestartTimedTrigger();
-        return ETrue;
-        }
     else if ( nameString == XnPropertyNames::action::event::KSetWallpaper )
         {
         aEngine.AppUiAdapter().ViewAdapter().BgManager().SetWallpaperL();
@@ -4915,7 +4350,7 @@
         {
         const TDesC8& loopValue = navLoopProperty->StringValue();
         if ( loopValue != KNullDesC8 &&
-             loopValue == XnPropertyNames::grid::s60_focus_looping::KStop )
+             loopValue == XnPropertyNames::style::common::s60_focus_looping::KStop )
             {
             return NULL;
             }
@@ -6556,13 +5991,12 @@
         {
         
         CXnAppUiAdapter& appui = static_cast< CXnAppUiAdapter& >( *iAvkonAppUi );
-        CXnPluginData& plugin( 
+        CXnPluginData* plugin( 
                     appui.ViewManager().ActiveViewData().Plugin( &aNode ) );
         
-        // find if node is in a widget that contatins some opened popup window
-       
-        TBool containsPopUp = plugin.IsDisplayingPopup();
-        
+        // find if node is in a widget that contatins some opened popup window       
+        TBool containsPopUp = ( plugin ? plugin->IsDisplayingPopup() : EFalse );
+
         CXnNode* nextNode( NULL );
         RPointerArray< CXnNode >& array = aEngine.ViewManager()->AppearanceNodes();
         if ( aKeyEvent.iScanCode == EStdKeyDownArrow )
@@ -7081,7 +6515,7 @@
     if ( navLoopProperty )
         {
         const TDesC8& loopValue = navLoopProperty->StringValue();
-        if ( loopValue == XnPropertyNames::grid::s60_focus_looping::KStop )
+        if ( loopValue == XnPropertyNames::style::common::s60_focus_looping::KStop )
             {
             return EFalse;
             }
@@ -7400,9 +6834,7 @@
     iPropertyPseudoClasses.Reset();
     iStates.Reset();
     iChildren.ResetAndDestroy();
-    delete iGridPropertyCache;
     delete iLayoutPropertyCache;
-    DeletePeriodic();
     }
 
 // -----------------------------------------------------------------------------
@@ -7601,17 +7033,6 @@
 //
 const TDesC8& CXnNodeImpl::GetPCData()
     {
-    if ( iRef )
-        {
-        CXnNode* refNode( NULL );
-        TRAP_IGNORE( refNode = RefNodeL( this, iRef, iUiEngine ) );
-
-        if ( refNode )
-            {
-            return refNode->GetPCData();
-            }
-        }
-
     return iDomNode->PCData();
     }
 
@@ -7630,7 +7051,7 @@
 // Searchs and shoes tooltips
 // -----------------------------------------------------------------------------
 //
-void CXnNodeImpl::ShowPopupsL( TRect aRect, TInt /*aSource*/ )
+void CXnNodeImpl::ShowPopupsL( TRect aRect, TInt aSource )
     {
     if ( iHandleTooltip )
         {
@@ -7647,7 +7068,17 @@
 
                 if ( popup )
                     {
-                    popup->ShowPopupL( aRect );
+                    if ( aSource == XnEventSource::EStylus )
+                        {
+                        const TTimeIntervalMicroSeconds32 delay( 0 );                       
+                        const TTimeIntervalMicroSeconds32 display( 1000 * 1000 * 6 );                                                
+                        
+                        popup->ShowPopupL( aRect, delay, display );
+                        }
+                    else
+                        {
+                        popup->ShowPopupL( aRect );
+                        }
                     }
                 }
             }
@@ -7858,15 +7289,6 @@
     {
     TInt level( XnDirtyLevel::ENone );
 
-    const TDesC8* refid( CheckRefAttributeL( iRef ) );
-
-    if ( refid && aProperty->Property()->Name() != XnPropertyNames::common::KId )
-        {
-        delete aProperty;
-
-        return level;
-        }
-
     const TDesC8& name( aProperty->Property()->Name() );
 
     CXnProperty* prop( GetPropertyL( name ) );
@@ -7895,7 +7317,6 @@
             SetCachedProperty(
                 aProperty,
                 iLayoutPropertyCache,
-                iRef,
                 iName,
                 iValue,
                 iLabel,
@@ -7904,7 +7325,6 @@
                 iId,
                 iPath,
                 iMaskPath,
-                iGridPropertyCache,
                 EFalse,
                 EFalse );
             }
@@ -7914,7 +7334,6 @@
         SetCachedProperty(
             aProperty,
             iLayoutPropertyCache,
-            iRef,
             iName,
             iValue,
             iLabel,
@@ -7923,7 +7342,6 @@
             iId,
             iPath,
             iMaskPath,
-            iGridPropertyCache,
             EFalse,
             EFalse );
         }
@@ -7983,15 +7401,6 @@
 //
 void CXnNodeImpl::InitializePropertyL( CXnProperty* aProperty )
     {
-    const TDesC8* refid( CheckRefAttributeL( iRef ) );
-
-    if ( refid && aProperty->Property()->Name() != XnPropertyNames::common::KId )
-        {
-        delete aProperty;
-
-        return;
-        }
-
     if ( aProperty->Property()->PseudoClass() != CXnDomProperty::ENone )
         {
         InsertPropertyPseudoClassL(
@@ -8000,7 +7409,6 @@
         SetCachedProperty(
             aProperty,
             iLayoutPropertyCache,
-            iRef,
             iName,
             iValue,
             iLabel,
@@ -8009,7 +7417,6 @@
             iId,
             iPath,
             iMaskPath,
-            iGridPropertyCache,
             ETrue,
             ETrue );
         }
@@ -8018,7 +7425,6 @@
         SetCachedProperty(
             aProperty,
             iLayoutPropertyCache,
-            iRef,
             iName,
             iValue,
             iLabel,
@@ -8027,7 +7433,6 @@
             iId,
             iPath,
             iMaskPath,
-            iGridPropertyCache,
             ETrue,
             EFalse );
         }
@@ -8042,13 +7447,6 @@
 //
 CXnProperty* CXnNodeImpl::GetPropertyL( const TDesC8& aKey )
     {
-    CXnNode* refNode( RefNodeL( this, iRef, iUiEngine ) ) ;
-
-    if ( refNode && aKey != KRef && aKey != KId )
-        {
-        return refNode->GetPropertyL( aKey );
-        }
-
     CXnDomProperty* attribute = NULL;
     CXnProperty* property = iPropertyList->GetProperty( aKey );
 
@@ -8581,17 +7979,10 @@
 // Returns a property.
 // -----------------------------------------------------------------------------
 //
-static CXnProperty* PropertyL( CXnNodeImpl* aThis, CXnProperty* aProperty,
-    CXnProperty* ( CXnNode::* aFunc )(), CXnUiEngine* aUiEngine,
-    TAny* aLayoutPropertyCache, CXnNode* aParent, CXnProperty* aRef )
-    {
-    CXnNode* refNode( RefNodeL( aThis, aRef, aUiEngine ) ) ;
-
-    if ( refNode )
-        {
-        return ( refNode->*aFunc )();
-        }
-
+static CXnProperty* PropertyL( CXnProperty* aProperty,
+    CXnProperty* ( CXnNode::* aFunc )(),
+    TAny* aLayoutPropertyCache, CXnNode* aParent )
+    {
     if ( aLayoutPropertyCache && aProperty )
         {
         CXnDomProperty* attribute = aProperty->Property();
@@ -8624,93 +8015,16 @@
     }
 
 // -----------------------------------------------------------------------------
-// ReferredPropertyL
-// Returns a referred property.
-// -----------------------------------------------------------------------------
-//
-static CXnProperty* ReferredPropertyL(
-    RPointerArray< CXnProperty >* aPropertyArray,
-    RArray< CXnDomProperty::TPseudoClass >& aStates )
-    {
-    if ( !aPropertyArray )
-        {
-        return NULL;
-        }
-    for ( TInt i = aPropertyArray->Count() - 1; i >= 0; --i )
-        {
-        CXnProperty* tmp = ( *aPropertyArray )[i];
-        for ( TInt j = aStates.Count() - 1; j >= 0; --j )
-            {
-            if ( aStates[j] == tmp->Property()->PseudoClass() )
-                {
-                return tmp;
-                }
-            }
-        for ( TInt j = aStates.Count() - 1; j >= 0; --j )
-            {
-            if ( tmp->Property()->PseudoClass() == CXnDomProperty::ENone )
-                {
-                return tmp;
-                }
-            }
-        }
-    for ( TInt i = aPropertyArray->Count() - 1; i >= 0; --i )
-        {
-        CXnProperty* tmp = ( *aPropertyArray )[i];
-        if ( tmp->Property()->PseudoClass() == CXnDomProperty::ENone )
-            {
-            return tmp;
-            }
-        }
-    return NULL;
-    }
-
-// -----------------------------------------------------------------------------
-// RefNodeL
-// Returns referred node.
-// -----------------------------------------------------------------------------
-//
-static CXnNode* RefNodeL(
-    CXnNodeImpl* aThis,
-    CXnProperty* aRef,
-    CXnUiEngine* aUiEngine )
-    {
-    const TDesC8* refid( CheckRefAttributeL( aRef ) );
-
-    if ( refid )
-        {
-        CXnNode* node( aUiEngine->FindNodeByIdL( *refid, aThis->Namespace() ) );
-
-        if ( node )
-            {
-            return node;
-            }
-        }
-
-    return NULL;
-    }
-
-// -----------------------------------------------------------------------------
 // CXnNodeImpl::WidthL
 // Returns width property.
 // -----------------------------------------------------------------------------
 //
 CXnProperty* CXnNodeImpl::WidthL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iWidths ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iWidth : NULL;
-    return PropertyL( this, property, &CXnNode::WidthL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::WidthL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -8720,20 +8034,10 @@
 //
 CXnProperty* CXnNodeImpl::HeightL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if (refNode)
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iHeights ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iHeight : NULL;
-    return PropertyL( this, property, &CXnNode::HeightL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::HeightL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -8743,22 +8047,12 @@
 //
 CXnProperty* CXnNodeImpl::MarginLeftL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iMarginLefts ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ?
         iLayoutPropertyCache->iMarginLeft :
         NULL;
-    return PropertyL( this, property, &CXnNode::MarginLeftL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::MarginLeftL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -8768,22 +8062,12 @@
 //
 CXnProperty* CXnNodeImpl::MarginRightL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iMarginRights ) :
-            NULL;
-        return ReferredPropertyL(propertyArray, iStates);
-        }
     CXnProperty* property =
         iLayoutPropertyCache ?
         iLayoutPropertyCache->iMarginRight :
         NULL;
-    return PropertyL( this, property, &CXnNode::MarginRightL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::MarginRightL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -8793,21 +8077,11 @@
 //
 CXnProperty* CXnNodeImpl::BorderLeftL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iBorderLefts ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property = iLayoutPropertyCache ?
         iLayoutPropertyCache->iBorderLeft :
         NULL;
-    return PropertyL( this, property, &CXnNode::BorderLeftL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::BorderLeftL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -8817,22 +8091,12 @@
 //
 CXnProperty* CXnNodeImpl::BorderRightL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iBorderRights ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ?
         iLayoutPropertyCache->iBorderRight :
         NULL;
-    return PropertyL( this, property, &CXnNode::BorderRightL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::BorderRightL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -8842,22 +8106,12 @@
 //
 CXnProperty* CXnNodeImpl::PaddingLeftL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iPaddingLefts ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ?
         iLayoutPropertyCache->iPaddingLeft :
         NULL;
-    return PropertyL( this, property, &CXnNode::PaddingLeftL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::PaddingLeftL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -8867,20 +8121,10 @@
 //
 CXnProperty* CXnNodeImpl::PaddingRightL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iPaddingRights ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iPaddingRight : NULL;
-    return PropertyL( this, property, &CXnNode::PaddingRightL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::PaddingRightL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -8890,20 +8134,10 @@
 //
 CXnProperty* CXnNodeImpl::MarginTopL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iMarginTops ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iMarginTop : NULL;
-    return PropertyL( this, property, &CXnNode::MarginTopL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::MarginTopL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -8913,20 +8147,10 @@
 //
 CXnProperty* CXnNodeImpl::MarginBottomL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iMarginBottoms ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iMarginBottom : NULL;
-    return PropertyL( this, property, &CXnNode::MarginBottomL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::MarginBottomL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -8936,20 +8160,10 @@
 //
 CXnProperty* CXnNodeImpl::BorderTopL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iBorderTops ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iBorderTop : NULL;
-    return PropertyL( this, property, &CXnNode::BorderTopL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::BorderTopL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -8959,20 +8173,10 @@
 //
 CXnProperty* CXnNodeImpl::BorderBottomL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iBorderBottoms ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iBorderBottom : NULL;
-    return PropertyL( this, property, &CXnNode::BorderBottomL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::BorderBottomL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -8982,20 +8186,10 @@
 //
 CXnProperty* CXnNodeImpl::PaddingTopL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iPaddingTops ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iPaddingTop : NULL;
-    return PropertyL( this, property, &CXnNode::PaddingTopL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::PaddingTopL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9005,20 +8199,10 @@
 //
 CXnProperty* CXnNodeImpl::PaddingBottomL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iPaddingBottoms ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iPaddingBottom : NULL;
-    return PropertyL( this, property, &CXnNode::PaddingBottomL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::PaddingBottomL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9028,20 +8212,10 @@
 //
 CXnProperty* CXnNodeImpl::BorderWidthL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iBorderWidths ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iBorderWidth : NULL;
-    return PropertyL( this, property, &CXnNode::BorderWidthL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::BorderWidthL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9051,20 +8225,10 @@
 //
 CXnProperty* CXnNodeImpl::BlockProgressionL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iBlockProgressions ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iBlockProgression : NULL;
-    return PropertyL( this, property, &CXnNode::BlockProgressionL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::BlockProgressionL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9074,20 +8238,10 @@
 //
 CXnProperty* CXnNodeImpl::DirectionL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iDirections ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iDirection : NULL;
-    return PropertyL( this, property, &CXnNode::DirectionL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::DirectionL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9097,20 +8251,10 @@
 //
 CXnProperty* CXnNodeImpl::PositionL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iPositions ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iPosition : NULL;
-    return PropertyL( this, property, &CXnNode::PositionL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::PositionL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9120,20 +8264,10 @@
 //
 CXnProperty* CXnNodeImpl::MaxHeightL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iMaxHeights ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iMaxHeight : NULL;
-    return PropertyL( this, property, &CXnNode::MaxHeightL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::MaxHeightL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9143,20 +8277,10 @@
 //
 CXnProperty* CXnNodeImpl::MinHeightL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iMinHeights ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iMinHeight : NULL;
-    return PropertyL( this, property, &CXnNode::MinHeightL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::MinHeightL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9166,20 +8290,10 @@
 //
 CXnProperty* CXnNodeImpl::MaxWidthL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iMaxWidths ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iMaxWidth : NULL;
-    return PropertyL( this, property, &CXnNode::MaxWidthL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::MaxWidthL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9189,20 +8303,10 @@
 //
 CXnProperty* CXnNodeImpl::MinWidthL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iMinWidths ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iMinWidth : NULL;
-    return PropertyL( this, property, &CXnNode::MinWidthL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::MinWidthL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9212,20 +8316,10 @@
 //
 CXnProperty* CXnNodeImpl::DisplayL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iDisplays ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iDisplay : NULL;
-    return PropertyL( this, property, &CXnNode::DisplayL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::DisplayL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9235,20 +8329,10 @@
 //
 CXnProperty* CXnNodeImpl::LeftL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iLefts ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iLeft : NULL;
-    return PropertyL( this, property, &CXnNode::LeftL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::LeftL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9258,20 +8342,10 @@
 //
 CXnProperty* CXnNodeImpl::RightL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iRights ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iRight : NULL;
-    return PropertyL( this, property, &CXnNode::RightL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::RightL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9281,20 +8355,10 @@
 //
 CXnProperty* CXnNodeImpl::TopL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iTops ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iTop : NULL;
-    return PropertyL( this, property, &CXnNode::TopL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::TopL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9304,20 +8368,10 @@
 //
 CXnProperty* CXnNodeImpl::BottomL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iBottoms ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iBottom : NULL;
-    return PropertyL( this, property, &CXnNode::BottomL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::BottomL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9327,20 +8381,10 @@
 //
 CXnProperty* CXnNodeImpl::BorderLeftStyleL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iBorderLeftStyles ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iBorderLeftStyle : NULL;
-    return PropertyL( this, property, &CXnNode::BorderLeftStyleL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::BorderLeftStyleL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9350,20 +8394,10 @@
 //
 CXnProperty* CXnNodeImpl::BorderRightStyleL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iBorderRightStyles ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iBorderRightStyle : NULL;
-    return PropertyL( this, property, &CXnNode::BorderRightStyleL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::BorderRightStyleL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9373,20 +8407,10 @@
 //
 CXnProperty* CXnNodeImpl::BorderTopStyleL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iBorderTopStyles ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iBorderTopStyle : NULL;
-    return PropertyL( this, property, &CXnNode::BorderTopStyleL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::BorderTopStyleL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9396,20 +8420,10 @@
 //
 CXnProperty* CXnNodeImpl::BorderBottomStyleL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iBorderBottomStyles ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iBorderBottomStyle : NULL;
-    return PropertyL( this, property, &CXnNode::BorderBottomStyleL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::BorderBottomStyleL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9419,20 +8433,10 @@
 //
 CXnProperty* CXnNodeImpl::BorderStyleL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iBorderStyles ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iBorderStyle : NULL;
-    return PropertyL( this, property, &CXnNode::BorderStyleL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::BorderStyleL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9444,9 +8448,8 @@
     {
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iBorderImage : NULL;
-    return PropertyL( this, property, &CXnNode::BorderImageL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::BorderImageL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9456,20 +8459,10 @@
 //
 CXnProperty* CXnNodeImpl::DisplayPriorityL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iDisplayPriorities ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iDisplayPriority : NULL;
-    return PropertyL( this, property, &CXnNode::DisplayPriorityL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::DisplayPriorityL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9479,9 +8472,7 @@
 //
 CXnProperty* CXnNodeImpl::NameL()
     {
-    return PropertyL( this, iName, &CXnNode::NameL,
-        iUiEngine, this,
-        iParent, iRef );
+    return PropertyL( iName, &CXnNode::NameL, this, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9491,9 +8482,7 @@
 //
 CXnProperty* CXnNodeImpl::ValueL()
     {
-    return PropertyL( this, iValue, &CXnNode::ValueL,
-        iUiEngine, this,
-        iParent, iRef );
+    return PropertyL( iValue, &CXnNode::ValueL, this, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9503,20 +8492,10 @@
 //
 CXnProperty* CXnNodeImpl::VisibilityL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iVisibilities ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iVisibility : NULL;
-    return PropertyL( this, property, &CXnNode::VisibilityL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::VisibilityL, 
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9526,9 +8505,7 @@
 //
 CXnProperty* CXnNodeImpl::LabelL()
     {
-    return PropertyL( this, iLabel, &CXnNode::LabelL,
-        iUiEngine, this,
-        iParent, iRef );
+    return PropertyL( iLabel, &CXnNode::LabelL, this, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9538,9 +8515,7 @@
 //
 CXnProperty* CXnNodeImpl::InitialFocusL()
     {
-    return PropertyL( this, iInitialFocus, &CXnNode::InitialFocusL,
-        iUiEngine, this,
-        iParent, iRef );
+    return PropertyL( iInitialFocus, &CXnNode::InitialFocusL, this, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9550,9 +8525,7 @@
 //
 CXnProperty* CXnNodeImpl::ClassL()
     {
-    return PropertyL( this, iClass, &CXnNode::ClassL,
-        iUiEngine, this,
-        iParent, iRef );
+    return PropertyL( iClass, &CXnNode::ClassL, this, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9596,9 +8569,7 @@
 //
 CXnProperty* CXnNodeImpl::PathL()
     {
-    return PropertyL( this, iPath, &CXnNode::PathL,
-        iUiEngine, this,
-        iParent, iRef );
+    return PropertyL( iPath, &CXnNode::PathL, this, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9608,9 +8579,7 @@
 //
 CXnProperty* CXnNodeImpl::MaskPathL()
     {
-    return PropertyL( this, iMaskPath, &CXnNode::MaskPathL,
-        iUiEngine, this,
-        iParent, iRef );
+    return PropertyL( iMaskPath, &CXnNode::MaskPathL, this, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9620,118 +8589,10 @@
 //
 CXnProperty* CXnNodeImpl::NavIndexL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iNavIndexes ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iNavIndex : NULL;
-    return PropertyL( this, property, &CXnNode::NavIndexL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
-    }
-
-// -----------------------------------------------------------------------------
-// CXnNodeImpl::VisibleRowsL
-// Returns visible-rows property.
-// -----------------------------------------------------------------------------
-//
-CXnProperty* CXnNodeImpl::VisibleRowsL()
-    {
-    CXnProperty* property =
-        iGridPropertyCache ? iGridPropertyCache->iVisibleRows : NULL;
-    return PropertyL( this, property, &CXnNode::VisibleRowsL,
-        iUiEngine, iGridPropertyCache,
-        iParent, iRef );
-    }
-
-// -----------------------------------------------------------------------------
-// CXnNodeImpl::GridColumnsL
-// Returns grid-columns property.
-// -----------------------------------------------------------------------------
-//
-CXnProperty* CXnNodeImpl::GridColumnsL()
-    {
-    CXnProperty* property =
-        iGridPropertyCache ? iGridPropertyCache->iGridColumns : NULL;
-    return PropertyL( this, property, &CXnNode::GridColumnsL,
-        iUiEngine, iGridPropertyCache,
-        iParent, iRef );
-    }
-
-// -----------------------------------------------------------------------------
-// CXnNodeImpl::GridOrientationL
-// Returns grid-orientation property.
-// -----------------------------------------------------------------------------
-//
-CXnProperty* CXnNodeImpl::GridOrientationL()
-    {
-    CXnProperty* property =
-        iGridPropertyCache ? iGridPropertyCache->iGridOrientation : NULL;
-    return PropertyL( this, property, &CXnNode::GridOrientationL,
-        iUiEngine, iGridPropertyCache,
-        iParent, iRef );
-    }
-
-// -----------------------------------------------------------------------------
-// CXnNodeImpl::GridVerDirectionL
-// Returns grid-ver-direction property.
-// -----------------------------------------------------------------------------
-//
-CXnProperty* CXnNodeImpl::GridVerDirectionL()
-    {
-    CXnProperty* property =
-        iGridPropertyCache ? iGridPropertyCache->iGridVerDirection : NULL;
-    return PropertyL( this, property, &CXnNode::GridVerDirectionL,
-        iUiEngine, iGridPropertyCache,
-        iParent, iRef );
-    }
-
-// -----------------------------------------------------------------------------
-// CXnNodeImpl::GridHorDirectionL
-// Returns grid-hor-direction property.
-// -----------------------------------------------------------------------------
-//
-CXnProperty* CXnNodeImpl::GridHorDirectionL()
-    {
-    CXnProperty* property =
-        iGridPropertyCache ? iGridPropertyCache->iGridHorDirection : NULL;
-    return PropertyL( this, property, &CXnNode::GridHorDirectionL,
-        iUiEngine, iGridPropertyCache,
-        iParent, iRef );
-    }
-
-// -----------------------------------------------------------------------------
-// CXnNodeImpl::FocusHorLoopingL
-// Returns focus-hor-looping property.
-// -----------------------------------------------------------------------------
-//
-CXnProperty* CXnNodeImpl::FocusHorLoopingL()
-    {
-    CXnProperty* property =
-        iGridPropertyCache ? iGridPropertyCache->iFocusHorLooping : NULL;
-    return PropertyL( this, property, &CXnNode::FocusHorLoopingL,
-        iUiEngine, iGridPropertyCache,
-        iParent, iRef );
-    }
-
-// -----------------------------------------------------------------------------
-// CXnNodeImpl::FocusVerLoopingL
-// Returns focus-ver-looping property.
-// -----------------------------------------------------------------------------
-//
-CXnProperty* CXnNodeImpl::FocusVerLoopingL()
-    {
-    CXnProperty* property =
-        iGridPropertyCache ? iGridPropertyCache->iFocusVerLooping : NULL;
-    return PropertyL( this, property, &CXnNode::FocusVerLoopingL,
-        iUiEngine, iGridPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::NavIndexL, 
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9741,20 +8602,10 @@
 //
 CXnProperty* CXnNodeImpl::ZIndexL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iZIndexes ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iZIndex : NULL;
-    return PropertyL( this, property, &CXnNode::ZIndexL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::ZIndexL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9764,20 +8615,10 @@
 //
 CXnProperty* CXnNodeImpl::BackgroundColorL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iBackgroundColors ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iBackgroundColor : NULL;
-    return PropertyL( this, property, &CXnNode::BackgroundColorL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::BackgroundColorL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9787,20 +8628,10 @@
 //
 CXnProperty* CXnNodeImpl::BackgroundImageL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-             &( refNode->Impl()->iLayoutPropertyCache->iBackgroundImages ) :
-             NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iBackgroundImage : NULL;
-    return PropertyL( this, property, &CXnNode::BackgroundImageL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
+    return PropertyL( property, &CXnNode::BackgroundImageL,
+        iLayoutPropertyCache, iParent );
     }
 
 // -----------------------------------------------------------------------------
@@ -9810,174 +8641,11 @@
 //
 CXnProperty* CXnNodeImpl::FocusBackgroundL()
     {
-    CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-
-    if ( refNode )
-        {
-        RPointerArray< CXnProperty >* propertyArray =
-            refNode->Impl()->iLayoutPropertyCache ?
-            &( refNode->Impl()->iLayoutPropertyCache->iFocusBackgrounds ) :
-            NULL;
-        return ReferredPropertyL( propertyArray, iStates );
-        }
-
     CXnProperty* property =
         iLayoutPropertyCache ? iLayoutPropertyCache->iFocusBackground : NULL;
 
-    return PropertyL( this, property, &CXnNode::FocusBackgroundL,
-        iUiEngine, iLayoutPropertyCache,
-        iParent, iRef );
-    }
-
-// -----------------------------------------------------------------------------
-// CXnNodeImpl::RefL
-// Returns ref property.
-// -----------------------------------------------------------------------------
-//
-CXnProperty* CXnNodeImpl::RefL()
-    {
-    return iRef;
-    }
-
-// -----------------------------------------------------------------------------
-// CXnNodeImpl::GridScrollBarWidthL
-// Returns grid-scrollbar-width property.
-// -----------------------------------------------------------------------------
-//
-CXnProperty* CXnNodeImpl::GridScrollBarWidthL()
-    {
-    CXnProperty* property = NULL;
-
-    if ( iGridPropertyCache && iGridPropertyCache->iGridScrollBarWidth)
-        {
-        property = PropertyL(
-            this,
-            iGridPropertyCache->iGridScrollBarWidth,
-            &CXnNode::GridScrollBarWidthL,
-            iUiEngine, iGridPropertyCache,
-            iParent,
-            iRef );
-        }
-
-    if ( !property && iRef )
-        {
-        CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-
-        if ( refNode )
-            {
-            property = refNode->GridScrollBarWidthL();
-            }
-        }
-
-    if ( !property )
-        {
-        TReal sbWidth( KS60ScrollbarDefaultWidth );
-        // Set default value
-        CXnDomDocument& doc = iUiEngine->ODT()->DomDocument();
-        CXnDomProperty* domProperty = CXnDomProperty::NewL(
-            XnPropertyNames::grid::KS60GridScrollbarWidth, doc.StringPool() );
-        CleanupStack::PushL( domProperty );
-        CXnDomPropertyValue* propertyValue = CXnDomPropertyValue::NewL(
-            doc.StringPool() );
-        CleanupStack::PushL( propertyValue );
-        if ( AknLayoutUtils::PenEnabled() )
-            {
-            sbWidth = KS60ScrollbarDefaultWidthPenEnabled;
-            }
-        propertyValue->SetFloatValueL( CXnDomPropertyValue::EUnitValue, sbWidth );
-        domProperty->PropertyValueList().AddItemL( propertyValue );
-        CleanupStack::Pop( propertyValue );
-
-        property = CXnProperty::NewL( domProperty );
-        CleanupStack::Pop( domProperty );
-        CleanupStack::PushL( property );
-
-        // If this is a reference node, set property to the referred node, not this.
-        CXnNode* node = RefNodeL( this, iRef, iUiEngine );
-        if ( node )
-            {
-            node->SetPropertyL( property );
-            }
-        else
-            {
-            this->SetPropertyL( property ); // deletes existing one
-            }
-
-        CleanupStack::Pop( property );
-        }
-
-    return property;
-    }
-
-// -----------------------------------------------------------------------------
-// CXnNodeImpl::GridScrollBarMarginL
-// Returns grid-scrollbar-margin property.
-// -----------------------------------------------------------------------------
-//
-CXnProperty* CXnNodeImpl::GridScrollBarMarginL()
-    {
-    CXnProperty* property = NULL;
-    if ( iGridPropertyCache && iGridPropertyCache->iGridScrollBarMargin )
-        {
-        property = PropertyL(
-            this,
-            iGridPropertyCache->iGridScrollBarMargin,
-            &CXnNode::GridScrollBarMarginL,
-            iUiEngine, iGridPropertyCache,
-            iParent,
-            iRef );
-        }
-
-    if ( !property && iRef )
-        {
-        CXnNode* refNode = RefNodeL( this, iRef, iUiEngine );
-
-        if ( refNode )
-            {
-            property = refNode->GridScrollBarMarginL();
-            }
-        }
-
-    if ( !property )
-        {
-        TReal sbMarginWidth( KS60ScrollbarDefaultMargin );
-        // Set default value
-        CXnDomDocument& doc = iUiEngine->ODT()->DomDocument();
-        CXnDomProperty* domProperty =
-            CXnDomProperty::NewL(
-                XnPropertyNames::grid::KS60GridScrollbarMargin,
-                doc.StringPool() );
-        CleanupStack::PushL( domProperty );
-        CXnDomPropertyValue* propertyValue = CXnDomPropertyValue::NewL(
-            doc.StringPool() );
-        CleanupStack::PushL( propertyValue );
-        if ( AknLayoutUtils::PenEnabled() )
-            {
-            sbMarginWidth = KS60ScrollbarDefaultMarginPenEnabled;
-            }
-        propertyValue->SetFloatValueL(
-            CXnDomPropertyValue::EUnitValue, sbMarginWidth );
-        domProperty->PropertyValueList().AddItemL( propertyValue );
-        CleanupStack::Pop( propertyValue );
-
-        property = CXnProperty::NewL( domProperty );
-        CleanupStack::Pop( domProperty );
-        CleanupStack::PushL( property );
-
-        // If this is a reference node, set property to the referred node, not this.
-        CXnNode* node = RefNodeL( this, iRef, iUiEngine );
-        if ( node )
-            {
-            node->SetPropertyL( property );
-            }
-        else
-            {
-            this->SetPropertyL( property ); // deletes existing one
-            }
-
-        CleanupStack::Pop(property);
-        }
-    return property;
+    return PropertyL( property, &CXnNode::FocusBackgroundL,
+        iLayoutPropertyCache, iParent );
     }
 
 // ----------------------------------------------------------------------------
@@ -10202,57 +8870,6 @@
         }
     }
 
-// ----------------------------------------------------------------------------
-// CXnNodeImpl::PeriodicEventL
-// ----------------------------------------------------------------------------
-//
-TInt CXnNodeImpl::PeriodicEventL( TAny* aPtr )
-    {
-    TXnTimedTrigger* params = static_cast< TXnTimedTrigger* >( aPtr );
-    CXnNodeImpl* impl = params->iNodeImpl;
-    CXnUiEngine* engine = params->iEngine;
-    CXnNode* node = params->iNode;
-    CXnNode* eventData = params->iEventData;
-    CXnDomNode* actionNode = params->iActionNode;
-    CXnDomNode* triggerNode = params->iTriggerNode;
-    RunEventsL( impl, *engine, *node, *actionNode, *triggerNode, *eventData );
-    delete params;
-    impl->DeletePeriodic();
-    return EFalse;
-    }
-
-// ----------------------------------------------------------------------------
-// CXnNodeImpl::PeriodicTimer
-// ----------------------------------------------------------------------------
-//
-CPeriodic* CXnNodeImpl::PeriodicTimer()
-    {
-    return iPeriodicTimer;
-    }
-
-// ----------------------------------------------------------------------------
-// CXnNodeImpl::CreatePeriodicL
-// ----------------------------------------------------------------------------
-//
-void CXnNodeImpl::CreatePeriodicL()
-    {
-    iPeriodicTimer = CPeriodic::NewL( CActive::EPriorityIdle );
-    }
-
-// ---------------------------------------------------------
-// CXnNodeImpl::DeletePeriodic
-// ---------------------------------------------------------
-//
-void CXnNodeImpl::DeletePeriodic()
-    {
-    if ( iPeriodicTimer )
-        {
-        iPeriodicTimer->Cancel();
-        delete iPeriodicTimer;
-        iPeriodicTimer = NULL;
-        }
-    }
-
 // -----------------------------------------------------------------------------
 // CXnNodeImpl::SetDirtyL
 // -----------------------------------------------------------------------------
@@ -10514,4 +9131,3 @@
         }
     return aRect;
     }
-
--- a/idlehomescreen/xmluirendering/uiengine/src/xnnodepluginif.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnnodepluginif.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -366,96 +366,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// CXnNodePluginIf::VisibleRowsL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CXnProperty* CXnNodePluginIf::VisibleRowsL()
-    {
-    return iNode->VisibleRowsL();
-    }
-
-// -----------------------------------------------------------------------------
-// CXnNodePluginIf::GridColumnsL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CXnProperty* CXnNodePluginIf::GridColumnsL()
-    {
-    return iNode->GridColumnsL();
-    }
-
-// -----------------------------------------------------------------------------
-// CXnNodePluginIf::GridOrientationL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CXnProperty* CXnNodePluginIf::GridOrientationL()
-    {
-    return iNode->GridOrientationL();
-    }
-
-// -----------------------------------------------------------------------------
-// CXnNodePluginIf::GridVerDirectionL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CXnProperty* CXnNodePluginIf::GridVerDirectionL()
-    {
-    return iNode->GridVerDirectionL();
-    }
-
-// -----------------------------------------------------------------------------
-// CXnNodePluginIf::GridHorDirectionL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CXnProperty* CXnNodePluginIf::GridHorDirectionL()
-    {
-    return iNode->GridHorDirectionL();
-    }
-
-// -----------------------------------------------------------------------------
-// CXnNodePluginIf::FocusHorLoopingL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CXnProperty* CXnNodePluginIf::FocusHorLoopingL()
-    {
-    return iNode->FocusHorLoopingL();
-    }
-
-// -----------------------------------------------------------------------------
-// CXnNodePluginIf::FocusVerLoopingL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CXnProperty* CXnNodePluginIf::FocusVerLoopingL()
-    {
-    return iNode->FocusVerLoopingL();
-    }
-
-// -----------------------------------------------------------------------------
-// CXnNodePluginIf::RefL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CXnProperty* CXnNodePluginIf::RefL()
-    {
-    return iNode->RefL();
-    }
-
-// -----------------------------------------------------------------------------
-// CXnNodePluginIf::GridScrollBarWidthL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C  CXnProperty* CXnNodePluginIf::GridScrollBarWidthL()
-    {
-    return iNode->GridScrollBarWidthL();
-    }
-
-// -----------------------------------------------------------------------------
-// CXnNodePluginIf::GridScrollBarMarginL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C  CXnProperty* CXnNodePluginIf::GridScrollBarMarginL()
-    {
-    return iNode->GridScrollBarMarginL();
-    }
-
-// -----------------------------------------------------------------------------
 // CXnNodePluginIf::SetHandleTooltip
 // -----------------------------------------------------------------------------
 //
@@ -542,9 +452,7 @@
     {
     const TDesC8& type( iNode->Type()->Type() );
 
-    if ( iNode->IsAdaptive( ETrue ) ||
-         type == _L8( "grid" ) ||
-         type == _L8( "list" ) )
+    if ( iNode->IsAdaptive( ETrue ) )
         {
         iNode->SetDirtyL( XnDirtyLevel::ELayoutAndRender );
         }
--- a/idlehomescreen/xmluirendering/uiengine/src/xnodtparser.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnodtparser.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -60,8 +60,6 @@
 _LIT8( KBoxNodeName, "box" );
 _LIT8( KButtonNodeName, "button" );
 _LIT8( KStylusPopupNodeName, "styluspopup" );
-_LIT8( KListNodeName, "list" );
-_LIT8( KGridNodeName, "grid" );
 _LIT8( KImageNodeName, "image" );
 _LIT8( KTooltipNodeName, "tooltip" );
 _LIT8( KMenuBarNodeName, "menubar" );
@@ -74,8 +72,6 @@
 _LIT8( KTriggerNodeName, "trigger" );
 _LIT8( KEventNodeName, "event" );
 _LIT8( KTextNodeName, "text" );
-_LIT8( KGridCellTemplateNodeName, "gridcelltemplate" );
-_LIT8( KListRowTemplateNodeName, "listrowtemplate" );
 _LIT8( KMarqueeNodeName, "marquee" );
 _LIT8( KObjectNodeName, "object" );
 _LIT8( KTracksterNodeName, "trackster" );
@@ -502,12 +498,8 @@
         returnValue->SetViewNodeImpl( impl );
         CleanupStack::Pop( impl );
         }
-    else if ( name == KGridCellTemplateNodeName ||
-              name == KListRowTemplateNodeName ||
-              name == KBoxNodeName ||
+    else if ( name == KBoxNodeName ||
               name == KButtonNodeName ||
-              name == KListNodeName ||
-              name == KGridNodeName ||
               name == KImageNodeName ||
               name == KMenuBarNodeName ||
               name == KTooltipNodeName ||
--- a/idlehomescreen/xmluirendering/uiengine/src/xnplugindata.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnplugindata.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -35,7 +35,10 @@
 #include "xnoomsyshandler.h"
 #include "xnpanic.h"
 
+#include "debug.h"
+
 // Constants
+_LIT8( KLockingStatusLocked, "locked" );
 
 // ============================ LOCAL FUNCTIONS ================================
 
@@ -132,8 +135,7 @@
         }
 
     iFlags.Clear( EIsEmpty );
-    iFlags.Set( EIsRemovable );
-           
+              
     TInt err( KErrNone );
     
     TRAP( err, err = iManager.Composer().ComposeWidgetL( *this ) );
@@ -224,7 +226,9 @@
 // -----------------------------------------------------------------------------
 //
 TInt CXnPluginData::LoadPublishers( TInt aReason )
-    {                
+    {           
+    __PRINTS( "*** CXnPluginData::LoadPublishers" );
+    
     TInt err( KErrNone );
 
     TRAP( err,
@@ -250,6 +254,8 @@
         return KErrNone;
         }
     
+    __PRINTS( "*** CXnPluginData::LoadPublishers - done" );
+    
     return err;        
     }
 
@@ -259,7 +265,9 @@
 // -----------------------------------------------------------------------------
 //
 void CXnPluginData::DestroyPublishers()
-    {              
+    {    
+    __PRINTS( "*** CXnPluginData::DestroyPublishers" );
+    
     if ( Occupied() )
         {
         // If not all plugins loaded yet               
@@ -269,6 +277,8 @@
         
         User::Heap().Compress();
         }    
+    
+    __PRINTS( "*** CXnPluginData::DestroyPublishers - done" );
     }
 
 // -----------------------------------------------------------------------------
@@ -288,6 +298,8 @@
 //
 void CXnPluginData::DoDestroyPublishersL()
     {
+    __TIME_MARK( time );
+    
     for ( TInt i = 0; i < iContentSourceNodes.Count(); i++ )
         {
         CXnNodeAppIf& plugin( iContentSourceNodes[i]->AppIfL() );
@@ -296,6 +308,8 @@
         iManager.AppUiAdapter().DestroyPublisher( 
             plugin, EAiFwPluginShutdown );        
         }
+    
+    __TIME_ENDMARK( "CXnPluginData::DoDestroyPublishersL, done", time );
     }
 
 // -----------------------------------------------------------------------------
@@ -583,8 +597,7 @@
     // Takes ownership
     iPluginId = id;
            
-    iFlags.Set( EIsEmpty );
-    iFlags.Clear( EIsRemovable );
+    iFlags.Set( EIsEmpty );    
     }
     
 // -----------------------------------------------------------------------------
@@ -619,6 +632,18 @@
     return ( iPopupNodes.Count() > 0 );
     }
 
+// -----------------------------------------------------------------------------
+// CXnPluginData::PopupNodesL()
+// -----------------------------------------------------------------------------
+//
+void CXnPluginData::PopupNodesL( RPointerArray< CXnNode >& aList ) const
+    {
+    for ( TInt i = 0; i < iPopupNodes.Count(); i++ )
+        {
+        aList.AppendL( iPopupNodes[i] );
+        }
+    }
+
 //------------------------------------------------------------------------------
 // CXnPluginData::ShowContentRemovedError()      
 //
@@ -657,4 +682,21 @@
     TRAP_IGNORE( ViewManager().OomSysHandler().HandlePotentialOomL() );
     }
 
+// -----------------------------------------------------------------------------
+// CXnViewData::SetLockingStatus
+// 
+// -----------------------------------------------------------------------------
+//
+void CXnPluginData::SetLockingStatus( const TDesC8& aStatus )
+    {
+    if ( aStatus.CompareF( KLockingStatusLocked ) == 0 )
+        {
+        iFlags.Clear( EIsRemovable );
+        }
+    else
+        {
+        iFlags.Set( EIsRemovable );
+        }
+    }
+
 // End of file
--- a/idlehomescreen/xmluirendering/uiengine/src/xnpopupcontroladapter.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnpopupcontroladapter.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -196,12 +196,13 @@
 //
 void CXnPopupControlAdapter::TryDisplayingStylusPopupL( CXnNode& aPlugin )
     {
-    CXnViewManager* manager( iUiEngine->ViewManager() );
-            
-    CXnPluginData& plugin( manager->ActiveViewData().Plugin( &aPlugin ) );
-        
     HideMenuL();
-    
+    CXnViewManager* manager( iUiEngine->ViewManager() );            
+    CXnPluginData* plugin( manager->ActiveViewData().Plugin( &aPlugin ) );
+    if ( !plugin )
+        {
+        return;
+        }
     TPointerEvent event( iUiEngine->HitTest().PointerEvent() );
     
     delete iStylusPopupMenu;
@@ -214,10 +215,10 @@
     
     for ( TInt i = 0; i < children.Count(); i++ )
         {      
-        PopulateMenuL( plugin, children[i] );
+        PopulateMenuL( *plugin, children[i] );
         }
     
-    ShowMenuL( plugin, event.iParentPosition );
+    ShowMenuL( *plugin, event.iParentPosition );
     }
 
 // -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnrootdata.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnrootdata.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -38,6 +38,8 @@
 #include "xnplugindata.h"
 #include "xnrootdata.h"
 
+#include "debug.h"
+
 // Constants
 const TInt KScheduleInterval( 2000000 );
 
@@ -468,6 +470,8 @@
 //
 /* static */ TInt CXnRootData::RunLoadL( TAny* aAny )
     {
+    __PRINTS( "*** CXnRootData::RunLoadL" );
+    
     CXnRootData* self = static_cast< CXnRootData* >( aAny );
     
     if ( self->iFlags.IsSet( EIsDispose ) )
@@ -541,6 +545,8 @@
             }                    
         }
         
+    __PRINTS( "*** CXnRootData::RunLoadL - done" );
+    
     return KErrNone;
     }
 
@@ -571,6 +577,8 @@
 //
 /* static */ TInt CXnRootData::RunDestroyL( TAny* aAny )
     {
+    __PRINTS( "*** CXnRootData::RunDestroyL" );
+    
     CXnRootData* self = static_cast< CXnRootData* >( aAny );
     
     if( self->iFlags.IsSet( EIsDispose ) )
@@ -628,6 +636,8 @@
             }
         }
     
+    __PRINTS( "*** CXnRootData::RunDestroyL - done" );
+    
     return KErrNone;
     }
 
--- a/idlehomescreen/xmluirendering/uiengine/src/xnuiengine.rss	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnuiengine.rss	Fri Mar 12 15:41:49 2010 +0200
@@ -29,6 +29,7 @@
 #include <avkon.mbg>
 #include <e32keys.h>
 #include <activeidle3.loc>
+
 // ========== RESOURCE DEFINITIONS ============================================
 
 RESOURCE RSS_SIGNATURE { }
@@ -102,11 +103,6 @@
     buf = qtn_hs_delete_current_page; 
     }
     
-RESOURCE TITLE_PANE r_qtn_hs_title_editmode 
-    { 
-    txt = qtn_hs_title_editing; 
-    }
-
 RESOURCE DIALOG r_yes_no_hs_remove_view 
     { 
     flags = EGeneralQueryFlags; 
--- a/idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -21,7 +21,7 @@
 #include <eikapp.h>
 #include <AknUtils.h>
 #include <layoutmetadata.cdl.h>
-#include <aknpriv.hrh> 
+#include <AknPriv.hrh> 
 
 // User includes
 #include "xnuiengine.h"
@@ -56,6 +56,7 @@
 #include "xneditor.h"
 #include "xnbackgroundmanager.h"
 #include "xntexteditor.h"
+#include "xnbgcontrol.h"
 
 #ifdef _XN_PERFORMANCE_TEST_
 #include "xntimemon.h"
@@ -271,7 +272,6 @@
     CXnUiEngine& aUiEngine );
 static void FillFocusCandidatesL( CXnNode* aParent,
     RPointerArray< CXnNode >& aArray );
-static TInt DetermineStatusPaneLayout( CXnProperty* aProperty );
 static TBool SetAdaptivesL( CXnNode& aNode );
 
 static void FindNodeByClassL( CXnNode* aRootNode, const TDesC8& aClassId,
@@ -7901,18 +7901,18 @@
     if ( Layout_Meta_Data::IsLandscapeOrientation() )
         {
         reasonString = &XnPropertyNames::action::trigger::name::
-            uidefinitionmodification::reason::KLandscape;
+            orientation::reason::KLandscape;
         }
     else
         {
         reasonString = &XnPropertyNames::action::trigger::name::
-            uidefinitionmodification::reason::KPortrait;
+            orientation::reason::KPortrait;
         }
 
     reasonValue->SetStringValueL( CXnDomPropertyValue::EString, *reasonString );
 
     CXnProperty* reason = CXnProperty::NewL( XnPropertyNames::action::trigger::
-        name::uidefinitionmodification::KReason, reasonValue, *sp );
+        name::orientation::KReason, reasonValue, *sp );
 
     CleanupStack::Pop( reasonValue );
 
@@ -7943,52 +7943,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// DetermineStatusPaneLayout
-// -----------------------------------------------------------------------------
-//
-static TInt DetermineStatusPaneLayout( CXnProperty* aProperty )
-    {
-    TInt spane( KErrNotFound );
-
-    if ( aProperty )
-        {
-        const TDesC8& value( aProperty->StringValue() );
-
-        // Currently supported status pane layout
-        if ( value == XnPropertyNames::view::statuspanelayout::KNone )
-            {
-            spane = R_AVKON_STATUS_PANE_LAYOUT_EMPTY;
-            }
-        if ( value == XnPropertyNames::view::statuspanelayout::KBasic )
-            {
-            spane = R_AVKON_STATUS_PANE_LAYOUT_IDLE;
-            }
-        else if ( value == XnPropertyNames::view::statuspanelayout::KBasicFlat )
-            {
-            spane = R_AVKON_STATUS_PANE_LAYOUT_IDLE_FLAT;
-            }
-        else if ( value ==
-                  XnPropertyNames::view::statuspanelayout::KWideScreen )
-            {
-            spane = R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE;
-            }
-        else if ( value ==
-                  XnPropertyNames::view::statuspanelayout::KWideScreenFlat )
-            {
-            spane = R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT;
-            }
-        else if ( value ==
-                  XnPropertyNames::view::statuspanelayout::
-                  KWideScreenFlat3Softkeys )
-            {
-            spane = R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT_NO_SOFTKEYS;
-            }
-        }
-
-    return spane;
-    }
-
-// -----------------------------------------------------------------------------
 // SetAdaptivesL
 // -----------------------------------------------------------------------------
 //
@@ -8542,7 +8496,10 @@
 //
 void CXnUiEngineImpl::SetFocusedNodeL( CXnNode* aFocusedNode, TInt aSource )
     {
-    iKeyEventDispatcher->SetNodeL( aFocusedNode, aSource );
+    if ( iKeyEventDispatcher )
+        {
+        iKeyEventDispatcher->SetNodeL( aFocusedNode, aSource );
+        }    
     }
 
 // -----------------------------------------------------------------------------
@@ -8552,7 +8509,12 @@
 //
 CXnNode* CXnUiEngineImpl::FocusedNode()
     {
-    return iKeyEventDispatcher->FocusedNode();
+    if ( iKeyEventDispatcher )
+        {
+        return iKeyEventDispatcher->FocusedNode();
+        }
+    
+    return NULL;
     }
 
 // -----------------------------------------------------------------------------
@@ -8579,31 +8541,16 @@
     iDirtyList.Reset();
 
     iRedrawRegions.ResetAndDestroy();
-    
-    // Set status pane layout
-    CXnProperty* prop( iCurrentView->GetPropertyL( 
-        XnPropertyNames::view::KStatusPaneLayout ) );
-
-    // Is there status pane declaration available
-    TInt spane( DetermineStatusPaneLayout( prop ) );
-
-    if ( spane != KErrNotFound )
-        {
-        CEikStatusPane* sp( iAppUiAdapter.StatusPane() );
-
-        if ( sp && sp->CurrentLayoutResId() != spane )
-            {
-            sp->SwitchLayoutL( spane );
-            sp->ApplyCurrentSettingsL();
-            }
-        }
 
     // Remove previous menubar and stylus popup node
     iMenuNode = NULL;
     iStylusPopupNode = NULL;
 
-    iKeyEventDispatcher->ResetMenuNodeL();
-
+    if ( iKeyEventDispatcher )
+        {
+        iKeyEventDispatcher->ResetMenuNodeL();    
+        }
+    
     RPointerArray< CXnNode >& children( iCurrentView->Children() );
 
     for ( TInt count = children.Count() - 1; count >= 0 ; --count )
@@ -8635,8 +8582,11 @@
 
     // Set menu node even if its NULL, to allow keyevent dispatcher
     // to handle no softkeys
-    iKeyEventDispatcher->SetMenuNodeL( iMenuNode );
-
+    if ( iKeyEventDispatcher )
+        {
+        iKeyEventDispatcher->SetMenuNodeL( iMenuNode );    
+        }
+    
     ReportScreenDeviceChangeL();
             
     SetClientRectL( iAppUiAdapter.ClientRect(), EFalse );
@@ -8697,9 +8647,9 @@
             {
             if ( aPlugin && &aPlugin->Node() )
                 {
-                CXnPluginData& data( viewData.Plugin( &aPlugin->Node() ) );
+                CXnPluginData* data( viewData.Plugin( &aPlugin->Node() ) );
                 
-                if ( !data.Occupied() )
+                if ( data && !data->Occupied() )
                     {
                     retval = ETrue;
                     }
@@ -8711,9 +8661,9 @@
 
             if ( node )
                 {
-                CXnPluginData& data( viewData.Plugin( node ) );
+                CXnPluginData* data( viewData.Plugin( node ) );
                 
-                if ( data.Removable() && data.Occupied() )
+                if ( data && data->Removable() && data->Occupied() )
                     {
                     retval = ETrue;
                     }                              
@@ -8842,7 +8792,11 @@
     {
     if ( iLayoutControl & XnLayoutControl::ERefreshMenu )
         {
-        iKeyEventDispatcher->RefreshMenuL();
+        if ( iKeyEventDispatcher )
+            {
+            iKeyEventDispatcher->RefreshMenuL();        
+            }
+        
         iLayoutControl &= ~XnLayoutControl::ERefreshMenu;
         }
     }
@@ -8937,6 +8891,7 @@
             DisableRenderUiLC();
             HandlePartialTouchInputL( aType );
             RootNode()->SetDirtyL();
+            ForceRenderUIL();
             CleanupStack::PopAndDestroy();
             }
         }    
@@ -8948,7 +8903,8 @@
             DisableRenderUiLC();
             HandlePartialTouchInputL( aType );
             RootNode()->SetDirtyL();
-            CleanupStack::PopAndDestroy();        
+            ForceRenderUIL();
+            CleanupStack::PopAndDestroy();
             }
         }    
 
@@ -9028,7 +8984,12 @@
 //
 TBool CXnUiEngineImpl::IsMenuDisplaying()
     {
-    return iKeyEventDispatcher->IsMenuFocused();
+    if ( iKeyEventDispatcher )
+        {
+        return iKeyEventDispatcher->IsMenuFocused();    
+        }
+    
+    return EFalse;
     }
 
 // -----------------------------------------------------------------------------
@@ -9057,7 +9018,10 @@
 //
 void CXnUiEngineImpl::AddPassiveFocusedNodeL( CXnNode* aNode )
     {
-    iKeyEventDispatcher->AddPassiveFocusedNodeL( aNode );
+    if ( iKeyEventDispatcher )
+        {
+        iKeyEventDispatcher->AddPassiveFocusedNodeL( aNode );    
+        }    
     }
 
 // -----------------------------------------------------------------------------
@@ -9066,7 +9030,10 @@
 //
 void CXnUiEngineImpl::RemovePassiveFocusedNodeL( CXnNode* aNode )
     {
-    iKeyEventDispatcher->RemovePassiveFocusedNodeL( aNode );
+    if ( iKeyEventDispatcher )
+        {
+        iKeyEventDispatcher->RemovePassiveFocusedNodeL( aNode );    
+        }    
     }
 
 // -----------------------------------------------------------------------------
@@ -9075,7 +9042,10 @@
 //
 void CXnUiEngineImpl::ClearPassiveFocusedNodesL()
     {
-    iKeyEventDispatcher->ClearPassiveFocusedNodesL();
+    if ( iKeyEventDispatcher )
+        {
+        iKeyEventDispatcher->ClearPassiveFocusedNodesL();
+        }    
     }
 
 // -----------------------------------------------------------------------------
@@ -9758,7 +9728,11 @@
         return;
         }
     if ( aType == KAknSplitInputEnabled ) 
-        {        
+        {
+        // make sure that we always get up event
+        CCoeControl& bg( iAppUiAdapter.ViewAdapter().BgControl() );                    
+        static_cast<CXnBgControl*>(&bg)->ResetGrabbingL();        
+
         // don't remove input from stack if split input is enabled
         XnTextEditorInterface::MXnTextEditorInterface* editorControl = NULL;             
         XnComponentInterface::MakeInterfaceL( editorControl, 
@@ -9912,7 +9886,7 @@
 // -----------------------------------------------------------------------------
 void CXnUiEngineImpl::NotifyStatusPaneSizeChanged()
     {
-    TRAP_IGNORE( iUiEngine->SetClientRectL( iAppUiAdapter.ClientRect() ) );
+    TRAP_IGNORE( iUiEngine->SetClientRectL( iAppUiAdapter.ClientRect(), EFalse ) );
     }
     
 // -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnuienginepluginif.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnuienginepluginif.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -370,14 +370,17 @@
     
     if ( manager )
         {
-        CXnPluginData& pluginData( 
+        CXnPluginData* pluginData( 
             manager->ActiveViewData().Plugin( &aNode->Node() ) );
+        
+        if ( pluginData )
+            {
+            CXnDomNode* domNode( pluginData->Owner() );
             
-        CXnDomNode* domNode( pluginData.Owner() );
-        
-        if ( domNode )
-            {
-            node = domNode->LayoutNode();
+            if ( domNode )
+                {
+                node = domNode->LayoutNode();
+                }        
             }
         }
     
--- a/idlehomescreen/xmluirendering/uiengine/src/xnuistatelistener.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnuistatelistener.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -96,6 +96,17 @@
     }
 
 // -----------------------------------------------------------------------------
+// CXnUiStateListener::PrepareToExit()
+// Prepares for application exit
+// -----------------------------------------------------------------------------
+//
+void CXnUiStateListener::PrepareToExit()
+    {    
+    iUiStateObservers.Reset();
+    iResourceChangeObservers.Reset();
+    }
+
+// -----------------------------------------------------------------------------
 // CXnUiStateListener::AddObserver()
 // Adds MXnUiStateObserver
 // -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -18,6 +18,7 @@
 // System includes
 #include <aknViewAppUi.h>
 #include <eikbtgpc.h>
+#include <avkon.rsg>
 
 // User includes
 #include "xnappuiadapter.h"
@@ -44,14 +45,19 @@
 #include "xnviewadapter.h"
 #include "xnmenu.h"
 #include "xneditmode.h"
+#include "xnrootdata.h"
+
+#include "debug.h"
 
 // Constants
 const TUid KXmlViewUid = { 1 };
+_LIT8( KActivateDefaultView, "activatedefault" );
 
 // Data types
 enum 
     {
     EIsActivated,
+    EIsFirstActivation,
     EIsInCall,
     EIsLightsOn,
     EIsForeground,    
@@ -61,6 +67,52 @@
 
 // ============================= LOCAL FUNCTIONS ===============================
 // -----------------------------------------------------------------------------
+// DetermineStatusPaneLayout
+// -----------------------------------------------------------------------------
+//
+static TInt DetermineStatusPaneLayout( CXnProperty* aProperty )
+    {
+    TInt spane( KErrNotFound );
+
+    if ( aProperty )
+        {
+        const TDesC8& value( aProperty->StringValue() );
+
+        // Currently supported status pane layout
+        if ( value == XnPropertyNames::view::statuspanelayout::KNone )
+            {
+            spane = R_AVKON_STATUS_PANE_LAYOUT_EMPTY;
+            }
+        if ( value == XnPropertyNames::view::statuspanelayout::KBasic )
+            {
+            spane = R_AVKON_STATUS_PANE_LAYOUT_IDLE;
+            }
+        else if ( value == XnPropertyNames::view::statuspanelayout::KBasicFlat )
+            {
+            spane = R_AVKON_STATUS_PANE_LAYOUT_IDLE_FLAT;
+            }
+        else if ( value ==
+                  XnPropertyNames::view::statuspanelayout::KWideScreen )
+            {
+            spane = R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE;
+            }
+        else if ( value ==
+                  XnPropertyNames::view::statuspanelayout::KWideScreenFlat )
+            {
+            spane = R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT;
+            }
+        else if ( value ==
+                  XnPropertyNames::view::statuspanelayout::
+                  KWideScreenFlat3Softkeys )
+            {
+            spane = R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT_NO_SOFTKEYS;
+            }
+        }
+
+    return spane;
+    }
+
+// -----------------------------------------------------------------------------
 // BuildTriggerL
 // -----------------------------------------------------------------------------
 //
@@ -155,7 +207,8 @@
 // -----------------------------------------------------------------------------
 //
 CXnViewAdapter::~CXnViewAdapter()
-    {           
+    {
+    delete iTimer;
     delete iActivate;
     delete iDeactivate;
     delete iEditState;
@@ -187,6 +240,10 @@
     {
     BaseConstructL();
     
+    iTimer = CPeriodic::NewL( CActive::EPriorityIdle );
+    
+    iFlags.Set( EIsFirstActivation );
+    
     // Base class CAknViewAppUi takes ownership of iViewAdapter
     iAppUiAdapter.AddViewL( this );    
     iAppUiAdapter.SetDefaultViewL( *this );
@@ -241,21 +298,18 @@
     }
 
 // -----------------------------------------------------------------------------
-// CXnViewAdapter::PrepareDestroy
+// CXnViewAdapter::PrepareToExit
 // Sets view to be destroyed
 // -----------------------------------------------------------------------------
 //
-void CXnViewAdapter::PrepareDestroy()
-    {
-    iAppUiAdapter.UiStateListener().RemoveObserver( *this );
-    iBgControl->PrepareDestroy();
-    
-    TRAP_IGNORE( DeactivateContainerL() );
-    
+void CXnViewAdapter::PrepareToExit()
+    {                
     iAppUiAdapter.RemoveFromStack( iEventDispatcher );
     delete iEventDispatcher;
     iEventDispatcher = NULL;
     
+    iAppUiAdapter.UiEngine().SetEventDispatcher( NULL );
+    
     iContainer = NULL;
     
     iFlags.Set( EIsDestructionRunning );    
@@ -318,12 +372,15 @@
 //
 void CXnViewAdapter::DoActivateL( const TVwsViewId& /*aPrevViewId*/,    
     TUid /*aCustomMessageId*/,
-    const TDesC8& /*aCustomMessage*/ )
+    const TDesC8& aCustomMessage )
     {
     if ( iFlags.IsSet( EIsDestructionRunning ) )
         {
         return;
         }
+
+    __TICK( "CXnViewAdapter::DoActivateL" );
+    __TIME_MARK( time );
     
     iFlags.Set( EIsActivated );
     
@@ -342,9 +399,83 @@
     
     iBgControl->MakeVisible( ETrue );
     iBgManager->MakeVisible( ETrue );
+
+    // Set status pane layout
+    CXnViewData& viewData( iAppUiAdapter.ViewManager().ActiveViewData() );
+    CXnProperty* prop( viewData.Node()->LayoutNode()->GetPropertyL( 
+        XnPropertyNames::view::KStatusPaneLayout ) );
+
+    // Is there status pane declaration available
+    TInt spane( DetermineStatusPaneLayout( prop ) );
+
+    if ( spane != KErrNotFound )
+        {
+        CEikStatusPane* sp( iAppUiAdapter.StatusPane() );
+
+        if ( sp && sp->CurrentLayoutResId() != spane )
+            {
+            sp->SwitchLayoutL( spane );
+            sp->ApplyCurrentSettingsL();
+            }
+        }    
+                
+    if ( iFlags.IsSet( EIsFirstActivation ) )
+        {                             
+        // Set the active container
+        ActivateContainerL( iAppUiAdapter.ViewManager().ActiveViewData() );
+        
+        __TICK( "CXnViewAdapter::DoActivateL - Calling UiActivated" );
+        __TIME_MARK( time2 );
     
-    // Set the active container
-    ActivateContainerL( iAppUiAdapter.ViewManager().ActiveViewData() );             
+        iFlags.Clear( EIsFirstActivation );
+        
+        iAppUiAdapter.UiActivated();
+        
+        __TIME_ENDMARK( "CXnViewAdapter::DoActivateL - Calling UiActivated", time );        
+        }
+    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 );
+	        }
+        }
+			  
+    __TIME_ENDMARK( "CXnViewAdapter::DoActivateL, done", time );
+    
+    __TICK( "CXnViewAdapter::DoActivateL - HS UI Ready" );
+    }
+
+// -----------------------------------------------------------------------------
+// CXnViewAdapter::TimerCallback
+// 
+// -----------------------------------------------------------------------------
+//
+TInt CXnViewAdapter::TimerCallback( TAny *aPtr )
+    {
+    __PRINTS( "*** CXnViewAdapter::TimerCallback" );
+    
+    CXnViewAdapter* self = reinterpret_cast< CXnViewAdapter* >( aPtr );
+    self->iTimer->Cancel();
+    
+    self->iCoeEnv->WsSession().SetWindowGroupOrdinalPosition(
+            self->iCoeEnv->RootWin().Identifier(), 0 );
+
+    __PRINTS( "*** CXnViewAdapter::TimerCallback, done" );
+    
+    return KErrNone;
     }
 
 // -----------------------------------------------------------------------------
@@ -359,6 +490,9 @@
         return;
         }
     
+    __PRINTS( "*** CXnViewAdapter::DoDeactivate" );
+    __TIME_MARK( time );
+    
     iAppUiAdapter.RemoveFromStack( iEventDispatcher );
 
     TRAP_IGNORE( DeactivateContainerL() );
@@ -369,6 +503,8 @@
     iFocusControl->MakeVisible( EFalse );
     
     iFlags.Clear( EIsActivated );
+    
+    __TIME_ENDMARK( "CXnViewAdapter::DoDeactivate, done", time );
     }
 
 // -----------------------------------------------------------------------------
@@ -379,7 +515,7 @@
 void CXnViewAdapter::ActivateContainerL( CXnViewData& aContainer, 
     TBool aEnterEditState )
     {                       
-    if ( iContainer == &aContainer )    
+    if ( iContainer == &aContainer || iFlags.IsSet( EIsDestructionRunning ) )    
         {            
         return;
         }
@@ -422,31 +558,15 @@
                  
     iAppUiAdapter.ViewManager().NotifyContainerChangedL( aContainer );
     
-    if ( !iEditState )
-        {
-        iEditState = BuildEditStateTriggerL( iAppUiAdapter.UiEngine() ); 
-        }
-    
-    CXnProperty* prop( iEditState->GetPropertyL( 
-        XnPropertyNames::action::KValue ) );
-    
     if ( aEnterEditState || iAppUiAdapter.UiEngine().IsEditMode() )
         {
-        static_cast< CXnDomPropertyValue* >(
-            prop->Property()->PropertyValueList().Item( 0 ) )
-            ->SetStringValueL( CXnDomPropertyValue::EString,
-            XnPropertyNames::action::trigger::name::editmode::KEnter() );                        
+        EnterEditStateL( aContainer, ETrue );                        
         }
     else
         {
-        static_cast< CXnDomPropertyValue* >(
-            prop->Property()->PropertyValueList().Item( 0 ) )
-            ->SetStringValueL( CXnDomPropertyValue::EString,
-            XnPropertyNames::action::trigger::name::editmode::KExit() );                                
+        EnterEditStateL( aContainer, EFalse );                                
         }
     
-    node->ReportXuikonEventL( *iEditState );
-    
     CXnControlAdapter* adapter( node->Control() );
     
     iBgControl->SetCompoundControl( adapter );
@@ -457,17 +577,90 @@
     }
 
 // -----------------------------------------------------------------------------
+// CXnViewAdapter::ActivateDefaultContainerL
+// Activates default container
+// -----------------------------------------------------------------------------
+//
+void CXnViewAdapter::ActivateDefaultContainerL( TBool aEnterEditState )
+    {
+    CXnRootData& rootData( iAppUiAdapter.ViewManager().ActiveAppData() );
+    
+    RPointerArray< CXnPluginData >& views( rootData.PluginData() );
+    
+    if ( !views.Count() )
+        {
+        return;
+        }    
+    
+    // Deactivate container even though it hasn't changed to close all popups
+    // and other windows
+    DeactivateContainerL();
+    
+    // first view is default
+    CXnViewData* viewData = static_cast<CXnViewData*>( views[0] );
+    
+    if ( viewData )
+        {
+        EnterEditStateL( *viewData, aEnterEditState );
+        ActivateContainerL( *viewData, aEnterEditState );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CXnViewAdapter::EnterEditStateL
+// Sets edit state property
+// -----------------------------------------------------------------------------
+//
+void CXnViewAdapter::EnterEditStateL( CXnViewData& aView, TBool aEnter )
+    {
+    if ( !iEditState )
+        {
+        iEditState = BuildEditStateTriggerL( iAppUiAdapter.UiEngine() ); 
+        }
+    
+    CXnProperty* prop( iEditState->GetPropertyL( 
+        XnPropertyNames::action::KValue ) );
+    
+    if ( !prop )
+        {
+        return;
+        }
+    
+    if ( aEnter )
+        {
+        static_cast< CXnDomPropertyValue* >(
+            prop->Property()->PropertyValueList().Item( 0 ) )
+            ->SetStringValueL( CXnDomPropertyValue::EString,
+            XnPropertyNames::action::trigger::name::editmode::KEnter() );
+        }
+    else
+        {
+        static_cast< CXnDomPropertyValue* >(
+            prop->Property()->PropertyValueList().Item( 0 ) )
+            ->SetStringValueL( CXnDomPropertyValue::EString,
+            XnPropertyNames::action::trigger::name::editmode::KExit() );
+        }
+    
+    if ( aView.Node() && aView.Node()->LayoutNode() )
+        {
+        aView.Node()->LayoutNode()->ReportXuikonEventL( *iEditState );
+        }
+    }
+
+// -----------------------------------------------------------------------------
 // CXnViewAdapter::DeactivateContainerL
 // Deactivates current container
 // -----------------------------------------------------------------------------
 //
 void CXnViewAdapter::DeactivateContainerL()
     {
-    if ( !iContainer )    
+    if ( !iContainer || iFlags.IsSet( EIsDestructionRunning ) )    
         {
         return;
         }
     
+    CloseAllPopupsL();
+    
     // Run controls to powersave mode
     ChangeControlsStateL( EFalse );
 
@@ -678,5 +871,38 @@
         }
     }
 
+// -----------------------------------------------------------------------------
+// CXnViewAdapter::CloseAllPopupsL()
+// 
+// -----------------------------------------------------------------------------
+//
+void CXnViewAdapter::CloseAllPopupsL()
+    {
+    if ( !iContainer )
+        {
+        return;
+        }
+    
+    RPointerArray< CXnNode > popups;
+    CleanupClosePushL( popups );
+    
+    iContainer->PopupNodesL( popups );
+    
+    for ( TInt i = 0; i < popups.Count(); i++ )
+        {
+        CXnProperty* display = CXnProperty::NewL(
+            XnPropertyNames::style::common::KDisplay,
+            XnPropertyNames::style::common::display::KNone,
+            CXnDomPropertyValue::EString,
+            *iAppUiAdapter.UiEngine().ODT()->DomDocument().StringPool() );
+        
+        CleanupStack::PushL( display );         
+        popups[i]->SetPropertyL(display);             
+        CleanupStack::Pop( display );
+        }
+        
+    CleanupStack::PopAndDestroy( &popups );
+    }
+
 
 // End of file
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewdata.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewdata.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -31,8 +31,10 @@
 #include "xnoomsyshandler.h"
 #include "xnpanic.h"
 
+#include "debug.h"
+
 // Constants
-_LIT8( KLockingStatusLocked, "locked" );
+const TInt KInterval( 10000 );
 
 // ============================ LOCAL FUNCTIONS ================================
 
@@ -213,14 +215,16 @@
 // Finds plugin or view data based on node
 // -----------------------------------------------------------------------------
 //
-CXnPluginData& CXnViewData::Plugin( CXnNode* aNode )
-    {    
+CXnPluginData* CXnViewData::Plugin( CXnNode* aNode )
+    {
+    if ( !aNode ) { return NULL; }
+
     if ( aNode->ViewNodeImpl() )
         {
         // Reached view, return self
         if ( Node()->LayoutNode() == aNode )
             {
-            return *this;
+            return this;
             }
         }
 
@@ -228,7 +232,7 @@
         {
         if ( iPluginsData[i]->Owner()->LayoutNode() == aNode )
             {
-            return *iPluginsData[i];
+            return iPluginsData[i];
             }
         }
 
@@ -381,6 +385,23 @@
     }
 
 // -----------------------------------------------------------------------------
+// CXnViewData::PopupNodesL()
+// Gets this view data's popup nodes
+// -----------------------------------------------------------------------------
+//
+void CXnViewData::PopupNodesL( RPointerArray< CXnNode >& aList ) const
+    {
+    // Get my Popup nodes
+    CXnPluginData::PopupNodesL( aList );
+
+    for ( TInt i = 0; i < iPluginsData.Count(); i++ )
+        {
+        // And Popup nodes which my plugin holds
+        iPluginsData[i]->PopupNodesL( aList );
+        }
+    }
+
+// -----------------------------------------------------------------------------
 // CXnViewData::InitialFocusNodesL()
 // Gets this view data's initial focus nodes
 // -----------------------------------------------------------------------------
@@ -444,9 +465,9 @@
     iLoader->Cancel();
     
     iLoadIndex = 0;
-            
-    iLoader->Start( TTimeIntervalMicroSeconds32( 50 ),
-                    TTimeIntervalMicroSeconds32( 50 ),
+                                
+    iLoader->Start( TTimeIntervalMicroSeconds32( KInterval ),
+                    TTimeIntervalMicroSeconds32( KInterval ),
                     TCallBack( DoLoadPublishersL, this ) );           
     }
 
@@ -457,6 +478,8 @@
 //
 /* static */ TInt CXnViewData::DoLoadPublishersL( TAny* aAny )
     {
+    __PRINTS( "*** CXnViewData::DoLoadPublishersL" );
+    
     CXnViewData* self = static_cast< CXnViewData* >( aAny );
     
     RPointerArray< CXnPluginData >& plugins( self->PluginData() );
@@ -512,9 +535,11 @@
             {
             self->ShowContentRemovedError();
             self->iShowContentRemoved = EFalse;
-            }              
+            }           
         }                  
             
+    __PRINTS( "*** CXnViewData::DoLoadPublishersL - done" );
+    
     return KErrNone;       
     }
 
@@ -525,6 +550,8 @@
 //
 void CXnViewData::DestroyPublishers( TInt aReason )
     {
+    __PRINTS( "*** CXnViewData::DestroyPublishers" );
+    
     if ( Occupied() )
         {
         // If not all plugins loaded yet               
@@ -534,6 +561,8 @@
         
         User::Heap().Compress();        
         }
+    
+    __PRINTS( "*** CXnViewData::DestroyPublishers - done" );
     }
 
 // -----------------------------------------------------------------------------
@@ -543,6 +572,8 @@
 //
 void CXnViewData::DoDestroyPublishersL( TInt aReason )
     {
+    __TIME_MARK( time );
+    
     // Create list of data plugins to be removed    
     RPointerArray< CXnNode > publishers;
     CleanupClosePushL( publishers );
@@ -556,25 +587,9 @@
             publishers[i]->AppIfL(), aReason );        
         }
         
-    CleanupStack::PopAndDestroy( &publishers );    
-    }
-
-// -----------------------------------------------------------------------------
-// CXnViewData::SetLockingStatus
-// Sets view's locking_status attribute ("locked"/"none")
-// -----------------------------------------------------------------------------
-//
-void CXnViewData::SetLockingStatus( const TDesC8& aLockingStatusString )
-    {
-    if( ( aLockingStatusString != KNullDesC8 ) && 
-        ( aLockingStatusString.Match( KLockingStatusLocked ) == 0 ) )
-        {
-        iFlags.Clear( EIsRemovable );
-        }
-    else
-        {
-        iFlags.Set( EIsRemovable );
-        }
+    CleanupStack::PopAndDestroy( &publishers );
+    
+    __TIME_ENDMARK( "CXnViewData::DoDestroyPublishersL, done", time );
     }
 
 // End of file
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -16,6 +16,7 @@
 */
 
 // System includes
+#include <startupdomainpskeys.h>
 #include <AknUtils.h>
 #include <AknsWallpaperUtils.h>
 #include <AknSkinsInternalCRKeys.h>
@@ -23,6 +24,7 @@
 #include <xnuiengine.rsg>
 #include <aknnotewrappers.h>
 #include <AknsConstants.h>
+#include <aifwdefs.h>
 
 // User includes
 #include "xnapplication.h"
@@ -60,6 +62,7 @@
 const TInt KPSCrashCountKey = 1;     
 const TInt KStabilityInterval = 60000000; // 1 minute
 const TInt KCrashRestoreThreshold = 3;
+
 // ============================ LOCAL FUNCTIONS ===============================
 // -----------------------------------------------------------------------------
 // BuildTriggerL
@@ -272,6 +275,8 @@
 //
 CXnViewManager::~CXnViewManager()
     {
+    delete iUiStartupPhase;
+    
     if( iStabilityTimer )
         {
         iStabilityTimer->Cancel();
@@ -301,12 +306,28 @@
     }
 
 // -----------------------------------------------------------------------------
+// CXnViewManager::PropertyChangedL()
+// 
+// -----------------------------------------------------------------------------
+//
+void CXnViewManager::PropertyChangedL( const TUint32 aKey, const TInt aValue )
+    {
+    if ( aKey == KPSStartupUiPhase && aValue == EStartupUiPhaseAllDone )
+        {
+        if ( iRootData )
+            {
+            iRootData->LoadRemainingViews();
+            }
+        }
+    }
+
+// -----------------------------------------------------------------------------
 // CXnViewManager::ConstructL()
 // 2nd phase constructor
 // -----------------------------------------------------------------------------
 //
 void CXnViewManager::ConstructL()
-    {
+    {       
     iOomSysHandler = CXnOomSysHandler::NewL();
     
     // Create resource list
@@ -364,6 +385,13 @@
     iRootData->Load();
            
     CleanupStack::PopAndDestroy(); // DisableRenderUiLC();
+    
+    // Determine UI startup phase
+    delete iUiStartupPhase;
+    iUiStartupPhase = NULL;
+                   
+    iUiStartupPhase = CXnPropertySubscriber::NewL( 
+        KPSUidStartup, KPSStartupUiPhase, *this );
     }
 
 // -----------------------------------------------------------------------------
@@ -404,7 +432,7 @@
 // CXnViewManager::LoadWidgetToPluginL()
 // -----------------------------------------------------------------------------
 //
-TInt CXnViewManager::LoadWidgetToPluginL( CHsContentInfo& aContentInfo,
+TInt CXnViewManager::LoadWidgetToPluginL( const CHsContentInfo& aContentInfo,
     CXnPluginData& aPluginData )
     {
     // Plugin must not have widget when about to add
@@ -494,10 +522,18 @@
 TInt CXnViewManager::UnloadWidgetFromPluginL( CXnPluginData& aPluginData, 
     TBool aForce )    
     {                  
-    if ( !aForce && !aPluginData.Occupied() )
+    if ( !aForce )
         {
-        // Plugin must have widget when about to remove
-        return KErrNotFound;            
+        if( !aPluginData.Occupied() )
+            {
+            // Plugin must have widget when about to remove
+            return KErrNotFound;                    
+            }
+        if ( !aPluginData.Removable() )
+            {
+            // Not allowed to remove locked
+            return KErrArgument;
+            }
         }
     
     CXnViewData& viewData( 
@@ -566,18 +602,13 @@
 // CXnViewManager::ReplaceWidgetToPluginL
 // -----------------------------------------------------------------------------
 //
-TInt CXnViewManager::ReplaceWidgetToPluginL( CHsContentInfo& aContentInfo,
-    CXnPluginData& aPluginData, TBool aUseHsps )
+TInt CXnViewManager::ReplaceWidgetToPluginL( const CHsContentInfo& aContentInfo,
+    CXnPluginData& aPluginData )
     {
     TInt retval( KErrNone );
     
-    // if aUseHsps is false, the plugin was already replaced by
-    // another process
-    if( aUseHsps )
-        {
-        retval = iHspsWrapper->ReplacePluginL( aPluginData.PluginId(),
+    retval = iHspsWrapper->ReplacePluginL( aPluginData.PluginId(),
                                            aContentInfo.Uid() );
-        }
 
     if ( retval == KErrNone )
         {
@@ -745,6 +776,41 @@
     }
 
 // -----------------------------------------------------------------------------
+// CXnViewManager::PluginDataL()
+// Returns list of plugins from all views or from the defined view
+// -----------------------------------------------------------------------------
+//
+TInt CXnViewManager::PluginDataL( const TDesC8& aViewId, 
+    RPointerArray< CXnPluginData >& aList ) const
+    {
+    TInt err( KErrNone );
+    TBool found( EFalse );
+    
+    RPointerArray< CXnPluginData >& views( iRootData->PluginData() );
+    
+    for ( TInt i = 0; i < views.Count(); i++ )
+        {
+        if ( !aViewId.Length() || views[i]->PluginId().Compare( aViewId ) == 0 )
+            {
+            found = ETrue;
+            RPointerArray< CXnPluginData >& plugins( views[i]->PluginData() );
+            
+            for ( TInt j = 0; j < plugins.Count(); j++ )
+                {
+                aList.AppendL( plugins[ j ] );
+                }
+            }
+        }      
+    if ( !found )
+        {
+        // View not found
+        err = KErrArgument;
+        }
+    
+    return err;
+    }
+
+// -----------------------------------------------------------------------------
 // CXnViewManager::Resources()
 // Finds the resources from the active view data
 // -----------------------------------------------------------------------------
@@ -894,7 +960,7 @@
 // Adds a new view based on info
 // -----------------------------------------------------------------------------
 //
-TInt CXnViewManager::AddViewL( CHsContentInfo& aInfo )
+TInt CXnViewManager::AddViewL( const CHsContentInfo& aInfo )
     {    
     if ( iRootData->PluginData().Count() >= iRootData->MaxPages() )
         {
@@ -1080,11 +1146,14 @@
             {
             if ( !view->Removable() )
                 {
-                return retval;
+                return KErrArgument;
                 }
             
             if ( view->Active() )
                 {
+                // Destroy publishers here, must be plugin shutdown
+                view->DestroyPublishers( EAiFwPluginShutdown );
+            
                 // Activate the next view, or first if in the last view 
                 CXnViewData& next( NextViewData() );
                 iAppUiAdapter.ViewAdapter().ActivateContainerL( next );
@@ -1155,10 +1224,13 @@
             next.Load();
             }
 
+        CXnViewData* view( static_cast< CXnViewData* >( views[ index ] ) );
+        
+        // Destroy publishers here, must be plugin shutdown
+        view->DestroyPublishers( EAiFwPluginShutdown );
+        
         iAppUiAdapter.ViewAdapter().ActivateContainerL( next );
-                
-        CXnViewData* view( static_cast< CXnViewData* >( views[ index ] ) );
-
+                        
         // Remove wallpaper from cache
         iAppUiAdapter.ViewAdapter().BgManager().DeleteWallpaper( *view );
 
@@ -1214,7 +1286,7 @@
         return KErrArgument;
         }
 
-    if ( iRootData->PluginUid().Compare( aPluginUid ) == 0 )
+    if ( iRootData->PluginUid().CompareF( aPluginUid ) == 0 )
         {
         // Nothing to do
         return KErrNone;
@@ -1327,9 +1399,6 @@
 
         // Cache update is needed after view activation
         UpdateCachesL();
-        
-        // Schedule remainngs views load
-        iRootData->LoadRemainingViews();
         }
     
     NotifyViewActivatedL( aViewToActivate );
--- a/idlehomescreen/xmluirendering/uiengine/src/xnwidgetextensionadapter.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnwidgetextensionadapter.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -46,6 +46,9 @@
 #include "xnviewdata.h"
 #include "xnplugindata.h"
 
+#include <gfxtranseffect/gfxtranseffect.h>
+#include <akntransitionutils.h>
+
 // Constants
 _LIT8( KPopup, "popup" );
 _LIT8( KPositionHint, "_s60-position-hint" );
@@ -81,8 +84,12 @@
     {
     if ( iAppUiAdapter )
         {
-        iAppUiAdapter->UiStateListener().RemoveObserver( *this );
+        iAppUiAdapter->UiStateListener().RemoveObserver(
+                *( static_cast< MXnUiStateObserver* >( this ) ) );
+        iAppUiAdapter->UiStateListener().RemoveObserver(
+                        *( static_cast< MXnUiResourceChangeObserver* >( this ) ) );
         }
+    GfxTransEffect::Deregister( this );
     }
 
 // -----------------------------------------------------------------------------
@@ -112,10 +119,14 @@
     // we have to decide which one of them is the recent one    
  
     CXnType* typeInfo = iNode.Node().Type();
+    User::LeaveIfNull( typeInfo );
     const TDesC8& type = typeInfo->Type();
+    
+    iPermanent = EFalse;
 
     if ( type == KPopup )          
         {
+        iPopup = ETrue;
         CXnProperty* prop( iNode.Node().GetPropertyL( 
             XnPropertyNames::popup::KPopupType ) );
                        
@@ -136,7 +147,9 @@
     iUiEngine = iNode.Node().UiEngine();
     CXnControlAdapter::ConstructL( iNode );
     
-    EnableDragEvents();      
+    EnableDragEvents();
+    
+    GfxTransEffect::Register( this, KGfxPreviewPopupControlUid );
     }
 
 // -----------------------------------------------------------------------------
@@ -145,46 +158,48 @@
 // -----------------------------------------------------------------------------
 // 
 void CXnWidgetExtensionAdapter::MakeVisible( TBool aVisible )
-    {   
-    TBool visible( IsVisible() ? ETrue : EFalse );
+    {
+    if ( IsVisible() == aVisible )
+        {
+        return;
+        }
     
-    if ( visible == aVisible )
+    CXnPluginData* plugin( 
+            iAppUiAdapter->ViewManager().ActiveViewData().Plugin( &iNode.Node() ) );
+
+    if ( !plugin )
         {
         return;
         }
 
     SetPointerCapture( aVisible );
-    
-    CXnPluginData& plugin( 
-            iAppUiAdapter->ViewManager().ActiveViewData().Plugin( &iNode.Node() ) );
 
-    plugin.SetIsDisplayingPopup( aVisible, &iNode.Node() );
+    plugin->SetIsDisplayingPopup( aVisible, &iNode.Node() );
     
-    CXnType* typeInfo = iNode.Node().Type();
-    const TDesC8& type = typeInfo->Type();
-
-    TBool popup( type == KPopup );
-    
-    if ( !popup )
+    if ( !iPopup )
         {
         DrawableWindow()->FadeBehind( aVisible );
         }
-    else
+    
+    if ( !iPermanent )
         {
-        if ( !iPermanent )
+        if ( aVisible )
             {
-            if ( aVisible )
-                {
-                iAppUiAdapter->UiStateListener().AddObserver( *this );
-                }
-            else
-                {
-                iAppUiAdapter->UiStateListener().RemoveObserver( *this );
-                }            
+            iAppUiAdapter->UiStateListener().AddObserver(
+                    *( static_cast< MXnUiStateObserver* >( this ) ) );
+            iAppUiAdapter->UiStateListener().AddObserver(
+                            *( static_cast< MXnUiResourceChangeObserver* >( this ) ) );
+            }
+        else
+            {
+            iAppUiAdapter->UiStateListener().RemoveObserver(
+                    *( static_cast< MXnUiStateObserver* >( this ) ) );
+            iAppUiAdapter->UiStateListener().RemoveObserver(
+                            *( static_cast< MXnUiResourceChangeObserver* >( this ) ) );
             }
         }
     
-    if ( aVisible && popup )
+    if ( aVisible && iPopup )
         {        
         // read position-hint property and set-up its variable
         CXnProperty* positionHintProp = NULL;
@@ -240,7 +255,27 @@
             }        
         }
 
-    CCoeControl::MakeVisible( aVisible );            
+    TBool effectStarted = EFalse;
+    if ( iAppUiAdapter->IsForeground() )
+        {
+        if ( aVisible )
+            {
+            GfxTransEffect::Begin( this, KGfxControlAppearAction );
+            }
+        else
+            {
+            GfxTransEffect::Begin( this, KGfxControlDisappearAction );
+            }
+        effectStarted = ETrue;
+        }
+
+    CCoeControl::MakeVisible( aVisible );
+
+    if ( effectStarted )
+        {
+        GfxTransEffect::SetDemarcation( this, iPosition );
+        GfxTransEffect::End( this );
+        }
     }
 
 // -----------------------------------------------------------------------------
@@ -250,14 +285,12 @@
 //    
 void CXnWidgetExtensionAdapter::HandlePointerEventL( 
     const TPointerEvent& aPointerEvent )
-    {        
-    CXnType* typeInfo = iNode.Node().Type();
-    const TDesC8& type = typeInfo->Type();
+    {
     
     // in case of popup, we have to make sure that 
     // it will be closed after tapping outside of the
     // area of itself and its parent
-    if ( type == KPopup )
+    if ( iPopup )
         {        
         // check if the tap was inside of popup
         TRect popupRect = this->Rect();
@@ -555,10 +588,17 @@
 void CXnWidgetExtensionAdapter::NotifyForegroundChanged( 
     TForegroundStatus aStatus )
     {
-    if ( aStatus != EForeground )
+    if ( iPopup && aStatus != EForeground )
         {
         TRAP_IGNORE( HidePopupL() );
-        }    
+        }
+    else if ( !iPopup && aStatus == EForeground )
+        {
+        if ( !DrawableWindow()->IsFaded() )
+            {
+            DrawableWindow()->FadeBehind( ETrue );
+            }
+        }
     }
 
 // -----------------------------------------------------------------------------
@@ -605,4 +645,32 @@
         }
     }
 
+// -----------------------------------------------------------------------------
+// CXnWidgetExtensionAdapter::NotifyStatusPaneSizeChanged
+// 
+// -----------------------------------------------------------------------------
+//
+void CXnWidgetExtensionAdapter::NotifyStatusPaneSizeChanged()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CXnWidgetExtensionAdapter::NotifyResourceChanged
+// 
+// -----------------------------------------------------------------------------
+//
+void CXnWidgetExtensionAdapter::NotifyResourceChanged( TInt aType )
+    {
+
+    // if type is widget extension and fade has changed
+    // we have to always fade main window
+    if ( !iPopup && aType == KEikMessageWindowsFadeChange )
+        {
+        if ( !DrawableWindow()->IsFaded() )
+            {
+            DrawableWindow()->FadeBehind( ETrue );
+            }
+        }
+    }
+
 //  End of File  
--- a/menufw/menufwui/matrixmenu/group/matrixmenu.mmp	Fri Feb 19 22:42:37 2010 +0200
+++ b/menufw/menufwui/matrixmenu/group/matrixmenu.mmp	Fri Mar 12 15:41:49 2010 +0200
@@ -21,8 +21,6 @@
 #include <data_caging_paths.hrh>
 #include "../inc/mmguiuid.hrh"
 
-epocheapsize  1800000 4500000
-
 TARGET          matrixmenu.exe
 TARGETTYPE      exe
 UID             0x100039CE _MATRIX_UID3  
@@ -88,6 +86,7 @@
 LIBRARY           aknskins.lib
 LIBRARY           aknskinsrv.lib
 LIBRARY           aknswallpaperutils.lib
+LIBRARY           MemMan.lib
 
 #ifdef _MATRIX_MENU_TRACE_PERFORMANCE
 LIBRARY         flogger.lib
--- a/menufw/menufwui/matrixmenu/src/mmgui.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/menufw/menufwui/matrixmenu/src/mmgui.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -17,6 +17,7 @@
 
 
 // INCLUDE FILES
+#include <mw/memorymanager.h>
 #include <eikstart.h>
 #include "mmapplication.h"
 
@@ -37,5 +38,8 @@
 //
 GLDEF_C TInt E32Main()
 	{
-	return EikStart::RunApplication( NewApplication );
+	RAllocator* iAllocator = MemoryManager::SwitchToFastAllocator();
+	TInt err = EikStart::RunApplication( NewApplication );
+	MemoryManager::CloseFastAllocator(iAllocator);
+	return err;
 	}
--- a/menufw/menufwui/mmwidgets/src/mmwidgetcontainer.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/menufw/menufwui/mmwidgets/src/mmwidgetcontainer.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:
-*  Version     : %version: MM_71.1.17.1.55 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: MM_71.1.17.1.56 % << Don't touch! Updated by Synergy at check-out.
 *
 */
 
@@ -233,7 +233,12 @@
         templateLibrary->CleanAndClearCache();
         }
 
+    TBool highlightVisibleBefore = iWidget->IsVisible() && IsHighlightVisible();
     CCoeControl::HandleResourceChange( aType );
+    if ( highlightVisibleBefore )
+        {
+        SetHighlightVisibilityL( ETrue );
+        }
 
 	if ( aType == KEikDynamicLayoutVariantSwitch && !IsHighlightVisible() )
 		{
@@ -1185,6 +1190,8 @@
     numberOfItemsBefore = GetMmModel()->NumberOfItems();
 
     GetMmModel()->SetSuiteModelL( aModel );
+    
+    TBool highlightVisibleBefore = iWidget->IsVisible() && IsHighlightVisible();
 
     // This needs to be in place (disabling redraw)
     // to udpate widget internal state, however to wait for
@@ -1203,6 +1210,11 @@
         SetupWidgetLayoutL();
         }
     iWidget->MakeVisible(ETrue);
+    
+    if ( highlightVisibleBefore )
+        {
+        SetHighlightVisibilityL( ETrue );
+        }
 
     Widget()->View()->ItemDrawer()->ClearFlags(
     		CListItemDrawer::EPressedDownState );
--- a/menufw/menusuites/foldersuite/data/matrixmenudata.xml	Fri Feb 19 22:42:37 2010 +0200
+++ b/menufw/menusuites/foldersuite/data/matrixmenudata.xml	Fri Mar 12 15:41:49 2010 +0200
@@ -18,7 +18,7 @@
         <!--Contacts application-->
         <menu:application uid="0x101F4CCE"/>
         <!-- Music Player (MusicPlayer)-->
-	<menu:application uid="0x102072C3"/> 
+        <menu:application uid="0x102072C3"/> 
         <!--Internet folder-->
         <!--  now using qgnmenugroupweb available in skin -->
         <menu:folder title_name="&qtn_apps_browserng_title;" 
@@ -126,13 +126,13 @@
           <menu:application uid="0x100058EC"
                             view="0x10283321"
                             long_name="Installations"/>
-          
+
           <menu:shortcut    uid="0x99999999"
                             long_name="New message"
-                            icon_file="z:\resource\apps\matrixmenudata.mif"
-                            icon_id="16392"
-                            mask_id="16393"
-                            icon_skin_minor_id="0x1327"
+                            icon_file="aimcsplugin.mif"
+                            icon_id="16406"
+                            mask_id="16407"
+                            icon_skin_minor_id="0x2056"
                             icon_skin_major_id="0x101F86E3"
                             param="messaging:msg"/>
                             
@@ -141,15 +141,15 @@
                             icon_file="aimcsplugin.mif"
                             icon_id="16388"
                             mask_id="16389"
-                            icon_skin_minor_id=""
-                            icon_skin_major_id=""
+                            icon_skin_minor_id="0x2058"
+                            icon_skin_major_id="0x101F86E3"
                             param="messaging:seltype"/>
                             
           <menu:shortcut    uid="0x99999997"
                             long_name="New email"
                             icon_file="aimcsplugin.mif"
-                            icon_id="16388"
-                            mask_id="16389"
+                            icon_id="16402"
+                            mask_id="16403"
                             icon_skin_minor_id=""
                             icon_skin_major_id=""
                             param="messaging:email"/>
@@ -159,24 +159,24 @@
                             icon_file="aimcsplugin.mif"
                             icon_id="16390"
                             mask_id="16391"
-                            icon_skin_minor_id=""
-                            icon_skin_major_id=""
+                            icon_skin_minor_id="0x205a"
+                            icon_skin_major_id="0x101F86E3"
                             param="messaging:syncmlmail"/>
                             
           <menu:shortcut    uid="0x99999995"
                             long_name="New postcard"
                             icon_file="aimcsplugin.mif"
-                            icon_id="16388"
-                            mask_id="16389"
-                            icon_skin_minor_id=""
-                            icon_skin_major_id=""
+                            icon_id="16400"
+                            mask_id="16401"
+                            icon_skin_minor_id="0x2057"
+                            icon_skin_major_id="0x101F86E3"
                             param="messaging:postcard"/>
           
           <menu:shortcut    uid="0x99999994"
                             long_name="New audio message"
                             icon_file="aimcsplugin.mif"
-                            icon_id="16388"
-                            mask_id="16389"
+                            icon_id="16404"
+                            mask_id="16405"
                             icon_skin_minor_id=""
                             icon_skin_major_id=""
                             param="messaging:audiomsg"/>
@@ -217,6 +217,8 @@
 
           <!-- Menu Application Launcher -->
           <menu:application uid="0x101F4CD2"/>
+          <!-- Themes Application Launcher -->
+          <menu:application uid="0x10005A32"/>
           <!-- Photos Suite launcher -->
           <menu:application uid="0x200104E4"/>
           <!-- Video Suite launcher -->
--- a/taskswitcher/contextengine/tsfswpreviewprovider/inc/previewmsg.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/taskswitcher/contextengine/tsfswpreviewprovider/inc/previewmsg.h	Fri Mar 12 15:41:49 2010 +0200
@@ -38,7 +38,9 @@
         // From PreviewProvider ECOM plugin to PreviewProviderClient. 
         EPreviewReady,
         EAckPreviewReady,
-        EUnregisterReady
+        EUnregisterReady,
+        EBitmapRotationNeeded90,
+        EBitmapRotationNeeded270
         };
     }
 
--- a/taskswitcher/contextengine/tsfswpreviewprovider/inc/tspreviewobserver.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/taskswitcher/contextengine/tsfswpreviewprovider/inc/tspreviewobserver.h	Fri Mar 12 15:41:49 2010 +0200
@@ -51,7 +51,17 @@
      *
      * @param aWgId Window group id of the application.
      */         
-    virtual void HandleFswPpApplicationUnregistered( TInt aWgId ) = 0;    
+    virtual void HandleFswPpApplicationUnregistered( TInt aWgId ) = 0;
+    
+    /**
+     * Called when screenshot for the application needs rotation. Client should
+     * rotate bitmap for the given aWgId by 90 degrees, otherwise it will be
+     * displayed incorrectly.
+     * 
+     * @param aWgId Window group id of the application
+     * @param aClockwise marks direction of the rotation (ETrue - clockwise, EFalse - counter clockwise)
+     */
+    virtual void HandleFswPpApplicationBitmapRotation( TInt aWgId, TBool aClockwise ) = 0;
     };
 
 #endif // TSPREVIEWOBSERVER_H
--- a/taskswitcher/contextengine/tsfswpreviewprovider/inc/tspropertylistener.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/taskswitcher/contextengine/tsfswpreviewprovider/inc/tspropertylistener.h	Fri Mar 12 15:41:49 2010 +0200
@@ -30,7 +30,9 @@
     {
     EOperationNone,
     EOperationUnregister,
-    EOperationBitmapUpdated
+    EOperationBitmapUpdated,
+    EOperationBitmapRotation90,
+    EOperationBitmapRotation270
     };
 
 /**
--- a/taskswitcher/contextengine/tsfswpreviewprovider/src/tspreviewproviderclient.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/taskswitcher/contextengine/tsfswpreviewprovider/src/tspreviewproviderclient.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -205,6 +205,20 @@
             SetProperties( handle, id, EOperationUnregister );
             }
             break;
+        case NPreviewMsg::EBitmapRotationNeeded90:
+            {
+            const TInt id = in.ReadInt32L();
+            const TInt handle = in.ReadInt32L();
+            SetProperties( handle, id, EOperationBitmapRotation90 );
+            }
+            break;
+        case NPreviewMsg::EBitmapRotationNeeded270:
+            {
+            const TInt id = in.ReadInt32L();
+            const TInt handle = in.ReadInt32L();
+            SetProperties( handle, id, EOperationBitmapRotation270 );
+            }
+            break;
         }
 
     TSLOG_OUT();
--- a/taskswitcher/contextengine/tsfswpreviewprovider/src/tspropertylistener.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/taskswitcher/contextengine/tsfswpreviewprovider/src/tspropertylistener.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -69,6 +69,16 @@
             iObs.HandleFswPpApplicationChange( iWgId, iFbsBitmapId );
             break;
             }
+        case EOperationBitmapRotation90:
+            {
+            iObs.HandleFswPpApplicationBitmapRotation( iWgId, ETrue );
+            break;
+            }
+        case EOperationBitmapRotation270:
+            {
+            iObs.HandleFswPpApplicationBitmapRotation( iWgId, EFalse );
+            break;
+            }
         default:
             break;
         }
--- a/taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/inc/previewprovidercrp.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/inc/previewprovidercrp.h	Fri Mar 12 15:41:49 2010 +0200
@@ -152,6 +152,11 @@
     void UnregisterComplete( TInt aWgId );
     
     /**
+     * Notifies the PreviewProviderClient that specific bitmap needs rotation.
+     */
+    void BitmapRotationNeeded( TInt aWgId, TBool aClockwise );
+    
+    /**
      * Uses window server front buffer to create a screenshot.
      * @param aFront preallocated destination bitmap
      * @param aFront Front buffer. 
@@ -171,6 +176,8 @@
     TSize iScreenshotSize;
     TDisplayMode iScreenshotMode;
     RArray<TInt> iWgIds;
+    TTime iScreenChangedTime; // fix for orientation changed/wg group changed problem
+    TBool iClockwiseRot; // for marking rotation direction
     };
 
 #endif // PREVIEWPROVIDERCRP_H
--- a/taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/src/previewprovidercrp.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/src/previewprovidercrp.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -33,6 +33,7 @@
 
 // CONSTANTS
 const TInt KImpId( 0x20016BEC );
+const TInt KMinTimeForOrientationSwitch = 1; // 1 second
 
 // --------------------------------------------------------------------------
 // CPreviewProviderCRP::CreateL
@@ -145,7 +146,9 @@
     TSLOG_IN();
     
     BaseConstructL( aEnv, aId, aOwner );
-    aEnv.RegisterEventHandler( this, this, TWservCrEvent::EWindowGroupChanged );
+    aEnv.RegisterEventHandler( this, this, TWservCrEvent::EWindowGroupChanged |
+                                           TWservCrEvent::EDeviceOrientationChanged );
+    iScreenChangedTime = 0;
     
     TSLOG_OUT();
     }
@@ -165,11 +168,30 @@
         if ( iWgIds.FindInOrder( iPrevId ) >= 0 ||
             ( iPrevId == 0 &&  iPrevReg != 0 ) )
             {
-            TRAP_IGNORE( ScreenshotL() );
+            TTime currTime;
+            currTime.HomeTime();
+            TTimeIntervalSeconds secondsFrom;
+            TInt err = currTime.SecondsFrom( iScreenChangedTime, secondsFrom );
+            if ( err != KErrNone || secondsFrom.Int() > KMinTimeForOrientationSwitch )
+                {
+                TRAP_IGNORE( ScreenshotL() );
+                }
+            else
+                {
+                // Reset time to allow screenshot taking on next wg change
+                iScreenChangedTime = 0;
+                // Order screenshot rotation
+                BitmapRotationNeeded( iPrevId?iPrevId:iPrevReg, iClockwiseRot );
+                }
             iPrevReg = 0;
             }
         iPrevId = wgId;
         }
+    else if ( aEvent.Type() == TWservCrEvent::EDeviceOrientationChanged )
+        {
+        iScreenChangedTime.HomeTime();
+        TRAP_IGNORE( ScreenshotL() );
+        }
     
     TSLOG_OUT();
     }
@@ -217,6 +239,28 @@
     TSLOG_OUT();
     }
 
+
+// --------------------------------------------------------------------------
+// CPreviewProviderCRP::BitmapRotationNeeded
+// --------------------------------------------------------------------------
+//
+void CPreviewProviderCRP::BitmapRotationNeeded( TInt aWgId, TBool aClockwise )
+    {
+    TSLOG_CONTEXT( BitmapRotationNeeded, TSLOG_LOCAL );
+    TSLOG_IN();
+    
+    const TInt msg[] = {
+            aClockwise ? NPreviewMsg::EBitmapRotationNeeded90 : NPreviewMsg::EBitmapRotationNeeded270,
+            aWgId,
+            0
+            };
+    TPckgC<TInt[sizeof(msg) / sizeof(TInt)]> buf(msg);
+    SendMessage(buf);
+    
+    TSLOG_OUT();
+    }
+
+
 // --------------------------------------------------------------------------
 // CPreviewProviderCRP::Register
 // --------------------------------------------------------------------------
@@ -300,6 +344,10 @@
         {
         iScreenshotSize = sz;
         }
+    
+    // Mark direction for possible rotation
+    iClockwiseRot = iScreenshotSize.iWidth > iScreenshotSize.iHeight;
+    
     // Use the the same DisplayMode as for the source image
     // so override the display mode, ignoring any requests.
     iScreenshotMode = screenConfig->DisplayMode();
--- a/taskswitcher/contextengine/tsfswserver/engine/group/tsfswengine.mmp	Fri Feb 19 22:42:37 2010 +0200
+++ b/taskswitcher/contextengine/tsfswserver/engine/group/tsfswengine.mmp	Fri Mar 12 15:41:49 2010 +0200
@@ -50,6 +50,7 @@
 LIBRARY egul.lib
 LIBRARY widgetregistryclient.lib
 LIBRARY featmgr.lib
+LIBRARY bitmaptransforms.lib
 
 LIBRARY tspreviewprovider.lib
 LIBRARY tsfswutils.lib
--- a/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswengine.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswengine.h	Fri Mar 12 15:41:49 2010 +0200
@@ -39,6 +39,8 @@
 class CTsFswIconCache;
 class CTsFastSwapPreviewProvider;
 class CApaWindowGroupName;
+class CBitmapRotator;
+class CTsRotationTask;
 
 // descriptor big enough to store hex repr of 32-bit integer plus 0x prefix
 typedef TBuf<10> TAppUidHexString;
@@ -104,6 +106,15 @@
      */
     IMPORT_C TUid ForegroundAppUidL( TInt aType );
 
+    /**
+     * Callback for rotation completion. Takes ownership of a given
+     * bitmap.
+     */
+    void RotationComplete( TInt aWgId,
+            CFbsBitmap* aBitmap,
+            CTsRotationTask* aCompletedTask,
+            TInt aError );
+    
 private:
     // from CActive
     void RunL();
@@ -122,6 +133,9 @@
     // from MTsFastSwapPreviewObserver
     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:
     /**
@@ -271,11 +285,10 @@
     void PublishFgAppUidL();
 
     /**
-     * Helper function to publish something to CFW.
-     * @param   aType   context type
-     * @param   aValue  value to publish
+     * Close running widget
+     * @param aOffset - widget info offset
      */
-    //void PublishContextL( const TDesC& aType, const TDesC& aValue );
+    void CloseWidgetL(TInt aOffset);
 
 private: // data    
     MTsFswEngineObserver& iObserver;
@@ -316,8 +329,6 @@
     
     // true if web widgets are supported by the system
     TBool iWidgetsSupported;
-    // wgid of widget appui is saved here
-    TInt iWidgetAppUiWgId;
 
     // PS property to listen for swi status changes
     RProperty iSwiProp;
@@ -338,6 +349,30 @@
     TAppUidHexString iFgAppUidStr;
     TUid iFgAppUid;
 
+    // For rotating bitmaps
+    RPointerArray<CTsRotationTask> iRotaTasks;
+    };
+
+
+/**
+ * Listener for rotation complete event
+ */
+NONSHARABLE_CLASS( CTsRotationTask ) : public CActive
+    {
+public:
+    CTsRotationTask( CTsFswEngine& aEngine );
+    ~CTsRotationTask();
+    void StartLD( TInt aWgId,
+            CFbsBitmap* aBitmapHandle,
+            TBool aClockwise );
+private:
+    void RunL();
+    void DoCancel();
+private: // Data
+    CTsFswEngine& iEngine;
+    TInt iWgId;
+    CFbsBitmap* iBitmap; // owned for the duration of transformation
+    CBitmapRotator* iRotator; // owned
     };
 
 #endif
--- a/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswidgetlist.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswidgetlist.h	Fri Mar 12 15:41:49 2010 +0200
@@ -22,8 +22,12 @@
 #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
  */
--- a/taskswitcher/contextengine/tsfswserver/engine/src/tsfswengine.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/taskswitcher/contextengine/tsfswserver/engine/src/tsfswengine.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -29,7 +29,8 @@
 #include <mmf/common/mmfcontrollerpluginresolver.h> // for CleanupResetAndDestroyPushL
 #include <featmgr.h>
 #include <swi/swispubsubdefs.h>
-
+#include <s32mem.h>
+#include <bitmaptransforms.h>
 #include "enginelogging.h"
 
 // time to wait before refreshing content
@@ -148,6 +149,12 @@
     iAppArcSession.Close();
     iWsSession.Close();
 
+    for ( TInt i = 0; i < iRotaTasks.Count(); i++ )
+        {
+        iRotaTasks[i]->Cancel();
+        delete iRotaTasks[i];
+        }
+    iRotaTasks.Close();
 //    delete iContextUtility;
     }
 
@@ -206,36 +213,12 @@
     TSLOG_CONTEXT( CloseAppL, TSLOG_LOCAL );
     TSLOG1_IN( "aWgId = %d", aWgId );
 
-    if ( iWidgetsSupported && aWgId < 0 && iWidgetAppUiWgId )
+    if( iWidgetsSupported && 0 > aWgId )
         {
-        // for widgets clients see a wgid that is -1*(index+1)
-        const RWidgetInfoArray& arr( iWidgetList->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
-        if ( idx >= 0 && idx < arr.Count() )
-            {
-            TWsEvent event;
-            event.SetType( EEventUser );
-            TUint8* eventData = event.EventData();
-            // Fill bits 0-31 with widget application uid.
-            reinterpret_cast<TUint32&>( *eventData ) = KWidgetAppUidValue;
-            eventData += sizeof( TUint32 );
-            // Fill bits 32-63 with uid of the widget that should be closed.
-            reinterpret_cast<TUint32&>( *eventData ) = arr[idx]->iUid.iUid;
-            // Send the event to Widget AppUi.
-            iEnv->WsSession().SendEventToWindowGroup(
-                iWidgetAppUiWgId, event );
-            // closing a widget may not cause a window group change so trigger
-            // the update manually
-            UpdateTaskList();
-            TSLOG0_OUT( "widget processing finished" );
-            return;
-            }
+        // convert aWgId to an index in the list of running widgets and close widget
+        CloseWidgetL( -aWgId -1 );
         }
-
-    TUid appUid = AppUidForWgIdL( aWgId );
-    if ( !iAlwaysShownAppList->IsAlwaysShownApp( appUid ) )
+    else if( !iAlwaysShownAppList->IsAlwaysShownApp( AppUidForWgIdL( aWgId ) ) )
         {
         // send window group event to kill the app
         TWsEvent event;
@@ -244,7 +227,6 @@
         iEnv->WsSession().SendEventToWindowGroup( aWgId, event );
         TSLOG0( TSLOG_INFO, "event sent to wg" );
         }
-
     TSLOG_OUT();
     }
 
@@ -460,33 +442,24 @@
             {
             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 );
 
-        // 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 )
-            {
-            iWidgetAppUiWgId = wgId;
-            onHiddenList = ETrue;
-            CheckWidgetsL( newList );
-            }
-
         // get screen number (-1=console, 0=main screen, 1=cover ui)
         TInt appScreen = 0;
         TInt scrNumErr = iAppArcSession.GetDefaultScreenNumber( appScreen, appUid );
@@ -502,9 +475,15 @@
             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
-        if ( mustShow
+        else if ( mustShow
                 || ( !onHiddenList
                     && !windowName->Hidden()
                     && ( appScreen == 0 || appScreen == -1 )
@@ -517,8 +496,9 @@
             }
         CleanupStack::PopAndDestroy( windowName );
         }
-    CleanupStack::PopAndDestroy( &allWgIds );    
-
+    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() )
@@ -628,15 +608,19 @@
 //
 void CTsFswEngine::CheckWidgetsL( RTsFswArray& aNewList )
     {
-    if ( iWidgetsSupported )
+    if( iWidgetsSupported )
         {
         iWidgetList->InitializeWidgetListL();
         const RWidgetInfoArray& arr( iWidgetList->RunningWidgets() );
         for ( TInt i = 0, ie = arr.Count(); i != ie; ++i )
             {
-            // wgid will be a special negative value
-            // windowgroupname is not needed here so pass NULL
-            AddEntryL( -(i+1), arr[i]->iUid, 0, aNewList, ETrue );
+            //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 );
+                }
             }
         }
     }
@@ -697,16 +681,16 @@
 //
 TInt CTsFswEngine::FindMostTopParentWgId( TInt aWgId )
     {
-	TInt parent( KErrNotFound );
-	parent = FindParentWgId( aWgId );
-	if( parent != KErrNotFound)
-		{
-		TInt topParent = FindMostTopParentWgId(parent);
-		if( topParent != KErrNotFound )
-			{
-			parent = topParent;
-			}
-		}
+    TInt parent( KErrNotFound );
+    parent = FindParentWgId( aWgId );
+    if( parent != KErrNotFound)
+        {
+        TInt topParent = FindMostTopParentWgId(parent);
+        if( topParent != KErrNotFound )
+            {
+            parent = topParent;
+            }
+        }
     return parent;
     }
 
@@ -918,6 +902,94 @@
     }
 
 // --------------------------------------------------------------------------
+// CTsFswEngine::HandleFswPpApplicationBitmapRotation
+// Callback from CTsFastSwapPreviewProvider
+// --------------------------------------------------------------------------
+//
+void CTsFswEngine::HandleFswPpApplicationBitmapRotation( TInt aWgId, TBool aClockwise )
+    {
+    TSLOG_CONTEXT( HandleFswPpApplicationBitmapRotation, TSLOG_LOCAL );
+    TSLOG1_IN( "aWgId = %d", aWgId );
+    
+    CFbsBitmap** bmp = iScreenshots.Find( 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 );
+        }
+    
+    TSLOG_OUT();
+    }
+
+
+// --------------------------------------------------------------------------
+// CTsFswEngine::RotateL
+// Callback from CTsFastSwapPreviewProvider
+// --------------------------------------------------------------------------
+//
+void CTsFswEngine::RotateL( CFbsBitmap& aBitmap, TInt aWgId, TBool aClockwise )
+    {
+    CFbsBitmap* rotaBitmap = new (ELeave) CFbsBitmap;
+    CleanupStack::PushL( rotaBitmap );
+    User::LeaveIfError( rotaBitmap->Duplicate( aBitmap.Handle() ) );
+    CTsRotationTask* rotaTask = new (ELeave) CTsRotationTask( *this );
+    CleanupStack::PushL( rotaTask );
+    User::LeaveIfError( iRotaTasks.Append( rotaTask ) );
+    rotaTask->StartLD( aWgId, rotaBitmap, aClockwise ); // ownership transferred
+    CleanupStack::Pop( rotaTask );
+    CleanupStack::Pop( rotaBitmap );
+    }
+
+
+// --------------------------------------------------------------------------
+// CTsFswEngine::RotationComplete
+// Callback from CTsFastSwapPreviewProvider
+// --------------------------------------------------------------------------
+//
+void CTsFswEngine::RotationComplete( TInt aWgId,
+        CFbsBitmap* aBitmap,
+        CTsRotationTask* aCompletedTask,
+        TInt aError )
+    {
+    TSLOG_CONTEXT( RotationComplete, TSLOG_LOCAL );
+    TSLOG_IN();
+    
+    TSLOG1( TSLOG_INFO, "---> rotation completed with status: %d", aError );
+    TInt idx = iRotaTasks.Find( aCompletedTask );
+    if ( idx != KErrNotFound )
+        {
+        // Update task list
+        iRotaTasks.Remove(idx);
+        }
+    
+    if ( aError == KErrNone )
+        {
+        if ( iScreenshots.Insert( aWgId, aBitmap ) != KErrNone )
+            {
+            delete aBitmap;
+            iScreenshots.Remove( aWgId );
+            AssignScreenshotHandle( aWgId, 0 );
+            }
+        else
+            {
+            AssignScreenshotHandle( aWgId, aBitmap->Handle() );
+            }
+        }
+    else
+        {
+        // Rotation failed, cleanup bitmap
+        delete aBitmap;
+        }
+    
+    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
@@ -1080,5 +1152,119 @@
         EColor64K ); // displaymode is ignored
     }
 
+// --------------------------------------------------------------------------
+// CTsFswEngine::CloseWidgetL
+// --------------------------------------------------------------------------
+//
+void CTsFswEngine::CloseWidgetL(TInt aOffset )
+    {
+    TSLOG_CONTEXT( CloseWidgetL, TSLOG_LOCAL );
+    TSLOG1_IN( "aOffset = %d", aOffset );
+    if( iWidgetList->RunningWidgets().Count() <= aOffset )
+        {
+        User::Leave(KErrArgument);
+        }
+    const CWidgetInfo* widgetInfo(iWidgetList->RunningWidgets()[aOffset]);
+    const TPtrC bundleName(*widgetInfo->iBundleName);
+    RApaLsSession ls;
+    User::LeaveIfError( ls.Connect() );
+    CleanupClosePushL( ls );
+    CApaCommandLine* const cmdLine = CApaCommandLine::NewLC();
+    
+    HBufC8* const
+        opaque( HBufC8::NewLC( bundleName.Size() + 3 * sizeof( TUint32 ) ) );
+    TPtr8 des ( opaque->Des() );
+    RDesWriteStream stream;
+    stream.Open( des );
+    CleanupClosePushL( stream );
+    stream.WriteUint32L ( widgetInfo->iUid.iUid ); 
+    stream.WriteUint32L ( bundleName.Length() );
+    stream.WriteL ( reinterpret_cast< const TUint8* >( bundleName.Ptr() ), bundleName.Size());
+    stream.WriteInt32L ( KCloseWidgetCmd );
+    CleanupStack::PopAndDestroy( &stream );
+    cmdLine->SetCommandL( EApaCommandBackgroundAndWithoutViews );
+    cmdLine->SetOpaqueDataL( *opaque );
+    CleanupStack::PopAndDestroy( opaque );
+    cmdLine->SetExecutableNameL( KWidgetAppName );
+    ls.StartApp( *cmdLine );
+    CleanupStack::PopAndDestroy( cmdLine );
+    CleanupStack::PopAndDestroy( &ls );
+    TSLOG_OUT();
+    }
+
+
+
+// --------------------------------------------------------------------------
+// CTsRotationListener::CTsRotationListener
+// --------------------------------------------------------------------------
+//
+CTsRotationTask::CTsRotationTask(CTsFswEngine& aEngine )
+: CActive(EPriorityStandard),
+  iEngine(aEngine)
+    {
+    CActiveScheduler::Add( this );
+    }
+
+
+// --------------------------------------------------------------------------
+// CTsRotationListener::~CTsRotationListener
+// --------------------------------------------------------------------------
+//
+CTsRotationTask::~CTsRotationTask()
+    {
+    Cancel();
+    delete iRotator;
+    delete iBitmap;
+    }
+
+
+// --------------------------------------------------------------------------
+// CTsRotationListener::Start
+// --------------------------------------------------------------------------
+//
+void CTsRotationTask::StartLD( TInt aWgId,
+        CFbsBitmap* aBitmap,
+        TBool aClockwise )
+    {
+    TSLOG_CONTEXT( StartLD, TSLOG_LOCAL );
+    TSLOG_IN();
+    
+    iWgId = aWgId;
+    iBitmap = aBitmap;
+    iRotator = CBitmapRotator::NewL();
+    if ( aClockwise )
+        {
+        iRotator->Rotate(&iStatus, *iBitmap, CBitmapRotator::ERotation90DegreesClockwise);
+        }
+    else
+        {
+        iRotator->Rotate(&iStatus, *iBitmap, CBitmapRotator::ERotation270DegreesClockwise);
+        }
+    SetActive();
+    
+    TSLOG_OUT();
+    }
+
+
+// --------------------------------------------------------------------------
+// CTsRotationListener::RunL
+// --------------------------------------------------------------------------
+//
+void CTsRotationTask::RunL()
+    {
+    iEngine.RotationComplete( iWgId, iBitmap, this, iStatus.Int() ); // bitmap ownership transferred
+    iBitmap = NULL;
+    delete this;
+    }
+
+
+// --------------------------------------------------------------------------
+// CTsRotationListener::DoCancel
+// --------------------------------------------------------------------------
+//
+void CTsRotationTask::DoCancel()
+    {
+    iRotator->Cancel();
+    }
     
 // end of file
--- a/taskswitcher/contextengine/tsfswserver/engine/src/tsfswidgetlist.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/taskswitcher/contextengine/tsfswserver/engine/src/tsfswidgetlist.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -67,6 +67,12 @@
     User::LeaveIfError( iWidgetRegistryClientSession.Connect() );
     CleanupStack::PushL( TCleanupItem( CleanupConnect, this) );
     iWidgetRegistryClientSession.RunningWidgetsL(iRunningWidgets);
+    //modify useless file size information with mode flag
+    for ( TInt i(iRunningWidgets.Count() - 1); 0 <= i; --i )
+        {
+        iRunningWidgets[i]->iFileSize = 
+             iWidgetRegistryClientSession.IsWidgetInFullView(iRunningWidgets[i]->iUid);
+        }
     CleanupStack::Pop(); // clean WidgetRegistryClientSession item
     iWidgetRegistryClientSession.Disconnect();
     }
--- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tseventcontroler.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tseventcontroler.h	Fri Mar 12 15:41:49 2010 +0200
@@ -152,6 +152,11 @@
                         TBool aLandscape);
     
     /**
+     * Returns ETrue if avkon physics is running, EFalse if not.
+     */
+    TBool IsPhysicsRunning();
+    
+    /**
      * Stops currently ongoing animation
      */
     void StopAnimation();
--- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h	Fri Mar 12 15:41:49 2010 +0200
@@ -155,6 +155,12 @@
      * Handling short/long app key.
      */
     void HandleAppKey(TInt aType);
+    
+    /*
+     * Updates components visibility, used to switch off
+     * grid scrollbar visibility for transition effects
+     */
+    void UpdateComponentVisibility();
 
 private:
 
--- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsphysicsengine.h	Fri Feb 19 22:42:37 2010 +0200
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsphysicsengine.h	Fri Mar 12 15:41:49 2010 +0200
@@ -71,10 +71,17 @@
     void HandleDragEvent(AknTouchGestureFw::MAknTouchGestureFwDragEvent& aEvent);
     
     /**
+     * Checks if the physics is running
      */
     TBool IsRunning() const;
     
     /**
+     * Checks if the physics is running drag
+     */
+    TBool IsDragging() const;
+    
+    /**
+     * Stops physics
      */
     void Stop();
     
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -247,7 +247,7 @@
                                 TBool /*aLayers*/, 
                                 TUint aSubCom )
     {
-    this->RequestPopUpL();
+    TRAP_IGNORE( RequestPopUpL() );
     const TDesC8* ptr = reinterpret_cast<const TDesC8*>(iAppView);
     GfxTransEffect::Abort(iAppView);
     GfxTransEffect::Begin( iAppView, aTranstionId );
@@ -268,11 +268,7 @@
 void CTsAppUi::TransitionFinished(const CCoeControl* /*aControl*/, 
                                   TUint /*aAction*/)
     {
-    DisablePopUpL();
-    /*if( aControl == iAppView )
-        {
-		@TODO IMPLEMENT
-        }*/
+    TRAP_IGNORE( DisablePopUpL() );
     }
 
 // -----------------------------------------------------------------------------
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappview.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappview.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -484,6 +484,7 @@
         MakeVisible( ETrue );
         }
     
+    iFastSwapArea->UpdateComponentVisibility();
     DrawDeferred();
     
     TSLOG_OUT();
@@ -661,6 +662,7 @@
 //
 void CTsAppView::MoveOffset(const TPoint& aOffset)
     {
+    DrawDeferred();
     iFastSwapArea->MoveOffset(aOffset);
     }
 
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tseventcontroler.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tseventcontroler.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -112,9 +112,14 @@
         }
     else if(EAknTouchGestureFwTap == aEvent.Type())
         {
-        if( iPhysicsHelper->IsRunning())
+        if( IsPhysicsRunning() )
             {
+            TBool forwardTap = iPhysicsHelper->IsDragging();
             iPhysicsHelper->Stop();
+            if ( forwardTap )
+                {
+                iObserver.TapL(aEvent.Position());
+                }
             }
         else
             {
@@ -183,6 +188,15 @@
     }
 
 // -----------------------------------------------------------------------------
+// IsPhysicsRunning
+// -----------------------------------------------------------------------------
+//
+TBool CTsEventControler::IsPhysicsRunning()
+    {
+    return iPhysicsHelper->IsRunning();
+    }
+
+// -----------------------------------------------------------------------------
 // StopAnimation
 // -----------------------------------------------------------------------------
 //
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -68,7 +68,7 @@
 const TInt KRedrawTime = 250000; // 0.25 sec
 const TInt KRedrawTimeForLayoutSwitch = 700000; // 0.7 sec
 const TInt KHighlighActivationTime = 100000; // 100 ms
-const TInt KUpdateGridTime = 1000000; // 1 s
+const TInt KUpdateGridTime = 0; // imediately
 
 const TInt KMaxGranularity = 4;
 
@@ -206,27 +206,16 @@
         AknLayoutScalable_Apps::cell_tport_appsw_pane_ParamLimits( variety );
     TPoint empty( ELayoutEmpty, ELayoutEmpty );
     
+    // Setup bitmap layout
     AknListBoxLayouts::SetupFormGfxCell( *iGrid, iGrid->ItemDrawer(), 0,
             AknLayoutScalable_Apps::cell_tport_appsw_pane_g1( variety ).LayoutLine(),
             empty, empty );
 
     // Setup text layout
-    TAknLayoutText textLayout;
-    textLayout.LayoutText(
-            Rect(),
-            AknLayoutScalable_Apps::cell_tport_appsw_pane_t1( variety ).LayoutLine() );
+    AknListBoxLayouts::SetupFormTextCell(*iGrid, iGrid->ItemDrawer(), 1,
+            AknLayoutScalable_Apps::cell_tport_appsw_pane_t1( variety ).LayoutLine(),
+            empty, empty);
     
-    // Because textLayout.BaselineOffset() does not work (missing lib entry),
-    // we need to calculate offset ourselves
-    TInt baselineOffset = textLayout.TextRect().iBr.iY - textLayout.TextRect().iTl.iY;
-    AknListBoxLayouts::SetupFormTextCell( *iGrid, iGrid->ItemDrawer(), 1 /*Column index*/,
-                                          textLayout.Font() /*Font type*/,
-                                          NULL /*color*/,
-                                          textLayout.TextRect().iTl.iX /*Left margin*/, 0 /*unused*/,
-                                          baselineOffset /*Baseline*/, 0 /*Text width*/,
-                                          textLayout.Align() /*Text alignment*/,
-                                          TPoint(0,0) /*Start pos*/,
-                                          TPoint(0,0) /*End pos*/);
     // Text colors
     TRgb textColor;
     AknsUtils::GetCachedColor( AknsUtils::SkinInstance(), textColor,
@@ -748,6 +737,9 @@
     TSLOG_CONTEXT( CTsFastSwapArea::HandleSwitchToForegroundEvent, TSLOG_LOCAL );
     TSLOG_IN();
     
+    // Reset grid
+    TRAP_IGNORE( ReCreateGridL() );
+    
     // get the current task list
     HandleFswContentChanged();
     // and then start listening for changes
@@ -1253,12 +1245,21 @@
         if(visibleItem != SelectedIndex())
             {
             iGrid->SetCurrentDataIndex( visibleItem );
-            DrawNow();
+            DrawDeferred();
             }
         }
 
-    iUpdateGridTimer->Cancel();
-    iUpdateGridTimer->After(aRedrawDelay);
+    // Check if view is outside of grid world
+    TPoint absViewPos = ViewPos();
+    absViewPos.iX -= Rect().Width() / 2;
+    if( !iEvtHandler.IsPhysicsRunning() &&
+        ( absViewPos.iX < 0 || absViewPos.iX + Rect().Width() > GridWorldSize().iWidth )
+      )
+        {
+        // View is outside of grid world - update view
+        iUpdateGridTimer->Cancel();
+        iUpdateGridTimer->After(aRedrawDelay);
+        }
     }
 
 // --------------------------------------------------------------------------
@@ -1363,7 +1364,7 @@
 //
 void CTsFastSwapArea::TapL(const TPoint& aPoint)
     {
-    if(iGrid->Rect().Contains(aPoint))
+    if(Rect().Contains(aPoint))
         {
         //provide tap pointer event to grid
         iGrid->HandlePointerEventL(iTapEvent);
@@ -1623,4 +1624,20 @@
         }
     }
 
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapArea::UpdateComponentVisibility
+// -----------------------------------------------------------------------------
+//
+void CTsFastSwapArea::UpdateComponentVisibility()
+    {
+    // Switch off scrollbars
+    CEikScrollBarFrame* scrollBar = iGrid->ScrollBarFrame();
+    if(scrollBar)
+        {
+        TRAP_IGNORE( scrollBar->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff, 
+                                                        CEikScrollBarFrame::EOff));
+        }
+    }
+
 // End of file
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsphysicsengine.cpp	Fri Feb 19 22:42:37 2010 +0200
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsphysicsengine.cpp	Fri Mar 12 15:41:49 2010 +0200
@@ -86,6 +86,16 @@
     return iPhysics->OngoingPhysicsAction() != CAknPhysics::EAknPhysicsActionNone;
     }
 
+
+// -----------------------------------------------------------------------------
+// CTsPhysicsEngine::IsDragging
+// -----------------------------------------------------------------------------
+//
+TBool CTsPhysicsEngine::IsDragging() const
+    {
+    return iPhysics->OngoingPhysicsAction() == CAknPhysics::EAknPhysicsActionDragging;
+    }
+
 // -----------------------------------------------------------------------------
 // CTsPhysicsEngine::HandleDragEvent
 // -----------------------------------------------------------------------------