Revision: 201033 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 14 Sep 2010 20:58:58 +0300
branchRCL_3
changeset 35 3321d3e205b6
parent 34 5456b4e8b3a8
Revision: 201033 Kit: 201035
idlehomescreen/data/common/empty_2001f47f/group/bld.inf
idlehomescreen/data/common/empty_2001f47f/hsps/00/manifest.dat
idlehomescreen/data/common/empty_2001f47f/hsps/00/widgetconfiguration.xml
idlehomescreen/data/common/empty_2001f47f/rom/empty.iby
idlehomescreen/data/common/empty_2001f47f/rom/empty_variant.iby
idlehomescreen/data/common/empty_2001f47f/xuikon/00/empty.css
idlehomescreen/data/common/empty_2001f47f/xuikon/00/empty.dat
idlehomescreen/data/common/empty_2001f47f/xuikon/00/empty.xml
idlehomescreen/data/common/group/bld.inf
idlehomescreen/data/common/view_200286ed/conf/view200286ed.confml
idlehomescreen/data/common/view_200286ed/conf/view200286ed.gcfml
idlehomescreen/data/common/view_200286ed/conf/view200286edmanifest.confml
idlehomescreen/data/common/view_200286ed/conf/view200286edmanifest.gcfml
idlehomescreen/data/common/view_200286ed/conf/view200286edxuikon.confml
idlehomescreen/data/common/view_200286ed/conf/view200286edxuikon.gcfml
idlehomescreen/data/common/view_200286ed/group/bld.inf
idlehomescreen/data/group/bld.inf
idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/widgetconfiguration.xml
idlehomescreen/data/qhd_tch/empty_2001f47f/group/bld.inf
idlehomescreen/data/qhd_tch/empty_2001f47f/hsps/00/manifest.dat
idlehomescreen/data/qhd_tch/empty_2001f47f/hsps/00/widgetconfiguration.xml
idlehomescreen/data/qhd_tch/empty_2001f47f/rom/empty.iby
idlehomescreen/data/qhd_tch/empty_2001f47f/rom/empty_variant.iby
idlehomescreen/data/qhd_tch/empty_2001f47f/xuikon/00/empty.css
idlehomescreen/data/qhd_tch/empty_2001f47f/xuikon/00/empty.dat
idlehomescreen/data/qhd_tch/empty_2001f47f/xuikon/00/empty.xml
idlehomescreen/data/qhd_tch/group/bld.inf
idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/00/onerow.css
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/xuikon/00/profile.css
idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.xml
idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/37/profile.css
idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/50/profile.css
idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/57/profile.css
idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/94/profile.css
idlehomescreen/data/qhd_tch/templateview_20026f50/loc/templateview.loc
idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/view.dtd
idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/00/threerows.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/tworows_2001f488/xuikon/00/tworows.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/hsps/00/viewconfiguration.xml
idlehomescreen/data/qhd_tch/view_2001f48b/loc/View.loc
idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.dtd
idlehomescreen/data/qhd_tch/view_20022fe0/loc/View.loc
idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/00/View.dtd
idlehomescreen/data/qhd_tch/view_200286e4/loc/View.loc
idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.dtd
idlehomescreen/data/qhd_tch/view_200286e5/loc/View.loc
idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.dtd
idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286ed.confml
idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286ed.gcfml
idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286edmanifest.confml
idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286edmanifest.gcfml
idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286edxuikon.confml
idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286edxuikon.gcfml
idlehomescreen/data/qhd_tch/view_200286ed/group/bld.inf
idlehomescreen/data/vga_tch/clockdate_200286e6/gfx/icon.mif
idlehomescreen/data/vga_tch/clockdate_200286e6/group/bld.inf
idlehomescreen/data/vga_tch/clockdate_200286e6/hsps/00/clockdateconfiguration.dtd
idlehomescreen/data/vga_tch/clockdate_200286e6/hsps/00/manifest.dat
idlehomescreen/data/vga_tch/clockdate_200286e6/hsps/00/widgetconfiguration.xml
idlehomescreen/data/vga_tch/clockdate_200286e6/loc/clockdateconfiguration.loc
idlehomescreen/data/vga_tch/clockdate_200286e6/loc/clockdatewidget.loc
idlehomescreen/data/vga_tch/clockdate_200286e6/rom/clockdatewidget.iby
idlehomescreen/data/vga_tch/clockdate_200286e6/rom/clockdatewidget_customer.iby
idlehomescreen/data/vga_tch/clockdate_200286e6/rom/clockdatewidget_resources.iby
idlehomescreen/data/vga_tch/clockdate_200286e6/rom/clockdatewidget_variant.iby
idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.css
idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.dat
idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.xml
idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/37/clockdate.css
idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/50/clockdate.css
idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/57/clockdate.css
idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/94/clockdate.css
idlehomescreen/data/vga_tch/desktop_20018eee/hsps/00/widgetconfiguration.xml
idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop.iby
idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop_customer.iby
idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop_resources.iby
idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop_variant.iby
idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/00/desktop.css
idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/00/desktop.xml
idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/37/desktop.css
idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/50/desktop.css
idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/57/desktop.css
idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/94/desktop.css
idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget.iby
idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget_customer.iby
idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget_resources.iby
idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget_variant.iby
idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget.iby
idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget_customer.iby
idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget_resources.iby
idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget_variant.iby
idlehomescreen/data/vga_tch/group/bld.inf
idlehomescreen/data/vga_tch/profilemode_200286e7/gfx/icon.mif
idlehomescreen/data/vga_tch/profilemode_200286e7/group/bld.inf
idlehomescreen/data/vga_tch/profilemode_200286e7/hsps/00/manifest.dat
idlehomescreen/data/vga_tch/profilemode_200286e7/hsps/00/profilemodeconfiguration.dtd
idlehomescreen/data/vga_tch/profilemode_200286e7/hsps/00/widgetconfiguration.xml
idlehomescreen/data/vga_tch/profilemode_200286e7/loc/profilemodeconfiguration.loc
idlehomescreen/data/vga_tch/profilemode_200286e7/loc/profilemodewidget.loc
idlehomescreen/data/vga_tch/profilemode_200286e7/rom/profilemodewidget.iby
idlehomescreen/data/vga_tch/profilemode_200286e7/rom/profilemodewidget_customer.iby
idlehomescreen/data/vga_tch/profilemode_200286e7/rom/profilemodewidget_resources.iby
idlehomescreen/data/vga_tch/profilemode_200286e7/rom/profilemodewidget_variant.iby
idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/00/profilemode.css
idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/00/profilemode.dat
idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/00/profilemode.xml
idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/00/profilemodewidget.dtd
idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/37/profilemode.css
idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/50/profilemode.css
idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/57/profilemode.css
idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/94/profilemode.css
idlehomescreen/data/vga_tch/root_2001f48f/conf/root2001f48f.confml
idlehomescreen/data/vga_tch/root_2001f48f/conf/root2001f48f.gcfml
idlehomescreen/data/vga_tch/root_2001f48f/group/bld.inf
idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/manifest.dat
idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/rootconfiguration.dtd
idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/rootconfiguration.xml
idlehomescreen/data/vga_tch/root_2001f48f/rom/root.iby
idlehomescreen/data/vga_tch/root_2001f48f/rom/root_customer.iby
idlehomescreen/data/vga_tch/root_2001f48f/rom/root_resources.iby
idlehomescreen/data/vga_tch/root_2001f48f/rom/root_variant.iby
idlehomescreen/data/vga_tch/root_2001f48f/xuikon/00/root.xml
idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget.iby
idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget_customer.iby
idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget_resources.iby
idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget_variant.iby
idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget.iby
idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget_customer.iby
idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget_resources.iby
idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget_variant.iby
idlehomescreen/data/vga_tch/templateview_200286ec/group/bld.inf
idlehomescreen/data/vga_tch/templateview_200286ec/hsps/00/manifest.dat
idlehomescreen/data/vga_tch/templateview_200286ec/hsps/00/viewconfiguration.dtd
idlehomescreen/data/vga_tch/templateview_200286ec/hsps/00/viewconfiguration.xml
idlehomescreen/data/vga_tch/templateview_200286ec/loc/view.loc
idlehomescreen/data/vga_tch/templateview_200286ec/loc/viewconfiguration.loc
idlehomescreen/data/vga_tch/templateview_200286ec/rom/view.iby
idlehomescreen/data/vga_tch/templateview_200286ec/rom/view_customer.iby
idlehomescreen/data/vga_tch/templateview_200286ec/rom/view_resources.iby
idlehomescreen/data/vga_tch/templateview_200286ec/rom/view_variant.iby
idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/00/View.xml
idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/00/view.css
idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/00/view.dat
idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/00/view.dtd
idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/37/view.css
idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/50/view.css
idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/57/view.css
idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/94/view.css
idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget.iby
idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget_customer.iby
idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget_resources.iby
idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget_variant.iby
idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget.iby
idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget_customer.iby
idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget_resources.iby
idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget_variant.iby
idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9.confml
idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9.gcfml
idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9manifest.confml
idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9manifest.gcfml
idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9xuikon.confml
idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9xuikon.gcfml
idlehomescreen/data/vga_tch/view1_2001fdb9/group/bld.inf
idlehomescreen/data/vga_tch/view1_2001fdb9/hsps/00/viewconfiguration.xml
idlehomescreen/data/vga_tch/view1_2001fdb9/loc/view.loc
idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view.iby
idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view_customer.iby
idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view_resources.iby
idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view_variant.iby
idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.css
idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.dtd
idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.xml
idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/37/view.css
idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/50/view.css
idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/57/view.css
idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/94/view.css
idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286ea.confml
idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286ea.gcfml
idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eamanifest.confml
idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eamanifest.gcfml
idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eaxuikon.confml
idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eaxuikon.gcfml
idlehomescreen/data/vga_tch/view2_200286ea/group/bld.inf
idlehomescreen/data/vga_tch/view2_200286ea/hsps/00/manifest.dat
idlehomescreen/data/vga_tch/view2_200286ea/hsps/00/viewconfiguration.dtd
idlehomescreen/data/vga_tch/view2_200286ea/hsps/00/viewconfiguration.xml
idlehomescreen/data/vga_tch/view2_200286ea/loc/view.loc
idlehomescreen/data/vga_tch/view2_200286ea/loc/viewconfiguration.loc
idlehomescreen/data/vga_tch/view2_200286ea/rom/view.iby
idlehomescreen/data/vga_tch/view2_200286ea/rom/view_customer.iby
idlehomescreen/data/vga_tch/view2_200286ea/rom/view_resources.iby
idlehomescreen/data/vga_tch/view2_200286ea/rom/view_variant.iby
idlehomescreen/data/vga_tch/view2_200286ea/xuikon/00/View.css
idlehomescreen/data/vga_tch/view2_200286ea/xuikon/00/View.xml
idlehomescreen/data/vga_tch/view2_200286ea/xuikon/00/view.dat
idlehomescreen/data/vga_tch/view2_200286ea/xuikon/00/view.dtd
idlehomescreen/data/vga_tch/view2_200286ea/xuikon/37/view.css
idlehomescreen/data/vga_tch/view2_200286ea/xuikon/50/view.css
idlehomescreen/data/vga_tch/view2_200286ea/xuikon/57/view.css
idlehomescreen/data/vga_tch/view2_200286ea/xuikon/94/view.css
idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286eb.confml
idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286eb.gcfml
idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebmanifest.confml
idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebmanifest.gcfml
idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebxuikon.confml
idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebxuikon.gcfml
idlehomescreen/data/vga_tch/view3_200286eb/group/bld.inf
idlehomescreen/data/vga_tch/view3_200286eb/hsps/00/manifest.dat
idlehomescreen/data/vga_tch/view3_200286eb/hsps/00/viewconfiguration.dtd
idlehomescreen/data/vga_tch/view3_200286eb/hsps/00/viewconfiguration.xml
idlehomescreen/data/vga_tch/view3_200286eb/loc/view.loc
idlehomescreen/data/vga_tch/view3_200286eb/loc/viewconfiguration.loc
idlehomescreen/data/vga_tch/view3_200286eb/rom/view.iby
idlehomescreen/data/vga_tch/view3_200286eb/rom/view_customer.iby
idlehomescreen/data/vga_tch/view3_200286eb/rom/view_resources.iby
idlehomescreen/data/vga_tch/view3_200286eb/rom/view_variant.iby
idlehomescreen/data/vga_tch/view3_200286eb/xuikon/00/View.css
idlehomescreen/data/vga_tch/view3_200286eb/xuikon/00/View.xml
idlehomescreen/data/vga_tch/view3_200286eb/xuikon/00/view.dat
idlehomescreen/data/vga_tch/view3_200286eb/xuikon/00/view.dtd
idlehomescreen/data/vga_tch/view3_200286eb/xuikon/37/view.css
idlehomescreen/data/vga_tch/view3_200286eb/xuikon/50/view.css
idlehomescreen/data/vga_tch/view3_200286eb/xuikon/57/view.css
idlehomescreen/data/vga_tch/view3_200286eb/xuikon/94/view.css
idlehomescreen/data/vga_tch/wideimage_10009dff/group/bld.inf
idlehomescreen/data/vga_tch/wideimage_10009dff/hsps/00/widgetconfiguration.xml
idlehomescreen/data/vga_tch/wideimage_10009dff/loc/wideimage.loc
idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage.iby
idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage_customer.iby
idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage_resources.iby
idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage_variant.iby
idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.css
idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.dat
idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.dtd
idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.xml
idlehomescreen/examples/carouselwidgetexample/group/bld.inf
idlehomescreen/examples/carouselwidgetexample/publisher/data/carouselplugin.rss
idlehomescreen/examples/carouselwidgetexample/publisher/data/carouselpluginres.rss
idlehomescreen/examples/carouselwidgetexample/publisher/data/carouselpluginuids.hrh
idlehomescreen/examples/carouselwidgetexample/publisher/group/bld.inf
idlehomescreen/examples/carouselwidgetexample/publisher/group/carouselplugin.mmp
idlehomescreen/examples/carouselwidgetexample/publisher/inc/carouselplugin.h
idlehomescreen/examples/carouselwidgetexample/publisher/inc/carouselplugindata.h
idlehomescreen/examples/carouselwidgetexample/publisher/inc/carouselpluginengine.h
idlehomescreen/examples/carouselwidgetexample/publisher/inc/carouselpluginwatcher.h
idlehomescreen/examples/carouselwidgetexample/publisher/loc/carouselplugin.loc
idlehomescreen/examples/carouselwidgetexample/publisher/rom/carouselplugin.iby
idlehomescreen/examples/carouselwidgetexample/publisher/rom/carouselplugin_resources.iby
idlehomescreen/examples/carouselwidgetexample/publisher/src/carouselplugin.cpp
idlehomescreen/examples/carouselwidgetexample/publisher/src/carouselplugindata.cpp
idlehomescreen/examples/carouselwidgetexample/publisher/src/carouselpluginengine.cpp
idlehomescreen/examples/carouselwidgetexample/publisher/src/carouselpluginwatcher.cpp
idlehomescreen/examples/carouselwidgetexample/renderer/data/carouselwidget.rss
idlehomescreen/examples/carouselwidgetexample/renderer/group/bld.inf
idlehomescreen/examples/carouselwidgetexample/renderer/group/carouselwidget.mmp
idlehomescreen/examples/carouselwidgetexample/renderer/inc/carouselwidget.h
idlehomescreen/examples/carouselwidgetexample/renderer/rom/carouselwidget.iby
idlehomescreen/examples/carouselwidgetexample/renderer/src/carouselwidget.cpp
idlehomescreen/examples/carouselwidgetexample/sis/carousel.pkg
idlehomescreen/examples/carouselwidgetexample/widget/group/bld.inf
idlehomescreen/examples/carouselwidgetexample/widget/hsps/00/manifest.dat
idlehomescreen/examples/carouselwidgetexample/widget/hsps/00/widgetconfiguration.xml
idlehomescreen/examples/carouselwidgetexample/widget/rom/appstripe.iby
idlehomescreen/examples/carouselwidgetexample/widget/rom/appstripe_customer.iby
idlehomescreen/examples/carouselwidgetexample/widget/rom/appstripe_resources.iby
idlehomescreen/examples/carouselwidgetexample/widget/rom/appstripe_variant.iby
idlehomescreen/examples/carouselwidgetexample/widget/xuikon/00/appstripe.css
idlehomescreen/examples/carouselwidgetexample/widget/xuikon/00/appstripe.dat
idlehomescreen/examples/carouselwidgetexample/widget/xuikon/00/appstripe.dtd
idlehomescreen/examples/carouselwidgetexample/widget/xuikon/00/appstripe.xml
idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample.l01
idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample.loc
idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample.rss
idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample_reg.loc
idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample_reg.rss
idlehomescreen/examples/hscontentcontrolexample/gfx/list_icon.bmp
idlehomescreen/examples/hscontentcontrolexample/gfx/list_icon_mask.bmp
idlehomescreen/examples/hscontentcontrolexample/gfx/mark_icon.bmp
idlehomescreen/examples/hscontentcontrolexample/gfx/mark_icon_mask.bmp
idlehomescreen/examples/hscontentcontrolexample/gfx/qgn_menu_hscontentcontrolexample.svg
idlehomescreen/examples/hscontentcontrolexample/group/Icons_aif_scalable_dc.mk
idlehomescreen/examples/hscontentcontrolexample/group/bld.inf
idlehomescreen/examples/hscontentcontrolexample/group/hscontentcontrolexample.mmp
idlehomescreen/examples/hscontentcontrolexample/inc/HsContentControlAppUi.h
idlehomescreen/examples/hscontentcontrolexample/inc/HsContentControlApplication.h
idlehomescreen/examples/hscontentcontrolexample/inc/HsContentControlDocument.h
idlehomescreen/examples/hscontentcontrolexample/inc/HsContentControlListBox.h
idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/group/bld.inf
idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/hsps/00/manifest.dat
idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/hsps/00/widgetconfiguration.xml
idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/sis/hs_configuration_urel.pkg
idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/xuikon/00/root2.css
idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/xuikon/00/root2.dat
idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/xuikon/00/root2.dtd
idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/xuikon/00/root2.xml
idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/group/bld.inf
idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/hsps/00/manifest.dat
idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/hsps/00/widgetconfiguration.xml
idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/sis/hs_configuration_urel.pkg
idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/xuikon/00/root2.css
idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/xuikon/00/root2.dat
idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/xuikon/00/root2.dtd
idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/xuikon/00/root2.xml
idlehomescreen/examples/hscontentcontrolexample/sis/hscontentcontrolexample_urel.pkg
idlehomescreen/examples/hscontentcontrolexample/src/HsContentControlAppUi.cpp
idlehomescreen/examples/hscontentcontrolexample/src/HsContentControlApplication.cpp
idlehomescreen/examples/hscontentcontrolexample/src/HsContentControlDocument.cpp
idlehomescreen/examples/hscontentcontrolexample/src/HsContentControlListBox.cpp
idlehomescreen/examples/mcsexample/data/MCSExample.rls
idlehomescreen/examples/mcsexample/data/MCSExample.rss
idlehomescreen/examples/mcsexample/data/MCSExample_reg.rss
idlehomescreen/examples/mcsexample/gfx/qgn_menu_MCSExample.svg
idlehomescreen/examples/mcsexample/group/Icons_scalable_dc.mk
idlehomescreen/examples/mcsexample/group/MCSExample.mmp
idlehomescreen/examples/mcsexample/group/bld.inf
idlehomescreen/examples/mcsexample/inc/MCSExample.hrh
idlehomescreen/examples/mcsexample/inc/MCSExample.pan
idlehomescreen/examples/mcsexample/inc/MCSExampleAppUi.h
idlehomescreen/examples/mcsexample/inc/MCSExampleAppView.h
idlehomescreen/examples/mcsexample/inc/MCSExampleApplication.h
idlehomescreen/examples/mcsexample/inc/MCSExampleDocument.h
idlehomescreen/examples/mcsexample/inc/mcspluginwatcher.h
idlehomescreen/examples/mcsexample/sis/MCSExample_S60_3_X_v_1_0_0.pkg
idlehomescreen/examples/mcsexample/sis/backup_registration.xml
idlehomescreen/examples/mcsexample/src/MCSExample.cpp
idlehomescreen/examples/mcsexample/src/MCSExampleAppUi.cpp
idlehomescreen/examples/mcsexample/src/MCSExampleAppView.cpp
idlehomescreen/examples/mcsexample/src/MCSExampleApplication.cpp
idlehomescreen/examples/mcsexample/src/MCSExampleDocument.cpp
idlehomescreen/examples/mcsexample/src/mcspluginwatcher.cpp
idlehomescreen/inc/xnappuiadapter.h
idlehomescreen/inc/xncontroladapter.h
idlehomescreen/inc/xnnodeimpl.h
idlehomescreen/inc/xnnodepluginif.h
idlehomescreen/inc/xnproperty.h
idlehomescreen/inc/xntexteditor.h
idlehomescreen/inc/xnuiengine.h
idlehomescreen/inc/xnuienginepluginif.h
idlehomescreen/inc/xnviewmanager.h
idlehomescreen/inc/xnviewswitcher.h
idlehomescreen/nativeuicontroller/group/ainatiui.mmp
idlehomescreen/nativeuicontroller/src/aidialogrenderer.cpp
idlehomescreen/nativeuicontroller/src/ainotifierrenderer.cpp
idlehomescreen/nativeuicontroller/src/aisoftkeyrenderer.cpp
idlehomescreen/nativeuicontroller/src/aistatuspanel.cpp
idlehomescreen/nativeuicontroller/src/aistatuspanetouchui.cpp
idlehomescreen/nativeuicontroller/src/aistyluspopupmenucontent.cpp
idlehomescreen/nativeuicontroller/src/aititlepanerenderer.cpp
idlehomescreen/nativeuicontroller/src/aitoolbarrenderer.cpp
idlehomescreen/nativeuicontroller/src/appui.cpp
idlehomescreen/nativeuicontroller/src/nativeuicontroller.cpp
idlehomescreen/widgetmanager/src/wmeffectmanager.cpp
idlehomescreen/widgetmanager/src/wmmaincontainer.cpp
idlehomescreen/widgetmanager/src/wmwidgetdata.cpp
idlehomescreen/xmluicontroller/inc/mtransaction.h
idlehomescreen/xmluicontroller/inc/mtransactionelement.h
idlehomescreen/xmluicontroller/inc/transaction.h
idlehomescreen/xmluicontroller/inc/transactionelement.h
idlehomescreen/xmluicontroller/inc/transactionfactoryimpl.h
idlehomescreen/xmluicontroller/src/contentrenderer.cpp
idlehomescreen/xmluicontroller/src/transaction.cpp
idlehomescreen/xmluicontroller/src/transactionelement.cpp
idlehomescreen/xmluicontroller/src/transactionfactoryimpl.cpp
idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/group/xnclockfactory.mmp
idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockadapter.h
idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockcontrol.h
idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockface.h
idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xndatecontrol.h
idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockadapter.cpp
idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockcontrol.cpp
idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockface.cpp
idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xndatecontrol.cpp
idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewstickercontrol.cpp
idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/inc/xntexteditoradapter.h
idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/inc/xntexteditorpublisher.h
idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditor.cpp
idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditoradapter.cpp
idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditorpublisher.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/xnbackgroundmanager.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/xnkeyeventdispatcher.h
idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.h
idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.inl
idlehomescreen/xmluirendering/uiengine/inc/xnrootdata.h
idlehomescreen/xmluirendering/uiengine/inc/xnuiengineimpl.h
idlehomescreen/xmluirendering/uiengine/inc/xnviewadapter.h
idlehomescreen/xmluirendering/uiengine/inc/xnviewcontroladapter.h
idlehomescreen/xmluirendering/uiengine/src/xnappuiadapter.cpp
idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp
idlehomescreen/xmluirendering/uiengine/src/xncomposer.cpp
idlehomescreen/xmluirendering/uiengine/src/xncontroladapter.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/xnnodeimpl.cpp
idlehomescreen/xmluirendering/uiengine/src/xnnodepluginif.cpp
idlehomescreen/xmluirendering/uiengine/src/xnodtparser.cpp
idlehomescreen/xmluirendering/uiengine/src/xnplugindata.cpp
idlehomescreen/xmluirendering/uiengine/src/xnrootdata.cpp
idlehomescreen/xmluirendering/uiengine/src/xnscrollablecontroladapter.cpp
idlehomescreen/xmluirendering/uiengine/src/xnuiengine.cpp
idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp
idlehomescreen/xmluirendering/uiengine/src/xnuienginepluginif.cpp
idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp
idlehomescreen/xmluirendering/uiengine/src/xnviewcontroladapter.cpp
idlehomescreen/xmluirendering/uiengine/src/xnviewdata.cpp
idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp
idlehomescreen/xmluirendering/uiengine/src/xnviewswitcher.cpp
idlehomescreen/xmluirendering/uiengine/src/xnwallpaperview.rss
idlehomescreen/xmluirendering/uiengine/src/xnwidgetextensionadapter.cpp
menufw/hierarchynavigator/hnengine/src/hnengine.cpp
menufw/hierarchynavigator/hnmetadatamodel/inc/hnglobals.h
menufw/hierarchynavigator/hnmetadatamodel/inc/hnrepositoryobserver.h
menufw/hierarchynavigator/hnmetadatamodel/src/hnmdmodel.cpp
menufw/hierarchynavigator/hnmetadatamodel/src/hnrepositoryobserver.cpp
menufw/menufwui/matrixmenu/help/data/xhtml.zip
menufw/menufwui/matrixmenu/inc/mmappui.h
menufw/menufwui/matrixmenu/src/mmappui.cpp
menufw/menufwui/mmwidgets/bwins/mmwidgetsu.def
menufw/menufwui/mmwidgets/data/grid/lct/akn_logical_template_3_vga.xml
menufw/menufwui/mmwidgets/eabi/mmwidgetsu.def
menufw/menufwui/mmwidgets/group/bld.inf
menufw/menufwui/mmwidgets/inc/mmdraweranimator.h
menufw/menufwui/mmwidgets/inc/mmgrid.h
menufw/menufwui/mmwidgets/inc/mmgridcontainer.h
menufw/menufwui/mmwidgets/inc/mmlistbox.h
menufw/menufwui/mmwidgets/inc/mmlistboxcontainer.h
menufw/menufwui/mmwidgets/inc/mmlistboxview.h
menufw/menufwui/mmwidgets/inc/mmwidgetcontainer.h
menufw/menufwui/mmwidgets/inc/mmwidgetsconstants.h
menufw/menufwui/mmwidgets/rom/mmwidgets.iby
menufw/menufwui/mmwidgets/src/mmdraweranimator.cpp
menufw/menufwui/mmwidgets/src/mmgrid.cpp
menufw/menufwui/mmwidgets/src/mmgridcontainer.cpp
menufw/menufwui/mmwidgets/src/mmlistbox.cpp
menufw/menufwui/mmwidgets/src/mmlistboxcontainer.cpp
menufw/menufwui/mmwidgets/src/mmlistboxitemdrawer.cpp
menufw/menufwui/mmwidgets/src/mmlistboxview.cpp
menufw/menufwui/mmwidgets/src/mmwidgetcontainer.cpp
menufw/menusuites/foldersuite/data/matrixmenudata.xml
menufw/menusuites/foldersuite/data/matrixmenudata_vga.xml
menufw/menusuites/foldersuite/group/bld.inf
menufw/menusuites/foldersuite/loc/matrixmenudata.loc
taskswitcher/contextengine/tsfswpreviewprovider/inc/tspreviewobserver.h
taskswitcher/contextengine/tsfswpreviewprovider/src/tspropertylistener.cpp
taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/inc/previewprovidercrp.h
taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/src/previewprovidercrp.cpp
taskswitcher/contextengine/tsfswserver/engine/inc/tsfswdatalist.h
taskswitcher/contextengine/tsfswserver/engine/inc/tsfswengine.h
taskswitcher/contextengine/tsfswserver/engine/src/tsfswdatalist.cpp
taskswitcher/contextengine/tsfswserver/engine/src/tsfswengine.cpp
taskswitcher/taskswitcherui/taskswitcherapp/group/tsapp.mmp
taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappui.h
taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h
taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapareautils.h
taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapgrid.h
taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp
taskswitcher/taskswitcherui/taskswitcherapp/src/tsappview.cpp
taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp
taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapareautils.cpp
taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapgrid.cpp
taskswitcher/taskswitcherui/taskswitcherapp/src/tsphysicsengine.cpp
taskswitcher/taskswitcherui/taskswitcherappecom/group/tsappecom.mmp
taskswitcher/taskswitcherui/taskswitcherappecom/inc/tsappecom.h
taskswitcher/taskswitcherui/taskswitcherappecom/src/tsappecom.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/empty_2001f47f/group/bld.inf	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,55 @@
+/*
+* 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/empty_2001f47f/hsps/manifest.dat
+../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/empty_2001f47f/hsps/widgetconfiguration.xml
+../xuikon/00/empty.dat /epoc32/data/Z/resource/homescreen/empty_2001f47f/xuikon/empty_2001f47f.dat
+../xuikon/00/empty.css /epoc32/data/Z/resource/homescreen/empty_2001f47f/xuikon/empty.css
+../xuikon/00/empty.xml /epoc32/data/Z/resource/homescreen/empty_2001f47f/xuikon/empty.xml
+
+// Support for S60 builds
+//***********************
+../rom/empty_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(empty_2001f47f_variant.iby)
+../rom/empty.iby CORE_APP_LAYER_IBY_EXPORT_PATH(empty_2001f47f.iby)
+
+// Dtd-localization
+//*****************
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME empty_2001f47f
+OPTION DTD_TYPE widget
+OPTION LOC_FOLDERS yes
+END
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+
+//  End of File  
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/empty_2001f47f/hsps/00/manifest.dat	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+
+<package version="2.0">
+
+
+	<family>qhd_tch</family>
+	<family>vga_tch</family>
+
+
+
+  <type>widget</type>
+
+
+
+  <!-- interface uid -->
+
+	<interfaceuid>0x2001f48a</interfaceuid>
+
+
+
+	<!-- vendor uid  -->
+
+	<provideruid>0x101fb657</provideruid>
+
+
+
+	<!-- uid -->
+
+	<configurationuid>0x2001f47f</configurationuid>
+
+
+
+	<!-- description -->
+
+	<fullname>&amp;qtn_empty_2001f47f_name;</fullname>
+
+	<shortname>empty</shortname>
+
+	<version>1.0</version>
+
+
+
+	<!-- configuration -->
+
+	<filexml>widgetconfiguration.xml</filexml>
+
+		
+	<!-- Locale independent/common resources -->
+
+  <fileresource>empty.o0000</fileresource>
+
+
+
+  <!-- Locale specific resources -->
+
+	<localization/>
+
+
+
+</package>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/empty_2001f47f/hsps/00/widgetconfiguration.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,5 @@
+<configuration>
+    <control>
+        <settings/>
+    </control>
+</configuration>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/empty_2001f47f/rom/empty.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,26 @@
+/*
+* 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: 
+* Empty widget HSPS-plugin IBY file 
+*
+*/
+
+#ifndef __EMPTY_2001F47F_IBY__
+#define __EMPTY_2001F47F_IBY__
+
+// Enabled by DTD-localization tools
+data=ZPRIVATE\200159c0\install\empty_2001f47f\xuikon\00\empty.o0000 \private\200159c0\install\empty_2001f47f\xuikon\00\empty.o0000
+data=ZPRIVATE\200159c0\install\empty_2001f47f\hsps\00\manifest.dat \private\200159c0\install\empty_2001f47f\hsps\00\manifest.dat
+
+#endif // __EMPTY_2001F47F_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/empty_2001f47f/rom/empty_variant.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,25 @@
+/*
+* 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:  
+* Empty widget HSPS-plugin variant specific IBY file.
+*
+*/
+
+#ifndef __EMPTY_2001F47F_VARIANT_IBY__
+#define __EMPTY_2001F47F_VARIANT_IBY__
+
+// Enabled by variation tools, variant specific
+data=ZPRIVATE\200159c0\install\empty_2001f47f\hsps\00\widgetconfiguration.xml \private\200159c0\install\empty_2001f47f\hsps\00\widgetconfiguration.xml
+
+#endif  // __EMPTY_2001F47F_VARIANT_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/empty_2001f47f/xuikon/00/empty.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,6 @@
+widget
+{
+    display: none;
+    visibility: hidden;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/empty_2001f47f/xuikon/00/empty.dat	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<data>
+    <AppUid>E029CF57</AppUid>
+    <Provideruid>101FB657</Provideruid>
+    <ThemeUid>11001001</ThemeUid>
+    <ThemeFullName>empty</ThemeFullName>
+    <ThemeShortName>empty</ThemeShortName>
+    <ThemeVersion>1.0</ThemeVersion>
+    <FileXML>empty.xml</FileXML>
+    <FileCSS>empty.css</FileCSS>
+</data>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/empty_2001f47f/xuikon/00/empty.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
+    <widget id="empty"/>    
+</xmluiml>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/group/bld.inf	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,24 @@
+/*
+* 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:  The information required for building
+*
+*/
+
+#include "../empty_2001f47f/group/bld.inf"
+#include "../view_200286ed/group/bld.inf"
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/view_200286ed/conf/view200286ed.confml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration xmlns="http://www.s60.com/xml/confml/2" name="Banko Homescreen" version="1">
+  <feature ref="BlankoHomescreenPlugins" name="Blanko Homescreen Widgets">
+    <setting ref="Plugins" name="Widgets" type="sequence">
+      <desc>Widgets on Blanko Homescreen</desc>
+      <setting ref="Uid" name="Widget" type="string">
+        <desc>Widget name</desc>
+        <option name="Empty" value="0x2001f47f"/>
+        <option name="wrtplugin_1" value="0x20022FD4"/>
+        <option name="wrtplugin_2" value="0x20022FD5"/>
+        <option name="wrtplugin_3" value="0x20022FD6"/>
+        <option name="wrtplugin_4" value="0x20022FD7"/>
+        <option name="wrtplugin_5" value="0x20022FD8"/>
+        <option name="wrtplugin_6" value="0x20022FD9"/>
+        <option name="wrtplugin_7" value="0x20022FDA"/>
+        <option name="wrtplugin_8" value="0x20022FDB"/>
+        <option name="wrtplugin_9" value="0x2001CB7D"/>
+        <option name="wrtplugin_10" value="0x2001CB7E"/>
+        <option name="wrtplugin_11" value="0x2001CB7F"/>
+        <option name="wrtplugin_12" value="0x200286EE"/>
+      </setting>
+      <setting ref="BundleIdentifier" name="Bundle Identifier" type="string">
+        <desc>Bundle identifier for the (C)WRT widgets. Leave empty if not set.</desc>
+        <option name="8TV Catch Up" value="com.nerdattack.widget.8TV"/>
+        <option name="Aftonbladet WebbTV" value="apegroup.aftonbladet.webbtv.symbian3"/>
+        <option name="Al Jazeera" value="si.inova.verve.aljazeera"/>
+        <option name="BBC Arabic Web TV" value="com.nokia.forum.bbcatv1.widget"/>
+        <option name="BH TV" value="com.bollywoodhungama.widget.BollywoodHungamaTV"/>
+        <option name="Channel NewsAsia" value="Channel.newsasia"/>
+        <option name="CNN Video" value="com.cnn"/>
+        <option name="DigiturkWebTV" value="com.digiturkwebtv.widget"/>
+        <option name="EFE Videos" value="com.ericsson.efe.widget"/>
+        <option name="E!" value="com.moderati.eonline"/>
+        <option name="Bollywood" value="br.org.indt.widget.eros"/>
+        <option name="Ovi Files" value="com.nokia.ss.sas.filesql"/>
+        <option name="Hi5" value="com.hi5.widget.Launcher"/>
+        <option name="凤凰电视" value="com.ifeng.www.webtv.widget"/>
+        <option name="Chat" value="com.nokia.ChatClient"/>
+        <option name="芒果 TV" value="com.imgo.tv"/>
+        <option name="India Today" value="br.org.indt.widget.indiatoday"/>
+        <option name="BBC iPlayer" value="com.bbc.widget.iplayer"/>
+        <option name="Contacts' latest activities" value="com.nokia.somawebui.xwidget"/>
+        <option name="M1TV" value="com.m1tv.basic.widget"/>
+        <option name="Makansutr" value="com.nerdattack.wrt.Makansutra"/>
+        <option name="bose" value="com.bose.basic.widget"/>
+        <option name="SingTel MTVS" value="com.nokia.widget.sapi.mtvs"/>
+        <option name="Nat Geo" value="com.natgeo"/>
+        <option name="NRK Mobil-TV" value="no.nrk.mobil.mobiltv.widget"/>
+        <option name="ontv" value="ontv.cc.on.tv.widget"/>
+        <option name="ovi" value="com.nokia.ovi"/>
+        <option name="Movie Teasers" value="com.movieteasers"/>
+        <option name="Schweizer Fernsehen" value="com.sftvreader.basic.widget"/>
+        <option name="Sky News On Demand" value="com.nerdattack.widget.SKYNEWS"/>
+        <option name="Social" value="com.nokia.socialmixer.v1"/>
+        <option name="æœç‹å¨±ä¹" value="com.sohu.widget.webtv4ovi"/>
+        <option name="SSOUI" value="ovi.serviceui.SSOUI"/>
+        <option name="Terra TV" value="com.terra.widget.wrt.tv"/>
+        <option name="Terra TV Lat" value="com.terra.widget.wrt.tv.latam"/>
+        <option name="topApps" value="com.topApps.basic.widget"/>
+        <option name="Tudou" value="com.Tudou.widget"/>
+        <option name="tv2news" value="com.nokia.forum.widget.tv2news"/>
+        <option name="TV2Play" value="no.tv2.tv2play.widget"/>
+        <option name="TV3 Catch Up" value="com.nerdattack.widget.TV3"/>
+        <option name="ВеÑти" value="com.vesti.basic.widget"/>
+        <option name="Viasat No" value="no.viasat.widget"/>
+        <option name="Viasat Swe" value="se.viasat.widget"/>
+        <option name="Virtual Malaysia" value="com.nerdattack.widget.VirtualMalaysia"/>
+        <option name="央广新浪" value="cn.com.sina.3g"/>
+        <option name="Web TV Demo" value="com.nokia.forum.webtv.widget"/>
+        <option name="Yle Areena" value="com.tieto.yle"/>
+        <option name="优酷" value="com.youku.s605th.webtv"/>
+      </setting>
+      <setting ref="TemplateIdentifier" name="Template Identifier" type="selection">
+        <desc>Templeate identifier for the (C)WRT widgets. None for the native widgets</desc>
+        <option name="None" value="0"/>
+        <option name="wideimage_qhd" value="0x2001f489"/>
+        <option name="wideimage_vga" value="0x10009dff"/>
+      </setting>
+      <setting ref="LockingStatus" name="locking Status" type="selection">
+        <desc>Locking status</desc>
+        <option name="None" value="none"/>
+        <option name="Locked" value="locked"/>
+      </setting>
+    </setting>
+  </feature>
+  <data>
+  <!--  <BlankoHomescreenPlugins>
+      <Plugins extensionPolicy="replace"><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
+      <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
+      <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
+      <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
+      <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
+      <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
+    </BlankoHomescreenPlugins> -->
+  </data>
+</configuration>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/view_200286ed/conf/view200286ed.gcfml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+	<tag name="target" value="uda"/>
+	<tag name="target" value="emmc"/>
+	<phase name='post'/> <!-- post phase for making sure that all required data is available -->
+	
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="viewconfiguration.xml" target="\private\200159c0\install\view_200286ed\hsps\00\">
+		<setting ref="BlankoHomescreenPlugins/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>
+			 	<control>
+				  <plugins>
+						<xsl:for-each select="BlankoHomescreenPlugins/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>
+							</plugin>
+						</xsl:for-each>
+					</plugins>
+				</control>
+			</configuration>
+		</xsl:template>
+	</xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
Binary file idlehomescreen/data/common/view_200286ed/conf/view200286edmanifest.confml has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/view_200286ed/conf/view200286edmanifest.gcfml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+	<tag name="target" value="uda"/>
+	<tag name="target" value="emmc"/>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="manifest.dat" target="\private\200159c0\install\view_200286ed\hsps\00\">
+	<setting ref="BlankoHomescreenManifest/PackageVersion"/>
+	<setting ref="BlankoHomescreenManifest/DeviceFamily"/>
+	<setting ref="BlankoHomescreenManifest/ConfigurationType"/>
+	<setting ref="BlankoHomescreenManifest/InterfaceUid"/>
+	<setting ref="BlankoHomescreenManifest/ProviderUid"/>
+	<setting ref="BlankoHomescreenManifest/ConfigurationUid"/>
+	<setting ref="BlankoHomescreenManifest/FullName"/>
+	<setting ref="BlankoHomescreenManifest/ShortName"/>
+	<setting ref="BlankoHomescreenManifest/ConfigurationVersion"/>
+	<setting ref="BlankoHomescreenManifest/ConfigurationFile"/>
+	<setting ref="BlankoHomescreenManifest/UiResourceFile"/>
+		<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+                xmlns:xi="http://www.w3.org/2001/xinclude">
+		<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+		<xsl:template match="configuration/data">
+		<package>
+	  <xsl:attribute name="version"><xsl:value-of select="BlankoHomescreenManifest/PackageVersion"/></xsl:attribute>
+    <family>
+    <xsl:value-of select="BlankoHomescreenManifest/DeviceFamily"/>
+    </family>
+    <type>
+    <xsl:value-of select="BlankoHomescreenManifest/ConfigurationType"/>
+    </type>
+    <interfaceuid>
+    <xsl:value-of select="BlankoHomescreenManifest/InterfaceUid"/>
+    </interfaceuid>
+    <provideruid>
+    <xsl:value-of select="BlankoHomescreenManifest/ProviderUid"/>
+    </provideruid>
+    <configurationuid>
+    <xsl:value-of select="BlankoHomescreenManifest/ConfigurationUid"/>
+    </configurationuid>
+    <fullname>
+    <xsl:text>&#x26;</xsl:text>
+    <xsl:value-of select="BlankoHomescreenManifest/FullName"/>
+    <xsl:text>&#x3B;</xsl:text>
+    </fullname>
+    <shortname>
+    <xsl:value-of select="BlankoHomescreenManifest/ShortName"/>
+    </shortname>
+    <version>
+    <xsl:value-of select="BlankoHomescreenManifest/ConfigurationVersion"/>
+    </version>
+    <filexml>
+    <xsl:value-of select="BlankoHomescreenManifest/ConfigurationFile"/>
+    </filexml>
+    <localization>
+        <fileresource>
+        <xsl:value-of select="BlankoHomescreenManifest/UiResourceFile"/>
+        </fileresource>
+    </localization>
+  </package>
+  </xsl:template>
+	</xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
Binary file idlehomescreen/data/common/view_200286ed/conf/view200286edxuikon.confml has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/view_200286ed/conf/view200286edxuikon.gcfml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+	<tag name="target" value="uda"/>
+	<tag name="target" value="emmc"/>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="empty.foo" target="\private\200159c0\install\view_200286ed\xuikon\">
+	<setting ref="BlankoHomescreenXuikonFolder/FolderCFG"/>
+		<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+                xmlns:xi="http://www.w3.org/2001/xinclude">
+		<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+		<xsl:template match="configuration/data">
+		<whois>
+	  <xsl:attribute name="dude"><xsl:value-of select="BlankoHomescreenXuikonFolder/FolderCFG"/></xsl:attribute>
+	  </whois>
+  </xsl:template>
+	</xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/common/view_200286ed/group/bld.inf	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,40 @@
+/*
+* 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
+
+//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/view200286ed.confml   APP_LAYER_CONFML(view200286ed.confml)
+../conf/view200286ed.gcfml    APP_LAYER_GCFML(view200286ed.gcfml)
+../conf/view200286edmanifest.confml   APP_LAYER_CONFML(view200286edmanifest.confml)
+../conf/view200286edmanifest.gcfml    APP_LAYER_GCFML(view200286edmanifest.gcfml)
+../conf/view200286edxuikon.confml   APP_LAYER_CONFML(view200286edxuikon.confml)
+../conf/view200286edxuikon.gcfml    APP_LAYER_GCFML(view200286edxuikon.gcfml)
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+
+//  End of File  
--- a/idlehomescreen/data/group/bld.inf	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/group/bld.inf	Tue Sep 14 20:58:58 2010 +0300
@@ -16,7 +16,8 @@
 */
 
 
-#include "../vga_tch/group/bld.inf"         // Buzzidle
+#include "../common/group/bld.inf"       
+// #include "../vga_tch/group/bld.inf"         // Buzzidle
 #include "../qhd_tch/group/bld.inf"     // Flashidle
 
 PRJ_PLATFORMS
--- a/idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/widgetconfiguration.xml	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/desktop_20026f4f/hsps/00/widgetconfiguration.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -4,28 +4,28 @@
       <!-- Shortcut #1, Phonebook -->
       <item id="first" name="Shortcut1" >
         <property  name="type" value="application"/>
-        <property  name="uid" value="0x101F4CCE"/>
+        <property  name="uid" value="0x99999990"/>
         <property  name="view" value=""/>
         <property  name="param" value=""/>
       </item>
       <!-- Shortcut #2, New Message -->
       <item id="second" name="Shortcut2" >
-        <property  name="type" value="shortcut"/>
-        <property  name="uid" value="0x99999999"/>
+        <property  name="type" value="application"/>
+        <property  name="uid" value="0x99999990"/>
         <property  name="view" value=""/>
-        <property  name="param" value="messaging:msg"/>
+        <property  name="param" value=""/>
       </item>
       <!-- Shortcut #3, Browser -->
       <item id="third" name="Shortcut3" >
         <property  name="type" value="application"/>
-        <property  name="uid" value="0x10008D39"/>
+        <property  name="uid" value="0x99999990"/>
         <property  name="view" value=""/>
         <property  name="param" value=""/>
       </item>
       <!-- Shortcut #4, Calendar -->
       <item id="fourth" name="Shortcut4" >
         <property  name="type" value="application"/>
-        <property  name="uid" value="0x10005901"/>
+        <property  name="uid" value="0x99999990"/>
         <property  name="view" value=""/>
         <property  name="param" value=""/>
       </item>
--- a/idlehomescreen/data/qhd_tch/empty_2001f47f/group/bld.inf	Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
-* 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/empty_2001f47f/hsps/manifest.dat
-../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/empty_2001f47f/hsps/widgetconfiguration.xml
-../xuikon/00/empty.dat /epoc32/data/Z/resource/homescreen/empty_2001f47f/xuikon/empty_2001f47f.dat
-../xuikon/00/empty.css /epoc32/data/Z/resource/homescreen/empty_2001f47f/xuikon/empty.css
-../xuikon/00/empty.xml /epoc32/data/Z/resource/homescreen/empty_2001f47f/xuikon/empty.xml
-
-// Support for S60 builds
-//***********************
-../rom/empty_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(empty_2001f47f_variant.iby)
-../rom/empty.iby CORE_APP_LAYER_IBY_EXPORT_PATH(empty_2001f47f.iby)
-
-// Dtd-localization
-//*****************
-PRJ_EXTENSIONS
-START EXTENSION tools/dtd
-OPTION SWITCH_LOC_FILE_NAME empty_2001f47f
-OPTION DTD_TYPE widget
-OPTION LOC_FOLDERS yes
-END
-
-PRJ_MMPFILES
-
-PRJ_TESTMMPFILES
-
-//  End of File  
-
-
-
-
--- a/idlehomescreen/data/qhd_tch/empty_2001f47f/hsps/00/manifest.dat	Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-<?xml version="1.0"?>
-
-<package version="2.0">
-
-
-
-  <family>qhd_tch</family>
-
-
-
-  <type>widget</type>
-
-
-
-  <!-- interface uid -->
-
-	<interfaceuid>0x2001f48a</interfaceuid>
-
-
-
-	<!-- vendor uid  -->
-
-	<provideruid>0x101fb657</provideruid>
-
-
-
-	<!-- uid -->
-
-	<configurationuid>0x2001f47f</configurationuid>
-
-
-
-	<!-- description -->
-
-	<fullname>&amp;qtn_empty_2001f47f_name;</fullname>
-
-	<shortname>empty</shortname>
-
-	<version>1.0</version>
-
-
-
-	<!-- configuration -->
-
-	<filexml>widgetconfiguration.xml</filexml>
-
-		
-	<!-- Locale independent/common resources -->
-
-  <fileresource>empty.o0000</fileresource>
-
-
-
-  <!-- Locale specific resources -->
-
-	<localization/>
-
-
-
-</package>
--- a/idlehomescreen/data/qhd_tch/empty_2001f47f/hsps/00/widgetconfiguration.xml	Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-<configuration>
-    <control>
-        <settings/>
-    </control>
-</configuration>
--- a/idlehomescreen/data/qhd_tch/empty_2001f47f/rom/empty.iby	Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-/*
-* 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: 
-* Empty widget HSPS-plugin IBY file 
-*
-*/
-
-#ifndef __EMPTY_2001F47F_IBY__
-#define __EMPTY_2001F47F_IBY__
-
-#if defined(__LAYOUT_360_640_TOUCH) || defined(__LAYOUT_640_360_TOUCH)          
-
-// Enabled by DTD-localization tools
-data=ZPRIVATE\200159c0\install\empty_2001f47f\xuikon\00\empty.o0000 \private\200159c0\install\empty_2001f47f\xuikon\00\empty.o0000
-data=ZPRIVATE\200159c0\install\empty_2001f47f\hsps\00\manifest.dat \private\200159c0\install\empty_2001f47f\hsps\00\manifest.dat
-
-#endif // __LAYOUT_360_640_TOUCH || __LAYOUT_640_360_TOUCH
-
-#endif // __EMPTY_2001F47F_IBY__
--- a/idlehomescreen/data/qhd_tch/empty_2001f47f/rom/empty_variant.iby	Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
-* 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:  
-* Empty widget HSPS-plugin variant specific IBY file.
-*
-*/
-
-#ifndef __EMPTY_2001F47F_VARIANT_IBY__
-#define __EMPTY_2001F47F_VARIANT_IBY__
-
-#if defined(__LAYOUT_360_640_TOUCH) || defined(__LAYOUT_640_360_TOUCH)          
-
-// Enabled by variation tools, variant specific
-data=ZPRIVATE\200159c0\install\empty_2001f47f\hsps\00\widgetconfiguration.xml \private\200159c0\install\empty_2001f47f\hsps\00\widgetconfiguration.xml
-
-#endif // __LAYOUT_360_640_TOUCH || __LAYOUT_640_360_TOUCH
-
-#endif  // __EMPTY_2001F47F_VARIANT_IBY__
--- a/idlehomescreen/data/qhd_tch/empty_2001f47f/xuikon/00/empty.css	Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-widget
-{
-    display: none;
-    visibility: hidden;
-}
-
--- a/idlehomescreen/data/qhd_tch/empty_2001f47f/xuikon/00/empty.dat	Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-<?xml version="1.0"?>
-<data>
-    <AppUid>E029CF57</AppUid>
-    <Provideruid>101FB657</Provideruid>
-    <ThemeUid>11001001</ThemeUid>
-    <ThemeFullName>empty</ThemeFullName>
-    <ThemeShortName>empty</ThemeShortName>
-    <ThemeVersion>1.0</ThemeVersion>
-    <FileXML>empty.xml</FileXML>
-    <FileCSS>empty.css</FileCSS>
-</data>
\ No newline at end of file
--- a/idlehomescreen/data/qhd_tch/empty_2001f47f/xuikon/00/empty.xml	Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
-    <widget id="empty"/>    
-</xmluiml>
--- a/idlehomescreen/data/qhd_tch/group/bld.inf	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/group/bld.inf	Tue Sep 14 20:58:58 2010 +0300
@@ -16,7 +16,6 @@
 */
 
 #include "../desktop_20026f4f/group/bld.inf"
-#include "../empty_2001f47f/group/bld.inf"
 #include "../onerow_2001f480/group/bld.inf"
 #include "../tworows_2001f488/group/bld.inf"
 #include "../threerows_2001f486/group/bld.inf"
@@ -28,7 +27,6 @@
 #include "../view_20022fe0/group/bld.inf"
 #include "../view_200286e4/group/bld.inf"
 #include "../view_200286e5/group/bld.inf"
-#include "../view_200286ed/group/bld.inf"
 #include "../templateview_20026f50/group/bld.inf"
 #include "../root_2001f482/group/bld.inf"
 
--- a/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/00/onerow.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/00/onerow.css	Tue Sep 14 20:58:58 2010 +0300
@@ -1,30 +1,40 @@
 widget#onerow_template
 {
     block-progression:rl;
+    
 }
 
 image#image_container
 {
-    padding-top:8px;
-    padding-bottom:8px;
-    padding-left:8px;
-    padding-right:8px;
-    height: 90%;
-    width: 20%;
+    height: 70px;
+    width: 70px;
+    margin-top:3px;
+    margin-bottom:3px;
+    margin-left:3px;
+    margin-right:2px;
+    padding-top:3px;
+    padding-bottom:3px;
+    padding-left:3px;
+    padding-right:3px;
     nav-index:appearance;
     _s60-aspect-ratio:preserve;
 }
 
 text
 {
-    padding-left:8px;
-    padding-right:8px;
-    font-line-space: 15;
-    text-align:left;
+    font-size:3.5u;
+    margin-left:2px;
+    margin-right:3px;
+    margin-top:3px;
+    margin-bottom:3px;
+    padding-top:3px;
+    padding-bottom:3px;
+    padding-left:3px;
+    padding-right:3px;
+    text-align:center;
     text-overflow-mode: wrap;
     max-line-amount: 2;
     font-family: EAknLogicalFontSecondaryFont;
-    font-size: 23px;
     color: "SKIN(268458534 13056 74)";
     nav-index:appearance;
 }
--- a/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/37/onerow.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/37/onerow.css	Tue Sep 14 20:58:58 2010 +0300
@@ -6,27 +6,36 @@
 
 image#image_container
 {
-    padding-top:8px;
-    padding-bottom:8px;
-    padding-left:8px;
-    padding-right:8px;
-    height: 90%;
-    width: 20%;
+    height: 70px;
+    width: 70px;
+    margin-top:3px;
+    margin-bottom:3px;
+    margin-left:3px;
+    margin-right:2px;
+    padding-top:3px;
+    padding-bottom:3px;
+    padding-left:3px;
+    padding-right:3px;
     nav-index:appearance;
     _s60-aspect-ratio:preserve;
 }
 
 text
 {
-    padding-left:8px;
-    padding-right:8px;
-    font-line-space: 15;
+    font-size:3.5u;
+    margin-left:2px;
+    margin-right:3px;
+    margin-top:3px;
+    margin-bottom:3px;
+    padding-top:3px;
+    padding-bottom:3px;
+    padding-left:3px;
+    padding-right:3px;
     direction: ltr;
-    text-align: right;
+    text-align:center;
     text-overflow-mode: wrap;
     max-line-amount: 2;
     font-family: EAknLogicalFontSecondaryFont;
-    font-size: 23px;
     color: "SKIN(268458534 13056 74)";
     nav-index:appearance;
 }
--- a/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/50/onerow.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/50/onerow.css	Tue Sep 14 20:58:58 2010 +0300
@@ -6,27 +6,36 @@
 
 image#image_container
 {
-    padding-top:8px;
-    padding-bottom:8px;
-    padding-left:8px;
-    padding-right:8px;
-    height: 90%;
-    width: 20%;
+    height: 70px;
+    width: 70px;
+    margin-top:3px;
+    margin-bottom:3px;
+    margin-left:3px;
+    margin-right:2px;
+    padding-top:3px;
+    padding-bottom:3px;
+    padding-left:3px;
+    padding-right:3px;
     nav-index:appearance;
     _s60-aspect-ratio:preserve;
 }
 
 text
 {
-    padding-left:8px;
-    padding-right:8px;
-    font-line-space: 15;
+    font-size:3.5u;
+    margin-left:2px;
+    margin-right:3px;
+    margin-top:3px;
+    margin-bottom:3px;
+    padding-top:3px;
+    padding-bottom:3px;
+    padding-left:3px;
+    padding-right:3px;
     direction: ltr;
-    text-align: right;
+    text-align:center;
     text-overflow-mode: wrap;
     max-line-amount: 2;
     font-family: EAknLogicalFontSecondaryFont;
-    font-size: 23px;
     color: "SKIN(268458534 13056 74)";
     nav-index:appearance;
 }
--- a/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/57/onerow.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/57/onerow.css	Tue Sep 14 20:58:58 2010 +0300
@@ -6,27 +6,36 @@
 
 image#image_container
 {
-    padding-top:8px;
-    padding-bottom:8px;
-    padding-left:8px;
-    padding-right:8px;
-    height: 90%;
-    width: 20%;
+    height: 70px;
+    width: 70px;
+    margin-top:3px;
+    margin-bottom:3px;
+    margin-left:3px;
+    margin-right:2px;
+    padding-top:3px;
+    padding-bottom:3px;
+    padding-left:3px;
+    padding-right:3px;
     nav-index:appearance;
     _s60-aspect-ratio:preserve;
 }
 
 text
 {
-    padding-left:8px;
-    padding-right:8px;
-    font-line-space: 15;
+    font-size:3.5u;
+    margin-left:2px;
+    margin-right:3px;
+    margin-top:3px;
+    margin-bottom:3px;
+    padding-top:3px;
+    padding-bottom:3px;
+    padding-left:3px;
+    padding-right:3px;
     direction: ltr;
-    text-align: right;
+    text-align:center;
     text-overflow-mode: wrap;
     max-line-amount: 2;
     font-family: EAknLogicalFontSecondaryFont;
-    font-size: 23px;
     color: "SKIN(268458534 13056 74)";
     nav-index:appearance;
 }
--- a/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/94/onerow.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/onerow_2001f480/xuikon/94/onerow.css	Tue Sep 14 20:58:58 2010 +0300
@@ -6,27 +6,36 @@
 
 image#image_container
 {
-    padding-top:8px;
-    padding-bottom:8px;
-    padding-left:8px;
-    padding-right:8px;
-    height: 90%;
-    width: 20%;
+    height: 70px;
+    width: 70px;
+    margin-top:3px;
+    margin-bottom:3px;
+    margin-left:3px;
+    margin-right:2px;
+    padding-top:3px;
+    padding-bottom:3px;
+    padding-left:3px;
+    padding-right:3px;
     nav-index:appearance;
     _s60-aspect-ratio:preserve;
 }
 
 text
 {
-    padding-left:8px;
-    padding-right:8px;
-    font-line-space: 15;
+    font-size:3.5u;
+    margin-left:2px;
+    margin-right:3px;
+    margin-top:3px;
+    margin-bottom:3px;
+    padding-top:3px;
+    padding-bottom:3px;
+    padding-left:3px;
+    padding-right:3px;
     direction: ltr;
-    text-align: right;
+    text-align:center;
     text-overflow-mode: wrap;
     max-line-amount: 2;
     font-family: EAknLogicalFontSecondaryFont;
-    font-size: 23px;
     color: "SKIN(268458534 13056 74)";
     nav-index:appearance;
 }
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.css	Tue Sep 14 20:58:58 2010 +0300
@@ -9,20 +9,30 @@
     block-progression: lr;
 }
 
-clock
+clock#clock
 {
     width: 152px;
     margin-right: 3px;
     padding-top: 2px;
     padding-bottom: 2px;
     _s60-format: locale;
-    _s60-ampm-font-size: 16px;
-    _s60-digital-font-size: 56px;
+    _s60-font-size: 56px;
     color: "SKIN(268458534 13056 74)";
     background-color: "SKIN(268458534 9916)";
     nav-index: appearance;
 }
 
+ampm
+{
+	position: absolute;
+	width: 46px;
+	height: 20px;
+	left: 88px;
+	top: 60px;
+	text-align: right;
+	_s60-font-size: 16px;
+}
+
 box.clock_profile
 {
     background-color: "SKIN(268458534 9916)";
@@ -36,34 +46,22 @@
     block-progression: tb;
 }
 
-box#date_container
+clock#date_content
 {
     width: auto;
     height: 26px;
-    block-progression: lr;
-    margin-bottom: 3px;
-    padding-bottom: 2px;
-}
-
-box#date_content
-{
-    width: adaptive;
-    height: adaptive;
     margin-left: auto;
     margin-right: auto;
+    margin-bottom: 3px;
+    padding-bottom: 2px;
+    color:"SKIN(268458534 13056 74)";
+    background-color: "SKIN(268458534 9916)";
+    nav-index: appearance;
 }
 
-text#date_text
+date
 {
-    text-align: center;
-    margin-left: 2px;
-    margin-right: 2px;
-    width: adaptive;
-    height: adaptive;
-    font-family: EAknLogicalFontSecondaryFont;
-    font-size: 3.5u;
-    _s60-text-valign: top;
-    color:"SKIN(268458534 13056 74)";
+	  _s60-font-size: 3.5u;
 }
 
 box#profile_softindicator
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.xml	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/00/profile.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -9,6 +9,14 @@
                 
         <box id="clock_profile_container">
             <clock id="clock" focusable="true" _s60-initial-focus="1">
+            	<digital>
+            		<face24/>
+            		<face12/>
+            		<ampm/>
+            	</digital>
+            	<analog>
+            		<face/>
+            	</analog>
               <actions>
                   <action>
                       <trigger name="activate"/>
@@ -17,20 +25,16 @@
               </actions>
             </clock>
           <box id="date_profiles_container" focusable="false">
-              <box id="date_container" class="clock_profile" focusable="true">
-                  <box id="date_content" focusable="false">
-                      <text id="date_text" focusable="false">
-                          <property class="DeviceStatus/Date"/>
-                      </text>                 
-                  </box>
-                  <actions>
+                  <clock id="date_content" focusable="true">
+                    <date/>
+                    <actions>
                       <action>
                           <trigger name="activate"/>
                           <!-- open organizer -->
                           <event name="EventHandler/LaunchApp" uid="0x10005901"/><!--organizer application-->
                       </action>
-                  </actions>
-              </box>
+                  	</actions>
+                  </clock>
                 <box id="profile_softindicator" class="clock_profile" focusable="true">                                     
                     <!-- UI resources -->
                     <desc id="Profile/ActiveProfileGeneralIconResource" path="SKIN(270501603 8586 74)"/>
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/37/profile.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/37/profile.css	Tue Sep 14 20:58:58 2010 +0300
@@ -9,20 +9,30 @@
     block-progression: lr;
 }
 
-clock
+clock#clock
 {
     width: 152px;
     margin-left: 3px;
     padding-top: 2px;
     padding-bottom: 2px;
     _s60-format: locale;
-    _s60-ampm-font-size: 16px;
-    _s60-digital-font-size: 56px;
+    _s60-font-size: 56px;
     color: "SKIN(268458534 13056 74)";
     background-color: "SKIN(268458534 9916)";
     nav-index: appearance;
 }
 
+ampm
+{
+	position: absolute;
+	width: 46px;
+	height: 20px;
+	left: 88px;
+	top: 60px;
+	text-align: right;
+	_s60-font-size: 16px;
+}
+
 box.clock_profile
 {
     background-color: "SKIN(268458534 9916)";
@@ -36,34 +46,22 @@
     block-progression: tb;
 }
 
-box#date_container
+clock#date_content
 {
     width: auto;
     height: 26px;
-    block-progression: rl;
-    margin-bottom: 3px;
-    padding-bottom: 2px;
-}
-
-box#date_content
-{
-    width: adaptive;
-    height: adaptive;
     margin-left: auto;
     margin-right: auto;
+    margin-bottom: 3px;
+    padding-bottom: 2px;
+    color:"SKIN(268458534 13056 74)";
+    background-color: "SKIN(268458534 9916)";
+    nav-index: appearance;
 }
 
-text#date_text
+date
 {
-    text-align: center;
-    margin-left: 2px;
-    margin-right: 2px;
-    width: adaptive;
-    height: adaptive;
-    font-family: EAknLogicalFontSecondaryFont;
-    font-size: 3.5u;
-    _s60-text-valign: top;
-    color:"SKIN(268458534 13056 74)";
+	  _s60-font-size: 3.5u;
 }
 
 box#profile_softindicator
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/50/profile.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/50/profile.css	Tue Sep 14 20:58:58 2010 +0300
@@ -9,20 +9,30 @@
     block-progression: lr;
 }
 
-clock
+clock#clock
 {
     width: 152px;
     margin-left: 3px;
     padding-top: 2px;
     padding-bottom: 2px;
     _s60-format: locale;
-    _s60-ampm-font-size: 16px;
-    _s60-digital-font-size: 56px;
+    _s60-font-size: 56px;
     color: "SKIN(268458534 13056 74)";
     background-color: "SKIN(268458534 9916)";
     nav-index: appearance;
 }
 
+ampm
+{
+	position: absolute;
+	width: 46px;
+	height: 20px;
+	left: 88px;
+	top: 60px;
+	text-align: right;
+	_s60-font-size: 16px;
+}
+
 box.clock_profile
 {
     background-color: "SKIN(268458534 9916)";
@@ -36,34 +46,22 @@
     block-progression: tb;
 }
 
-box#date_container
+clock#date_content
 {
     width: auto;
     height: 26px;
-    block-progression: rl;
-    margin-bottom: 3px;
-    padding-bottom: 2px;
-}
-
-box#date_content
-{
-    width: adaptive;
-    height: adaptive;
     margin-left: auto;
     margin-right: auto;
+    margin-bottom: 3px;
+    padding-bottom: 2px;
+    color:"SKIN(268458534 13056 74)";
+    background-color: "SKIN(268458534 9916)";
+    nav-index: appearance;
 }
 
-text#date_text
+date
 {
-    text-align: center;
-    margin-left: 2px;
-    margin-right: 2px;
-    width: adaptive;
-    height: adaptive;
-    font-family: EAknLogicalFontSecondaryFont;
-    font-size: 3.5u;
-    _s60-text-valign: top;
-    color:"SKIN(268458534 13056 74)";
+	  _s60-font-size: 3.5u;
 }
 
 box#profile_softindicator
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/57/profile.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/57/profile.css	Tue Sep 14 20:58:58 2010 +0300
@@ -9,20 +9,30 @@
     block-progression: lr;
 }
 
-clock
+clock#clock
 {
     width: 152px;
     margin-left: 3px;
     padding-top: 2px;
     padding-bottom: 2px;
     _s60-format: locale;
-    _s60-ampm-font-size: 16px;
-    _s60-digital-font-size: 56px;
+    _s60-font-size: 56px;
     color: "SKIN(268458534 13056 74)";
     background-color: "SKIN(268458534 9916)";
     nav-index: appearance;
 }
 
+ampm
+{
+	position: absolute;
+	width: 46px;
+	height: 20px;
+	left: 88px;
+	top: 60px;
+	text-align: right;
+	_s60-font-size: 16px;
+}
+
 box.clock_profile
 {
     background-color: "SKIN(268458534 9916)";
@@ -36,34 +46,22 @@
     block-progression: tb;
 }
 
-box#date_container
+clock#date_content
 {
     width: auto;
     height: 26px;
-    block-progression: rl;
-    margin-bottom: 3px;
-    padding-bottom: 2px;
-}
-
-box#date_content
-{
-    width: adaptive;
-    height: adaptive;
     margin-left: auto;
     margin-right: auto;
+    margin-bottom: 3px;
+    padding-bottom: 2px;
+    color:"SKIN(268458534 13056 74)";
+    background-color: "SKIN(268458534 9916)";
+    nav-index: appearance;
 }
 
-text#date_text
+date
 {
-    text-align: center;
-    margin-left: 2px;
-    margin-right: 2px;
-    width: adaptive;
-    height: adaptive;
-    font-family: EAknLogicalFontSecondaryFont;
-    font-size: 3.5u;
-    _s60-text-valign: top;
-    color:"SKIN(268458534 13056 74)";
+	  _s60-font-size: 3.5u;
 }
 
 box#profile_softindicator
--- a/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/94/profile.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/profile_2001cb7c/xuikon/94/profile.css	Tue Sep 14 20:58:58 2010 +0300
@@ -9,20 +9,30 @@
     block-progression: lr;
 }
 
-clock
+clock#clock
 {
     width: 152px;
     margin-left: 3px;
     padding-top: 2px;
     padding-bottom: 2px;
     _s60-format: locale;
-    _s60-ampm-font-size: 16px;
-    _s60-digital-font-size: 56px;
+    _s60-font-size: 56px;
     color: "SKIN(268458534 13056 74)";
     background-color: "SKIN(268458534 9916)";
     nav-index: appearance;
 }
 
+ampm
+{
+	position: absolute;
+	width: 46px;
+	height: 20px;
+	left: 88px;
+	top: 60px;
+	text-align: right;
+	_s60-font-size: 16px;
+}
+
 box.clock_profile
 {
     background-color: "SKIN(268458534 9916)";
@@ -36,34 +46,22 @@
     block-progression: tb;
 }
 
-box#date_container
+clock#date_content
 {
     width: auto;
     height: 26px;
-    block-progression: rl;
-    margin-bottom: 3px;
-    padding-bottom: 2px;
-}
-
-box#date_content
-{
-    width: adaptive;
-    height: adaptive;
     margin-left: auto;
     margin-right: auto;
+    margin-bottom: 3px;
+    padding-bottom: 2px;
+    color:"SKIN(268458534 13056 74)";
+    background-color: "SKIN(268458534 9916)";
+    nav-index: appearance;
 }
 
-text#date_text
+date
 {
-    text-align: center;
-    margin-left: 2px;
-    margin-right: 2px;
-    width: adaptive;
-    height: adaptive;
-    font-family: EAknLogicalFontSecondaryFont;
-    font-size: 3.5u;
-    _s60-text-valign: top;
-    color:"SKIN(268458534 13056 74)";
+	  _s60-font-size: 3.5u;
 }
 
 box#profile_softindicator
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/loc/templateview.loc	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/loc/templateview.loc	Tue Sep 14 20:58:58 2010 +0300
@@ -308,3 +308,15 @@
 // w:
 // r: TB9.2
 #define qtn_hs_text_softkey_call "Call"
+
+// d: Lock keypad
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_lock_keypad "Lock keypad"
+
+// d: Menu
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_apps_menu_skey "Menu"
--- a/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/view.dtd	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/templateview_20026f50/xuikon/00/view.dtd	Tue Sep 14 20:58:58 2010 +0300
@@ -494,3 +494,21 @@
 qtn_hs_text_softkey_call.parents ""
 -->
 <!ENTITY qtn_hs_text_softkey_call "Call">
+
+<!--
+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 "Lock keypad"
+qtn_hs_page_edit_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_lock_keypad "Lock keypad">
+
+<!--
+qtn_hs_text_softkey_call.attributes
+qtn_hs_text_softkey_call.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_call.release "TB9.2"
+qtn_hs_text_softkey_call.description "RSK caption"
+qtn_hs_text_softkey_call.parents ""
+-->
+<!ENTITY qtn_hs_apps_menu_skey "Menu">
--- a/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/00/threerows.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/00/threerows.css	Tue Sep 14 20:58:58 2010 +0300
@@ -5,29 +5,38 @@
 
 image#image_container
 {
-    padding-top:8px;
-    padding-bottom:8px;
-    padding-left:8px;
-    padding-right:8px;
-    height: 90%;
-    width: 20%;
+    height: 70px;
+    width: 70px;
+    margin-top:3px;
+    margin-bottom:3px;
+    margin-left:3px;
+    margin-right:2px;
+    padding-top:3px;
+    padding-bottom:3px;
+    padding-left:3px;
+    padding-right:3px;
+    nav-index:appearance;
     _s60-aspect-ratio:preserve;
-    nav-index:appearance;
 }
 
 box#text_container
 {
+    direction: ltr;
     block-progression:tb;
+    margin-left:2px;
+    margin-right:3px;
 }
 
 text.text_box
 {
-    padding-left:8px;
-    padding-right:8px;
-    text-align:left;
+    padding-right:3px;
+    padding-left:3px;
+    padding-top:1px;
+    padding-bottom:1px;
     font-family: EAknLogicalFontSecondaryFont;
-    font-size: 23px;
-    color: "SKIN(268458534 13056 74)";
+    font-size: 3.5u;
+    height:25px;
+    color:"SKIN(268458534 13056 74)";
     nav-index:appearance;
     _s60-text-valign: top;
 }
--- a/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/37/threerows.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/37/threerows.css	Tue Sep 14 20:58:58 2010 +0300
@@ -6,30 +6,40 @@
 
 image#image_container
 {
-    padding-top:8px;
-    padding-bottom:8px;
-    padding-left:8px;
-    padding-right:8px;
-    height: 90%;
-    width: 20%;
+    height: 70px;
+    width: 70px;
+    margin-top:3px;
+    margin-bottom:3px;
+    margin-left:3px;
+    margin-right:2px;
+    padding-top:3px;
+    padding-bottom:3px;
+    padding-left:3px;
+    padding-right:3px;
+    nav-index:appearance;
     _s60-aspect-ratio:preserve;
-    nav-index:appearance;
 }
 
 box#text_container
 {
+    direction: ltr;
     block-progression:tb;
+    margin-left:2px;
+    margin-right:3px;
 }
 
 text.text_box
 {
-    padding-left:8px;
-    padding-right:8px;
+    padding-right:3px;
+    padding-left:3px;
+    padding-top:1px;
+    padding-bottom:1px;
     direction: ltr;
     text-align: right;
     font-family: EAknLogicalFontSecondaryFont;
-    font-size: 23px;
-    color: "SKIN(268458534 13056 74)";
+    font-size: 3.5u;
+    height:25px;
+    color:"SKIN(268458534 13056 74)";
     nav-index:appearance;
     _s60-text-valign: top;
 }
--- a/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/50/threerows.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/50/threerows.css	Tue Sep 14 20:58:58 2010 +0300
@@ -6,30 +6,40 @@
 
 image#image_container
 {
-    padding-top:8px;
-    padding-bottom:8px;
-    padding-left:8px;
-    padding-right:8px;
-    height: 90%;
-    width: 20%;
+    height: 70px;
+    width: 70px;
+    margin-top:3px;
+    margin-bottom:3px;
+    margin-left:3px;
+    margin-right:2px;
+    padding-top:3px;
+    padding-bottom:3px;
+    padding-left:3px;
+    padding-right:3px;
+    nav-index:appearance;
     _s60-aspect-ratio:preserve;
-    nav-index:appearance;
 }
 
 box#text_container
 {
+    direction: ltr;
     block-progression:tb;
+    margin-left:2px;
+    margin-right:3px;
 }
 
 text.text_box
 {
-    padding-left:8px;
-    padding-right:8px;
+    padding-right:3px;
+    padding-left:3px;
+    padding-top:1px;
+    padding-bottom:1px;
     direction: ltr;
     text-align: right;
     font-family: EAknLogicalFontSecondaryFont;
-    font-size: 23px;
-    color: "SKIN(268458534 13056 74)";
+    font-size: 3.5u;
+    height:25px;
+    color:"SKIN(268458534 13056 74)";
     nav-index:appearance;
     _s60-text-valign: top;
 }
--- a/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/57/threerows.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/57/threerows.css	Tue Sep 14 20:58:58 2010 +0300
@@ -6,31 +6,40 @@
 
 image#image_container
 {
-    padding-top:8px;
-    padding-bottom:8px;
-    padding-left:8px;
-    padding-right:8px;
-    height: 90%;
-    width: 20%;
+    height: 70px;
+    width: 70px;
+    margin-top:3px;
+    margin-bottom:3px;
+    margin-left:3px;
+    margin-right:2px;
+    padding-top:3px;
+    padding-bottom:3px;
+    padding-left:3px;
+    padding-right:3px;
+    nav-index:appearance;
     _s60-aspect-ratio:preserve;
-    nav-index:appearance;
 }
 
 box#text_container
 {
+    direction: ltr;
     block-progression:tb;
+    margin-left:2px;
+    margin-right:3px;
 }
 
 text.text_box
 {
-    padding-left:8px;
-    padding-right:8px;
+    padding-right:3px;
+    padding-left:3px;
+    padding-top:1px;
+    padding-bottom:1px;
     direction: ltr;
     text-align: right;
     font-family: EAknLogicalFontSecondaryFont;
-    font-size: 23px;
-    color: "SKIN(268458534 13056 74)";
+    font-size: 3.5u;
+    height:25px;
+    color:"SKIN(268458534 13056 74)";
     nav-index:appearance;
     _s60-text-valign: top;
 }
-
--- a/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/94/threerows.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/threerows_2001f486/xuikon/94/threerows.css	Tue Sep 14 20:58:58 2010 +0300
@@ -6,30 +6,40 @@
 
 image#image_container
 {
-    padding-top:8px;
-    padding-bottom:8px;
-    padding-left:8px;
-    padding-right:8px;
-    height: 90%;
-    width: 20%;
+    height: 70px;
+    width: 70px;
+    margin-top:3px;
+    margin-bottom:3px;
+    margin-left:3px;
+    margin-right:2px;
+    padding-top:3px;
+    padding-bottom:3px;
+    padding-left:3px;
+    padding-right:3px;
+    nav-index:appearance;
     _s60-aspect-ratio:preserve;
-    nav-index:appearance;
 }
 
 box#text_container
 {
+    direction: ltr;
     block-progression:tb;
+    margin-left:2px;
+    margin-right:3px;
 }
 
 text.text_box
 {
-    padding-left:8px;
-    padding-right:8px;
+    padding-right:3px;
+    padding-left:3px;
+    padding-top:1px;
+    padding-bottom:1px;
     direction: ltr;
     text-align: right;
     font-family: EAknLogicalFontSecondaryFont;
-    font-size: 23px;
-    color: "SKIN(268458534 13056 74)";
+    font-size: 3.5u;
+    height:25px;
+    color:"SKIN(268458534 13056 74)";
     nav-index:appearance;
     _s60-text-valign: top;
 }
--- a/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/00/tworows.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/00/tworows.css	Tue Sep 14 20:58:58 2010 +0300
@@ -5,29 +5,38 @@
 
 image#image_container
 {
-    padding-top:8px;
-    padding-bottom:8px;
-    padding-left:8px;
-    padding-right:8px;
-    height: 90%;
-    width: 20%;
+    height: 70px;
+    width: 70px;
+    margin-top:3px;
+    margin-bottom:3px;
+    margin-left:3px;
+    margin-right:2px;
+    padding-top:3px;
+    padding-bottom:3px;
+    padding-left:3px;
+    padding-right:3px;
+    nav-index:appearance;
     _s60-aspect-ratio:preserve;
-    nav-index:appearance;
 }
 
 box#text_container
 {
+    direction: ltr;
     block-progression:tb;
+    margin-left:2px;
+    margin-right:3px;
+    margin-top:10px;
 }
 
 text.text_box
 {
-    padding-right:8px;
-    padding-left:8px;
-    padding-top:8px;
-    text-align:left;
+    padding-right:3px;
+    padding-left:3px;
+    padding-top:3px;
+    padding-bottom:3px;
     font-family: EAknLogicalFontSecondaryFont;
-    font-size: 23px;
+    font-size: 3.5u;
+    height:25px;
     color:"SKIN(268458534 13056 74)";
     nav-index:appearance;
     _s60-text-valign: top;
--- a/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/37/tworows.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/37/tworows.css	Tue Sep 14 20:58:58 2010 +0300
@@ -6,30 +6,39 @@
 
 image#image_container
 {
-    padding-top:8px;
-    padding-bottom:8px;
-    padding-left:8px;
-    padding-right:8px;
-    height: 90%;
-    width: 20%;
+    height: 70px;
+    width: 70px;
+    margin-top:3px;
+    margin-bottom:3px;
+    margin-left:3px;
+    margin-right:2px;
+    padding-top:3px;
+    padding-bottom:3px;
+    padding-left:3px;
+    padding-right:3px;
+    nav-index:appearance;
     _s60-aspect-ratio:preserve;
-    nav-index:appearance;
 }
 
 box#text_container
 {
     block-progression:tb;
+    margin-left:2px;
+    margin-right:3px;
+    margin-top:10px;
 }
 
 text.text_box
 {
-    padding-right:8px;
-    padding-left:8px;
-    padding-top:8px;
+    padding-right:3px;
+    padding-left:3px;
+    padding-top:3px;
+    padding-bottom:3px;
     direction: ltr;
     text-align: right;
     font-family: EAknLogicalFontSecondaryFont;
-    font-size: 23px;
+    font-size: 3.5u;
+    height:25px;
     color:"SKIN(268458534 13056 74)";
     nav-index:appearance;
     _s60-text-valign: top;
--- a/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/50/tworows.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/50/tworows.css	Tue Sep 14 20:58:58 2010 +0300
@@ -6,30 +6,39 @@
 
 image#image_container
 {
-    padding-top:8px;
-    padding-bottom:8px;
-    padding-left:8px;
-    padding-right:8px;
-    height: 90%;
-    width: 20%;
+    height: 70px;
+    width: 70px;
+    margin-top:3px;
+    margin-bottom:3px;
+    margin-left:3px;
+    margin-right:2px;
+    padding-top:3px;
+    padding-bottom:3px;
+    padding-left:3px;
+    padding-right:3px;
+    nav-index:appearance;
     _s60-aspect-ratio:preserve;
-    nav-index:appearance;
 }
 
 box#text_container
 {
     block-progression:tb;
+    margin-left:2px;
+    margin-right:3px;
+    margin-top:10px;
 }
 
 text.text_box
 {
-    padding-right:8px;
-    padding-left:8px;
-    padding-top:8px;
+    padding-right:3px;
+    padding-left:3px;
+    padding-top:3px;
+    padding-bottom:3px;
     direction: ltr;
     text-align: right;
     font-family: EAknLogicalFontSecondaryFont;
-    font-size: 23px;
+    font-size: 3.5u;
+    height:25px;
     color:"SKIN(268458534 13056 74)";
     nav-index:appearance;
     _s60-text-valign: top;
--- a/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/57/tworows.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/57/tworows.css	Tue Sep 14 20:58:58 2010 +0300
@@ -6,30 +6,39 @@
 
 image#image_container
 {
-    padding-top:8px;
-    padding-bottom:8px;
-    padding-left:8px;
-    padding-right:8px;
-    height: 90%;
-    width: 20%;
+    height: 70px;
+    width: 70px;
+    margin-top:3px;
+    margin-bottom:3px;
+    margin-left:3px;
+    margin-right:2px;
+    padding-top:3px;
+    padding-bottom:3px;
+    padding-left:3px;
+    padding-right:3px;
+    nav-index:appearance;
     _s60-aspect-ratio:preserve;
-    nav-index:appearance;
 }
 
 box#text_container
 {
     block-progression:tb;
+    margin-left:2px;
+    margin-right:3px;
+    margin-top:10px;
 }
 
 text.text_box
 {
-    padding-right:8px;
-    padding-left:8px;
-    padding-top:8px;
+    padding-right:3px;
+    padding-left:3px;
+    padding-top:3px;
+    padding-bottom:3px;
     direction: ltr;
     text-align: right;
     font-family: EAknLogicalFontSecondaryFont;
-    font-size: 23px;
+    font-size: 3.5u;
+    height:25px;
     color:"SKIN(268458534 13056 74)";
     nav-index:appearance;
     _s60-text-valign: top;
--- a/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/94/tworows.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/tworows_2001f488/xuikon/94/tworows.css	Tue Sep 14 20:58:58 2010 +0300
@@ -6,30 +6,39 @@
 
 image#image_container
 {
-    padding-top:8px;
-    padding-bottom:8px;
-    padding-left:8px;
-    padding-right:8px;
-    height: 90%;
-    width: 20%;
+    height: 70px;
+    width: 70px;
+    margin-top:3px;
+    margin-bottom:3px;
+    margin-left:3px;
+    margin-right:2px;
+    padding-top:3px;
+    padding-bottom:3px;
+    padding-left:3px;
+    padding-right:3px;
+    nav-index:appearance;
     _s60-aspect-ratio:preserve;
-    nav-index:appearance;
 }
 
 box#text_container
 {
     block-progression:tb;
+    margin-left:2px;
+    margin-right:3px;
+    margin-top:10px;
 }
 
 text.text_box
 {
-    padding-right:8px;
-    padding-left:8px;
-    padding-top:8px;
+    padding-right:3px;
+    padding-left:3px;
+    padding-top:3px;
+    padding-bottom:3px;
     direction: ltr;
     text-align: right;
     font-family: EAknLogicalFontSecondaryFont;
-    font-size: 23px;
+    font-size: 3.5u;
+    height:25px;
     color:"SKIN(268458534 13056 74)";
     nav-index:appearance;
     _s60-text-valign: top;
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/hsps/00/viewconfiguration.xml	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/hsps/00/viewconfiguration.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -12,12 +12,44 @@
         </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="0x20026f4f" bundle_id="0" template_id="0" locking_status="none">
+		<initial_settings>
+	            <settings>
+	             <!-- Shortcut #1, Phonebook -->
+	             <item id="first" name="Shortcut1" >
+	                <property  name="type" value="application"/>
+	                <property  name="uid" value="0x101F4CCE"/>
+	                <property  name="view" value=""/>
+	                <property  name="param" value=""/>
+	             </item>
+	           <!-- Shortcut #2, New Message -->
+	             <item id="second" name="Shortcut2" >
+	                 <property  name="type" value="shortcut"/>
+	                 <property  name="uid" value="0x99999999"/>
+	                 <property  name="view" value=""/>
+	                 <property  name="param" value="messaging:msg"/>
+	             </item>
+	           <!-- Shortcut #3, Browser -->
+	             <item id="third" name="Shortcut3" >
+	                 <property  name="type" value="application"/>
+	                 <property  name="uid" value="0x10008D39"/>
+	                 <property  name="view" value=""/>
+	                 <property  name="param" value=""/>
+	             </item>
+	           <!-- Shortcut #4, Calendar -->
+	             <item id="fourth" name="Shortcut4" >
+	                 <property  name="type" value="application"/>
+	                 <property  name="uid" value="0x10005901"/>
+	                 <property  name="view" value=""/>
+	                 <property  name="param" value=""/>
+	             </item>
+	           </settings>
+		</initial_settings>
+	    </plugin>       
             <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/loc/View.loc	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/loc/View.loc	Tue Sep 14 20:58:58 2010 +0300
@@ -308,3 +308,15 @@
 // w:
 // r: TB9.2
 #define qtn_hs_text_softkey_call "Call"
+
+// d: Lock keypad
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_lock_keypad "Lock keypad"
+
+// d: Menu
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_apps_menu_skey "Menu"
--- a/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.dtd	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/view_2001f48b/xuikon/00/View.dtd	Tue Sep 14 20:58:58 2010 +0300
@@ -494,3 +494,21 @@
 qtn_hs_text_softkey_call.parents ""
 -->
 <!ENTITY qtn_hs_text_softkey_call "Call">
+
+<!--
+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 "Lock keypad"
+qtn_hs_page_edit_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_lock_keypad "Lock keypad">
+
+<!--
+qtn_hs_text_softkey_call.attributes
+qtn_hs_text_softkey_call.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_call.release "TB9.2"
+qtn_hs_text_softkey_call.description "RSK caption"
+qtn_hs_text_softkey_call.parents ""
+-->
+<!ENTITY qtn_hs_apps_menu_skey "Menu">
--- a/idlehomescreen/data/qhd_tch/view_20022fe0/loc/View.loc	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/view_20022fe0/loc/View.loc	Tue Sep 14 20:58:58 2010 +0300
@@ -308,3 +308,15 @@
 // w:
 // r: TB9.2
 #define qtn_hs_text_softkey_call "Call"
+
+// d: Lock keypad
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_lock_keypad "Lock keypad"
+
+// d: Menu
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_apps_menu_skey "Menu"
--- a/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/00/View.dtd	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/view_20022fe0/xuikon/00/View.dtd	Tue Sep 14 20:58:58 2010 +0300
@@ -494,3 +494,21 @@
 qtn_hs_text_softkey_call.parents ""
 -->
 <!ENTITY qtn_hs_text_softkey_call "Call">
+
+<!--
+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 "Lock keypad"
+qtn_hs_page_edit_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_lock_keypad "Lock keypad">
+
+<!--
+qtn_hs_text_softkey_call.attributes
+qtn_hs_text_softkey_call.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_call.release "TB9.2"
+qtn_hs_text_softkey_call.description "RSK caption"
+qtn_hs_text_softkey_call.parents ""
+-->
+<!ENTITY qtn_hs_apps_menu_skey "Menu">
--- a/idlehomescreen/data/qhd_tch/view_200286e4/loc/View.loc	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/loc/View.loc	Tue Sep 14 20:58:58 2010 +0300
@@ -308,3 +308,15 @@
 // w:
 // r: TB9.2
 #define qtn_hs_text_softkey_call "Call"
+
+// d: Lock keypad
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_lock_keypad "Lock keypad"
+
+// d: Menu
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_apps_menu_skey "Menu"
--- a/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.dtd	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/view_200286e4/xuikon/00/View.dtd	Tue Sep 14 20:58:58 2010 +0300
@@ -494,3 +494,21 @@
 qtn_hs_text_softkey_call.parents ""
 -->
 <!ENTITY qtn_hs_text_softkey_call "Call">
+
+<!--
+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 "Lock keypad"
+qtn_hs_page_edit_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_lock_keypad "Lock keypad">
+
+<!--
+qtn_hs_text_softkey_call.attributes
+qtn_hs_text_softkey_call.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_call.release "TB9.2"
+qtn_hs_text_softkey_call.description "RSK caption"
+qtn_hs_text_softkey_call.parents ""
+-->
+<!ENTITY qtn_hs_apps_menu_skey "Menu">
--- a/idlehomescreen/data/qhd_tch/view_200286e5/loc/View.loc	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/loc/View.loc	Tue Sep 14 20:58:58 2010 +0300
@@ -308,3 +308,15 @@
 // w:
 // r: TB9.2
 #define qtn_hs_text_softkey_call "Call"
+
+// d: Lock keypad
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_lock_keypad "Lock keypad"
+
+// d: Menu
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_apps_menu_skey "Menu"
--- a/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.dtd	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/qhd_tch/view_200286e5/xuikon/00/View.dtd	Tue Sep 14 20:58:58 2010 +0300
@@ -494,3 +494,21 @@
 qtn_hs_text_softkey_call.parents ""
 -->
 <!ENTITY qtn_hs_text_softkey_call "Call">
+
+<!--
+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 "Lock keypad"
+qtn_hs_page_edit_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_lock_keypad "Lock keypad">
+
+<!--
+qtn_hs_text_softkey_call.attributes
+qtn_hs_text_softkey_call.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_call.release "TB9.2"
+qtn_hs_text_softkey_call.description "RSK caption"
+qtn_hs_text_softkey_call.parents ""
+-->
+<!ENTITY qtn_hs_apps_menu_skey "Menu">
--- a/idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286ed.confml	Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configuration xmlns="http://www.s60.com/xml/confml/2" name="Banko Homescreen" version="1">
-  <feature ref="BlankoHomescreenPlugins" name="Blanko Homescreen Widgets">
-    <setting ref="Plugins" name="Widgets" type="sequence">
-      <desc>Widgets on Blanko Homescreen</desc>
-      <setting ref="Uid" name="Widget" type="string">
-        <desc>Widget name</desc>
-        <option name="Empty" value="0x2001f47f"/>
-        <option name="wrtplugin_1" value="0x20022FD4"/>
-        <option name="wrtplugin_2" value="0x20022FD5"/>
-        <option name="wrtplugin_3" value="0x20022FD6"/>
-        <option name="wrtplugin_4" value="0x20022FD7"/>
-        <option name="wrtplugin_5" value="0x20022FD8"/>
-        <option name="wrtplugin_6" value="0x20022FD9"/>
-        <option name="wrtplugin_7" value="0x20022FDA"/>
-        <option name="wrtplugin_8" value="0x20022FDB"/>
-        <option name="wrtplugin_9" value="0x2001CB7D"/>
-        <option name="wrtplugin_10" value="0x2001CB7E"/>
-        <option name="wrtplugin_11" value="0x2001CB7F"/>
-        <option name="wrtplugin_12" value="0x200286EE"/>
-      </setting>
-      <setting ref="BundleIdentifier" name="Bundle Identifier" type="string">
-        <desc>Bundle identifier for the (C)WRT widgets. Leave empty if not set.</desc>
-        <option name="8TV Catch Up" value="com.nerdattack.widget.8TV"/>
-        <option name="Aftonbladet WebbTV" value="apegroup.aftonbladet.webbtv.symbian3"/>
-        <option name="Al Jazeera" value="si.inova.verve.aljazeera"/>
-        <option name="BBC Arabic Web TV" value="com.nokia.forum.bbcatv1.widget"/>
-        <option name="BH TV" value="com.bollywoodhungama.widget.BollywoodHungamaTV"/>
-        <option name="Channel NewsAsia" value="Channel.newsasia"/>
-        <option name="CNN Video" value="com.cnn"/>
-        <option name="DigiturkWebTV" value="com.digiturkwebtv.widget"/>
-        <option name="EFE Videos" value="com.ericsson.efe.widget"/>
-        <option name="E!" value="com.moderati.eonline"/>
-        <option name="Bollywood" value="br.org.indt.widget.eros"/>
-        <option name="Ovi Files" value="com.nokia.ss.sas.filesql"/>
-        <option name="Hi5" value="com.hi5.widget.Launcher"/>
-        <option name="凤凰电视" value="com.ifeng.www.webtv.widget"/>
-        <option name="Chat" value="com.nokia.ChatClient"/>
-        <option name="芒果 TV" value="com.imgo.tv"/>
-        <option name="India Today" value="br.org.indt.widget.indiatoday"/>
-        <option name="BBC iPlayer" value="com.bbc.widget.iplayer"/>
-        <option name="Contacts' latest activities" value="com.nokia.somawebui.xwidget"/>
-        <option name="M1TV" value="com.m1tv.basic.widget"/>
-        <option name="Makansutr" value="com.nerdattack.wrt.Makansutra"/>
-        <option name="bose" value="com.bose.basic.widget"/>
-        <option name="SingTel MTVS" value="com.nokia.widget.sapi.mtvs"/>
-        <option name="Nat Geo" value="com.natgeo"/>
-        <option name="NRK Mobil-TV" value="no.nrk.mobil.mobiltv.widget"/>
-        <option name="ontv" value="ontv.cc.on.tv.widget"/>
-        <option name="ovi" value="com.nokia.ovi"/>
-        <option name="Movie Teasers" value="com.movieteasers"/>
-        <option name="Schweizer Fernsehen" value="com.sftvreader.basic.widget"/>
-        <option name="Sky News On Demand" value="com.nerdattack.widget.SKYNEWS"/>
-        <option name="Social" value="com.nokia.socialmixer.v1"/>
-        <option name="æœç‹å¨±ä¹" value="com.sohu.widget.webtv4ovi"/>
-        <option name="SSOUI" value="ovi.serviceui.SSOUI"/>
-        <option name="Terra TV" value="com.terra.widget.wrt.tv"/>
-        <option name="Terra TV Lat" value="com.terra.widget.wrt.tv.latam"/>
-        <option name="topApps" value="com.topApps.basic.widget"/>
-        <option name="Tudou" value="com.Tudou.widget"/>
-        <option name="tv2news" value="com.nokia.forum.widget.tv2news"/>
-        <option name="TV2Play" value="no.tv2.tv2play.widget"/>
-        <option name="TV3 Catch Up" value="com.nerdattack.widget.TV3"/>
-        <option name="ВеÑти" value="com.vesti.basic.widget"/>
-        <option name="Viasat No" value="no.viasat.widget"/>
-        <option name="Viasat Swe" value="se.viasat.widget"/>
-        <option name="Virtual Malaysia" value="com.nerdattack.widget.VirtualMalaysia"/>
-        <option name="央广新浪" value="cn.com.sina.3g"/>
-        <option name="Web TV Demo" value="com.nokia.forum.webtv.widget"/>
-        <option name="Yle Areena" value="com.tieto.yle"/>
-        <option name="优酷" value="com.youku.s605th.webtv"/>
-      </setting>
-      <setting ref="TemplateIdentifier" name="Template Identifier" type="selection">
-        <desc>Templeate identifier for the (C)WRT widgets. None for the native widgets</desc>
-        <option name="None" value="0"/>
-        <option name="wideimage" value="0x2001f489"/>
-        <option name="threerows" value="0x2001f486"/>
-        <option name="threetextrows" value="0x2001f487"/>
-        <option name="tworows" value="0x2001f488"/>
-        <option name="onerow" value="0x2001f480"/>
-      </setting>
-      <setting ref="LockingStatus" name="locking Status" type="selection">
-        <desc>Locking status</desc>
-        <option name="None" value="none"/>
-        <option name="Locked" value="locked"/>
-      </setting>
-    </setting>
-  </feature>
-  <data>
-  <!--  <BlankoHomescreenPlugins>
-      <Plugins extensionPolicy="replace"><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
-      <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
-      <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
-      <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
-      <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
-      <Plugins><Uid>0x2001f47f</Uid><BundleIdentifier></BundleIdentifier><TemplateIdentifier>0</TemplateIdentifier><LockingStatus>none</LockingStatus></Plugins>
-    </BlankoHomescreenPlugins> -->
-  </data>
-</configuration>
\ No newline at end of file
--- a/idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286ed.gcfml	Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
-	<tag name="target" value="uda"/>
-	<tag name="target" value="emmc"/>
-	<phase name='post'/> <!-- post phase for making sure that all required data is available -->
-	
-<file xmlns="http://www.s60.com/xml/genconfml/1" name="viewconfiguration.xml" target="\private\200159c0\install\view_200286ed\hsps\00\">
-		<setting ref="BlankoHomescreenPlugins/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>
-			 	<control>
-				  <plugins>
-						<xsl:for-each select="BlankoHomescreenPlugins/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>
-							</plugin>
-						</xsl:for-each>
-					</plugins>
-				</control>
-			</configuration>
-		</xsl:template>
-	</xsl:stylesheet>
-</file>
-</container>
\ No newline at end of file
Binary file idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286edmanifest.confml has changed
--- a/idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286edmanifest.gcfml	Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
-	<tag name="target" value="uda"/>
-	<tag name="target" value="emmc"/>
-<file xmlns="http://www.s60.com/xml/genconfml/1" name="manifest.dat" target="\private\200159c0\install\view_200286ed\hsps\00\">
-	<setting ref="BlankoHomescreenManifest/PackageVersion"/>
-	<setting ref="BlankoHomescreenManifest/DeviceFamily"/>
-	<setting ref="BlankoHomescreenManifest/ConfigurationType"/>
-	<setting ref="BlankoHomescreenManifest/InterfaceUid"/>
-	<setting ref="BlankoHomescreenManifest/ProviderUid"/>
-	<setting ref="BlankoHomescreenManifest/ConfigurationUid"/>
-	<setting ref="BlankoHomescreenManifest/FullName"/>
-	<setting ref="BlankoHomescreenManifest/ShortName"/>
-	<setting ref="BlankoHomescreenManifest/ConfigurationVersion"/>
-	<setting ref="BlankoHomescreenManifest/ConfigurationFile"/>
-	<setting ref="BlankoHomescreenManifest/UiResourceFile"/>
-		<xsl:stylesheet version="1.0" 
-                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
-                xmlns:xi="http://www.w3.org/2001/xinclude">
-		<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
-		<xsl:template match="configuration/data">
-		<package>
-	  <xsl:attribute name="version"><xsl:value-of select="BlankoHomescreenManifest/PackageVersion"/></xsl:attribute>
-    <family>
-    <xsl:value-of select="BlankoHomescreenManifest/DeviceFamily"/>
-    </family>
-    <type>
-    <xsl:value-of select="BlankoHomescreenManifest/ConfigurationType"/>
-    </type>
-    <interfaceuid>
-    <xsl:value-of select="BlankoHomescreenManifest/InterfaceUid"/>
-    </interfaceuid>
-    <provideruid>
-    <xsl:value-of select="BlankoHomescreenManifest/ProviderUid"/>
-    </provideruid>
-    <configurationuid>
-    <xsl:value-of select="BlankoHomescreenManifest/ConfigurationUid"/>
-    </configurationuid>
-    <fullname>
-    <xsl:text>&#x26;</xsl:text>
-    <xsl:value-of select="BlankoHomescreenManifest/FullName"/>
-    <xsl:text>&#x3B;</xsl:text>
-    </fullname>
-    <shortname>
-    <xsl:value-of select="BlankoHomescreenManifest/ShortName"/>
-    </shortname>
-    <version>
-    <xsl:value-of select="BlankoHomescreenManifest/ConfigurationVersion"/>
-    </version>
-    <filexml>
-    <xsl:value-of select="BlankoHomescreenManifest/ConfigurationFile"/>
-    </filexml>
-    <localization>
-        <fileresource>
-        <xsl:value-of select="BlankoHomescreenManifest/UiResourceFile"/>
-        </fileresource>
-    </localization>
-  </package>
-  </xsl:template>
-	</xsl:stylesheet>
-</file>
-</container>
\ No newline at end of file
Binary file idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286edxuikon.confml has changed
--- a/idlehomescreen/data/qhd_tch/view_200286ed/conf/view200286edxuikon.gcfml	Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
-	<tag name="target" value="uda"/>
-	<tag name="target" value="emmc"/>
-<file xmlns="http://www.s60.com/xml/genconfml/1" name="empty.foo" target="\private\200159c0\install\view_200286ed\xuikon\">
-	<setting ref="BlankoHomescreenXuikonFolder/FolderCFG"/>
-		<xsl:stylesheet version="1.0" 
-                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
-                xmlns:xi="http://www.w3.org/2001/xinclude">
-		<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
-		<xsl:template match="configuration/data">
-		<whois>
-	  <xsl:attribute name="dude"><xsl:value-of select="BlankoHomescreenXuikonFolder/FolderCFG"/></xsl:attribute>
-	  </whois>
-  </xsl:template>
-	</xsl:stylesheet>
-</file>
-</container>
\ No newline at end of file
--- a/idlehomescreen/data/qhd_tch/view_200286ed/group/bld.inf	Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
-* 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
-
-//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/view200286ed.confml   APP_LAYER_CONFML(view200286ed.confml)
-../conf/view200286ed.gcfml    APP_LAYER_GCFML(view200286ed.gcfml)
-../conf/view200286edmanifest.confml   APP_LAYER_CONFML(view200286edmanifest.confml)
-../conf/view200286edmanifest.gcfml    APP_LAYER_GCFML(view200286edmanifest.gcfml)
-../conf/view200286edxuikon.confml   APP_LAYER_CONFML(view200286edxuikon.confml)
-../conf/view200286edxuikon.gcfml    APP_LAYER_GCFML(view200286edxuikon.gcfml)
-
-PRJ_MMPFILES
-
-PRJ_TESTMMPFILES
-
-//  End of File  
Binary file idlehomescreen/data/vga_tch/clockdate_200286e6/gfx/icon.mif has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/group/bld.inf	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,71 @@
+/*
+* 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:
+*
+*/
+
+#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/clockdate_200286e6/hsps/manifest.dat
+../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/clockdate_200286e6/hsps/widgetconfiguration.xml
+
+../xuikon/00/clockdate.dat /epoc32/data/Z/resource/homescreen/clockdate_200286e6/xuikon/clockdate_200286e6.dat
+../xuikon/00/clockdate.css /epoc32/data/Z/resource/homescreen/clockdate_200286e6/xuikon/clockdate.css
+../xuikon/00/clockdate.xml /epoc32/data/Z/resource/homescreen/clockdate_200286e6/xuikon/clockdate.xml
+
+// logo icon
+../gfx/icon.mif /epoc32/data/Z/resource/homescreen/clockdate_200286e6/hsps/icon.mif
+
+// Arabic languages
+//*****************
+../xuikon/37/clockdate.css /epoc32/data/Z/resource/homescreen/clockdate_200286e6/xuikon/37/clockdate.css
+../xuikon/50/clockdate.css /epoc32/data/Z/resource/homescreen/clockdate_200286e6/xuikon/50/clockdate.css
+../xuikon/57/clockdate.css /epoc32/data/Z/resource/homescreen/clockdate_200286e6/xuikon/57/clockdate.css
+../xuikon/94/clockdate.css /epoc32/data/Z/resource/homescreen/clockdate_200286e6/xuikon/94/clockdate.css
+
+// Support for S60 localization
+//*****************************
+// export localizable loc files (engineering versions)
+../loc/clockdatewidget.loc    APP_LAYER_LOC_EXPORT_PATH(clockdatewidget.loc)
+../loc/clockdateconfiguration.loc    APP_LAYER_LOC_EXPORT_PATH(clockdateconfiguration.loc)
+
+// Support for S60 builds
+//***********************
+../rom/clockdatewidget_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(clockdate_200286e6_resources.iby)
+../rom/clockdatewidget_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(clockdate_200286e6_customer.iby)
+../rom/clockdatewidget_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(clockdate_200286e6_variant.iby)
+../rom/clockdatewidget.iby CORE_APP_LAYER_IBY_EXPORT_PATH(clockdate_200286e6.iby)
+
+// Dtd-localization
+//*****************
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME clockdate_200286e6
+OPTION DTD_TYPE widget
+OPTION LOC_FOLDERS yes
+END
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+
+//  End of File  
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/hsps/00/clockdateconfiguration.dtd	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+============================================================================
+<FileName: "clockdateconfiguration.dtd">
+<PartOf  : "clockdateconfiguration">
+
+<FileDescription: "Localization strings for the configuration">
+<FileVersion    : >
+
+<Copyright:
+"Copyright � 2007 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.">
+============================================================================
+-->
+
+<!-- NOTE: make sure that there is at last one space character (hex 20) after the entity name -->
+
+<!--
+qtn_desktop_configuration_name.attributes
+qtn_desktop_configuration_name.layout "listrow_wgtman_pane_t1"
+qtn_desktop_configuration_name.release "TB9.2"
+qtn_desktop_configuration_name.description "clockdate"
+qtn_desktop_configuration_name.parents ""
+-->
+<!ENTITY qtn_clockdate_configuration_name  "Time & date">
+
+<!--
+qtn_desktop_configuration_desc.attributes
+qtn_desktop_configuration_desc.layout "listrow_wgtman_pane_t2"
+qtn_desktop_configuration_desc.release "TB9.2"
+qtn_desktop_configuration_desc.description "clockdate widget description"
+qtn_desktop_configuration_desc.parents ""
+-->
+<!ENTITY qtn_clockdate_configuration_desc  "Quick access to time and date.">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/hsps/00/manifest.dat	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+
+<package version="2.0">
+    <family>vga_tch</family>
+    
+    <type>widget</type>
+
+    <!-- interface uid -->
+    <interfaceuid>0x2001f48a</interfaceuid>
+
+    <!-- vendor uid  -->
+    <provideruid>0x101fb657</provideruid>
+    <!-- uid -->
+
+    <configurationuid>0x200286e6</configurationuid>
+
+    <fullname>Time and Date</fullname>
+    <shortname>clockdate</shortname>
+    <version>1.0</version>
+
+    <!-- description -->
+    <description>Clock widget</description>
+    
+    <!-- configuration -->
+    <filexml>widgetconfiguration.xml</filexml>
+   
+    <filelogo>skin(270501603 9360):mif(icon.mif 16384 16385)</filelogo>
+    <!-- Locale specific resources -->
+    <localization>
+    <fileresource tag="xuikon">clockdate.o0000</fileresource>
+    </localization>
+
+</package>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/hsps/00/widgetconfiguration.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,5 @@
+<configuration>
+    <control>
+        <settings/>
+    </control>
+</configuration>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/loc/clockdateconfiguration.loc	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* 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 (hsps)
+*
+*/
+
+
+// d: clockdate widget name
+// l: listrow_wgtman_pane_t1
+// w:
+// r: TB9.2
+#define qtn_clockdate_configuration_name  "Time & date"
+
+// d: clockdate widget description
+// l: wgtman_list_pane_t1 
+// w:
+// r: TB9.2
+#define qtn_clockdate_configuration_desc  "Quick access to time and date."
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/loc/clockdatewidget.loc	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,17 @@
+/*
+* 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 (xuikon)
+*
+*/
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/rom/clockdatewidget.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+* clockdate widget HSPS-plugin IBY file.
+*
+*/
+
+#ifndef __CLOCKDATEWIDGET_200286e6_IBY__
+#define __CLOCKDATEWIDGET_200286e6_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)         
+
+// Enabled by DTD-localization tools
+data=ZPRIVATE\200159c0\install\clockdate_200286e6\hsps\00\manifest.dat \private\200159c0\install\clockdate_200286e6\hsps\00\manifest.dat
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __CLOCKDATEWIDGET_200286e6_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/rom/clockdatewidget_customer.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+* clockdate widget HSPS-plugin language specific IBY file.
+*
+*/
+
+#ifndef __CLOCKDATEWIDGET_200286e6_CUSTOMER_IBY__
+#define __CLOCKDATEWIDGET_200286e6_CUSTOMER_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)      
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\clockdate_200286e6\xuikon\00\clockdate.o0000 \private\200159c0\install\clockdate_200286e6\xuikon\00\clockdate.o0000
+// data=ZPRIVATE\200159c0\install\clockdate_200286e6\hsps\00\clockdateconfiguration.dtd \private\200159c0\install\clockdate_200286e6\hsps\00\clockdateconfiguration.dtd
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __CLOCKDATEWIDGET_200286e6_CUSTOMER_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/rom/clockdatewidget_resources.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+* profile widget HSPS-plugin language specific IBY file.
+*
+*/
+
+#ifndef __CLOCKDATEWIDGET_200286e6_RESOURCES_IBY__
+#define __CLOCKDATEWIDGET_200286e6_RESOURCES_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)          
+
+data=ZPRIVATE\200159c0\install\clockdate_200286e6\xuikon\00\clockdate.o0000 \private\200159c0\install\clockdate_200286e6\xuikon\00\clockdate.o0000
+data=ZPRIVATE\200159c0\install\clockdate_200286e6\hsps\00\icon.mif \private\200159c0\install\clockdate_200286e6\hsps\00\icon.mif
+// data=ZPRIVATE\200159c0\install\clockdate_200286e6\hsps\00\clockdateconfiguration.dtd \private\200159c0\install\clockdate_200286e6\hsps\00\clockdateconfiguration.dtd
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __CLOCKDATEWIDGET_200286e6_RESOURCES_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/rom/clockdatewidget_variant.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+* clockdate widget HSPS-plugin variant specific IBY file. 
+*
+*/
+
+#ifndef __clockdateWIDGET_200286e6_VARIANT_IBY__
+#define __clockdateWIDGET_200286e6_VARIANT_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)         
+
+// Enabled by variation tools, variant specific
+data=ZPRIVATE\200159c0\install\clockdate_200286e6\hsps\00\widgetconfiguration.xml \private\200159c0\install\clockdate_200286e6\hsps\00\widgetconfiguration.xml
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif  // __clockdateWIDGET_200286e6_VARIANT_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,57 @@
+clock#clock
+{
+    width: 176px;
+    height: 115px;
+    _s60-font-size: 48px;
+    color: "SKIN(268458534 13056 74)";
+    background-color: "SKIN(268458534 9916)";
+    nav-index: appearance;
+}
+
+face12
+{
+	position: absolute;
+	top: 14px;
+	left: 19px;	
+	width: 102px;
+	height: 59px;
+	text-align: right;
+}
+
+ampm
+{
+	position: absolute;
+	width: 46px;
+	height: 28px;
+	top: 37px;
+	left: 124px;
+	text-align: left;
+	_s60-font-size: 28px;
+}
+
+face24
+{
+	position: absolute;
+	top: 14px;
+	width: auto;
+	height: 59px;
+}
+
+date
+{
+	position: absolute;
+	top: 78px;
+	width: auto;
+	height: 28px;
+	_s60-font-size: 26px;
+}
+
+face
+{
+	width: auto;
+	height: auto;
+
+	margin-left: 6px;
+	margin-right: 6px;
+	margin-bottom: 5px;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.dat	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<data>
+    <AppUid>2001CB4F</AppUid>
+    <Provideruid>101FB657</Provideruid>
+    <ThemeUid>110012F5</ThemeUid>
+    <ThemeFullName>clockdate</ThemeFullName>
+    <ThemeShortName>clockdate</ThemeShortName>
+    <ThemeVersion>1.0</ThemeVersion>
+    <FileXML>clockdate.xml</FileXML>
+    <FileCSS>clockdate.css</FileCSS>
+</data>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/00/clockdate.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
+	<widget id="clockdate">
+		<clock id="clock" focusable="true" _s60-initial-focus="1">
+			<digital>
+				<face12/>
+				<face24/>
+				<ampm/>
+				<date/>
+			</digital>
+			<analog>
+				<face/>
+			</analog>
+			<actions>
+				<action>
+					<trigger name="activate"/>
+					<event name="EventHandler/LaunchApp" uid="0x10005903"/><!--clock application-->
+				</action>
+			</actions>
+		</clock>
+	</widget>
+</xmluiml>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/37/clockdate.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,57 @@
+clock#clock
+{
+    width: 176px;
+    height: 115px;
+    _s60-font-size: 48px;
+    color: "SKIN(268458534 13056 74)";
+    background-color: "SKIN(268458534 9916)";
+    nav-index: appearance;
+}
+
+face12
+{
+	position: absolute;
+	left: 55px;
+	top: 14px;
+	width: 102px;
+	height: 59px;
+	text-align: left;
+}
+
+ampm
+{
+	position: absolute;
+	width: 46px;
+	height: 28px;
+	left: 6px;
+	top: 37px;
+	text-align: right;
+	_s60-font-size: 28px;
+}
+
+face24
+{
+	position: absolute;
+	top: 14px;
+	width: auto;
+	height: 59px;
+}
+
+date
+{
+	position: absolute;
+	top: 78px;
+	width: auto;
+	height: 28px;
+	_s60-font-size: 26px;
+}
+
+face
+{
+	width: auto;
+	height: auto;
+
+	margin-left: 6px;
+	margin-right: 6px;
+	margin-bottom: 5px;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/50/clockdate.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,57 @@
+clock#clock
+{
+    width: 176px;
+    height: 115px;
+    _s60-font-size: 48px;
+    color: "SKIN(268458534 13056 74)";
+    background-color: "SKIN(268458534 9916)";
+    nav-index: appearance;
+}
+
+face12
+{
+	position: absolute;
+	left: 55px;
+	top: 14px;
+	width: 102px;
+	height: 59px;
+	text-align: left;
+}
+
+ampm
+{
+	position: absolute;
+	width: 46px;
+	height: 28px;
+	left: 6px;
+	top: 37px;
+	text-align: right;
+	_s60-font-size: 28px;
+}
+
+face24
+{
+	position: absolute;
+	top: 14px;
+	width: auto;
+	height: 59px;
+}
+
+date
+{
+	position: absolute;
+	top: 78px;
+	width: auto;
+	height: 28px;
+	_s60-font-size: 26px;
+}
+
+face
+{
+	width: auto;
+	height: auto;
+
+	margin-left: 6px;
+	margin-right: 6px;
+	margin-bottom: 5px;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/57/clockdate.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,57 @@
+clock#clock
+{
+    width: 176px;
+    height: 115px;
+    _s60-font-size: 48px;
+    color: "SKIN(268458534 13056 74)";
+    background-color: "SKIN(268458534 9916)";
+    nav-index: appearance;
+}
+
+face12
+{
+	position: absolute;
+	left: 55px;
+	top: 14px;
+	width: 102px;
+	height: 59px;
+	text-align: left;
+}
+
+ampm
+{
+	position: absolute;
+	width: 46px;
+	height: 28px;
+	left: 6px;
+	top: 37px;
+	text-align: right;
+	_s60-font-size: 28px;
+}
+
+face24
+{
+	position: absolute;
+	top: 14px;
+	width: auto;
+	height: 59px;
+}
+
+date
+{
+	position: absolute;
+	top: 78px;
+	width: auto;
+	height: 28px;
+	_s60-font-size: 26px;
+}
+
+face
+{
+	width: auto;
+	height: auto;
+
+	margin-left: 6px;
+	margin-right: 6px;
+	margin-bottom: 5px;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/clockdate_200286e6/xuikon/94/clockdate.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,57 @@
+clock#clock
+{
+    width: 176px;
+    height: 115px;
+    _s60-font-size: 48px;
+    color: "SKIN(268458534 13056 74)";
+    background-color: "SKIN(268458534 9916)";
+    nav-index: appearance;
+}
+
+face12
+{
+	position: absolute;
+	left: 55px;
+	top: 14px;
+	width: 102px;
+	height: 59px;
+	text-align: left;
+}
+
+ampm
+{
+	position: absolute;
+	width: 46px;
+	height: 28px;
+	left: 6px;
+	top: 37px;
+	text-align: right;
+	_s60-font-size: 28px;
+}
+
+face24
+{
+	position: absolute;
+	top: 14px;
+	width: auto;
+	height: 59px;
+}
+
+date
+{
+	position: absolute;
+	top: 78px;
+	width: auto;
+	height: 28px;
+	_s60-font-size: 26px;
+}
+
+face
+{
+	width: auto;
+	height: auto;
+
+	margin-left: 6px;
+	margin-right: 6px;
+	margin-bottom: 5px;
+}
--- a/idlehomescreen/data/vga_tch/desktop_20018eee/hsps/00/widgetconfiguration.xml	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/desktop_20018eee/hsps/00/widgetconfiguration.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -4,45 +4,31 @@
       <!-- Shortcut #1, Phonebook -->
       <item id="first" name="Shortcut1" >
         <property  name="type" value="application"/>
-        <property  name="uid" value="0x101F4CCE"/>
+        <property  name="uid" value="0x99999990"/>
         <property  name="view" value=""/>
         <property  name="param" value=""/>
       </item>
-      <!-- Shortcut #2, Messaging -->
+      <!-- Shortcut #2, New Message -->
       <item id="second" name="Shortcut2" >
         <property  name="type" value="application"/>
-        <property  name="uid" value="0x100058C5"/>
+        <property  name="uid" value="0x99999990"/>
         <property  name="view" value=""/>
         <property  name="param" value=""/>
       </item>
       <!-- Shortcut #3, Browser -->
       <item id="third" name="Shortcut3" >
         <property  name="type" value="application"/>
-        <property  name="uid" value="0x10008D39"/>
-        <property  name="view" value=""/>
-        <property  name="param" value=""/>
-      </item>
-      <!-- Shortcut #4, Photos -->
-      <item id="fourth" name="Shortcut4" >
-        <property  name="type" value="application"/>
-        <property  name="uid" value="0x200009EE"/>
+        <property  name="uid" value="0x99999990"/>
         <property  name="view" value=""/>
         <property  name="param" value=""/>
       </item>
-      <!-- Shortcut #5, Calendar -->
-      <item id="fifth" name="Shortcut5" >
+      <!-- Shortcut #4, Calendar -->
+      <item id="fourth" name="Shortcut4" >
         <property  name="type" value="application"/>
-        <property  name="uid" value="0x10005901"/>
+        <property  name="uid" value="0x99999990"/>
         <property  name="view" value=""/>
         <property  name="param" value=""/>
       </item>
-      <!-- Shortcut #6, New message -->
-      <item id="sixth" name="Shortcut6" >
-        <property  name="type" value="shortcut"/>
-        <property  name="uid" value="0x99999999"/>
-        <property  name="view" value=""/>
-        <property  name="param" value="messaging:msg"/>
-      </item>
     </settings>
   </control>
 </configuration>
--- a/idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -12,20 +12,18 @@
 * Contributors:
 *
 * Description:
-* Top  Contacts widget HSPS-plugin core IBY file.
+* Desktop widget HSPS-plugin core IBY file.
 *
 */
 
-#ifdef FF_TOPCONTACTSWIDGET_COMPONENT
+#ifndef __DESKTOP_20018EEE_IBY__
+#define __DESKTOP_20018EEE_IBY__
 
-#ifndef __TOPCONTACTS_IBY__
-#define __TOPCONTACTS_IBY__
-
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools
-data=ZPRIVATE\200159c0\install\topcontacts\hsps\00\manifest.dat \private\200159c0\install\topcontacts\hsps\00\manifest.dat
+data=ZPRIVATE\200159c0\install\desktop_20018eee\hsps\00\manifest.dat \private\200159c0\install\desktop_20018eee\hsps\00\manifest.dat
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
-#endif // FF_TOPCONTACTSWIDGET_COMPONENT
\ No newline at end of file
+#endif // __DESKTOP_20018EEE_IBY__
\ No newline at end of file
--- a/idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop_customer.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop_customer.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -12,22 +12,17 @@
 * Contributors:
 *
 * Description:
-* Top Contacts widget HSPS-plugin customer specific IBY file.
+* Desktop widget HSPS-plugin customer specific IBY file.
 *
 */
 
-#ifdef FF_TOPCONTACTSWIDGET_COMPONENT
-
 #ifndef __DESKTOP_20018EEE_CUSTOMER_IBY__
 #define __DESKTOP_20018EEE_CUSTOMER_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
-data=ZPRIVATE\200159c0\install\topcontacts\xuikon\00\TopContacts.o0000 \private\200159c0\install\topcontacts\xuikon\00\TopContacts.o0000
-data=ZPRIVATE\200159c0\install\topcontacts\hsps\00\topcontact_hs_widget.dtd \private\200159c0\install\topcontacts\hsps\00\topcontact_hs_widget.dtd
+data=ZPRIVATE\200159c0\install\desktop_20018eee\xuikon\00\Desktop.o0000 \private\200159c0\install\desktop_20018eee\xuikon\00\Desktop.o0000
 
-#endif // FF_LAYOUT_480_640_VGA3
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif  // __DESKTOP_20018EEE_CUSTOMER_IBY__
-
-#endif // FF_TOPCONTACTSWIDGET_COMPONENT
--- a/idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop_resources.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop_resources.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -12,36 +12,30 @@
 * Contributors:
 *
 * Description:
-* Top Contacts  widget HSPS-plugin language specific IBY file.
+* Desktop widget HSPS-plugin language specific IBY file.
 *
 */
 
-#ifdef FF_TOPCONTACTSWIDGET_COMPONENT
-
 #ifndef __DESKTOP_20018EEE_RESOURCES_IBY__
 #define __DESKTOP_20018EEE_RESOURCES_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)   
 
 // Enabled by DTD-localization tools, language specific
 #if defined (__LOCALES_37_IBY__)
-data=ZPRIVATE\200159c0\install\topcontacts\xuikon\37\topcontacts.o0037 \private\200159c0\install\topcontacts\xuikon\37\topcontacts.o0037
+data=ZPRIVATE\200159c0\install\desktop_20018eee\xuikon\37\Desktop.o0037 \private\200159c0\install\desktop_20018eee\xuikon\37\Desktop.o0037
 #endif
 #if defined  (__LOCALES_50_IBY__)
-data=ZPRIVATE\200159c0\install\topcontacts\xuikon\50\topcontacts.o0050 \private\200159c0\install\topcontacts\xuikon\50\topcontacts.o0050
+data=ZPRIVATE\200159c0\install\desktop_20018eee\xuikon\50\Desktop.o0050 \private\200159c0\install\desktop_20018eee\xuikon\50\Desktop.o0050
 #endif
 #if defined  (__LOCALES_57_IBY__)
-data=ZPRIVATE\200159c0\install\topcontacts\xuikon\57\topcontacts.o0057 \private\200159c0\install\topcontacts\xuikon\57\topcontacts.o0057
+data=ZPRIVATE\200159c0\install\desktop_20018eee\xuikon\57\Desktop.o0057 \private\200159c0\install\desktop_20018eee\xuikon\57\Desktop.o0057
 #endif
 #if defined  (__LOCALES_94_IBY__)
-data=ZPRIVATE\200159c0\install\topcontacts\xuikon\94\topcontacts.o0094 \private\200159c0\install\topcontacts\xuikon\94\topcontacts.o0094
+data=ZPRIVATE\200159c0\install\desktop_20018eee\xuikon\94\Desktop.o0094 \private\200159c0\install\desktop_20018eee\xuikon\94\Desktop.o0094
 #endif
 
-
-data=ZPRIVATE\200159c0\install\topcontacts\hsps\00\topcontact_hs_widget.dtd \private\200159c0\install\topcontacts\hsps\00\topcontact_hs_widget.dtd
-
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif  // __DESKTOP_20018EEE_RESOURCES_IBY__
 
-#endif // FF_TOPCONTACTSWIDGET_COMPONENT
--- a/idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop_variant.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/desktop_20018eee/rom/desktop_variant.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -12,22 +12,18 @@
 * Contributors:
 *
 * Description:
-* Top Contacts widget HSPS-plugin variant specific IBY file.
+* Desktop widget HSPS-plugin variant specific IBY file.
 *
 */
 
-#ifdef FF_TOPCONTACTSWIDGET_COMPONENT
-
 #ifndef __DESKTOP_20018EEE_VARIANT_IBY__
 #define __DESKTOP_20018EEE_VARIANT_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by variation tools, variant specific
-data=ZPRIVATE\200159c0\install\topcontacts\hsps\00\widgetconfiguration.xml \private\200159c0\install\topcontacts\hsps\00\widgetconfiguration.xml
+data=ZPRIVATE\200159c0\install\desktop_20018eee\hsps\00\widgetconfiguration.xml \private\200159c0\install\desktop_20018eee\hsps\00\widgetconfiguration.xml
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif  // __DESKTOP_20018EEE_VARIANT_IBY__
-
-#endif // FF_TOPCONTACTSWIDGET_COMPONENT
--- a/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/00/desktop.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/00/desktop.css	Tue Sep 14 20:58:58 2010 +0300
@@ -1,59 +1,31 @@
 widget#desktop_widget
 {
-    width: auto;
-    height: 70px;
-
     block-progression: rl;
     direction: ltr;
+    color: "SKIN(268458534 13056 74)";
+    background-color: "SKIN(268458534 9916)";
 }
 
 button.button
 {
-    width: 70px;
-    height: auto;
-
     nav-index: appearance;
-
-    margin-left: 4px;
-    margin-right: 4px;
-
-    background-color: "SKIN(268458534 9906)";
+    width: 105px;
+    height: 105px;
+    margin-top: 5px;
 }
 
 button#button1
 {
-    margin-left: 0px;
-}
-
-button#button6
-{
-    margin-right: 0px;
-}
-
-button.button:focus
-{
-    focus-background: "SKIN(268458534 5120 9)";
+    margin-left: 10px;
 }
 
 image.icon
 {
-    width: auto;
-    height: auto;
-
     _s60-aspect-ratio: preserve;
-}
-
-/* For presence */
-image.second_icon
-{
-    margin-top:0%;
-    width: 25%;
-    height: 25%;
-    position: absolute;
-    bottom: 0%;
-    left: 70%;
-    top: 3%;
-    _s60-aspect-ratio:preserve;
+    padding-left: 5px;
+    padding-top: 5px;
+    width: 95px;
+    height: 95px;
 }
 
 tooltip.tooltip
@@ -75,12 +47,14 @@
     padding-right: 6px;
 }
 
+
 text.tooltiptext
-{
+{   
     font-family: EAknLogicalFontSecondaryFont;
     font-size: 23px;
     width: adaptive;
     color: "SKIN(268458534 13056 19)";
+    overflow: visible;
 }
 
 /*********************
--- a/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/00/desktop.xml	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/00/desktop.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -2,23 +2,14 @@
 <xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
 
   <widget id="desktop_widget" class="desktop_widget">
-
-    <!-- Launch service aPI plugin and fetch data from CPS -->
+    
     <contentsource name="DesktopWidget" value="0x2001CB58"/>
 
     <!-- Shortcut #1 -->
     <button id="button1" class="button" focusable="true" _s60-initial-focus="1">
       <actions>
         <action>
-          <trigger name="stylus">
-            <property name="eventtype" value="downup" />
-          </trigger>
-          <trigger name="activate"/>
-          <trigger name="keyevent">
-            <!-- EStdKeyEnter (enum from e32keys.h) -->
-            <property name="scancode" value="3"/>
-            <property name="eventtype" value="1"/>
-          </trigger>
+          <trigger name="activate"/>          
           <event name="DesktopWidget/LaunchByIndex(0x1)"/>
         </action>
       </actions>
@@ -34,21 +25,11 @@
         </text>
       </tooltip>
     </button>
-
-
     <!-- Shortcut #2 -->
     <button id="button2" class="button" focusable="true">
       <actions>
         <action>
-          <trigger name="stylus">
-            <property name="eventtype" value="downup" />
-          </trigger>
           <trigger name="activate"/>
-          <trigger name="keyevent">
-            <!-- EStdKeyEnter (enum from e32keys.h) -->
-            <property name="scancode" value="3"/>
-            <property name="eventtype" value="1"/>
-          </trigger>
           <event name="DesktopWidget/LaunchByIndex(0x2)"/>
         </action>
       </actions>
@@ -64,20 +45,11 @@
         </text>
       </tooltip>
     </button>
-
     <!-- Shortcut #3 -->
     <button id="button3" class="button" focusable="true">
       <actions>
         <action>
-          <trigger name="stylus">
-            <property name="eventtype" value="downup" />
-          </trigger>
           <trigger name="activate"/>
-          <trigger name="keyevent">
-            <!-- EStdKeyEnter (enum from e32keys.h) -->
-            <property name="scancode" value="3"/>
-            <property name="eventtype" value="1"/>
-          </trigger>
           <event name="DesktopWidget/LaunchByIndex(0x3)"/>
         </action>
       </actions>
@@ -93,20 +65,11 @@
         </text>
       </tooltip>
     </button>
-
     <!-- Shortcut #4 -->
     <button id="button4" class="button" focusable="true">
       <actions>
         <action>
-          <trigger name="stylus">
-            <property name="eventtype" value="downup" />
-          </trigger>
           <trigger name="activate"/>
-          <trigger name="keyevent">
-            <!-- EStdKeyEnter (enum from e32keys.h) -->
-            <property name="scancode" value="3"/>
-            <property name="eventtype" value="1"/>
-          </trigger>
           <event name="DesktopWidget/LaunchByIndex(0x4)"/>
         </action>
       </actions>
@@ -123,73 +86,7 @@
       </tooltip>
     </button>
 
-    <!-- Shortcut #5 -->
-    <button id="button5" class="button" focusable="true">
-      <actions>
-        <action>
-          <trigger name="stylus">
-            <property name="eventtype" value="downup" />
-          </trigger>
-          <trigger name="activate"/>
-          <trigger name="keyevent">
-            <!-- EStdKeyEnter (enum from e32keys.h) -->
-            <property name="scancode" value="3"/>
-            <property name="eventtype" value="1"/>
-          </trigger>
-          <event name="DesktopWidget/LaunchByIndex(0x5)"/>
-        </action>
-      </actions>
-      <image id="icon5" class="icon">
-        <property class="DesktopWidget/icon" name="ordinal" value="0x5"/>
-      </image>
-      <image id="presenceicon5" class="second_icon">
-        <property class="DesktopWidget/presenceicon" name="ordinal" value="0x5"/>
-      </image>
-      <tooltip id="tooltip5" class="tooltip" >
-        <text id="tooltiptext5" class="tooltiptext" >
-          <property class="DesktopWidget/long_name" name="ordinal" value="0x5"/>
-        </text>
-      </tooltip>
-    </button>
-
-    <button id="button6" class="button" focusable="true">
-      <actions>
-        <action>
-          <trigger name="stylus">
-            <property name="eventtype" value="downup" />
-          </trigger>
-          <trigger name="activate"/>
-          <trigger name="keyevent">
-            <!-- EStdKeyEnter (enum from e32keys.h) -->
-            <property name="scancode" value="3"/>
-            <property name="eventtype" value="1"/>
-          </trigger>
-          <event name="DesktopWidget/LaunchByIndex(0x6)"/>
-        </action>
-      </actions>
-      <image id="icon6" class="icon">
-        <property class="DesktopWidget/icon" name="ordinal" value="0x6"/>
-      </image>
-      <image id="presenceicon6" class="second_icon">
-        <property class="DesktopWidget/presenceicon" name="ordinal" value="0x6"/>
-      </image>
-      <tooltip id="tooltip6" class="tooltip" >
-        <text id="tooltiptext6" class="tooltiptext" >
-          <property class="DesktopWidget/long_name" name="ordinal" value="0x6"/>
-        </text>
-      </tooltip>
-    </button>
-
     <menuextension>
-      <softkey type="middle" target="hs_widget_msk_open"/>
-      <menuitem target="hs_widget_menuitem_open">
-        <actions>
-          <action>
-            <trigger name="activate"/>
-            <event name="system/activateselecteditem"/>
-          </action>
-        </actions>
-      </menuitem>
       <menuitem target="hs_widget_menuitem_settings">
         <actions>
           <action>
@@ -199,6 +96,5 @@
         </actions>
       </menuitem>
     </menuextension>
-
   </widget>
-</xmluiml>
\ No newline at end of file
+</xmluiml>
--- a/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/37/desktop.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/37/desktop.css	Tue Sep 14 20:58:58 2010 +0300
@@ -1,66 +1,38 @@
 widget#desktop_widget
 {
-    width: auto;
-    height: 70px;
-
     block-progression: rl;
     direction: rtl;
+    color: "SKIN(268458534 13056 74)";
+    background-color: "SKIN(268458534 9916)";
 }
 
 button.button
 {
-    width: 70px;
-    height: auto;
-
     nav-index: appearance;
-
-    margin-left: 4px;
-    margin-right: 4px;
-    background-color: "SKIN(268458534 9906)";
+    width: 105px;
+    height: 105px;
+    margin-top: 5px;
 }
 
 button#button1
 {
-    margin-left: 0px;
-}
-
-button#button6
-{
-    margin-right: 0px;
-}
-
-button.button:focus
-{
-    focus-background: "SKIN(268458534 5120 9)";
+    margin-right: 10px;
 }
 
 image.icon
 {
-    width: auto;
-    height: auto;
-
     _s60-aspect-ratio: preserve;
-}
-
-/* For presence */
-image.second_icon
-{
-    margin-top:0%;
-    width: 25%;
-    height: 25%;
-    position: absolute;
-    bottom: 0%;
-    left: 70%;
-    top: 3%;
-    _s60-aspect-ratio:preserve;
+    padding-left: 5px;
+    padding-top: 5px;
+    width: 95px;
+    height: 95px;
 }
 
 tooltip.tooltip
 {
-    width: 15.0u; /* any fixed lenghts works here if the owerflow is set to
-                   both tooltip and text inside it */
-    height: 5.5u;
-
+    width: adaptive;
+    max-width: 350px;
+    height: 33px;
     border-style: solid;
     border-width: 5px;
 
@@ -68,23 +40,21 @@
     _s60-display-time: 1000000;
 
     background-color:"SKIN(268458534 8480)";
-    overflow: visible;
+    display: block;
+    padding-left: 6px;
+    padding-top: 3px;
+    padding-bottom: 3px;
+    padding-right: 6px;
 }
 
 
 text.tooltiptext
-{
-    position: static;
+{   
     font-family: EAknLogicalFontSecondaryFont;
-    font-size: 3.5u;
-    width: 100%;
-    height: 85%;
-    text-align: center;
+    font-size: 23px;
+    width: adaptive;
     color: "SKIN(268458534 13056 19)";
     overflow: visible;
-    padding-right: 1u;
-    padding-left: 1u;
-    padding-bottom: 1u;
 }
 
 /*********************
@@ -95,7 +65,7 @@
     width: 15.0u;
     height: adaptive;
     border-style: solid;
-    border-width: 5px; 
+    border-width: 5px;
     /* delay comes from the xSP server */
     _s60-start-delay: 0;
     _s60-display-time: 60000000; /* 6 sec */
--- a/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/50/desktop.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/50/desktop.css	Tue Sep 14 20:58:58 2010 +0300
@@ -1,66 +1,38 @@
 widget#desktop_widget
 {
-    width: auto;
-    height: 70px;
-
     block-progression: rl;
     direction: rtl;
+    color: "SKIN(268458534 13056 74)";
+    background-color: "SKIN(268458534 9916)";
 }
 
 button.button
 {
-    width: 70px;
-    height: auto;
-
     nav-index: appearance;
-
-    margin-left: 4px;
-    margin-right: 4px;
-    background-color: "SKIN(268458534 9906)";
+    width: 105px;
+    height: 105px;
+    margin-top: 5px;
 }
 
 button#button1
 {
-    margin-left: 0px;
-}
-
-button#button6
-{
-    margin-right: 0px;
-}
-
-button.button:focus
-{
-    focus-background: "SKIN(268458534 5120 9)";
+    margin-right: 10px;
 }
 
 image.icon
 {
-    width: auto;
-    height: auto;
-
     _s60-aspect-ratio: preserve;
-}
-
-/* For presence */
-image.second_icon
-{
-    margin-top:0%;
-    width: 25%;
-    height: 25%;
-    position: absolute;
-    bottom: 0%;
-    left: 70%;
-    top: 3%;
-    _s60-aspect-ratio:preserve;
+    padding-left: 5px;
+    padding-top: 5px;
+    width: 95px;
+    height: 95px;
 }
 
 tooltip.tooltip
 {
-    width: 15.0u; /* any fixed lenghts works here if the owerflow is set to 
-                  both tooltip and text inside it */
-    height: 5.5u;
-
+    width: adaptive;
+    max-width: 350px;
+    height: 33px;
     border-style: solid;
     border-width: 5px;
 
@@ -68,23 +40,21 @@
     _s60-display-time: 1000000;
 
     background-color:"SKIN(268458534 8480)";
-    overflow: visible;
+    display: block;
+    padding-left: 6px;
+    padding-top: 3px;
+    padding-bottom: 3px;
+    padding-right: 6px;
 }
 
 
 text.tooltiptext
-{
-    position: static;
+{   
     font-family: EAknLogicalFontSecondaryFont;
-    font-size: 3.5u;
-    width: 100%;
-    height: 85%;
-    text-align: center;
+    font-size: 23px;
+    width: adaptive;
     color: "SKIN(268458534 13056 19)";
     overflow: visible;
-    padding-right: 1u;
-    padding-left: 1u;
-    padding-bottom: 1u;
 }
 
 /*********************
--- a/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/57/desktop.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/57/desktop.css	Tue Sep 14 20:58:58 2010 +0300
@@ -1,91 +1,60 @@
- widget#desktop_widget
+widget#desktop_widget
 {
-    width: auto;
-    height: 70px;
-
     block-progression: rl;
     direction: rtl;
+    color: "SKIN(268458534 13056 74)";
+    background-color: "SKIN(268458534 9916)";
 }
 
 button.button
 {
-    width: 70px;
-    height: auto;
-
     nav-index: appearance;
-
-    margin-left: 4px;
-    margin-right: 4px;
-
-    background-color: "SKIN(268458534 9906)";
+    width: 105px;
+    height: 105px;
+    margin-top: 5px;
 }
 
 button#button1
 {
-    margin-left: 0px;
-}
-
-button#button6
-{
-    margin-right: 0px;
-}
-
-button.button:focus
-{
-    focus-background: "SKIN(268458534 5120 9)";
+    margin-right: 10px;
 }
 
 image.icon
 {
-    width: auto;
-    height: auto;
-
     _s60-aspect-ratio: preserve;
-}
-
-/* For presence */
-image.second_icon
-{
-    margin-top:0%;
-    width: 25%;
-    height: 25%;
-    position: absolute;
-    bottom: 0%;
-    left: 70%;
-    top: 3%;
-    _s60-aspect-ratio:preserve;
+    padding-left: 5px;
+    padding-top: 5px;
+    width: 95px;
+    height: 95px;
 }
 
 tooltip.tooltip
 {
-    width: 15.0u; /* any fixed lenghts works here if the owerflow is set to 
-                   both tooltip and text inside it */
-    height: 5.5u;
-
+    width: adaptive;
+    max-width: 350px;
+    height: 33px;
     border-style: solid;
-    border-width: 5px; 
+    border-width: 5px;
 
     _s60-start-delay: 1000000;
     _s60-display-time: 1000000;
 
     background-color:"SKIN(268458534 8480)";
-    overflow: visible;
+    display: block;
+    padding-left: 6px;
+    padding-top: 3px;
+    padding-bottom: 3px;
+    padding-right: 6px;
 }
 
 
 text.tooltiptext
-{
-    position: static;
+{   
     font-family: EAknLogicalFontSecondaryFont;
-    font-size: 3.5u;
-    width: 100%;
-    height: 85%;
-    text-align: center;
+    font-size: 23px;
+    width: adaptive;
     color: "SKIN(268458534 13056 19)";
     overflow: visible;
-    padding-right: 1u;
-    padding-left: 1u;
-    padding-bottom: 1u;
 }
 
 /*********************
--- a/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/94/desktop.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/desktop_20018eee/xuikon/94/desktop.css	Tue Sep 14 20:58:58 2010 +0300
@@ -1,91 +1,60 @@
 widget#desktop_widget
 {
-    width: auto;
-    height: 70px;
-
     block-progression: rl;
     direction: rtl;
+    color: "SKIN(268458534 13056 74)";
+    background-color: "SKIN(268458534 9916)";
 }
 
 button.button
 {
-    width: 70px;
-    height: auto;
-
     nav-index: appearance;
-
-    margin-left: 4px;
-    margin-right: 4px;
-
-    background-color: "SKIN(268458534 9906)";
+    width: 105px;
+    height: 105px;
+    margin-top: 5px;
 }
 
 button#button1
 {
-    margin-left: 0px;
-}
-
-button#button6
-{
-    margin-right: 0px;
-}
-
-button.button:focus
-{
-    focus-background: "SKIN(268458534 5120 9)";
+    margin-right: 10px;
 }
 
 image.icon
 {
-    width: auto;
-    height: auto;
-
     _s60-aspect-ratio: preserve;
-}
-
-/* For presence */
-image.second_icon
-{
-    margin-top:0%;
-    width: 25%;
-    height: 25%;
-    position: absolute;
-    bottom: 0%;
-    left: 70%;
-    top: 3%;
-    _s60-aspect-ratio:preserve;
+    padding-left: 5px;
+    padding-top: 5px;
+    width: 95px;
+    height: 95px;
 }
 
 tooltip.tooltip
 {
-    width: 15.0u; /* any fixed lenghts works here if the owerflow is set to 
-                  both tooltip and text inside it */
-    height: 5.5u;
-
+    width: adaptive;
+    max-width: 350px;
+    height: 33px;
     border-style: solid;
-    border-width: 5px; 
+    border-width: 5px;
 
     _s60-start-delay: 1000000;
     _s60-display-time: 1000000;
 
     background-color:"SKIN(268458534 8480)";
-    overflow: visible;
+    display: block;
+    padding-left: 6px;
+    padding-top: 3px;
+    padding-bottom: 3px;
+    padding-right: 6px;
 }
 
 
 text.tooltiptext
-{
-    position: static;
+{   
     font-family: EAknLogicalFontSecondaryFont;
-    font-size: 3.5u;
-    width: 100%;
-    height: 85%;
-    text-align: center;
+    font-size: 23px;
+    width: adaptive;
     color: "SKIN(268458534 13056 19)";
     overflow: visible;
-    padding-right: 1u;
-    padding-left: 1u;
-    padding-bottom: 1u;
 }
 
 /*********************
--- a/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
 #ifndef __DOUBLE_ROW_ICON_WIDGET_2001FDBD_IBY__
 #define __DOUBLE_ROW_ICON_WIDGET_2001FDBD_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools
 data=ZPRIVATE\200159c0\install\double_row_icon_widget_2001fdbd\hsps\00\manifest.dat \private\200159c0\install\double_row_icon_widget_2001fdbd\hsps\00\manifest.dat
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __DOUBLE_ROW_ICON_WIDGET_2001FDBD_IBY__
--- a/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget_customer.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget_customer.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
 #ifndef __DOUBLE_ROW_ICON_WIDGET_2001FDBD_CUSTOMER_IBY__
 #define __DOUBLE_ROW_ICON_WIDGET_2001FDBD_CUSTOMER_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools, language specific
 data=ZPRIVATE\200159c0\install\double_row_icon_widget_2001fdbd\xuikon\00\double_row_icon_widget.o0000 \private\200159c0\install\double_row_icon_widget_2001fdbd\xuikon\00\double_row_icon_widget.o0000
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __DOUBLE_ROW_ICON_WIDGET_2001FDBD_CUSTOMER_IBY__
--- a/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget_resources.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget_resources.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -18,7 +18,7 @@
 #ifndef __DOUBLE_ROW_ICON_WIDGET_2001FDBD_RESOURCES_IBY__
 #define __DOUBLE_ROW_ICON_WIDGET_2001FDBD_RESOURCES_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools, language specific
 #if defined (__LOCALES_37_IBY__)
@@ -34,6 +34,6 @@
 data=ZPRIVATE\200159c0\install\double_row_icon_widget_2001fdbd\xuikon\94\double_row_icon_widget.o0094 \private\200159c0\install\double_row_icon_widget_2001fdbd\xuikon\94\double_row_icon_widget.o0094
 #endif
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __DOUBLE_ROW_ICON_WIDGET_2001FDBD_RESOURCES_IBY__
--- a/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget_variant.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/double_row_icon_widget_2001fdbd/rom/double_row_icon_widget_variant.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
 #ifndef __DOUBLE_ROW_ICON_WIDGET_2001FDBD_VARIANT_IBY__
 #define __DOUBLE_ROW_ICON_WIDGET_2001FDBD_VARIANT_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by variation tools, variant specific
 data=ZPRIVATE\200159c0\install\double_row_icon_widget_2001fdbd\hsps\00\widgetconfiguration.xml \private\200159c0\install\double_row_icon_widget_2001fdbd\hsps\00\widgetconfiguration.xml
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif  // __DOUBLE_ROW_ICON_WIDGET_2001FDBD_VARIANT_IBY__
--- a/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -18,11 +18,11 @@
 #ifndef __DOUBLE_ROW_WIDGET_2001FDC2_IBY__
 #define __DOUBLE_ROW_WIDGET_2001FDC2_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools
 data=ZPRIVATE\200159c0\install\double_row_widget_2001fdc2\hsps\00\manifest.dat \private\200159c0\install\double_row_widget_2001fdc2\hsps\00\manifest.dat
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __DOUBLE_ROW_WIDGET_2001FDC2_IBY__
--- a/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget_customer.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget_customer.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -18,11 +18,11 @@
 #ifndef __DOUBLE_ROW_WIDGET_2001FDC2_CUSTOMER_IBY__
 #define __DOUBLE_ROW_WIDGET_2001FDC2_CUSTOMER_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FFLAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools, language specific
 data=ZPRIVATE\200159c0\install\double_row_widget_2001fdc2\xuikon\00\double_row_widget.o0000 \private\200159c0\install\double_row_widget_2001fdc2\xuikon\00\double_row_widget.o0000
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __DOUBLE_ROW_WIDGET_2001FDC2_CUSTOMER_IBY__
--- a/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget_resources.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget_resources.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -18,7 +18,7 @@
 #ifndef __DOUBLE_ROW_WIDGET_2001FDC2_RESOURCES_IBY__
 #define __DOUBLE_ROW_WIDGET_2001FDC2_RESOURCES_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools, language specific
 #if defined (__LOCALES_37_IBY__)
@@ -34,6 +34,6 @@
 data=ZPRIVATE\200159c0\install\double_row_widget_2001fdc2\xuikon\94\double_row_widget.o0094 \private\200159c0\install\double_row_widget_2001fdc2\xuikon\94\double_row_widget.o0094
 #endif
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __DOUBLE_ROW_WIDGET_2001FDC2_RESOURCES_IBY__
--- a/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget_variant.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/double_row_widget_2001fdc2/rom/double_row_widget_variant.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -18,11 +18,11 @@
 #ifndef __DOUBLE_ROW_WIDGET_2001FDC2_VARIANT_IBY__
 #define __DOUBLE_ROW_WIDGET_2001FDC2_VARIANT_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by variation tools, variant specific
 data=ZPRIVATE\200159c0\install\double_row_widget_2001fdc2\hsps\00\widgetconfiguration.xml \private\200159c0\install\double_row_widget_2001fdc2\hsps\00\widgetconfiguration.xml
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif  // __DOUBLE_ROW_WIDGET_2001FDC2_VARIANT_IBY__
--- a/idlehomescreen/data/vga_tch/group/bld.inf	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/group/bld.inf	Tue Sep 14 20:58:58 2010 +0300
@@ -15,15 +15,20 @@
 *
 */
 
-
+#include "../clockdate_200286e6/group/bld.inf"
+#include "../desktop_20018eee/group/bld.inf"
 #include "../double_row_icon_widget_2001fdbd/group/bld.inf"
 #include "../double_row_widget_2001fdc2/group/bld.inf"
+#include "../profilemode_200286e7/group/bld.inf"
 #include "../root_2001f48f/group/bld.inf"
 #include "../single_row_icon_widget_2001fdc0/group/bld.inf"
 #include "../single_row_widget_2001fdc1/group/bld.inf"
 #include "../triple_row_icon_widget_2001fdbe/group/bld.inf"
 #include "../triple_row_widget_2001fdbf/group/bld.inf"
 #include "../view1_2001fdb9/group/bld.inf"
+#include "../view2_200286ea/group/bld.inf"
+#include "../view3_200286eb/group/bld.inf"
+#include "../templateview_200286ec/group/bld.inf"
 #include "../wideimage_10009dff/group/bld.inf"
 
 PRJ_PLATFORMS
Binary file idlehomescreen/data/vga_tch/profilemode_200286e7/gfx/icon.mif has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/group/bld.inf	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,74 @@
+/*
+* 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:
+*
+*/
+
+#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/profilemode_200286e7/hsps/manifest.dat
+../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/profilemode_200286e7/hsps/widgetconfiguration.xml
+// ../hsps/00/profilemodeconfiguration.dtd /epoc32/data/Z/resource/homescreen/profilemode_200286e7/hsps/profilemodeconfiguration.dtd
+
+../xuikon/00/profilemode.dat /epoc32/data/Z/resource/homescreen/profilemode_200286e7/xuikon/profilemode_200286e7.dat
+../xuikon/00/profilemode.css /epoc32/data/Z/resource/homescreen/profilemode_200286e7/xuikon/profilemode.css
+../xuikon/00/profilemode.xml /epoc32/data/Z/resource/homescreen/profilemode_200286e7/xuikon/profilemode.xml
+// ../xuikon/00/profilemodewidget.dtd /epoc32/data/Z/resource/homescreen/profilemode_200286e7/xuikon/profilemodewidget.dtd
+
+// logo icon
+../gfx/icon.mif /epoc32/data/Z/resource/homescreen/profilemode_200286e7/hsps/icon.mif
+
+// Arabic languages
+//*****************
+../xuikon/37/profilemode.css /epoc32/data/Z/resource/homescreen/profilemode_200286e7/xuikon/37/profilemode.css
+../xuikon/50/profilemode.css /epoc32/data/Z/resource/homescreen/profilemode_200286e7/xuikon/50/profilemode.css
+../xuikon/57/profilemode.css /epoc32/data/Z/resource/homescreen/profilemode_200286e7/xuikon/57/profilemode.css
+../xuikon/94/profilemode.css /epoc32/data/Z/resource/homescreen/profilemode_200286e7/xuikon/94/profilemode.css
+
+// Support for S60 localization
+//*****************************
+// export localizable loc files (engineering versions)
+// ../loc/profilemodewidget.loc    APP_LAYER_LOC_EXPORT_PATH(profilemodewidget.loc)
+// ../loc/profilemodeconfiguration.loc    APP_LAYER_LOC_EXPORT_PATH(profilemodeconfiguration.loc)
+
+// Support for S60 builds
+//***********************
+../rom/profilemodewidget_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(profilemode_200286e7_resources.iby)
+../rom/profilemodewidget_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(profilemode_200286e7_customer.iby)
+../rom/profilemodewidget_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(profilemode_200286e7_variant.iby)
+../rom/profilemodewidget.iby CORE_APP_LAYER_IBY_EXPORT_PATH(profilemode_200286e7.iby)
+
+// Dtd-localization
+//*****************
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME profilemode_200286e7
+OPTION DTD_TYPE widget
+OPTION LOC_FOLDERS yes
+END
+
+
+PRJ_MMPFILES
+
+PRJ_TESTMMPFILES
+
+//  End of File  
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/hsps/00/manifest.dat	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+
+<!-- Localization removed until localized strings are available -->
+
+<package version="2.0">
+
+    <family>vga_tch</family>
+        
+    <type>widget</type>
+
+    <!-- interface uid -->
+    <interfaceuid>0x2001f48a</interfaceuid>
+
+    <!-- vendor uid  -->
+    <provideruid>0x101fb657</provideruid>
+    <!-- uid -->
+
+    <configurationuid>0x200286e7</configurationuid>
+
+    <!-- <filedtd>profilemodeconfiguration.dtd</filedtd> -->
+    
+    <!-- <fullname>&amp;qtn_profilemode_configuration_name;</fullname> -->
+    <fullname>Profilemode</fullname>
+    
+    <shortname>profilemode</shortname>
+    <version>1.0</version>
+
+    <!-- description -->
+    <!-- <description>&amp;qtn_profilemode_configuration_desc;</description> -->
+    <description>Change and edit active profile</description>
+    
+    <!-- configuration -->
+    <filexml>widgetconfiguration.xml</filexml>
+   
+    <filelogo>skin(270501603 9360):mif(icon.mif 16384 16385)</filelogo>
+    <!-- Locale specific resources -->
+    <localization>
+    <fileresource tag="xuikon">profilemode.o0000</fileresource>
+    </localization>
+
+</package>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/hsps/00/profilemodeconfiguration.dtd	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+============================================================================
+<FileName: "profilemodeconfiguration.dtd">
+<PartOf  : "profilemodeconfiguration">
+
+<FileDescription: "Localization strings for the configuration">
+<FileVersion    : >
+
+<Copyright:
+"Copyright � 2007 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.">
+============================================================================
+-->
+
+<!-- NOTE: make sure that there is at last one space character (hex 20) after the entity name -->
+
+<!--
+qtn_desktop_configuration_name.attributes
+qtn_desktop_configuration_name.layout "listrow_wgtman_pane_t1"
+qtn_desktop_configuration_name.release "TB9.2"
+qtn_desktop_configuration_name.description "profilemode"
+qtn_desktop_configuration_name.parents ""
+-->
+<!ENTITY qtn_profilemode_configuration_name  "Time & profilemode">
+
+<!--
+qtn_desktop_configuration_desc.attributes
+qtn_desktop_configuration_desc.layout "listrow_wgtman_pane_t2"
+qtn_desktop_configuration_desc.release "TB9.2"
+qtn_desktop_configuration_desc.description "profilemode widget description"
+qtn_desktop_configuration_desc.parents ""
+-->
+<!ENTITY qtn_profilemode_configuration_desc  "Quick access to time, date and change profilemode.">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/hsps/00/widgetconfiguration.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,5 @@
+<configuration>
+    <control>
+        <settings/>
+    </control>
+</configuration>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/loc/profilemodeconfiguration.loc	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* 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 (hsps)
+*
+*/
+
+
+// d: profilemode widget name
+// l: listrow_wgtman_pane_t1
+// w:
+// r: TB9.2
+#define qtn_profilemode_configuration_name  "Profile"
+
+// d: profilemode widget description
+// l: wgtman_list_pane_t1 
+// w:
+// r: TB9.2
+#define qtn_profilemode_configuration_desc  "Quick access to time, date and change profilemode."
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/loc/profilemodewidget.loc	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,23 @@
+/*
+* 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 (xuikon)
+*
+*/
+
+
+// d: Edit active profilemode
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.1
+#define qtn_hs_profilemode_edit  "Edit active profilemode"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/rom/profilemodewidget.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+* profilemode widget HSPS-plugin IBY file.
+*
+*/
+
+#ifndef __PROFILEMODEWIDGET_200286E7_IBY__
+#define __PROFILEMODEWIDGET_200286E7_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)        
+
+// Enabled by DTD-localization tools
+data=ZPRIVATE\200159c0\install\profilemode_200286e7\hsps\00\manifest.dat \private\200159c0\install\profilemode_200286e7\hsps\00\manifest.dat
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __PROFILEMODEWIDGET_200286E7_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/rom/profilemodewidget_customer.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+* profilemode widget HSPS-plugin language specific IBY file.
+*
+*/
+
+#ifndef __PROFILEMODEWIDGET_200286E7_CUSTOMER_IBY__
+#define __PROFILEMODEWIDGET_200286E7_CUSTOMER_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)       
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\profilemode_200286e7\xuikon\00\profilemode.o0000 \private\200159c0\install\profilemode_200286e7\xuikon\00\profilemode.o0000
+data=ZPRIVATE\200159c0\install\profilemode_200286e7\hsps\00\profilemodeconfiguration.dtd \private\200159c0\install\profilemode_200286e7\hsps\00\profilemodeconfiguration.dtd
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __PROFILEMODEWIDGET_200286E7_CUSTOMER_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/rom/profilemodewidget_resources.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+* profilemode widget HSPS-plugin language specific IBY file.
+*
+*/
+
+#ifndef __PROFILEMODEWIDGET_200286E7_RESOURCES_IBY__
+#define __PROFILEMODEWIDGET_200286E7_RESOURCES_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)      
+
+data=ZPRIVATE\200159c0\install\profilemode_200286e7\xuikon\00\profilemode.o0000 \private\200159c0\install\profilemode_200286e7\xuikon\00\profilemode.o0000
+data=ZPRIVATE\200159c0\install\profilemode_200286e7\hsps\00\icon.mif \private\200159c0\install\profilemode_200286e7\hsps\00\icon.mif
+data=ZPRIVATE\200159c0\install\profilemode_200286e7\hsps\00\profilemodeconfiguration.dtd \private\200159c0\install\profilemode_200286e7\hsps\00\profilemodeconfiguration.dtd
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __PROFILEMODEWIDGET_200286E7_RESOURCES_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/rom/profilemodewidget_variant.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+* profilemode widget HSPS-plugin variant specific IBY file. 
+*
+*/
+
+#ifndef __PROFILEMODEWIDGET_200286E7_VARIANT_IBY__
+#define __PROFILEMODEWIDGET_200286E7_VARIANT_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)         
+
+// Enabled by variation tools, variant specific
+data=ZPRIVATE\200159c0\install\profilemode_200286e7\hsps\00\widgetconfiguration.xml \private\200159c0\install\profilemode_200286e7\hsps\00\widgetconfiguration.xml
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif  // __PROFILEMODEWIDGET_200286E7_VARIANT_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/00/profilemode.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,176 @@
+widget#profilewidget
+{
+    background-color: "SKIN(268458534 9916)";
+    direction: ltr;
+    block-progression: tb;
+		nav-index: appearance;    
+}
+
+box#marginbox1
+{
+	display: block;
+	width: auto;
+	height: 15px;
+}
+
+box#profileiconbox
+{
+	padding-top: 8px;
+	padding-bottom: 3px;
+	height: 32px;
+	width: auto;
+}
+
+image#profileicon
+{
+	margin-top: auto;
+	margin-bottom: auto;
+	margin-left: auto;
+	margin-right: auto;
+	width: 32px;
+	height: 32px;	
+}
+
+box#marginbox2
+{
+	display: block;
+	width: auto;
+	height: 3px;
+}
+
+box#profilenamebox
+{
+	height: 32px;
+	width: auto;
+}
+
+text#profilename
+{
+	/*
+	padding-left: 9px;
+	padding-right: 9px;	
+	*/
+	height: 32px;
+  text-align: center;
+  display: block;
+  visibility: visible;
+  width: auto;
+  font-family: EAknLogicalFontSecondaryFont;
+  /* font-size: 32px; */
+  font-size: 30px;
+  color: "SKIN(268458534 13056 74)";
+}
+
+/*
+box#profile_softindicator
+{
+	display: none;
+    padding-top: 2px;
+    padding-bottom: 2px;
+    padding-left: 2px;
+    padding-right: 2px;
+    direction: ltr;
+}
+
+image#SatIdleModeIcon
+{
+    display: none;
+    width: 18px;
+    height: 20px;
+    position: static;
+    margin-top: auto;
+}
+*/
+/* Default system profiles */
+text.systemprofileitem
+{
+    display: block;
+}
+
+/* Placeholders for profiles added by user */
+text.userprofileitem
+{
+    display: none;
+}
+
+/******************
+    SOFT INDICATOR WIDGET AREA 
+*******************/
+/*
+newsticker.SIText
+{
+    text-align: center;
+    display: block;
+    visibility: visible;
+    width: auto;
+    font-family: EAknLogicalFontSecondaryFont;
+    font-size: 32px;
+    color: "SKIN(268458534 13056 74)";
+    
+    white-space-collapse: collapse;
+    
+    _s60-scroll-behaviour: scroll-alternate;
+    
+    _s60-display-time: 2000;
+    _s60-scroll-loop: false;
+    _s60-start-delay: 0;
+    _s60-restart-after-update: true;
+}
+*/
+
+newsticker#indicator
+{
+	  padding-left: 9px;
+	  padding-right: 9px;
+    text-align: center;
+    display: none;
+    visibility: visible;
+    width: auto;
+    height: 32px;
+    font-family: EAknLogicalFontSecondaryFont;
+    /* font-size: 32px; */
+    font-size: 30px;
+    color: "SKIN(268458534 13056 74)";
+    
+    white-space-collapse: collapse;
+    
+    _s60-scroll-behaviour: scroll-alternate;
+    
+    _s60-display-time: 2000;
+    _s60-scroll-loop: false;
+    _s60-start-delay: 0;
+    _s60-restart-after-update: true;
+}
+
+box#NT_CUGMCN
+{
+	  display: none;
+    text-align: center;
+    margin-left: auto;
+    margin-right: auto;
+    /* width: adaptive; */
+    width: auto;
+    height: auto;
+    block-progression: rl;
+}
+
+box#NT_SATVHZ
+{
+    text-align: center;
+    margin-left: auto;
+    margin-right: auto;
+    /* width: adaptive; */
+    width: auto;
+    height: auto;
+    block-progression: rl;
+}
+
+title#title_vhz
+{
+    display: none;
+}
+
+title#title_sat
+{
+    display: none;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/00/profilemode.dat	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<data>
+    <AppUid>2001CB4F</AppUid>
+    <Provideruid>101FB657</Provideruid>
+    <ThemeUid>110012F5</ThemeUid>
+    <ThemeFullName>profilemode</ThemeFullName>
+    <ThemeShortName>profilemode</ThemeShortName>
+    <ThemeVersion>1.0</ThemeVersion>
+    <FileXML>profilemode.xml</FileXML>
+    <FileCSS>profilemode.css</FileCSS>
+    <!-- <FileDTD>profilemodewidget.dtd</FileDTD> -->
+</data>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/00/profilemode.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Localization removed until localized strings are available -->
+<!-- <!DOCTYPE xmluiml SYSTEM "profilewidget.dtd"> -->
+<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
+	
+  <widget id="profilewidget" focusable="true">
+
+    <!-- Data plugins in this widget -->
+    <contentsource name="Profile" value="0x10275101"/>
+    <contentsource name="SAT" value="0x102078EB"/>
+    <contentsource name="DeviceStatus" value="0x102750F8"/>
+
+    <desc id="Profile/ActiveProfileGeneralIconResource" path="SKIN(270501603 8586 74)"/>
+    <desc id="Profile/ActiveProfileSilentIconResource" path="SKIN(270501603 8587 74)"/>
+    <desc id="Profile/ActiveProfileTimedIconResource" path="SKIN(270501603 8631 74)"/>        
+
+    <actions>
+      <action>
+        <trigger name="activate"/>
+        <event name="system/trydisplayinglistquerydialog">
+          <property name="id" value="profiledialog"/>
+        </event>
+      </action>
+    </actions>
+    
+    <box id="marginbox1"/>
+    
+    <box id="profileiconbox">
+    	<image id="profileicon">
+    		<property class="Profile/ActiveProfileIcon"/>
+    	</image>     	
+   	</box>
+   	
+   	<box id="marginbox2"/>
+
+    <box id="profilenamebox">
+    	<text id="profilename">
+    		<property class="Profile/ActiveProfileName"/>
+    	</text>
+    </box>
+    
+    <newsticker id="indicator" focusable="false">
+
+    	<title id="title_cug" titleindex="0">
+    		<property class="DeviceStatus/CUGIndicator"/>
+    		<property class="policy/emptyContent" name="title_cug" value="display: none;"/>
+    		<property class="policy/Content" name="title_cug" value="display: block;"/>
+    		<property class="policy/Visibility" name="indicator" value="if (title_cug,title_sat,title_vhz,title_mcn) display: block"/>
+    		<property class="policy/Visibility" name="indicator" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: none"/>
+    		<property class="policy/Visibility" name="marginbox1" value="if (title_cug,title_sat,title_vhz,title_mcn) display: none"/>
+    		<property class="policy/Visibility" name="marginbox1" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: block"/>
+    		<property class="policy/Visibility" name="marginbox2" value="if (title_cug,title_sat,title_vhz,title_mcn) display: none"/>
+    		<property class="policy/Visibility" name="marginbox2" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: block"/>    		    		
+    	</title>    
+
+    	<title id="title_sat" titleindex="1">
+    		<property class="SAT/SatIdleModeText"/>
+    		<property class="policy/emptyContent" name="title_sat" value="display: none;"/>
+    		<property class="policy/Content" name="title_sat" value="display: block;"/>
+    		<property class="policy/Visibility" name="indicator" value="if (title_cug,title_sat,title_vhz,title_mcn) display: block"/>
+    		<property class="policy/Visibility" name="indicator" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: none"/>    		
+    		<property class="policy/Visibility" name="marginbox1" value="if (title_cug,title_sat,title_vhz,title_mcn) display: none"/>
+    		<property class="policy/Visibility" name="marginbox1" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: block"/>
+    		<property class="policy/Visibility" name="marginbox2" value="if (title_cug,title_sat,title_vhz,title_mcn) display: none"/>
+    		<property class="policy/Visibility" name="marginbox2" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: block"/>        		
+    	</title>
+
+    	<title id="title_vhz" titleindex="2">
+    		<property class="DeviceStatus/VHZText"/>
+    		<property class="policy/emptyContent" name="title_vhz" value="display: none;"/>
+    		<property class="policy/Content" name="title_vhz" value="display: block;"/>
+    		<property class="policy/Visibility" name="indicator" value="if (title_cug,title_sat,title_vhz,title_mcn) display: block"/>
+    		<property class="policy/Visibility" name="indicator" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: none"/>     		
+    		<property class="policy/Visibility" name="marginbox1" value="if (title_cug,title_sat,title_vhz,title_mcn) display: none"/>
+    		<property class="policy/Visibility" name="marginbox1" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: block"/>
+    		<property class="policy/Visibility" name="marginbox2" value="if (title_cug,title_sat,title_vhz,title_mcn) display: none"/>
+    		<property class="policy/Visibility" name="marginbox2" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: block"/>         		
+    	</title>
+
+    	<title id="title_mcn" titleindex="3">
+    		<property class="DeviceStatus/MCNIndicator"/>
+    		<property class="policy/emptyContent" name="title_mcn" value="display: none;"/>
+    		<property class="policy/Content" name="title_mcn" value="display: block;"/>
+    		<property class="policy/Visibility" name="indicator" value="if (title_cug,title_sat,title_vhz,title_mcn) display: block"/>
+    		<property class="policy/Visibility" name="indicator" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: none"/>     
+    		<property class="policy/Visibility" name="marginbox1" value="if (title_cug,title_sat,title_vhz,title_mcn) display: none"/>
+    		<property class="policy/Visibility" name="marginbox1" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: block"/>
+    		<property class="policy/Visibility" name="marginbox2" value="if (title_cug,title_sat,title_vhz,title_mcn) display: none"/>
+    		<property class="policy/Visibility" name="marginbox2" value="if !+(title_cug,title_sat,title_vhz,title_mcn) display: block"/>         				
+    	</title>	    	    	
+    	
+    </newsticker>
+    
+    <listquerydialog id="profiledialog" display="none">
+      <property class="Profile/ProfileName"/>
+      <!-- <menuitem id="profileseditactive" label="&qtn_hs_profile_edit;"> -->
+      <menuitem id="profileseditactive" label="Edit active profile">
+        <actions>
+          <action>
+            <trigger name="activate"/>
+            <event name="Profile/EditActiveProfile"/>
+          </action>
+        </actions>
+      </menuitem>
+      <dynmenuitem id="profileitem">
+        <actions>
+          <action>
+            <trigger name="activate"/>
+            <event name="Profile/SwitchProfileByIndex(#)"/>
+          </action>
+        </actions>
+      </dynmenuitem>
+    </listquerydialog>
+  </widget>
+</xmluiml>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/00/profilemodewidget.dtd	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+============================================================================
+<FileName: "profilemode.dtd">
+<PartOf  : "AI3">
+
+<FileDescription: "Localization strings for AI3">
+<FileVersion    : >
+
+<Copyright:
+"Copyright © 2005 Nokia Corporation.
+This material, including documentation and any related
+computer programs, is protected by copyright controlled by
+Nokia Corporation. All rights are reserved. Copying,
+including reproducing, storing,  adapting or translating, any
+or all of this material requires the prior written consent of
+Nokia Corporation. This material also contains confidential
+information which may not be disclosed to others without the
+prior written consent of Nokia Corporation.">
+============================================================================
+-->
+
+<!--
+qtn_hs_profilemode_edit.attributes
+qtn_hs_profilemode_edit.layout "list_single_pane_t1_cp2"
+qtn_hs_profilemode_edit.release "TB9.1"
+qtn_hs_profilemode_edit.description "Edit active profilemode"
+qtn_hs_profilemode_edit.parents "list_single_pane_cp2"
+-->
+<!ENTITY qtn_hs_profilemode_edit "Edit active profilemode">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/37/profilemode.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,176 @@
+widget#profilewidget
+{
+    background-color: "SKIN(268458534 9916)";
+    direction: rtl;
+    block-progression: tb;
+		nav-index: appearance;    
+}
+
+box#marginbox1
+{
+	display: block;
+	width: auto;
+	height: 15px;
+}
+
+box#profileiconbox
+{
+	padding-top: 8px;
+	padding-bottom: 3px;
+	height: 32px;
+	width: auto;
+}
+
+image#profileicon
+{
+	margin-top: auto;
+	margin-bottom: auto;
+	margin-left: auto;
+	margin-right: auto;
+	width: 32px;
+	height: 32px;	
+}
+
+box#marginbox2
+{
+	display: block;
+	width: auto;
+	height: 3px;
+}
+
+box#profilenamebox
+{
+	height: 32px;
+	width: auto;
+}
+
+text#profilename
+{
+	/*
+	padding-left: 9px;
+	padding-right: 9px;	
+	*/
+	height: 32px;
+  text-align: center;
+  display: block;
+  visibility: visible;
+  width: auto;
+  font-family: EAknLogicalFontSecondaryFont;
+  /* font-size: 32px; */
+  font-size: 30px;
+  color: "SKIN(268458534 13056 74)";
+}
+
+/*
+box#profile_softindicator
+{
+	display: none;
+    padding-top: 2px;
+    padding-bottom: 2px;
+    padding-left: 2px;
+    padding-right: 2px;
+    direction: ltr;
+}
+
+image#SatIdleModeIcon
+{
+    display: none;
+    width: 18px;
+    height: 20px;
+    position: static;
+    margin-top: auto;
+}
+*/
+/* Default system profiles */
+text.systemprofileitem
+{
+    display: block;
+}
+
+/* Placeholders for profiles added by user */
+text.userprofileitem
+{
+    display: none;
+}
+
+/******************
+    SOFT INDICATOR WIDGET AREA 
+*******************/
+/*
+newsticker.SIText
+{
+    text-align: center;
+    display: block;
+    visibility: visible;
+    width: auto;
+    font-family: EAknLogicalFontSecondaryFont;
+    font-size: 32px;
+    color: "SKIN(268458534 13056 74)";
+    
+    white-space-collapse: collapse;
+    
+    _s60-scroll-behaviour: scroll-alternate;
+    
+    _s60-display-time: 2000;
+    _s60-scroll-loop: false;
+    _s60-start-delay: 0;
+    _s60-restart-after-update: true;
+}
+*/
+
+newsticker#indicator
+{
+	  padding-left: 9px;
+	  padding-right: 9px;
+    text-align: center;
+    display: none;
+    visibility: visible;
+    width: auto;
+    height: 32px;
+    font-family: EAknLogicalFontSecondaryFont;
+    /* font-size: 32px; */
+    font-size: 30px;
+    color: "SKIN(268458534 13056 74)";
+    
+    white-space-collapse: collapse;
+    
+    _s60-scroll-behaviour: scroll-alternate;
+    
+    _s60-display-time: 2000;
+    _s60-scroll-loop: false;
+    _s60-start-delay: 0;
+    _s60-restart-after-update: true;
+}
+
+box#NT_CUGMCN
+{
+	  display: none;
+    text-align: center;
+    margin-left: auto;
+    margin-right: auto;
+    /* width: adaptive; */
+    width: auto;
+    height: auto;
+    block-progression: rl;
+}
+
+box#NT_SATVHZ
+{
+    text-align: center;
+    margin-left: auto;
+    margin-right: auto;
+    /* width: adaptive; */
+    width: auto;
+    height: auto;
+    block-progression: rl;
+}
+
+title#title_vhz
+{
+    display: none;
+}
+
+title#title_sat
+{
+    display: none;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/50/profilemode.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,176 @@
+widget#profilewidget
+{
+    background-color: "SKIN(268458534 9916)";
+    direction: rtl;
+    block-progression: tb;
+		nav-index: appearance;    
+}
+
+box#marginbox1
+{
+	display: block;
+	width: auto;
+	height: 15px;
+}
+
+box#profileiconbox
+{
+	padding-top: 8px;
+	padding-bottom: 3px;
+	height: 32px;
+	width: auto;
+}
+
+image#profileicon
+{
+	margin-top: auto;
+	margin-bottom: auto;
+	margin-left: auto;
+	margin-right: auto;
+	width: 32px;
+	height: 32px;	
+}
+
+box#marginbox2
+{
+	display: block;
+	width: auto;
+	height: 3px;
+}
+
+box#profilenamebox
+{
+	height: 32px;
+	width: auto;
+}
+
+text#profilename
+{
+	/*
+	padding-left: 9px;
+	padding-right: 9px;	
+	*/
+	height: 32px;
+  text-align: center;
+  display: block;
+  visibility: visible;
+  width: auto;
+  font-family: EAknLogicalFontSecondaryFont;
+  /* font-size: 32px; */
+  font-size: 30px;
+  color: "SKIN(268458534 13056 74)";
+}
+
+/*
+box#profile_softindicator
+{
+	display: none;
+    padding-top: 2px;
+    padding-bottom: 2px;
+    padding-left: 2px;
+    padding-right: 2px;
+    direction: ltr;
+}
+
+image#SatIdleModeIcon
+{
+    display: none;
+    width: 18px;
+    height: 20px;
+    position: static;
+    margin-top: auto;
+}
+*/
+/* Default system profiles */
+text.systemprofileitem
+{
+    display: block;
+}
+
+/* Placeholders for profiles added by user */
+text.userprofileitem
+{
+    display: none;
+}
+
+/******************
+    SOFT INDICATOR WIDGET AREA 
+*******************/
+/*
+newsticker.SIText
+{
+    text-align: center;
+    display: block;
+    visibility: visible;
+    width: auto;
+    font-family: EAknLogicalFontSecondaryFont;
+    font-size: 32px;
+    color: "SKIN(268458534 13056 74)";
+    
+    white-space-collapse: collapse;
+    
+    _s60-scroll-behaviour: scroll-alternate;
+    
+    _s60-display-time: 2000;
+    _s60-scroll-loop: false;
+    _s60-start-delay: 0;
+    _s60-restart-after-update: true;
+}
+*/
+
+newsticker#indicator
+{
+	  padding-left: 9px;
+	  padding-right: 9px;
+    text-align: center;
+    display: none;
+    visibility: visible;
+    width: auto;
+    height: 32px;
+    font-family: EAknLogicalFontSecondaryFont;
+    /* font-size: 32px; */
+    font-size: 30px;
+    color: "SKIN(268458534 13056 74)";
+    
+    white-space-collapse: collapse;
+    
+    _s60-scroll-behaviour: scroll-alternate;
+    
+    _s60-display-time: 2000;
+    _s60-scroll-loop: false;
+    _s60-start-delay: 0;
+    _s60-restart-after-update: true;
+}
+
+box#NT_CUGMCN
+{
+	  display: none;
+    text-align: center;
+    margin-left: auto;
+    margin-right: auto;
+    /* width: adaptive; */
+    width: auto;
+    height: auto;
+    block-progression: rl;
+}
+
+box#NT_SATVHZ
+{
+    text-align: center;
+    margin-left: auto;
+    margin-right: auto;
+    /* width: adaptive; */
+    width: auto;
+    height: auto;
+    block-progression: rl;
+}
+
+title#title_vhz
+{
+    display: none;
+}
+
+title#title_sat
+{
+    display: none;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/57/profilemode.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,176 @@
+widget#profilewidget
+{
+    background-color: "SKIN(268458534 9916)";
+    direction: rtl;
+    block-progression: tb;
+		nav-index: appearance;    
+}
+
+box#marginbox1
+{
+	display: block;
+	width: auto;
+	height: 15px;
+}
+
+box#profileiconbox
+{
+	padding-top: 8px;
+	padding-bottom: 3px;
+	height: 32px;
+	width: auto;
+}
+
+image#profileicon
+{
+	margin-top: auto;
+	margin-bottom: auto;
+	margin-left: auto;
+	margin-right: auto;
+	width: 32px;
+	height: 32px;	
+}
+
+box#marginbox2
+{
+	display: block;
+	width: auto;
+	height: 3px;
+}
+
+box#profilenamebox
+{
+	height: 32px;
+	width: auto;
+}
+
+text#profilename
+{
+	/*
+	padding-left: 9px;
+	padding-right: 9px;	
+	*/
+	height: 32px;
+  text-align: center;
+  display: block;
+  visibility: visible;
+  width: auto;
+  font-family: EAknLogicalFontSecondaryFont;
+  /* font-size: 32px; */
+  font-size: 30px;
+  color: "SKIN(268458534 13056 74)";
+}
+
+/*
+box#profile_softindicator
+{
+	display: none;
+    padding-top: 2px;
+    padding-bottom: 2px;
+    padding-left: 2px;
+    padding-right: 2px;
+    direction: ltr;
+}
+
+image#SatIdleModeIcon
+{
+    display: none;
+    width: 18px;
+    height: 20px;
+    position: static;
+    margin-top: auto;
+}
+*/
+/* Default system profiles */
+text.systemprofileitem
+{
+    display: block;
+}
+
+/* Placeholders for profiles added by user */
+text.userprofileitem
+{
+    display: none;
+}
+
+/******************
+    SOFT INDICATOR WIDGET AREA 
+*******************/
+/*
+newsticker.SIText
+{
+    text-align: center;
+    display: block;
+    visibility: visible;
+    width: auto;
+    font-family: EAknLogicalFontSecondaryFont;
+    font-size: 32px;
+    color: "SKIN(268458534 13056 74)";
+    
+    white-space-collapse: collapse;
+    
+    _s60-scroll-behaviour: scroll-alternate;
+    
+    _s60-display-time: 2000;
+    _s60-scroll-loop: false;
+    _s60-start-delay: 0;
+    _s60-restart-after-update: true;
+}
+*/
+
+newsticker#indicator
+{
+	  padding-left: 9px;
+	  padding-right: 9px;
+    text-align: center;
+    display: none;
+    visibility: visible;
+    width: auto;
+    height: 32px;
+    font-family: EAknLogicalFontSecondaryFont;
+    /* font-size: 32px; */
+    font-size: 30px;
+    color: "SKIN(268458534 13056 74)";
+    
+    white-space-collapse: collapse;
+    
+    _s60-scroll-behaviour: scroll-alternate;
+    
+    _s60-display-time: 2000;
+    _s60-scroll-loop: false;
+    _s60-start-delay: 0;
+    _s60-restart-after-update: true;
+}
+
+box#NT_CUGMCN
+{
+	  display: none;
+    text-align: center;
+    margin-left: auto;
+    margin-right: auto;
+    /* width: adaptive; */
+    width: auto;
+    height: auto;
+    block-progression: rl;
+}
+
+box#NT_SATVHZ
+{
+    text-align: center;
+    margin-left: auto;
+    margin-right: auto;
+    /* width: adaptive; */
+    width: auto;
+    height: auto;
+    block-progression: rl;
+}
+
+title#title_vhz
+{
+    display: none;
+}
+
+title#title_sat
+{
+    display: none;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/profilemode_200286e7/xuikon/94/profilemode.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,176 @@
+widget#profilewidget
+{
+    background-color: "SKIN(268458534 9916)";
+    direction: rtl;
+    block-progression: tb;
+		nav-index: appearance;    
+}
+
+box#marginbox1
+{
+	display: block;
+	width: auto;
+	height: 15px;
+}
+
+box#profileiconbox
+{
+	padding-top: 8px;
+	padding-bottom: 3px;
+	height: 32px;
+	width: auto;
+}
+
+image#profileicon
+{
+	margin-top: auto;
+	margin-bottom: auto;
+	margin-left: auto;
+	margin-right: auto;
+	width: 32px;
+	height: 32px;	
+}
+
+box#marginbox2
+{
+	display: block;
+	width: auto;
+	height: 3px;
+}
+
+box#profilenamebox
+{
+	height: 32px;
+	width: auto;
+}
+
+text#profilename
+{
+	/*
+	padding-left: 9px;
+	padding-right: 9px;	
+	*/
+	height: 32px;
+  text-align: center;
+  display: block;
+  visibility: visible;
+  width: auto;
+  font-family: EAknLogicalFontSecondaryFont;
+  /* font-size: 32px; */
+  font-size: 30px;
+  color: "SKIN(268458534 13056 74)";
+}
+
+/*
+box#profile_softindicator
+{
+	display: none;
+    padding-top: 2px;
+    padding-bottom: 2px;
+    padding-left: 2px;
+    padding-right: 2px;
+    direction: ltr;
+}
+
+image#SatIdleModeIcon
+{
+    display: none;
+    width: 18px;
+    height: 20px;
+    position: static;
+    margin-top: auto;
+}
+*/
+/* Default system profiles */
+text.systemprofileitem
+{
+    display: block;
+}
+
+/* Placeholders for profiles added by user */
+text.userprofileitem
+{
+    display: none;
+}
+
+/******************
+    SOFT INDICATOR WIDGET AREA 
+*******************/
+/*
+newsticker.SIText
+{
+    text-align: center;
+    display: block;
+    visibility: visible;
+    width: auto;
+    font-family: EAknLogicalFontSecondaryFont;
+    font-size: 32px;
+    color: "SKIN(268458534 13056 74)";
+    
+    white-space-collapse: collapse;
+    
+    _s60-scroll-behaviour: scroll-alternate;
+    
+    _s60-display-time: 2000;
+    _s60-scroll-loop: false;
+    _s60-start-delay: 0;
+    _s60-restart-after-update: true;
+}
+*/
+
+newsticker#indicator
+{
+	  padding-left: 9px;
+	  padding-right: 9px;
+    text-align: center;
+    display: none;
+    visibility: visible;
+    width: auto;
+    height: 32px;
+    font-family: EAknLogicalFontSecondaryFont;
+    /* font-size: 32px; */
+    font-size: 30px;
+    color: "SKIN(268458534 13056 74)";
+    
+    white-space-collapse: collapse;
+    
+    _s60-scroll-behaviour: scroll-alternate;
+    
+    _s60-display-time: 2000;
+    _s60-scroll-loop: false;
+    _s60-start-delay: 0;
+    _s60-restart-after-update: true;
+}
+
+box#NT_CUGMCN
+{
+	  display: none;
+    text-align: center;
+    margin-left: auto;
+    margin-right: auto;
+    /* width: adaptive; */
+    width: auto;
+    height: auto;
+    block-progression: rl;
+}
+
+box#NT_SATVHZ
+{
+    text-align: center;
+    margin-left: auto;
+    margin-right: auto;
+    /* width: adaptive; */
+    width: auto;
+    height: auto;
+    block-progression: rl;
+}
+
+title#title_vhz
+{
+    display: none;
+}
+
+title#title_sat
+{
+    display: none;
+}
Binary file idlehomescreen/data/vga_tch/root_2001f48f/conf/root2001f48f.confml has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/root_2001f48f/conf/root2001f48f.gcfml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+	<tag name="target" value="core"/>
+	<tag name="target" value="rofs2"/>
+	<tag name="target" value="rofs3"/>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="rootconfiguration.xml" target="\private\200159c0\install\root_2001f48f\hsps\00\">
+	<setting ref="VGA_HSViews/MaxPages"/>
+	<setting ref="VGA_HSViews/Views"/>
+	<setting ref="VGA_HSViews/ItemId"/>
+	<setting ref="VGA_HSViews/PropertyName"/>
+	<setting ref="VGA_HSViews/PropertyValue"/>
+	<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="VGA_HSViews/MaxPages"/></xsl:attribute>
+				<control> 
+					<plugins>
+						<xsl:for-each select="VGA_HSViews/Views">
+							<plugin>
+								<xsl:attribute name="uid"><xsl:value-of select="Uid"/></xsl:attribute>
+								<xsl:attribute name="locking_status"><xsl:value-of select="LockingStatus"/></xsl:attribute>
+							</plugin>
+						</xsl:for-each>
+					</plugins>
+					<settings>
+				    <item>
+				      <xsl:attribute name="id"><xsl:value-of select="VGA_HSViews/ItemId"/></xsl:attribute>
+				   <property>
+					  <xsl:attribute name="name"><xsl:value-of select="VGA_HSViews/PropertyName"/></xsl:attribute>
+					  <xsl:attribute name="value"><xsl:value-of select="VGA_HSViews/PropertyValue"/></xsl:attribute>				
+					</property>
+				  </item>			      
+				   
+          </settings>
+				</control>
+			  
+			</configuration>
+		</xsl:template>
+	</xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
--- a/idlehomescreen/data/vga_tch/root_2001f48f/group/bld.inf	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/root_2001f48f/group/bld.inf	Tue Sep 14 20:58:58 2010 +0300
@@ -26,13 +26,16 @@
 // Support for productization and Carbide.Ui customization
 //********************************************************
 ../hsps/00/manifest.dat /epoc32/data/z/resource/homescreen/root_2001f48f/hsps/manifest.dat
-../hsps/00/rootconfiguration.xml /epoc32/data/z/resource/homescreen/root_2001f48f/hsps/rootconfiguration.xml
-//../hsps/00/rootconfiguration.dtd /epoc32/data/z/resource/homescreen/root_2001f48f/hsps/rootconfiguration.dtd
+//../hsps/00/rootconfiguration.xml /epoc32/data/z/resource/homescreen/root_2001f48f/hsps/rootconfiguration.xml
 
 ../xuikon/00/root.dat /epoc32/data/z/resource/homescreen/root_2001f48f/xuikon/root_2001f48f.dat
 ../xuikon/00/root.css /epoc32/data/z/resource/homescreen/root_2001f48f/xuikon/root.css
 ../xuikon/00/root.xml /epoc32/data/z/resource/homescreen/root_2001f48f/xuikon/root.xml
-
+//Confml and cfgml files for the customization
+// starting use confml it is need to remove root_configuration.xml direct exporting (root_2001f482_variant.iby)
+//***********************************
+../conf/root2001f48f.confml   APP_LAYER_CONFML(root2001f48f.confml)
+../conf/root2001f48f.gcfml    APP_LAYER_GCFML(root2001f48f.gcfml)
 
 // Support for S60 localization
 //*****************************
@@ -43,9 +46,9 @@
 
 // Support for S60 builds
 //***********************
-../rom/root_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(root_2001f48f_resources.iby)
-../rom/root_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(root_2001f48f_customer.iby)
-../rom/root_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(root_2001f48f_variant.iby)
+//../rom/root_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(root_2001f48f_resources.iby)
+//../rom/root_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(root_2001f48f_customer.iby)
+//../rom/root_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(root_2001f48f_variant.iby)
 ../rom/root.iby CORE_APP_LAYER_IBY_EXPORT_PATH(root_2001f48f.iby)
 
 
--- a/idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/manifest.dat	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/manifest.dat	Tue Sep 14 20:58:58 2010 +0300
@@ -23,10 +23,7 @@
 
     <!-- configuration -->
     <filexml>rootconfiguration.xml</filexml>
-    
-    <!-- Name of the localization files -->
-    <!--filedtd>rootconfiguration.dtd</filedtd-->
-    
+
     <!-- Locale independent/common resources -->
     <fileresource>root.o0000</fileresource>
 
--- a/idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/rootconfiguration.dtd	Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-============================================================================
-<FileName: "rootconfiguration.dtd">
-<PartOf  : "rootconfiguration">
-
-<FileDescription: "Localization strings for the configuration">
-<FileVersion    : >
-
-<Copyright:
-"Copyright © 2007 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.">
-============================================================================
--->
-
-<!-- NOTE: make sure that there is at last one space character (hex 20) after the entity name -->
-
-<!ENTITY qtn_root_configuration_name "AI3 Root">
--- a/idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/rootconfiguration.xml	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/root_2001f48f/hsps/00/rootconfiguration.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -1,16 +1,17 @@
-<configuration>
+<?xml version="1.0" encoding="UTF-8"?>
 
-	<!-- name = localized name e.g. "classic theme" -->
+<configuration max_child="5">
 	<control>
 		<plugins>
-			<!-- portrait view -->
-			<plugin uid="0x2001fdb9"/>
-			<plugin uid="0x2001fdb9"/>
-			<plugin uid="0x2001fdb9"/>	
-			<plugin uid="0x2001fdb9"/>
-      <plugin uid="0x2001fdb9"/>  		
+			<plugin uid="0x2001fdb9" locking_status="locked" />
+			<plugin uid="0x200286ea" locking_status="none" />
+			<plugin uid="0x200286eb" locking_status="none" />	
 		</plugins>
-		<settings/>
-	</control>
+        <settings>
+            <item id="templateView">
+                <property name="uid" value="0x200286ec" />
+            </item>
+        </settings>
+    </control>
 
 </configuration>
--- a/idlehomescreen/data/vga_tch/root_2001f48f/rom/root.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/root_2001f48f/rom/root.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -19,12 +19,12 @@
 #ifndef __ROOT_2001F48F_IBY__
 #define __ROOT_2001F48F_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools
 data=ZPRIVATE\200159c0\install\root_2001f48f\xuikon\00\root.o0000 \private\200159c0\install\root_2001f48f\xuikon\00\root.o0000
 data=ZPRIVATE\200159c0\install\root_2001f48f\hsps\00\manifest.dat \private\200159c0\install\root_2001f48f\hsps\00\manifest.dat
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __ROOT_2001F48F_IBY__
--- a/idlehomescreen/data/vga_tch/root_2001f48f/rom/root_customer.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/root_2001f48f/rom/root_customer.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
 #ifndef __ROOT_2001F48F_CUSTOMER_IBY__
 #define __ROOT_2001F48F_CUSTOMER_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools, language specific
 //data=ZPRIVATE\200159c0\install\root_2001f48f\hsps\00\rootconfiguration.dtd \private\200159c0\install\root_2001f48f\hsps\00\rootconfiguration.dtd
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __ROOT_2001F48F_CUSTOMER_IBY__
--- a/idlehomescreen/data/vga_tch/root_2001f48f/rom/root_resources.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/root_2001f48f/rom/root_resources.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
 #ifndef __ROOT_2001F48F_RESOURCES_IBY__
 #define __ROOT_2001F48F_RESOURCES_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools, language specific
 //data=ZPRIVATE\200159c0\install\root_2001f48f\hsps\00\rootconfiguration.dtd \private\200159c0\install\root_2001f48f\hsps\00\rootconfiguration.dtd
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __ROOT_2001F48F_RESOURCES_IBY__
--- a/idlehomescreen/data/vga_tch/root_2001f48f/rom/root_variant.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/root_2001f48f/rom/root_variant.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
 #ifndef __ROOT_2001F48F_VARIANT_IBY__
 #define __ROOT_2001F48F_VARIANT_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by variation tools, variant specific
 data=ZPRIVATE\200159c0\install\root_2001f48f\hsps\00\rootconfiguration.xml \private\200159c0\install\root_2001f48f\hsps\00\rootconfiguration.xml
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif  // __ROOT_2001F48F_VARIANT_IBY__
--- a/idlehomescreen/data/vga_tch/root_2001f48f/xuikon/00/root.xml	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/root_2001f48f/xuikon/00/root.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -1,5 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- <!DOCTYPE xmluiml SYSTEM "AI3_Demo.dtd"> -->
 <xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
 	<views>
 	</views>
--- a/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -19,10 +19,11 @@
 #ifndef __SINGLE_ROW_WIDGET_2001FDC0_IBY__
 #define __SINGLE_ROW_WIDGET_2001FDC0_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools
 data=ZPRIVATE\200159c0\install\single_row_icon_widget_2001fdc0\hsps\00\manifest.dat \private\200159c0\install\single_row_icon_widget_2001fdc0\hsps\00\manifest.dat
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
 #endif // __SINGLE_ROW_WIDGET_2001FDC0_IBY__
--- a/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget_customer.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget_customer.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
 #ifndef __SINGLE_ROW_WIDGET_2001FDC0_CUSTOMER_IBY__
 #define __SINGLE_ROW_WIDGET_2001FDC0_CUSTOMER_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools, language specific
 data=ZPRIVATE\200159c0\install\single_row_icon_widget_2001fdc0\xuikon\00\single_row_icon_widget.o0000 \private\200159c0\install\single_row_icon_widget_2001fdc0\xuikon\00\single_row_icon_widget.o0000
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __SINGLE_ROW_WIDGET_2001FDC0_CUSTOMER_IBY__
--- a/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget_resources.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget_resources.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -18,7 +18,7 @@
 #ifndef __SINGLE_ROW_WIDGET_2001FDC0_RESOURCES_IBY__
 #define __SINGLE_ROW_WIDGET_2001FDC0_RESOURCES_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools, language specific
 #if defined (__LOCALES_37_IBY__)
@@ -34,6 +34,6 @@
 data=ZPRIVATE\200159c0\install\single_row_icon_widget_2001fdc0\xuikon\94\single_row_icon_widget.o0094 \private\200159c0\install\single_row_icon_widget_2001fdc0\xuikon\94\single_row_icon_widget.o0094
 #endif
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __SINGLE_ROW_WIDGET_2001FDC0_RESOURCES_IBY__
--- a/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget_variant.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/single_row_icon_widget_2001fdc0/rom/single_row_icon_widget_variant.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
 #ifndef __SINGLE_ROW_WIDGET_2001FDC0_VARIANT_IBY__
 #define __SINGLE_ROW_WIDGET_2001FDC0_VARIANT_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by variation tools, variant specific
 data=ZPRIVATE\200159c0\install\single_row_icon_widget_2001fdc0\hsps\00\widgetconfiguration.xml \private\200159c0\install\single_row_icon_widget_2001fdc0\hsps\00\widgetconfiguration.xml
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif  // __SINGLE_ROW_WIDGET_2001FDC0_VARIANT_IBY__
--- a/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
 #ifndef __SINGLE_ROW_WIDGET_2001FDC1_IBY__
 #define __SINGLE_ROW_WIDGET_2001FDC1_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools
 data=ZPRIVATE\200159c0\install\single_row_widget_2001fdc1\hsps\00\manifest.dat \private\200159c0\install\single_row_widget_2001fdc1\hsps\00\manifest.dat
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __SINGLE_ROW_WIDGET_2001FDC1_IBY__
--- a/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget_customer.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget_customer.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
 #ifndef __SINGLE_ROW_WIDGET_2001FDC1_CUSTOMER_IBY__
 #define __SINGLE_ROW_WIDGET_2001FDC1_CUSTOMER_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools, language specific
 data=ZPRIVATE\200159c0\install\single_row_widget_2001fdc1\xuikon\00\single_row_widget.o0000 \private\200159c0\install\single_row_widget_2001fdc1\xuikon\00\single_row_widget.o0000
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __SINGLE_ROW_WIDGET_2001FDC1_CUSTOMER_IBY__
--- a/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget_resources.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget_resources.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -18,7 +18,7 @@
 #ifndef __SINGLE_ROW_WIDGET_2001FDC1_RESOURCES_IBY__
 #define __SINGLE_ROW_WIDGET_2001FDC1_RESOURCES_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools, language specific
 #if defined (__LOCALES_37_IBY__)
@@ -34,6 +34,6 @@
 data=ZPRIVATE\200159c0\install\single_row_widget_2001fdc1\xuikon\94\single_row_widget.o0094 \private\200159c0\install\single_row_widget_2001fdc1\xuikon\94\single_row_widget.o0094
 #endif
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __SINGLE_ROW_WIDGET_2001FDC1_RESOURCES_IBY__
--- a/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget_variant.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/single_row_widget_2001fdc1/rom/single_row_widget_variant.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
 #ifndef __SINGLE_ROW_WIDGET_2001FDC1_VARIANT_IBY__
 #define __SINGLE_ROW_WIDGET_2001FDC1_VARIANT_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by variation tools, variant specific
 data=ZPRIVATE\200159c0\install\single_row_widget_2001fdc1\hsps\00\widgetconfiguration.xml \private\200159c0\install\single_row_widget_2001fdc1\hsps\00\widgetconfiguration.xml
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif  // __SINGLE_ROW_WIDGET_2001FDC1_VARIANT_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/group/bld.inf	Tue Sep 14 20:58:58 2010 +0300
@@ -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/tempateview_200286ec/hsps/manifest.dat
+../hsps/00/viewconfiguration.xml /epoc32/data/z/resource/homescreen/tempateview_200286ec/hsps/viewconfiguration.xml
+//../hsps/00/viewconfiguration.dtd /epoc32/data/z/resource/homescreen/tempateview_200286ec/hsps/viewconfiguration.dtd
+
+../xuikon/00/view.dat /epoc32/data/z/resource/homescreen/tempateview_200286ec/xuikon/tempateview_200286ec.dat
+../xuikon/00/view.xml /epoc32/data/z/resource/homescreen/tempateview_200286ec/xuikon/view.xml
+../xuikon/00/view.dtd /epoc32/data/z/resource/homescreen/tempateview_200286ec/xuikon/view.dtd
+../xuikon/00/view.css /epoc32/data/z/resource/homescreen/tempateview_200286ec/xuikon/view.css
+
+// Arabic languages
+//*****************
+../xuikon/37/view.css /epoc32/data/z/resource/homescreen/tempateview_200286ec/xuikon/37/view.css
+../xuikon/50/view.css /epoc32/data/z/resource/homescreen/tempateview_200286ec/xuikon/50/view.css
+../xuikon/57/view.css /epoc32/data/z/resource/homescreen/tempateview_200286ec/xuikon/57/view.css
+../xuikon/94/view.css /epoc32/data/z/resource/homescreen/tempateview_200286ec/xuikon/94/view.css
+
+
+// Support for S60 localization
+//*****************************
+//#ifndef __VIEWCONFIGURATION_LOC__
+//#define __VIEWCONFIGURATION_LOC__
+//../loc/viewconfiguration.loc APP_LAYER_LOC_EXPORT_PATH(viewconfiguration.loc)
+//#endif // __VIEWCONFIGURATION_LOC__
+
+#ifndef __VIEW_LOC__
+#define __VIEW_LOC__
+../loc/view.loc APP_LAYER_LOC_EXPORT_PATH(view.loc)
+#endif // __VIEW_LOC__
+
+// Support for S60 builds
+//***********************
+../rom/view_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(tempateview_200286ec_resources.iby)
+../rom/view_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(tempateview_200286ec_customer.iby)
+../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(tempateview_200286ec_variant.iby)
+../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(tempateview_200286ec.iby)
+
+
+// Dtd-localization
+//*****************
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME tempateview_200286ec
+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/vga_tch/templateview_200286ec/hsps/00/manifest.dat	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<package version="2.0">
+
+    <family>vga_tch</family>
+        
+    <type>view</type>
+
+    <!-- interface uid -->
+    <interfaceuid>0x2001f48a</interfaceuid>
+
+    <!-- vendor uid -->
+    <provideruid>0x101fb657</provideruid>
+
+    <!-- configuration uid -->
+    <configurationuid>0x200286ec</configurationuid>
+
+    <!-- description -->
+    <fullname>tempateview</fullname>
+    <shortname>ai3_nokia</shortname>
+    <version>1.0</version>
+
+    <!-- configuration -->
+    <filexml>viewconfiguration.xml</filexml>
+    
+    <!-- Name of the localization files -->
+    <!--filedtd>viewconfiguration.dtd</filedtd-->
+
+    <!-- Locale specific resources -->
+    <localization>
+        <fileresource>view.o0000</fileresource>
+    </localization>
+  
+</package>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/hsps/00/viewconfiguration.dtd	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+============================================================================
+<FileName: "viewconfiguration.dtd">
+
+<FileDescription: "Localization strings for HSPS view configuration">
+<FileVersion    : >
+
+<Copyright:
+"Copyright © 2005 Nokia Corporation.
+This material, including documentation and any related 
+computer programs, is protected by copyright controlled by 
+Nokia Corporation. All rights are reserved. Copying, 
+including reproducing, storing,  adapting or translating, any 
+or all of this material requires the prior written consent of 
+Nokia Corporation. This material also contains confidential 
+information which may not be disclosed to others without the 
+prior written consent of Nokia Corporation.">
+============================================================================
+-->
+
+<!--  LOCALISATION STRINGS  -->
+
+<!ENTITY qtn_view_configuration_name "ai3_nokia">
+
+
+<!-- End of File-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/hsps/00/viewconfiguration.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +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_vga_tch_view">
+                <property name="use_empty_widget" value="true"/>
+            </item>
+            <item id="wallpaper">
+                <property name="path" value=""/>
+            </item>
+        </settings>
+        <plugins>
+            <plugin uid="0x200286e6" bundle_id="0" template_id="0" locking_status="permanent"/>
+            <plugin uid="0x200286e7" bundle_id="0" template_id="0" locking_status="permanent"/>
+            <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="permanent"/>
+            <plugin uid="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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/loc/view.loc	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,322 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Localization strings for project Active Idle 3
+*
+*/
+
+// d: Help
+// l: list_single_pane_t1_cp2
+// w: 
+// r: TB9.2
+#define qtn_options_help "Help"
+
+// d: Open
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define qtn_msk_open "Open"
+
+// d: Done
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_done "Done"
+
+// d: Open 
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_options_open "Open"
+
+// d: Back
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_back "Back"
+
+// d: Empty string
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define shortcut_emptycaption " "
+
+// d: Add page
+// l: list_single_pane_t1_cp2
+// w: 
+// r: TB9.2
+#define qtn_hs_add_page "Add page"
+
+// d: Select
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_options_select_widget "Select"
+
+// d: Add content
+// l: list_single_pane_t1_cp2
+// w: 
+// r: TB9.2
+#define qtn_hs_add_widget "Add content"
+
+// d: Access the widget catalog
+// l: list_single_pane_t1_cp2
+// w: 
+// r: TB9.2
+#define qtn_hs_widget_catalog "Widget catalog"
+
+// d: Search
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_search "Search"
+
+// d: Options
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_options "Options"
+
+// d: Refresh 
+// l: list_single_pane_t1_cp2/opt3
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_widget "Refresh"
+
+// d: Focused widget
+// l: list_single_popup_submenu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_one_widget "One"
+
+// d: All widgets 
+// l: list_single_popup_submenu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_all_widgets "All"
+
+// d: Remove content 
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_remove_widget "Remove content"
+
+// d: Hide the content 
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_hide_widgets "Hide the content"
+
+// d: Edit contents 
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_edit_content "Edit content"
+
+// d: Change Wallpaper
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_wallpaper "Change Wallpaper"
+
+// d: Change Shortcut Settings
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_shortcut_settings "Change Shortcut Settings"
+
+// d: Widget settings
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_widget_settings "Widget settings"
+
+// d: Show widgets
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_show_widgets "Show the content"
+
+// d: Change Home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_page "Change Home screen page"
+
+// d: Change
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define qtn_msk_change "Change"
+
+// d: Show all profiles in Profiles widget
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_show_profiles "Show all profiles"
+
+// d: Right selection key
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_set_right_idle_softkey "Right selection key"
+
+// d: Select
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_select "Select"
+
+// d: Cancel
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_cancel "Cancel"
+
+// d: Options menu item which switches home to online. Web widgets get updates from network.
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_online "Switch Home to online"
+
+// d: Options menu item which switches home to offline. Web widgets are not updated
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_offline "Switch Home to offline"
+
+// d: String which is shown in long tap menu of Home screen if tapped widget has settings
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_settings "Settings"
+
+// d: String which is shown in long tap menu of Home screen if tapped some widget which is removable
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_remove_element "Remove"
+
+// d: String which is shown in long tap menu of Home screen if tapped empty space in home screen
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_add "Add content"
+
+// d: String which is shown in long tap menu of Home screen
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_change_longtap_wallpaper "Change wallpaper"
+
+// d: User can download new HS widgets. String is visible in add content list query
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_download_new_widgets "Download"
+
+// d: Changes focused widget
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_edit_replace "Replace"
+
+// d: deletes current home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_options_delete "Delete page"
+
+// d: creates new home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_options_new "New page"
+
+// d: view title in editing mode
+// l: title_pane_t2
+// w:
+// r: TB9.2
+#define qtn_hs_title_editing_view "Editing view"
+
+// d: Call
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_call "Call"
+
+// d: Added new option menu item to Edit mode for opening the widget catalog,
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_edit_widget_catalog "Widget Catalog"
+
+// d: Deletes the current Home screen page and focus goes to the next available Home screen page in Edit mode
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_edit_options_delete "Delete page"
+
+// d: Done
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_done "Done"
+
+// d: Search
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_search "Search"
+
+// d: Options
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_options "Options"
+
+// d: Back
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_back "Back"
+
+// d: Select
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_select "Select"
+
+// d: Cancel
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_cancel "Cancel"
+
+// d: Call
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_call "Call"
+
+// d: Lock keypad
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_lock_keypad "Lock keypad"
+
+// d: Menu
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_apps_menu_skey "Menu"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/loc/viewconfiguration.loc	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,27 @@
+/*
+* 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 tempateview plugin configuration (HSPS)
+*
+*/
+
+
+<!--  LOCALISATION STRINGS  -->
+// d: AI3 View
+// l: ai_gene_pane_1_t1
+// w:
+// r: TB9.2
+//#define qtn_view_configuration_name  "AI3 View"
+
+
+<!-- End of File-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/rom/view.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  View widget HSPS-plugin IBY file.
+*
+*/
+
+
+#ifndef __AI3VIEW_200286ec_IBY__
+#define __AI3VIEW_200286ec_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools
+data=ZPRIVATE\200159c0\install\tempateview_200286ec\hsps\00\manifest.dat \private\200159c0\install\tempateview_200286ec\hsps\00\manifest.dat
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __AI3VIEW_200286ec_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/rom/view_customer.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  View widget HSPS-plugin language specific IBY file.
+*
+*/
+
+
+#ifndef __AI3VIEW_200286ec_CUSTOMER_IBY__
+#define __AI3VIEW_200286ec_CUSTOMER_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\tempateview_200286ec\xuikon\00\view.o0000 \private\200159c0\install\tempateview_200286ec\xuikon\00\view.o0000
+//data=ZPRIVATE\200159c0\install\tempateview_200286ec\hsps\00\viewconfiguration.dtd \private\200159c0\install\tempateview_200286ec\hsps\00\viewconfiguration.dtd
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __AI3VIEW_200286ec_CUSTOMER_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/rom/view_resources.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  View widget HSPS-plugin language specific IBY file.
+*
+*/
+
+
+#ifndef __AI3VIEW_200286ec_RESOURCES_IBY__
+#define __AI3VIEW_200286ec_RESOURCES_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\tempateview_200286ec\xuikon\00\view.o0000 \private\200159c0\install\tempateview_200286ec\xuikon\00\view.o0000
+//data=ZPRIVATE\200159c0\install\tempateview_200286ec\hsps\00\viewconfiguration.dtd \private\200159c0\install\tempateview_200286ec\hsps\00\viewconfiguration.dtd
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __AI3VIEW_200286ec_RESOURCES_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/rom/view_variant.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  View widget HSPS-plugin variant specific IBY file.
+*
+*/
+
+
+#ifndef __AI3VIEW_200286ec_VARIANT_IBY__
+#define __AI3VIEW_200286ec_VARIANT_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by variation tools, variant specific
+data=ZPRIVATE\200159c0\install\tempateview_200286ec\hsps\00\viewconfiguration.xml \private\200159c0\install\tempateview_200286ec\hsps\00\viewconfiguration.xml
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif  // __AI3VIEW_200286ec_VARIANT_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/00/View.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,283 @@
+<?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_vga_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"/>
+                </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"/>
+                </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="miniplugins" actionshandler="plugin_actions">
+            </plugin>
+            <plugin id="plugin2" class="miniplugins" actionshandler="plugin_actions">
+            </plugin>
+            <plugin id="plugin3" class="miniplugins" actionshandler="plugin_actions">
+            </plugin>
+            <plugin id="plugin4" class="plugins" actionshandler="plugin_actions">
+            </plugin>
+            <plugin id="plugin5" class="plugins" actionshandler="plugin_actions">
+            </plugin>
+            <plugin id="plugin6" class="plugins" actionshandler="plugin_actions">
+            </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="&qtn_hs_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="#Menu">
+            	<actions>
+            		<action>
+            			<trigger name="activate"/>
+            			<event name="EventHandler/LaunchApp" uid="0x101F4CD2"/>
+            		</action>
+            	</actions>
+            </softkey>
+            <softkey id="rsk" type="right" mode="mode_callactive" label="#Menu">
+            	<actions>
+            		<action>
+            			<trigger name="activate"/>            			
+            			<event name="EventHandler/LaunchApp" uid="0x101F4CD2"/>
+            		</action>
+            	</actions>
+            </softkey>
+            <softkey id="rsk_done" type="right" mode="mode_edit" label="&qtn_hs_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/vga_tch/templateview_200286ec/xuikon/00/view.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+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: tb;
+}
+
+plugin.miniplugins
+{
+    height: 115px; 
+    width: 176px;
+
+    margin-top: 9px;
+    margin-left: 9px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+plugin.plugins
+{
+    height: 115px; 
+    width: 436px;
+
+    margin-top: 9px;
+    margin-left: 10px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+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/vga_tch/templateview_200286ec/xuikon/00/view.dat	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<data>
+    <AppUid>E029CF57</AppUid>
+    <Provideruid>101FB657</Provideruid>
+    <ThemeUid>11001234</ThemeUid>
+    <ThemeFullName>Nokia</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/vga_tch/templateview_200286ec/xuikon/00/view.dtd	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,514 @@
+<?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 "nhd_control_pane_t2/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 "nhd_control_pane_t2/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 "nhd_control_pane_t2/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 "nhd_control_pane_t2/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 "nhd_control_pane_t2/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 "nhd_control_pane_t2/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 "nhd_control_pane_t2/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">
+
+<!--
+qtn_hs_text_softkey_done.attributes
+qtn_hs_text_softkey_done.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_done.release "TB9.2"
+qtn_hs_text_softkey_done.description "Done"
+qtn_hs_text_softkey_done.grammar "Done"
+qtn_hs_text_softkey_done.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_done "Done">
+
+<!--
+qtn_hs_text_softkey_search.attributes
+qtn_hs_text_softkey_search.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_search.release "TB9.2"
+qtn_hs_text_softkey_search.description "Search"
+qtn_hs_text_softkey_search.grammar "Search"
+qtn_hs_text_softkey_search.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_search "Search">
+
+<!--
+qtn_hs_text_softkey_options.attributes
+qtn_hs_text_softkey_options.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_options.release "TB9.2"
+qtn_hs_text_softkey_options.description "Options"
+qtn_hs_text_softkey_options.grammar "Options"
+qtn_hs_text_softkey_options.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_options "Options">
+
+<!--
+qtn_hs_text_softkey_back.attributes
+qtn_hs_text_softkey_back.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_back.release "TB9.2"
+qtn_hs_text_softkey_back.description "Back text for SK2"
+qtn_hs_text_softkey_back.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_back "Back">
+
+<!--
+qtn_hs_text_softkey_select.attributes
+qtn_hs_text_softkey_select.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_select.release "TB9.2"
+qtn_hs_text_softkey_select.description "Select"
+qtn_hs_text_softkey_select.grammar "Select"
+qtn_hs_text_softkey_select.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_select "Select">
+
+<!--
+qtn_hs_text_softkey_cancel.attributes
+qtn_hs_text_softkey_cancel.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_cancel.release "TB9.2"
+qtn_hs_text_softkey_cancel.description "Cancel"
+qtn_hs_text_softkey_cancel.grammar "Cancel"
+qtn_hs_text_softkey_cancel.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_cancel "Cancel">
+
+<!--
+qtn_hs_text_softkey_call.attributes
+qtn_hs_text_softkey_call.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_call.release "TB9.2"
+qtn_hs_text_softkey_call.description "RSK caption call inactive"
+qtn_hs_text_softkey_call.parents ""
+-->
+<!ENTITY qtn_hs_text_softkey_call "Call">
+
+<!--
+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 "Lock keypad"
+qtn_hs_page_edit_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_lock_keypad "Lock keypad">
+
+<!--
+qtn_hs_text_softkey_call.attributes
+qtn_hs_text_softkey_call.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_call.release "TB9.2"
+qtn_hs_text_softkey_call.description "RSK caption"
+qtn_hs_text_softkey_call.parents ""
+-->
+<!ENTITY qtn_hs_apps_menu_skey "Menu">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/templateview_200286ec/xuikon/37/view.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view 
+{
+    direction: rtl;
+    block-progression: tb;
+    background-image: wallpaper;
+    swipe: true;
+
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+    direction: rtl;
+    block-progression: tb;
+}
+
+plugin.miniplugins
+{
+    height: 115px; 
+    width: 176px;
+
+    margin-top: 9px;
+    margin-right: 9px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+plugin.plugins
+{
+    height: 115px; 
+    width: 436px;
+
+    margin-top: 9px;
+    margin-right: 10px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+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/vga_tch/templateview_200286ec/xuikon/50/view.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view 
+{
+    direction: rtl;
+    block-progression: tb;
+    background-image: wallpaper;
+    swipe: true;
+
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+    direction: rtl;
+    block-progression: tb;
+}
+
+plugin.miniplugins
+{
+    height: 115px; 
+    width: 176px;
+
+    margin-top: 9px;
+    margin-right: 9px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+plugin.plugins
+{
+    height: 115px; 
+    width: 436px;
+
+    margin-top: 9px;
+    margin-right: 10px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+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/vga_tch/templateview_200286ec/xuikon/57/view.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view 
+{
+    direction: rtl;
+    block-progression: tb;
+    background-image: wallpaper;
+    swipe: true;
+
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+    direction: rtl;
+    block-progression: tb;
+}
+
+plugin.miniplugins
+{
+    height: 115px; 
+    width: 176px;
+
+    margin-top: 9px;
+    margin-right: 9px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+plugin.plugins
+{
+    height: 115px; 
+    width: 436px;
+
+    margin-top: 9px;
+    margin-right: 10px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+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/vga_tch/templateview_200286ec/xuikon/94/view.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view 
+{
+    direction: rtl;
+    block-progression: tb;
+    background-image: wallpaper;
+    swipe: true;
+
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+    direction: rtl;
+    block-progression: tb;
+}
+
+plugin.miniplugins
+{
+    height: 115px; 
+    width: 176px;
+
+    margin-top: 9px;
+    margin-right: 9px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+plugin.plugins
+{
+    height: 115px; 
+    width: 436px;
+
+    margin-top: 9px;
+    margin-right: 10px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+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;
+}
+
--- a/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
 #ifndef __TRIPLE_ROW_ICON_WIDGET_2001FDBE_IBY__
 #define __TRIPLE_ROW_ICON_WIDGET_2001FDBE_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools
 data=ZPRIVATE\200159c0\install\triple_row_icon_widget_2001fdbe\hsps\00\manifest.dat \private\200159c0\install\triple_row_icon_widget_2001fdbe\hsps\00\manifest.dat
-
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+ 
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __TRIPLE_ROW_ICON_WIDGET_2001FDBE_IBY__
--- a/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget_customer.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget_customer.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
 #ifndef __TRIPLE_ROW_ICON_WIDGET_2001FDBE_CUSTOMER_IBY__
 #define __TRIPLE_ROW_ICON_WIDGET_2001FDBE_CUSTOMER_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools, language specific
 data=ZPRIVATE\200159c0\install\triple_row_icon_widget_2001fdbe\xuikon\00\triple_row_icon_widget.o0000 \private\200159c0\install\triple_row_icon_widget_2001fdbe\xuikon\00\triple_row_icon_widget.o0000
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __TRIPLE_ROW_ICON_WIDGET_2001FDBE_CUSTOMER_IBY__
--- a/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget_resources.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget_resources.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -18,7 +18,7 @@
 #ifndef __TRIPLE_ROW_ICON_WIDGET_2001FDBE_RESOURCES_IBY__
 #define __TRIPLE_ROW_ICON_WIDGET_2001FDBE_RESOURCES_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools, language specific
 #if defined (__LOCALES_37_IBY__)
@@ -34,6 +34,6 @@
 data=ZPRIVATE\200159c0\install\triple_row_icon_widget_2001fdbe\xuikon\94\triple_row_icon_widget.o0094 \private\200159c0\install\triple_row_icon_widget_2001fdbe\xuikon\94\triple_row_icon_widget.o0094
 #endif
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __TRIPLE_ROW_ICON_WIDGET_2001FDBE_RESOURCES_IBY__
--- a/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget_variant.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/triple_row_icon_widget_2001fdbe/rom/triple_row_icon_widget_variant.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
 #ifndef __TRIPLE_ROW_ICON_WIDGET_2001FDBE_VARIANT_IBY__
 #define __TRIPLE_ROW_ICON_WIDGET_2001FDBE_VARIANT_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by variation tools, variant specific
 data=ZPRIVATE\200159c0\install\triple_row_icon_widget_2001fdbe\hsps\00\widgetconfiguration.xml \private\200159c0\install\triple_row_icon_widget_2001fdbe\hsps\00\widgetconfiguration.xml
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif  // __TRIPLE_ROW_ICON_WIDGET_2001FDBE_VARIANT_IBY__
--- a/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -18,11 +18,11 @@
 #ifndef __TRIPLE_ROW_WIDGET_2001FDBF_IBY__
 #define __TRIPLE_ROW_WIDGET_2001FDBF_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools
 data=ZPRIVATE\200159c0\install\triple_row_widget_2001fdbf\hsps\00\manifest.dat \private\200159c0\install\triple_row_widget_2001fdbf\hsps\00\manifest.dat
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __TRIPLE_ROW_WIDGET_2001FDBF_IBY__
--- a/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget_customer.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget_customer.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -18,11 +18,11 @@
 #ifndef __TRIPLE_ROW_WIDGET_2001FDBF_CUSTOMER_IBY__
 #define __TRIPLE_ROW_WIDGET_2001FDBF_CUSTOMER_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools, language specific
-data=ZPRIVATE\200159c0\install\triple_row_widget_2001fdbf\xuikon\00\triple_row_widget_2001fdbf.o0000 \private\200159c0\install\triple_row_widget_2001fdbf\xuikon\00\triple_row_widget.o0000
+data=ZPRIVATE\200159c0\install\triple_row_widget_2001fdbf\xuikon\00\triple_row_widget.o0000 \private\200159c0\install\triple_row_widget_2001fdbf\xuikon\00\triple_row_widget.o0000
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __TRIPLE_ROW_WIDGET_2001FDBF_CUSTOMER_IBY__
--- a/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget_resources.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget_resources.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -18,7 +18,7 @@
 #ifndef __TRIPLE_ROW_WIDGET_2001FDBF_RESOURCES_IBY__
 #define __TRIPLE_ROW_WIDGET_2001FDBF_RESOURCES_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools, language specific
 #if defined (__LOCALES_37_IBY__)
@@ -34,6 +34,6 @@
 data=ZPRIVATE\200159c0\install\triple_row_widget_2001fdbf\xuikon\94\triple_row_widget.o0094 \private\200159c0\install\triple_row_widget_2001fdbf\xuikon\94\triple_row_widget.o0094
 #endif
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __TRIPLE_ROW_WIDGET_2001FDBF_RESOURCES_IBY__
--- a/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget_variant.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/triple_row_widget_2001fdbf/rom/triple_row_widget_variant.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -18,11 +18,11 @@
 #ifndef __TRIPLE_ROW_WIDGET_2001FDBF_VARIANT_IBY__
 #define __TRIPLE_ROW_WIDGET_2001FDBF_VARIANT_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by variation tools, variant specific
 data=ZPRIVATE\200159c0\install\triple_row_widget_2001fdbf\hsps\00\widgetconfiguration.xml \private\200159c0\install\triple_row_widget_2001fdbf\hsps\00\widgetconfiguration.xml
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif  // __TRIPLE_ROW_WIDGET_2001FDBF_VARIANT_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9.confml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,483 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration name="VGA Homescreen 1" version="1" xmlns="http://www.s60.com/xml/confml/2" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <feature name="VGA Homescreen 1 widgets" ref="VGA_HomescreenPlugins_1">
+    <setting name="Max Widgets" ref="MaxWidgets" type="string">
+      <desc>Maximum widget amount in Homescreen 1 page. Customizable</desc>
+    </setting>
+  <setting name="Use Empty Widgets" readOnly="true" ref="UseEmptyWidgets" type="boolean">
+      <desc>Not customizable!</desc>
+    </setting>
+  <setting name="Item id for empty widgets definition in view" readOnly="true" ref="ItemIdEmptyWidgets" type="string">
+      <desc>Not customizable!</desc>
+    </setting>
+  <setting name="Property name for empty widgets definition in view" readOnly="true" ref="PropertyEmptyWidgets" type="string">
+      <desc>Not customizable!</desc>
+    </setting>
+  <setting name="background path" ref="BackGroundPath" type="string">
+      <desc>Path of the Wallpaper resource. Customizable. </desc>
+    </setting>
+  <setting name="Item id wallpaper" readOnly="true" ref="ItemIdWallpaper" type="string">
+      <desc>Not customizable!</desc>
+    </setting>
+  <setting name="Wallpaper property name" readOnly="true" ref="WallpaperPropertyName" type="string">
+      <desc>Not customizable!</desc>
+    </setting>
+  <setting name="Widgets" ref="Plugins" type="sequence">
+      <desc>Widgets in the Homescreen 1</desc>
+    <setting name="Widget" ref="Uid" type="string">
+      <desc>Widget name</desc>  
+      <option name="Empty" value="0x2001F47F" />    
+      <option name="ClockDate" value="0x200286E6" />
+      <option name="Desktop" value="0x20018EEE" />
+      <option name="Profilemode" value="0x200286e7" />
+      <option name="wrtplugin_1" value="0x20022FD4"/>
+      <option name="wrtplugin_2" value="0x20022FD5"/>
+      <option name="wrtplugin_3" value="0x20022FD6"/>
+      <option name="wrtplugin_4" value="0x20022FD7"/>
+      <option name="wrtplugin_5" value="0x20022FD8"/>
+      <option name="wrtplugin_6" value="0x20022FD9"/>
+      <option name="wrtplugin_7" value="0x20022FDA"/>
+      <option name="wrtplugin_8" value="0x20022FDB"/>
+      <option name="wrtplugin_9" value="0x2001CB7D"/>
+      <option name="wrtplugin_10" value="0x2001CB7E"/>
+      <option name="wrtplugin_11" value="0x2001CB7F"/>
+      <option name="wrtplugin_12" value="0x200286EE"/>
+    </setting>
+    <setting name="Bundle Identifier" ref="BundleIdentifier" type="string">
+        <desc>Bundle identifier for the (C)WRT widgets. None for the native widgets</desc>
+        <option name="None / Automatic" value="0" />
+	<option name="8TV Catch Up" value="com.nerdattack.widget.8TV"/>
+        <option name="Aftonbladet WebbTV" value="apegroup.aftonbladet.webbtv.symbian3"/>
+        <option name="Al Jazeera" value="si.inova.verve.aljazeera"/>
+        <option name="BBC Arabic Web TV" value="com.nokia.forum.bbcatv1.widget"/>
+        <option name="BH TV" value="com.bollywoodhungama.widget.BollywoodHungamaTV"/>
+        <option name="Channel NewsAsia" value="Channel.newsasia"/>
+        <option name="CNN Video" value="com.cnn"/>
+        <option name="DigiturkWebTV" value="com.digiturkwebtv.widget"/>
+        <option name="EFE Videos" value="com.ericsson.efe.widget"/>
+        <option name="E!" value="com.moderati.eonline"/>
+        <option name="Bollywood" value="br.org.indt.widget.eros"/>
+        <option name="Ovi Files" value="com.nokia.ss.sas.filesql"/>
+        <option name="Hi5" value="com.hi5.widget.Launcher"/>
+        <option name="凤凰电视" value="com.ifeng.www.webtv.widget"/>
+        <option name="Chat" value="com.nokia.ChatClient"/>
+        <option name="芒果 TV" value="com.imgo.tv"/>
+        <option name="India Today" value="br.org.indt.widget.indiatoday"/>
+        <option name="BBC iPlayer" value="com.bbc.widget.iplayer"/>
+        <option name="Contacts' latest activities" value="com.nokia.somawebui.xwidget"/>
+        <option name="M1TV" value="com.m1tv.basic.widget"/>
+        <option name="Makansutr" value="com.nerdattack.wrt.Makansutra"/>
+        <option name="bose" value="com.bose.basic.widget"/>
+        <option name="SingTel MTVS" value="com.nokia.widget.sapi.mtvs"/>
+        <option name="Nat Geo" value="com.natgeo"/>
+        <option name="NRK Mobil-TV" value="no.nrk.mobil.mobiltv.widget"/>
+        <option name="ontv" value="ontv.cc.on.tv.widget"/>
+        <option name="ovi" value="com.nokia.ovi"/>
+        <option name="Movie Teasers" value="com.movieteasers"/>
+        <option name="Schweizer Fernsehen" value="com.sftvreader.basic.widget"/>
+        <option name="Sky News On Demand" value="com.nerdattack.widget.SKYNEWS"/>
+        <option name="Social" value="com.nokia.socialmixer.v1"/>
+        <option name="æœç‹å¨±ä¹" value="com.sohu.widget.webtv4ovi"/>
+        <option name="SSOUI" value="ovi.serviceui.SSOUI"/>
+        <option name="Terra TV" value="com.terra.widget.wrt.tv"/>
+        <option name="Terra TV Lat" value="com.terra.widget.wrt.tv.latam"/>
+        <option name="topApps" value="com.topApps.basic.widget"/>
+        <option name="Tudou" value="com.Tudou.widget"/>
+        <option name="tv2news" value="com.nokia.forum.widget.tv2news"/>
+        <option name="TV2Play" value="no.tv2.tv2play.widget"/>
+        <option name="TV3 Catch Up" value="com.nerdattack.widget.TV3"/>
+        <option name="ВеÑти" value="com.vesti.basic.widget"/>
+        <option name="Viasat No" value="no.viasat.widget"/>
+        <option name="Viasat Swe" value="se.viasat.widget"/>
+        <option name="Virtual Malaysia" value="com.nerdattack.widget.VirtualMalaysia"/>
+        <option name="央广新浪" value="cn.com.sina.3g"/>
+        <option name="Web TV Demo" value="com.nokia.forum.webtv.widget"/>
+        <option name="Yle Areena" value="com.tieto.yle"/>
+        <option name="优酷" value="com.youku.s605th.webtv"/>
+      </setting>
+    <setting name="Template Identifier" ref="TemplateIdentifier" type="selection">
+        <desc>Templeate identifier for the (C)WRT widgets. None for the native widgets</desc>
+      <option name="None" value="0" />
+      <option name="Single row icon widget template" value="0x2001FDC0" />
+      <option name="Single row widget template" value="0x2001FDC1" />
+      <option name="Double row icon widget template" value="0x2001FDBD" />
+      <option name="Double row widget template" value="0x2001FDC2" />
+      <option name="Triple row icon widget template" value="0x2001FDBE" />
+      <option name="Triple row widget template" value="0x2001FDBF" />
+      <option name="Wideimage template" value="0x10009DFF" />
+      </setting>
+    <setting name="locking Status" ref="LockingStatus" type="selection">
+        <desc>Locking status for the widget 1 in Homescreen 1 page</desc>
+      <option name="None" value="none" />
+      <option name="Locked" value="locked" />
+      <option name="Permanent" value="permanent" />
+      </setting>
+    <setting name="Customize Shortcut widget" ref="ShortcutWidget" type="selection">
+        <desc>Customize enabler for desktop/shortcut widget</desc>
+      <option name="Not Customize desktop Widget" value="0" />
+      <option name="Customize desktop widget" value="1" />
+      </setting>
+    <setting name="Customize 1st Shortcut" ref="Customize1Shortcut" type="selection">
+        <desc>Customize 1st item in desktop widget</desc>
+      <option name="Not Customize 1st shortcut" value="0" />
+      <option name="Customize 1st shortcut" value="1" />
+      </setting>
+    <setting name="1st Shortcut type" ref="Shortcut1Type" type="selection">
+        <desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
+      <option name="Application" value="application" />
+      <option name="Bookmark" value="bookmark" />
+      <option name="Shortcut" value="shortcut" />
+      </setting>
+    <setting name="1st Shortcut Uid" ref="Shortcut1Uid" type="string">
+        <desc>Uid for the application, Menu content Uid for the bookmarks and shortcuts.</desc>
+      </setting>
+    <setting name="1st Shortcut View" ref="Shortcut1View" type="string">
+        <desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
+      </setting>
+    <setting name="1st Shortcut Param" ref="Shortcut1Param" type="string">
+        <desc>Params for shortcut. For example: messaging:msg</desc>
+      </setting>
+    <setting name="Customize 2nd Shortcut" ref="Customize2Shortcut" type="selection">
+        <desc>Customize 2nd item in desktop widget</desc>
+      <option name="Not Customize 2nd shortcut" value="0" />
+      <option name="Customize 2nd shortcut" value="1" />
+      </setting>
+    <setting name="2nd Shortcut Application" ref="Shortcut2Type" type="selection">
+        <desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
+      <option name="Application" value="application" />
+      <option name="Bookmark" value="bookmark" />
+      <option name="Shortcut" value="shortcut" />
+      </setting>
+    <setting name="2nd Shortcut Uid" ref="Shortcut2Uid" type="string">
+        <desc>Uid for the application, Menu content Uid for the bookmarks and shortcuts</desc>
+      </setting>
+    <setting name="2nd Shortcut View" ref="Shortcut2View" type="string">
+        <desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
+      </setting>
+    <setting name="2nd Shortcut Param" ref="Shortcut2Param" type="string">
+        <desc>Params for shortcut. messaging:msg</desc>
+      </setting>
+    <setting name="Customize 3rd Shortcut" ref="Customize3Shortcut" type="selection">
+        <desc>Customize 3rd item in desktop widget</desc>
+      <option name="Not Customize 3rd shortcut" value="0" />
+      <option name="Customize 3rd shortcut" value="1" />
+      </setting>
+    <setting name="3rd Shortcut Application" ref="Shortcut3Type" type="selection">
+        <desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
+      <option name="Application" value="application" />
+      <option name="Bookmark" value="bookmark" />
+      <option name="Shortcut" value="shortcut" />
+      </setting>
+    <setting name="3rd Shortcut Uid" ref="Shortcut3Uid" type="string">
+        <desc>Uid for the application,Menu content  Uid for the bookmarks and shortcuts.</desc>
+      </setting>
+    <setting name="3rd Shortcut View" ref="Shortcut3View" type="string">
+        <desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
+      </setting>
+    <setting name="3rd Shortcut Param" ref="Shortcut3Param" type="string">
+        <desc>Params for shortcut. messaging:msg</desc>
+      </setting>
+    <setting name="Customize 4th Shortcut" ref="Customize4Shortcut" type="selection">
+        <desc>Customize 4th item in desktop widget</desc>
+      <option name="Not Customize 4th shortcut" value="0" />
+      <option name="Customize 4th shortcut" value="1" />
+      </setting>
+    <setting name="4th ShortCut Application" ref="Shortcut4Type" type="selection">
+        <desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
+      <option name="Application" value="application" />
+      <option name="Bookmark" value="bookmark" />
+      <option name="Shortcut" value="shortcut" />
+      </setting>
+    <setting name="4th Shortcut Uid" ref="Shortcut4Uid" type="string">
+        <desc>Uid for the application, Menu content  ids for the bookmarks and shortcuts </desc>
+      </setting>
+    <setting name="4th Shortcut View" ref="Shortcut4View" type="string">
+        <desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
+      </setting>
+    <setting name="4th Shortcut Param" ref="Shortcut4Param" type="string">
+        <desc>Params for shortcut. messaging:msg</desc>
+      </setting>
+    <setting name="Shortcut1 ItemId" readOnly="true" ref="Shortcut1ItemId" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut1 ItemName" readOnly="true" ref="Shortcut1ItemName" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut2 ItemId" readOnly="true" ref="Shortcut2ItemId" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut2 ItemName" readOnly="true" ref="Shortcut2ItemName" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut3 ItemId" readOnly="true" ref="Shortcut3ItemId" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut3 ItemName" readOnly="true" ref="Shortcut3ItemName" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut4 ItemId" readOnly="true" ref="Shortcut4ItemId" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut4 ItemName" readOnly="true" ref="Shortcut4ItemName" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut PropertyNameType" readOnly="true" ref="ShortcutPropertyNameType" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut PropertyNameUid" readOnly="true" ref="ShortcutPropertyNameUid" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut PropertyNameView" readOnly="true" ref="ShortcutPropertyNameView" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut PropertyNameParam" readOnly="true" ref="ShortcutPropertyNameParam" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    </setting>
+  </feature>
+<data>
+    <VGA_HomescreenPlugins_1>
+      <MaxWidgets>6</MaxWidgets>
+    <UseEmptyWidgets>true</UseEmptyWidgets>
+    <ItemIdEmptyWidgets>hs_vga_tch_view</ItemIdEmptyWidgets>
+    <PropertyEmptyWidgets>use_empty_widget</PropertyEmptyWidgets>
+    <ItemIdWallpaper>wallpaper</ItemIdWallpaper>
+    <WallpaperPropertyName>path</WallpaperPropertyName>
+    <BackGroundPath />
+    <Plugins extensionPolicy="replace">
+        <Uid>0x200286e6</Uid>
+      <BundleIdentifier>0</BundleIdentifier>
+      <TemplateIdentifier>0</TemplateIdentifier>
+      <LockingStatus>permanent</LockingStatus>
+      <ShortcutWidget>0</ShortcutWidget>
+      <Customize1Shortcut />
+      <Shortcut1Type />
+      <Shortcut1Uid />
+      <Shortcut1View />
+      <Shortcut1Param />
+      <Customize2Shortcut />
+      <Shortcut2Type />
+      <Shortcut2Uid />
+      <Shortcut2View />
+      <Shortcut2Param />
+      <Customize3Shortcut />
+      <Shortcut3Type />
+      <Shortcut3Uid />
+      <Shortcut3View />
+      <Shortcut3Param />
+      <Customize4Shortcut />
+      <Shortcut4Type />
+      <Shortcut4Uid />
+      <Shortcut4View />
+      <Shortcut4Param />
+      <Shortcut1ItemId>first</Shortcut1ItemId>
+      <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+      <Shortcut2ItemId>second</Shortcut2ItemId>
+      <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+      <Shortcut3ItemId>third</Shortcut3ItemId>
+      <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+      <Shortcut4ItemId>fourth</Shortcut4ItemId>
+      <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+      <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+      <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+      <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+      <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+      </Plugins>
+    <Plugins>
+        <Uid>0x200286e7</Uid>
+      <BundleIdentifier>0</BundleIdentifier>
+      <TemplateIdentifier>0</TemplateIdentifier>
+      <LockingStatus>permanent</LockingStatus>
+      <ShortcutWidget>0</ShortcutWidget>
+      <Customize1Shortcut>0</Customize1Shortcut>
+      <Shortcut1Type />
+      <Shortcut1Uid />
+      <Shortcut1View />
+      <Shortcut1Param />
+      <Customize2Shortcut />
+      <Shortcut2Type />
+      <Shortcut2Uid />
+      <Shortcut2View />
+      <Shortcut2Param />
+      <Customize3Shortcut />
+      <Shortcut3Type />
+      <Shortcut3Uid />
+      <Shortcut3View />
+      <Shortcut3Param />
+      <Customize4Shortcut />
+      <Shortcut4Type />
+      <Shortcut4Uid />
+      <Shortcut4View />
+      <Shortcut4Param />
+      <Shortcut1ItemId>first</Shortcut1ItemId>
+      <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+      <Shortcut2ItemId>second</Shortcut2ItemId>
+      <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+      <Shortcut3ItemId>third</Shortcut3ItemId>
+      <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+      <Shortcut4ItemId>fourth</Shortcut4ItemId>
+      <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+      <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+      <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+      <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+      <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+      </Plugins>
+    <Plugins>
+        <Uid>0x2001f47f</Uid>
+      <BundleIdentifier>0</BundleIdentifier>
+      <TemplateIdentifier>0</TemplateIdentifier>
+      <LockingStatus>permanent</LockingStatus>
+      <ShortcutWidget>0</ShortcutWidget>
+      <Customize1Shortcut>0</Customize1Shortcut>
+      <Shortcut1Type />
+      <Shortcut1Uid />
+      <Shortcut1View />
+      <Shortcut1Param />
+      <Customize2Shortcut />
+      <Shortcut2Type />
+      <Shortcut2Uid />
+      <Shortcut2View />
+      <Shortcut2Param />
+      <Customize3Shortcut />
+      <Shortcut3Type />
+      <Shortcut3Uid />
+      <Shortcut3View />
+      <Shortcut3Param />
+      <Customize4Shortcut />
+      <Shortcut4Type />
+      <Shortcut4Uid />
+      <Shortcut4View />
+      <Shortcut4Param />
+      <Shortcut1ItemId>first</Shortcut1ItemId>
+      <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+      <Shortcut2ItemId>second</Shortcut2ItemId>
+      <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+      <Shortcut3ItemId>third</Shortcut3ItemId>
+      <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+      <Shortcut4ItemId>fourth</Shortcut4ItemId>
+      <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+      <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+      <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+      <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+      <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+      </Plugins>
+    <Plugins>
+      <Uid>0x20018EEE</Uid>
+      <BundleIdentifier>0</BundleIdentifier>
+      <TemplateIdentifier>0</TemplateIdentifier>
+      <LockingStatus>none</LockingStatus>
+      <ShortcutWidget>1</ShortcutWidget>
+      <Customize1Shortcut>1</Customize1Shortcut>
+      <Shortcut1Type>application</Shortcut1Type>
+      <Shortcut1Uid>0x101F4CCE</Shortcut1Uid>
+      <Shortcut1View></Shortcut1View>
+      <Shortcut1Param></Shortcut1Param>
+      <Customize2Shortcut>1</Customize2Shortcut>
+      <Shortcut2Type>shortcut</Shortcut2Type>
+      <Shortcut2Uid>0x99999999</Shortcut2Uid>
+      <Shortcut2View></Shortcut2View>
+      <Shortcut2Param>messaging:msg</Shortcut2Param>
+      <Customize3Shortcut>1</Customize3Shortcut>
+      <Shortcut3Type>application</Shortcut3Type>
+      <Shortcut3Uid>0x10008D39</Shortcut3Uid>
+      <Shortcut3View></Shortcut3View>
+      <Shortcut3Param></Shortcut3Param>
+      <Customize4Shortcut>1</Customize4Shortcut>
+      <Shortcut4Type>application</Shortcut4Type>
+      <Shortcut4Uid>0x10005901</Shortcut4Uid>
+      <Shortcut4View></Shortcut4View>
+      <Shortcut4Param></Shortcut4Param>
+      <Shortcut1ItemId>first</Shortcut1ItemId>
+      <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+      <Shortcut2ItemId>second</Shortcut2ItemId>
+      <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+      <Shortcut3ItemId>third</Shortcut3ItemId>
+      <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+      <Shortcut4ItemId>fourth</Shortcut4ItemId>
+      <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+      <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+      <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+      <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+      <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+    </Plugins>
+    <Plugins>
+        <Uid>0x2001f47f</Uid>
+      <BundleIdentifier>0</BundleIdentifier>
+      <TemplateIdentifier>0</TemplateIdentifier>
+      <LockingStatus>none</LockingStatus>
+      <ShortcutWidget>0</ShortcutWidget>
+      <Customize1Shortcut>0</Customize1Shortcut>
+      <Shortcut1Type />
+      <Shortcut1Uid />
+      <Shortcut1View />
+      <Shortcut1Param />
+      <Customize2Shortcut />
+      <Shortcut2Type />
+      <Shortcut2Uid />
+      <Shortcut2View />
+      <Shortcut2Param />
+      <Customize3Shortcut />
+      <Shortcut3Type />
+      <Shortcut3Uid />
+      <Shortcut3View />
+      <Shortcut3Param />
+      <Customize4Shortcut />
+      <Shortcut4Type />
+      <Shortcut4Uid />
+      <Shortcut4View />
+      <Shortcut4Param />
+      <Shortcut1ItemId>first</Shortcut1ItemId>
+      <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+      <Shortcut2ItemId>second</Shortcut2ItemId>
+      <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+      <Shortcut3ItemId>third</Shortcut3ItemId>
+      <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+      <Shortcut4ItemId>fourth</Shortcut4ItemId>
+      <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+      <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+      <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+      <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+      <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+      </Plugins>
+    <Plugins>
+        <Uid>0x2001f47f</Uid>
+      <BundleIdentifier>0</BundleIdentifier>
+      <TemplateIdentifier>0</TemplateIdentifier>
+      <LockingStatus>none</LockingStatus>
+      <ShortcutWidget>0</ShortcutWidget>
+      <Customize1Shortcut>0</Customize1Shortcut>
+      <Shortcut1Type />
+      <Shortcut1Uid />
+      <Shortcut1View />
+      <Shortcut1Param />
+      <Customize2Shortcut />
+      <Shortcut2Type />
+      <Shortcut2Uid />
+      <Shortcut2View />
+      <Shortcut2Param />
+      <Customize3Shortcut />
+      <Shortcut3Type />
+      <Shortcut3Uid />
+      <Shortcut3View />
+      <Shortcut3Param />
+      <Customize4Shortcut />
+      <Shortcut4Type />
+      <Shortcut4Uid />
+      <Shortcut4View />
+      <Shortcut4Param />
+      <Shortcut1ItemId>first</Shortcut1ItemId>
+      <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+      <Shortcut2ItemId>second</Shortcut2ItemId>
+      <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+      <Shortcut3ItemId>third</Shortcut3ItemId>
+      <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+      <Shortcut4ItemId>fourth</Shortcut4ItemId>
+      <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+      <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+      <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+      <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+      <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+      </Plugins>
+    </VGA_HomescreenPlugins_1>
+  </data>
+</configuration>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9.gcfml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+	<tag name="target" value="core"/>
+	<tag name="target" value="rofs2"/>
+	<tag name="target" value="rofs3"/>
+  <phase name='post'/> <!-- post phase for making sure that data for all homescreen widgets is available in sequence -->
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="viewconfiguration.xml" target="\private\200159c0\install\view1_2001fdb9\hsps\00\">
+	<setting ref="VGA_HomescreenPlugins_1/MaxWidgets"/>
+	<setting ref="VGA_HomescreenPlugins_1/UseEmptyWidgets"/>
+  <setting ref="VGA_HomescreenPlugins_1/ItemIdEmptyWidgets"/>
+  <setting ref="VGA_HomescreenPlugins_1/PropertyEmptyWidgets"/>
+  <setting ref="VGA_HomescreenPlugins_1/BackGroundPath"/>
+  <setting ref="VGA_HomescreenPlugins_1/ItemIdWallpaper"/>
+  <setting ref="VGA_HomescreenPlugins_1/WallpaperPropertyName"/>
+	<setting ref="VGA_HomescreenPlugins_1/Shortcut1ItemId"/>
+  <setting ref="VGA_HomescreenPlugins_1/Shortcut1ItemName"/>
+  <setting ref="VGA_HomescreenPlugins_1/Shortcut2ItemId"/>
+  <setting ref="VGA_HomescreenPlugins_1/Shortcut2ItemName"/>
+  <setting ref="VGA_HomescreenPlugins_1/Shortcut3ItemId"/>
+  <setting ref="VGA_HomescreenPlugins_1/Shortcut3ItemName"/>
+  <setting ref="VGA_HomescreenPlugins_1/Shortcut4ItemId"/>
+  <setting ref="VGA_HomescreenPlugins_1/Shortcut4ItemName"/>
+  <setting ref="VGA_HomescreenPlugins_1/ShortcutPropertyNameType"/>
+  <setting ref="VGA_HomescreenPlugins_1/ShortcutPropertyNameUid"/>
+  <setting ref="VGA_HomescreenPlugins_1/ShortcutPropertyNameView"/>
+  <setting ref="VGA_HomescreenPlugins_1/ShortcutPropertyNameParam"/>
+	<setting ref="VGA_HomescreenPlugins_1/Plugins"/>
+	<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+                xmlns:xi="http://www.w3.org/2001/xinclude">
+		<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+		<xsl:template match="configuration/data">
+			<configuration>
+			 <xsl:attribute name="max_child"><xsl:value-of select="VGA_HomescreenPlugins_1/MaxWidgets"/></xsl:attribute>
+				<control>
+				  <settings>
+				    <item>
+				      <xsl:attribute name="id"><xsl:value-of select="VGA_HomescreenPlugins_1/ItemIdEmptyWidgets"/></xsl:attribute>
+				        <property>
+					  <xsl:attribute name="name"><xsl:value-of select="VGA_HomescreenPlugins_1/PropertyEmptyWidgets"/></xsl:attribute>								             
+  					  <xsl:attribute name="value"><xsl:value-of select="VGA_HomescreenPlugins_1/UseEmptyWidgets"/></xsl:attribute>
+					</property>
+				      </item>
+				      <item>
+				        <xsl:attribute name="id"><xsl:value-of select="VGA_HomescreenPlugins_1/ItemIdWallpaper"/></xsl:attribute>
+					  <property>
+					    <xsl:attribute name="name"><xsl:value-of select="VGA_HomescreenPlugins_1/WallpaperPropertyName"/></xsl:attribute>								             
+  					    <xsl:attribute name="value"><xsl:value-of select="VGA_HomescreenPlugins_1/BackGroundPath"/></xsl:attribute>
+					  </property>
+				      </item>      
+                                    </settings>
+					<plugins>
+						<xsl:for-each select="VGA_HomescreenPlugins_1/Plugins">
+							<plugin>
+								<xsl:attribute name="uid"><xsl:value-of select="Uid"/></xsl:attribute>
+								<xsl:attribute name="bundle_id"><xsl:value-of select="BundleIdentifier"/></xsl:attribute>
+								<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">
+								    <initial_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>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameView"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut1View"/></xsl:attribute>
+								            </property>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameParam"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut1Param"/></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>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameView"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut2View"/></xsl:attribute>
+								            </property>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameParam"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut2Param"/></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>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameView"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut3View"/></xsl:attribute>
+								            </property>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameParam"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut3Param"/></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>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameView"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut4View"/></xsl:attribute>
+								            </property>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameParam"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut4Param"/></xsl:attribute>
+								            </property>
+								          </item>
+				                </xsl:if>
+				              </settings>
+				            </initial_settings>
+			            </xsl:if>
+							</plugin>
+						</xsl:for-each>
+					</plugins>
+				</control>
+			</configuration>
+		</xsl:template>
+	</xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
Binary file idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9manifest.confml has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9manifest.gcfml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+	<tag name="target" value="core"/>
+	<tag name="target" value="rofs2"/>
+	<tag name="target" value="rofs3"/>
+  <file xmlns="http://www.s60.com/xml/genconfml/1" name="manifest.dat" target="\private\200159c0\install\view1_2001fdb9\hsps\00\">
+	<setting ref="VGAHomescreen1manifest/PackageVersion"/>
+	<setting ref="VGAHomescreen1manifest/DeviceFamily"/>
+	<setting ref="VGAHomescreen1manifest/ConfigurationType"/>
+	<setting ref="VGAHomescreen1manifest/InterfaceUid"/>
+	<setting ref="VGAHomescreen1manifest/ProviderUid"/>
+	<setting ref="VGAHomescreen1manifest/ConfigurationUid"/>
+	<setting ref="VGAHomescreen1manifest/FullName"/>
+	<setting ref="VGAHomescreen1manifest/ShortName"/>
+	<setting ref="VGAHomescreen1manifest/ConfigurationVersion"/>
+	<setting ref="VGAHomescreen1manifest/ConfigurationFile"/>
+	<setting ref="VGAHomescreen1manifest/UiResourceFile"/>
+		<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+                xmlns:xi="http://www.w3.org/2001/xinclude">
+		<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+		<xsl:template match="configuration/data">
+		<package>
+	  <xsl:attribute name="version"><xsl:value-of select="VGAHomescreen1manifest/PackageVersion"/></xsl:attribute>
+    <family>
+    <xsl:value-of select="VGAHomescreen1manifest/DeviceFamily"/>
+    </family>
+    <type>
+    <xsl:value-of select="VGAHomescreen1manifest/ConfigurationType"/>
+    </type>
+    <interfaceuid>
+    <xsl:value-of select="VGAHomescreen1manifest/InterfaceUid"/>
+    </interfaceuid>
+    <provideruid>
+    <xsl:value-of select="VGAHomescreen1manifest/ProviderUid"/>
+    </provideruid>
+    <configurationuid>
+    <xsl:value-of select="VGAHomescreen1manifest/ConfigurationUid"/>
+    </configurationuid>
+    <fullname>
+    <!--xsl:text>&#x26;</xsl:text-->
+    <xsl:value-of select="VGAHomescreen1manifest/FullName"/>
+    <!--xsl:text>&#x3B;</xsl:text-->
+    </fullname>
+    <shortname>
+    <xsl:value-of select="VGAHomescreen1manifest/ShortName"/>
+    </shortname>
+    <version>
+    <xsl:value-of select="VGAHomescreen1manifest/ConfigurationVersion"/>
+    </version>
+    <filexml>
+    <xsl:value-of select="VGAHomescreen1manifest/ConfigurationFile"/>
+    </filexml>
+    <localization>
+        <fileresource>
+        <xsl:value-of select="VGAHomescreen1manifest/UiResourceFile"/>
+        </fileresource>
+    </localization>
+  </package>
+  </xsl:template>
+	</xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
Binary file idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9xuikon.confml has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/conf/view2001fdb9xuikon.gcfml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+	<tag name="target" value="core"/>
+	<tag name="target" value="rofs2"/>
+	<tag name="target" value="rofs3"/>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="empty.foo" target="\private\200159c0\install\view1_2001fdb9\xuikon\">
+	<setting ref="VGAHomescreen1XuikonFolder/FolderCFG"/>
+		<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+                xmlns:xi="http://www.w3.org/2001/xinclude">
+		<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+		<xsl:template match="configuration/data">
+		<whois>
+	  <xsl:attribute name="dude"><xsl:value-of select="VGAHomescreen1XuikonFolder/FolderCFG"/></xsl:attribute>
+	  </whois>
+  </xsl:template>
+	</xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/group/bld.inf	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/group/bld.inf	Tue Sep 14 20:58:58 2010 +0300
@@ -24,8 +24,8 @@
 PRJ_EXPORTS
 // Support for productization and Carbide.Ui customization
 //********************************************************
-../hsps/00/manifest.dat /epoc32/data/z/resource/homescreen/view1_2001fdb9/hsps/manifest.dat
-../hsps/00/viewconfiguration.xml /epoc32/data/z/resource/homescreen/view1_2001fdb9/hsps/viewconfiguration.xml
+//../hsps/00/manifest.dat /epoc32/data/z/resource/homescreen/view1_2001fdb9/hsps/manifest.dat
+//../hsps/00/viewconfiguration.xml /epoc32/data/z/resource/homescreen/view1_2001fdb9/hsps/viewconfiguration.xml
 //../hsps/00/viewconfiguration.dtd /epoc32/data/z/resource/homescreen/view1_2001fdb9/hsps/viewconfiguration.dtd
 
 ../xuikon/00/view.dat /epoc32/data/z/resource/homescreen/view1_2001fdb9/xuikon/view1_2001fdb9.dat
@@ -41,6 +41,15 @@
 ../xuikon/94/view.css /epoc32/data/z/resource/homescreen/view1_2001fdb9/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/view2001fdb9.confml   APP_LAYER_CONFML(view2001fdb9.confml)
+../conf/view2001fdb9.gcfml    APP_LAYER_GCFML(view2001fdb9.gcfml)
+../conf/view2001fdb9manifest.confml   APP_LAYER_CONFML(view2001fdb9manifest.confml)
+../conf/view2001fdb9manifest.gcfml    APP_LAYER_GCFML(view2001fdb9manifest.gcfml)
+../conf/view2001fdb9xuikon.confml   APP_LAYER_CONFML(view2001fdb9xuikon.confml)
+../conf/view2001fdb9xuikon.gcfml    APP_LAYER_GCFML(view2001fdb9xuikon.gcfml)
 // Support for S60 localization
 //*****************************
 //#ifndef __VIEWCONFIGURATION_LOC__
@@ -58,7 +67,7 @@
 ../rom/view_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9_resources.iby)
 ../rom/view_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9_customer.iby)
 ../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9_variant.iby)
-../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9.iby)
+//../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view1_2001fdb9.iby)
 
 
 // Dtd-localization
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/hsps/00/viewconfiguration.xml	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/hsps/00/viewconfiguration.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -1,13 +1,55 @@
-<configuration>
+<?xml version="1.0" encoding="UTF-8"?>
 
-	<control>
-		<plugins>
-			<plugin uid="0x2001f490"/>
-			<!--plugin uid="0x10207c18"/-->
-			<!--plugin uid="0x2001f48d"/-->
-		</plugins>
-		<settings/>
-	</control>
-
-
+<configuration max_child="6" xmlns:xi="http://www.w3.org/2001/xinclude">
+    <control>
+        <settings>
+            <item id="hs_vga_tch_view">
+                <property name="use_empty_widget" value="true"/>
+            </item>
+            <item id="wallpaper">
+                <property name="path" value=""/>
+            </item>
+        </settings>
+        <plugins>
+            <plugin uid="0x200286e6" bundle_id="0" template_id="0" locking_status="permanent"/>
+            <plugin uid="0x200286e7" bundle_id="0" template_id="0" locking_status="permanent"/>
+            <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="permanent"/>
+            <plugin uid="0x20018eee" bundle_id="0" template_id="0" locking_status="none">
+		<initial_settings>
+	            <settings>
+	             <!-- Shortcut #1, Phonebook -->
+	             <item id="first" name="Shortcut1" >
+	                <property  name="type" value="application"/>
+	                <property  name="uid" value="0x101F4CCE"/>
+	                <property  name="view" value=""/>
+	                <property  name="param" value=""/>
+	             </item>
+	           <!-- Shortcut #2, New Message -->
+	             <item id="second" name="Shortcut2" >
+	                 <property  name="type" value="shortcut"/>
+	                 <property  name="uid" value="0x99999999"/>
+	                 <property  name="view" value=""/>
+	                 <property  name="param" value="messaging:msg"/>
+	             </item>
+	           <!-- Shortcut #3, Browser -->
+	             <item id="third" name="Shortcut3" >
+	                 <property  name="type" value="application"/>
+	                 <property  name="uid" value="0x10008D39"/>
+	                 <property  name="view" value=""/>
+	                 <property  name="param" value=""/>
+	             </item>
+	           <!-- Shortcut #4, Calendar -->
+	             <item id="fourth" name="Shortcut4" >
+	                 <property  name="type" value="application"/>
+	                 <property  name="uid" value="0x10005901"/>
+	                 <property  name="view" value=""/>
+	                 <property  name="param" value=""/>
+	             </item>
+	           </settings>
+		</initial_settings>
+	    </plugin>    	    
+            <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>
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/loc/view.loc	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/loc/view.loc	Tue Sep 14 20:58:58 2010 +0300
@@ -308,3 +308,15 @@
 // w:
 // r: TB9.2
 #define qtn_hs_text_softkey_call "Call"
+
+// d: Lock keypad
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_lock_keypad "Lock keypad"
+
+// d: Menu
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_apps_menu_skey "Menu"
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
 #ifndef __AI3VIEW_2001FDB9_IBY__
 #define __AI3VIEW_2001FDB9_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools
 data=ZPRIVATE\200159c0\install\view1_2001fdb9\hsps\00\manifest.dat \private\200159c0\install\view1_2001fdb9\hsps\00\manifest.dat
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __AI3VIEW_2001FDB9_IBY__
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view_customer.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view_customer.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -19,12 +19,12 @@
 #ifndef __AI3VIEW_2001FDB9_CUSTOMER_IBY__
 #define __AI3VIEW_2001FDB9_CUSTOMER_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools, language specific
 data=ZPRIVATE\200159c0\install\view1_2001fdb9\xuikon\00\view.o0000 \private\200159c0\install\view1_2001fdb9\xuikon\00\view.o0000
 //data=ZPRIVATE\200159c0\install\view1_2001fdb9\hsps\00\viewconfiguration.dtd \private\200159c0\install\view1_2001fdb9\hsps\00\viewconfiguration.dtd
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __AI3VIEW_2001FDB9_CUSTOMER_IBY__
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view_resources.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view_resources.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -19,12 +19,12 @@
 #ifndef __AI3VIEW_2001FDB9_RESOURCES_IBY__
 #define __AI3VIEW_2001FDB9_RESOURCES_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools, language specific
 data=ZPRIVATE\200159c0\install\view1_2001fdb9\xuikon\00\view.o0000 \private\200159c0\install\view1_2001fdb9\xuikon\00\view.o0000
 //data=ZPRIVATE\200159c0\install\view1_2001fdb9\hsps\00\viewconfiguration.dtd \private\200159c0\install\view1_2001fdb9\hsps\00\viewconfiguration.dtd
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __AI3VIEW_2001FDB9_RESOURCES_IBY__
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view_variant.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/rom/view_variant.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
 #ifndef __AI3VIEW_2001FDB9_VARIANT_IBY__
 #define __AI3VIEW_2001FDB9_VARIANT_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by variation tools, variant specific
 data=ZPRIVATE\200159c0\install\view1_2001fdb9\hsps\00\viewconfiguration.xml \private\200159c0\install\view1_2001fdb9\hsps\00\viewconfiguration.xml
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif  // __AI3VIEW_2001FDB9_VARIANT_IBY__
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.css	Tue Sep 14 20:58:58 2010 +0300
@@ -1,337 +1,73 @@
-view#homescreen
-{
-    position: static;    
-    display: block; 
-
-    block-progression: tb;
-    direction: ltr;
-   
-    width: auto;
-    height: auto;
-    
-    background-image: wallpaper;
-    
-    _s60-status-pane-layout: widescreen-flat-3softkeys;     
-}
-
-box#main_container
-{
-    position: static;
-    display: block; 
-    
-    width: auto;
-    height: auto;
-    
-    margin-top: 5px;
-    
-    /* These will be set by screendevicechange triggers: */          
-    /* landscape
-    ************
-    margin-left: 5px;
-    margin-right: 5px;*/
-
-    /* portrait
-    ***********
-    margin-left: 17px;
-    margin-right: 17px;*/
-}
-
-box.sub_container
-{
-    position: absolute;
-    display: block; 
-    
-    /* These will be set by screendevicechange triggers: */      
-    /* landscape
-    ************ 
-    width: 184px;
-    height: 106px;*/    
-
-    /* portrait 
-    ***********
-    width: 223px;
-    height: 132px;*/      
-}
-
-box#clock_container
-{    
-    /* This box belongs to class="sub_container" */
-    top: 0px;
-    left: 0px;
-}
-
-clock#clock
-{
-    position: static;
-    display: block; 
-    
-    margin-top: 3px;    
-    margin-bottom: 3px;
-    margin-left: 3px;    
-    margin-right: 3px;    
-    
-    nav-index: appearance;    
-    
-    background-color: "SKIN(268458534 9906)";    
-    color: "SKIN(268458534 13056 19)";
-    
-    /* Face is format is fetched from locale */
-    _s60-format: locale;
-            
-    /* These will be set by screendevicechange triggers: */      
-    /* landscape 
-    ************        
-    _s60-ampm-font-size: 3.0u;
-    _s60-digital-font-size: 56px;
-    _s60-date-font-size: 3.0u;*/
-            
-    /* portrait 
-    ***********
-    _s60-ampm-font-size: 3.5u;
-    _s60-digital-font-size: 56px;
-    _s60-date-font-size: 3.5u;*/                
-}
-
-clock#clock:focus
-{
-    focus-background: "SKIN(268458534 5120 9)";
-}
-
-box#profile_switcher_container
-{
-    block-progression: tb;
-    direction: ltr;
-
-    /* These will be set by screendevicechange triggers: */      
-    /* landscape 
-    ************        
-    top: 106px;
-    left: 0px;*/
-    
-    /* portrait 
-    ***********
-    top: 0px;
-    left: 223px;*/
-}
-
-box#profile
+view 
 {
-    position: static;
-    display: block; 
-    
-    width: auto;
-    height: auto;
-    
-    margin-top: 3px;    
-    margin-bottom: 6px;
-    margin-left: 3px;    
-    margin-right: 3px;    
-       
-    background-color: "SKIN(268458534 9906)";    
-    
-    nav-index: appearance;
-}
-
-box#profile:focus
-{
-    focus-background: "SKIN(268458534 5120 9)";
-}
-
-/**********************
- * MCN, CUG & Profile *
- **********************/
-box#mcn_cug_profile_container
-{    
-    width: auto;
-    height: auto;
-    
-
-}
-
-/*************
- * SAT & VHZ *
- *************/
-box#sat_vhz_container
-{
-    display: none;
-    width: auto;
-    height: auto;
-    block-progression: rl;
-}
-
-image#sat_icon
-{
-    display: none;
-    visibility: hidden;
-    width: 18px;
-    height: 20px;
-    position: static;
-    margin-top: auto;
-}
-
-title#sat
-{
-    display: none;
-}    
-title#vhz
-{
-    display: none;
-}    
-
+    direction: ltr;
+    block-progression: tb;
+    background-image: wallpaper;
+    swipe: true;
 
-newsticker.statusindicator 
-{    
-    width: auto;
-    height: auto;
-              
-    text-align: center;
-    font-family: EAknLogicalFontSecondaryFont;
-    font-size: 3.5u;
-    color: "SKIN(268458534 13056 19)";
-    
-    white-space-collapse: collapse;
-
-    _s60-scroll-behaviour: alternate;
-    _s60-display-time: 2000;
-    _s60-scroll-loop: false;
-    _s60-start-delay: 0;
-    _s60-restart-after-update: true;    
-}
- 
-box#switcher
-{                    
-    width: auto;
-    height: auto;
-    
-    block-progression: lr;
-    
-    margin-top: 6px;    
-    margin-bottom: 3px;
-    margin-left: 3px;    
-    margin-right: 3px;    
-        
-    background-color: "SKIN(268458534 9906)";    
-        
-    nav-index: appearance;
-}
-
-box#switcher:focus
-{
-    focus-background: "SKIN(268458534 5120 9)";
-}
-
-image#switcher_icon
-{         
-    margin-top: auto;
-    margin-bottom: auto;        
-    
-    margin-left: 5px;
-    height: 4u;
-    width: 4u;
-       
-    path: "SKIN(270501603 8585 19)";
-}
-
-text#switcher_text
-{        
-    width: auto;
-    height: auto;
-     
-    text-align: left;
-    
-    font-size: 3.5u;
-    font-family: EAknLogicalFontSecondaryFont;
-        
-    color:"SKIN(268458534 13056 19)";        
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
 }
 
 box#plugins_container
 {
-    position: absolute;
-    display: block; 
+    direction: ltr;
+    block-progression: tb;
+}
 
-    /* These will be set by screendevicechange triggers: */      
-    /* landscape 
-    ************        
-    top: 0px;
-    left: 184px;*/
-    
-    /* portrait 
-    ***********
-    top: 129px;
-    left: 0px;*/
+plugin.miniplugins
+{
+    height: 115px; 
+    width: 176px;
 
-    block-progression: tb;
-    direction: ltr;
-    
-    width: 440px;
-    height: auto;
-    
-    padding-left: 3px;
-    padding-right: 3px;    
+    margin-top: 9px;
+    margin-left: 9px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
 }
 
-/***********
- * Plugins *
- ***********/
-plugin
+plugin.plugins
 {
-    position: static;
-    
-    width: auto;
-    height: adaptive;
-        
-    margin-bottom: 6px;
-    
-    background-color: "SKIN(268458534 9906)";    
-    
-    nav-index: appearance;    
+    height: 115px; 
+    width: 436px;
+
+    margin-top: 9px;
+    margin-left: 10px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
 }
 
-plugin:focus 
+trigger#hs_popup_open_hold:edit
 {
-    focus-background: "SKIN(268458534 5120 9)";    
+    display: none;
 }
 
-plugin:edit 
+trigger#hs_popup_open_up
 {
-    background-color: "SKIN(270501603 8582)";
+    display: none;
 }
 
-/************
- * Profiles *
- ************/
-/* Default system profiles */
-text.systemprofileitem
+trigger#hs_popup_open_up:edit
 {
     display: block;
 }
 
-/* Placeholders for profiles added by user */
-text.userprofileitem
+softkey#rsk
 {
-    display: none;
+    _s60-longtap: true;
+    _s60-aspect-ratio: preserve;
 }
 
-/************
- * Softkeys *
- ************/
-softkey.normal_mode_sk
+softkey#msk_ltr
 {
     display: block;
 }
 
-softkey.normal_mode_sk:edit
+softkey#msk_rtl
 {
     display: none;
 }
 
-softkey.edit_mode_sk
-{
-    display: none;
-}
-
-softkey.edit_mode_sk:edit
-{
-    display: block;
-}
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.dtd	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.dtd	Tue Sep 14 20:58:58 2010 +0300
@@ -494,3 +494,21 @@
 qtn_hs_text_softkey_call.parents ""
 -->
 <!ENTITY qtn_hs_text_softkey_call "Call">
+
+<!--
+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 "Lock keypad"
+qtn_hs_page_edit_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_lock_keypad "Lock keypad">
+
+<!--
+qtn_hs_text_softkey_call.attributes
+qtn_hs_text_softkey_call.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_call.release "TB9.2"
+qtn_hs_text_softkey_call.description "RSK caption"
+qtn_hs_text_softkey_call.parents ""
+-->
+<!ENTITY qtn_hs_apps_menu_skey "Menu">
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.xml	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/00/view.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -1,751 +1,159 @@
 <?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="homescreen">
+    <view id="hs_vga_tch_view">
         <actions>
             <action>
-                <trigger name="screendevicechange" reason="portrait" />
-                <!-- main_container -->
+                <!-- 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="margin-left"/>
-                    <property name="value" value="17px"/>
-                    <property name="type" value="numeric"/>
-                    <property name="id" value="main_container"/>
-                </event>                                                        
+                    <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"/>
+                </event>                                    
+            </action>                
+            <action>
+                <trigger name="editmode" value="exit"/>
                 <event name="system/set">
-                    <property name="name" value="margin-right"/>
+                    <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"/>
+                </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="main_container"/>
-                </event>     
-                <!-- class sub_container -->
+                    <property name="id" value="plugins_container"/>
+                </event>
                 <event name="system/set">
-                    <property name="name" value="width"/>
-                    <property name="value" value="223px"/>
+                    <property name="name" value="padding-right"/>
+                    <property name="value" value="17px"/>
                     <property name="type" value="numeric"/>
-                    <property name="class" value="sub_container"/>
-                </event>                                
+                    <property name="id" value="plugins_container"/>
+                </event>
+            </action>
+            <action>
+                <trigger name="screendevicechange" reason="landscape"/>
                 <event name="system/set">
-                    <property name="name" value="height"/>
-                    <property name="value" value="132px"/>
-                    <property name="type" value="numeric"/>
-                    <property name="class" value="sub_container"/>
-                </event>                                            
-                <!-- profile_switcher_container -->
-                <event name="system/set">
-                    <property name="name" value="top"/>
+                    <property name="name" value="padding-left"/>
                     <property name="value" value="0px"/>
                     <property name="type" value="numeric"/>
-                    <property name="id" value="profile_switcher_container"/>
-                </event>                                            
+                    <property name="id" value="plugins_container"/>
+                </event>
                 <event name="system/set">
-                    <property name="name" value="left"/>
-                    <property name="value" value="223px"/>
-                    <property name="type" value="numeric"/>
-                    <property name="id" value="profile_switcher_container"/>
-                </event>                                            
-                <!-- plugins_container -->
-                <event name="system/set">
-                    <property name="name" value="top"/>
-                    <property name="value" value="135px"/>
-                    <property name="type" value="numeric"/>
-                    <property name="id" value="plugins_container"/>
-                </event>                                            
-                <event name="system/set">
-                    <property name="name" value="left"/>
+                    <property name="name" value="padding-right"/>
                     <property name="value" value="0px"/>
                     <property name="type" value="numeric"/>
                     <property name="id" value="plugins_container"/>
-                </event>                                                                        
-                <!-- clock font sizes -->                
-                <event name="system/set">
-                    <property name="name" value="_s60-ampm-font-size"/>
-                    <property name="value" value="3.5u"/>
-                    <property name="type" value="numeric"/>
-                    <property name="id" value="clock"/>
-                </event>                                                        
-                <event name="system/set">
-                    <property name="name" value="_s60-digital-font-size"/>
-                    <property name="value" value="72px"/>
-                    <property name="type" value="numeric"/>
-                    <property name="id" value="clock"/>
-                </event>                                                        
-                <event name="system/set">
-                    <property name="name" value="_s60-date-font-size"/>
-                    <property name="value" value="3.5u"/>
-                    <property name="type" value="numeric"/>
-                    <property name="id" value="clock"/>
-                </event>                                                                        
+                </event>
             </action>
-            <action>
-                <trigger name="screendevicechange" reason="landscape" />
-                <!-- main_container -->
-                <event name="system/set">
-                    <property name="name" value="margin-left"/>
-                    <property name="value" value="5px"/>
-                    <property name="type" value="numeric"/>
-                    <property name="id" value="main_container"/>
-                </event>                                                        
-                <event name="system/set">
-                    <property name="name" value="margin-right"/>
-                    <property name="value" value="5px"/>
-                    <property name="type" value="numeric"/>
-                    <property name="id" value="main_container"/>
-                </event>     
-                <!-- class="sub_container" -->            
-                <event name="system/set">
-                    <property name="name" value="width"/>
-                    <property name="value" value="184px"/>
-                    <property name="type" value="numeric"/>
-                    <property name="class" value="sub_container"/>
-                </event>                                
-                <event name="system/set">
-                    <property name="name" value="height"/>
-                    <property name="value" value="106px"/>
-                    <property name="type" value="numeric"/>
-                    <property name="class" value="sub_container"/>
-                </event>                                            
-                <!-- profile_switcher_container -->
-                <event name="system/set">
-                    <property name="name" value="top"/>
-                    <property name="value" value="106px"/>
-                    <property name="type" value="numeric"/>
-                    <property name="id" value="profile_switcher_container"/>
-                </event>                                            
-                <event name="system/set">
-                    <property name="name" value="left"/>
-                    <property name="value" value="0px"/>
-                    <property name="type" value="numeric"/>
-                    <property name="id" value="profile_switcher_container"/>
-                </event>                                            
-                <!-- plugins_container -->
-                <event name="system/set">
-                    <property name="name" value="top"/>
-                    <property name="value" value="3px"/>
-                    <property name="type" value="numeric"/>
-                    <property name="id" value="plugins_container"/>
-                </event>                                            
-                <event name="system/set">
-                    <property name="name" value="left"/>
-                    <property name="value" value="184px"/>
-                    <property name="type" value="numeric"/>
-                    <property name="id" value="plugins_container"/>
-                </event>      
-                <!-- clock font sizes -->                
-                <event name="system/set">
-                    <property name="name" value="_s60-ampm-font-size"/>
-                    <property name="value" value="3.0u"/>
-                    <property name="type" value="numeric"/>
-                    <property name="id" value="clock"/>
-                </event>                                                        
-                <event name="system/set">
-                    <property name="name" value="_s60-digital-font-size"/>
-                    <property name="value" value="56px"/>
-                    <property name="type" value="numeric"/>
-                    <property name="id" value="clock"/>
-                </event>                                                        
-                <event name="system/set">
-                    <property name="name" value="_s60-date-font-size"/>
-                    <property name="value" value="3.0u"/>
-                    <property name="type" value="numeric"/>
-                    <property name="id" value="clock"/>
-                </event>                                                                                                                                          
-            </action>
-            <action> 
-                <!-- End key, move focus to initial location -->
-                <trigger name="keyevent">
-                    <property name="scancode" value="197"/>                
-                    <property name="eventtype" value="1"/>                
-                </trigger>
-            </action>
-            <action>
-                <trigger name="viewactivate"/>
-                <event name="system/endfullscreeneffect"/>        
-            </action>              
-            <action>
-                <!-- No widgets in this view -->
-                <trigger name="widgetamount" value="0"/>
-                <event name="system/set">
-                    <!-- Hide "hide content" menuitem -->
-                    <property name="name" value="display"/>
-                    <property name="value" value="none"/>
-                    <property name="type" value="string"/>
-                    <property name="id" value="hs_hide_widgets"/>                
-                </event>                              
-                <event name="system/set">
-                    <!-- Hide "show content" menuitem -->
-                    <property name="name" value="display"/>
-                    <property name="value" value="none"/>
-                    <property name="type" value="string"/>
-                    <property name="id" value="hs_show_widgets"/>                
-                </event>                                          
-            </action>
-            <action>
-                <!-- At least one widget added to this view -->
-                <trigger name="widgetamount" value="1"/>
-                <event name="system/set">
-                    <!-- Show "hide content" menuitem -->
-                    <property name="name" value="display"/>
-                    <property name="value" value="block"/>
-                    <property name="type" value="string"/>
-                    <property name="id" value="hs_hide_widgets"/>                
-                </event>                              
-                <event name="system/set">
-                    <!-- Show "show content" menuitem -->
-                    <property name="name" value="display"/>
-                    <property name="value" value="block"/>
-                    <property name="type" value="string"/>
-                    <property name="id" value="hs_show_widgets"/>                
-                </event>                                          
-            </action>            
         </actions>
-        
-        <!-- Data plugins in this view -->
-        <contentsource name="Profile" value="0x10275101" />
-        <contentsource name="SAT" value="0x102078EB" />
-        <contentsource name="Shortcut" value="0x102750FA" />
-        <contentsource name="DeviceStatus" value="0x102750F8" />
-        
-        <!-- All layout capable elements are inside this container -->
-        <box id="main_container">
-            <box id="clock_container" class="sub_container">
-                <clock id="clock" focusable="true" _s60-initial-focus="1">
-                    <softkey id="clock_msk_open" type="middle" label="&qtn_msk_open;" />
-                    <menuitem id="hs_view_open" target="hs_widget_menuitem_open">
-                        <actions>
-                            <action>
-                                <trigger name="activate"/>
-                                <event name="system/activateselecteditem"/>
-                            </action>
-                        </actions>            
-                    </menuitem>                                
-                    <text id="Clock/DateInformation" display="none">
-                        <property id="DeviceStatusDate" class="DeviceStatus/Date" />
-                    </text>                                         
-                    <actions>
-                        <action>
-                            <trigger name="stylus">
-                                <property name="eventtype" value="downup" />
-                            </trigger>
-                            <trigger name="activate"/>
-                            <trigger name="keyevent">
-                                <property name="scancode" value="3"/>
-                                <!-- enter key / EStdKeyEnter -->
-                                <property name="eventtype" value="1"/>
-                            </trigger>                            
-                            <event name="Shortcut/LaunchByValue(localapp:0x10005903)" />
-                        </action>
-                    </actions>                
-                </clock>                    
-            </box>        
-            <box id="profile_switcher_container" class="sub_container">
-                <box id="profile" focusable="true">
-                    <softkey id="profile_msk_select" type="middle" label="&qtn_msk_select;" />
-                    <menuitem id="hs_view_select" target="hs_widget_menuitem_select">
-                        <actions>
-                            <action>
-                                <trigger name="activate"/>
-                                <event name="system/activateselecteditem"/>
-                            </action>
-                        </actions>            
-                    </menuitem>                                        
-                    <!-- Profile UI resources -->
-                    <desc id="Profile/ActiveProfileGeneralIconResource" path="SKIN(270501603 8586 19)"/>
-                    <desc id="Profile/ActiveProfileSilentIconResource" path="SKIN(270501603 8587 19)"/>
-                    <desc id="Profile/ActiveProfileTimedIconResource" path="SKIN(270501603 8631 19)"/>
-                    <actions>
-                        <!-- Show profile dialog menu -->
-                        <action>
-                            <trigger name="activate"/>
-                            <trigger name="stylus">
-                                <property name="eventtype" value="downup" />
-                            </trigger>
-                            <trigger name="keyevent">
-                                <property name="scancode" value="3"/>
-                                <!-- enter key / EStdKeyEnter -->
-                                <property name="eventtype" value="1"/>
-                            </trigger>
-                            <event name="system/trydisplayinglistquerydialog">
-                                <property name="id" value="profiledialog"/>
-                            </event>
-                        </action>
-                    </actions>                            
-                    <!-- MCN, CUG & Profile -->
-                    <box id="mcn_cug_profile_container">
-                        <newsticker id="mcn_cug_profile" class="statusindicator">
-                            <title id="mcn" titleindex="0">
-                                <property id="MCNIndicator" class="DeviceStatus/MCNIndicator" />    
-                            </title>
-                            <title id="cug" titleindex="1">
-                                <property id="CUGIndicator" class="DeviceStatus/CUGIndicator" />    
-                            </title>
-                            <title id="profile" titleindex="2">
-                                <property id="ActiveProfileIndicator" class="Profile/ActiveProfileNameAndIconChar" />            
-                            </title>
-                        </newsticker>
-                    </box>    
-                    <!-- SAT & VHZ -->
-                    <box id="sat_vhz_container">
-                        <image id="sat_icon">
-                            <property id="Sat_sat_icon" class="SAT/sat_icon" />        
-                            <property class="policy/emptyContent" name="sat_icon" value="display:none"/>
-                            <property class="policy/emptyContent" name="sat_icon" value="visibility:hidden"/>
-                            <property class="policy/Content" name="sat_icon" value="display:block"/>
-                            <property class="policy/Visibility" name="sat_vhz_container" value="if !+(vhz) visibility: visible" />
-                        </image>    
-                        <newsticker id="sat_vhz" class="statusindicator">
-                            <actions>
-                                <action>
-                                    <trigger name="titletoscroll" titleindex="0"/>
-                                    <event name="system/set">
-                                        <property name="name" value="visibility"/>
-                                        <property name="value" value="hidden"/>
-                                        <property name="type" value="string"/>
-                                        <property name="id" value="sat_icon"/>
-                                    </event>
-                                </action>
-                                <action>
-                                    <trigger name="titlescrolled" titleindex="0"/>
-                                    <event name="system/set">
-                                        <property name="name" value="visibility"/>
-                                        <property name="value" value="hidden"/>
-                                        <property name="type" value="string"/>
-                                        <property name="id" value="sat_icon"/>
-                                    </event>
-                                </action>
-                                <action>
-                                    <trigger name="titletoscroll" titleindex="1"/>
-                                    <event name="system/set">
-                                        <property name="name" value="visibility"/>
-                                        <property name="value" value="visible"/>
-                                        <property name="type" value="string"/>
-                                        <property name="id" value="sat_icon"/>
-                                    </event>
-                                </action>
-                                <action>
-                                    <trigger name="titlescrolled" titleindex="1"/>
-                                    <event name="system/set">
-                                        <property name="name" value="visibility"/>
-                                        <property name="value" value="visible"/>
-                                        <property name="type" value="string"/>
-                                        <property name="id" value="sat_icon"/>
-                                    </event>
-                                </action>
-                            </actions>
-                            <title id="vhz" titleindex="0">
-                                <property id="VHZText" class="DeviceStatus/VHZText" />
-                                <property class="policy/emptyContent" name="vhz" value="display: none" />
-                                <property class="policy/Content" name="vhz" value="display: block" />
-                                <property class="policy/Visibility" name="sat_vhz_container" value="if (vhz,sat,sat_icon) display: block" />
-                                <property class="policy/Visibility" name="sat_vhz_container" value="if !+(vhz,sat,sat_icon) display: none" />
-                            </title>
-                            <title id="sat" titleindex="1">
-                                <property id="Sat_SatIdleModeText" class="SAT/SatIdleModeText" />            
-                                <property class="policy/emptyContent" name="sat" value="display: none" />
-                                <property class="policy/Content" name="sat" value="display: block" />
-                                <property class="policy/Visibility" name="sat_vhz_container" value="if (vhz,sat,sat_icon) display: block" />
-                                <property class="policy/Visibility" name="sat_vhz_container" value="if !+(vhz,sat,sat_icon) display: none" />
-                            </title>
-                        </newsticker>
-                    </box>                                    
-                </box>
-                <!-- View switcher -->
-                <box id="switcher" focusable="true">
-                    <softkey id="switcher_msk_select" type="middle" label="&qtn_msk_select;" />
-                    <menuitem id="hs_view_select" target="hs_widget_menuitem_select">
-                        <actions>
-                            <action>
-                                <trigger name="activate"/>
-                                <event name="system/activateselecteditem"/>
-                            </action>
-                        </actions>            
-                    </menuitem>                    
-                    <actions>
-                        <action>
-                            <trigger name="activate"/>
-                            <trigger name="stylus">
-                                <property name="eventtype" value="downup" />
-                            </trigger>
-                            <trigger name="keyevent">
-                                <property name="scancode" value="3"/>
-                                <property name="eventtype" value="1"/>
-                            </trigger>
-                            <event name="system/activatenextview"/>                    
-                            <event name="system/beginfullscreeneffect" effectid="1003"/>
-                        </action>
-                    </actions>                    
-                    <image id="switcher_icon" />                        
-                    <!-- View information is filled in runtime by View Manager -->
-                    <text id="switcher_text" />
-                </box>
-            </box>
-            <!-- Plugins -->
-            <box id="plugins_container">
-                <plugin id="plugin1" class="plugins" />
-                <plugin id="plugin2" class="plugins" />
-                <plugin id="plugin3" class="plugins" />
-                <plugin id="plugin4" class="plugins" />
-                <plugin id="plugin5" class="plugins" />
-            </box>
+
+        <!-- Plugins in this view -->
+        <box id="plugins_container">
+            <plugin id="plugin1" class="miniplugins" actionshandler="plugin_actions">
+            </plugin>
+            <plugin id="plugin2" class="miniplugins" actionshandler="plugin_actions">
+            </plugin>
+            <plugin id="plugin3" class="miniplugins" actionshandler="plugin_actions">
+            </plugin>
+            <plugin id="plugin4" class="plugins" actionshandler="plugin_actions">
+            </plugin>
+            <plugin id="plugin5" class="plugins" actionshandler="plugin_actions">
+            </plugin>
+            <plugin id="plugin6" class="plugins" actionshandler="plugin_actions">
+            </plugin>
         </box>
-        
-        <!-- Profile list query dialog. Avkon dialog is not layout capable -->
-        <listquerydialog id="profiledialog" display="none">
-            <text id="profileseditactive" class="profileitem">qtn_hs_profile_edit
+
+        <!-- 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="Profile/EditActiveProfile"/>
-                    </action>
-                </actions>		
-            </text>						
-            <text id="profileitem1" class="systemprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="1"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(0)"/>
-                    </action>
-                </actions>
-            </text>
-            <text id="profileitem2" class="systemprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="2"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(1)"/>
-                    </action>
-                </actions>
-            </text>
-            <text id="profileitem3" class="systemprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="3"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(2)"/>
-                    </action>
-                </actions>
-            </text>
-            <text id="profileitem4" class="systemprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="4"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(3)"/>
-                    </action>
-                </actions>
-            </text>
-            <text id="profileitem5" class="systemprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="5"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(4)"/>
-                    </action>
-                </actions>
-            </text>
-            <text id="profileitem6" class="systemprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="6"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(5)"/>
-                    </action>
-                </actions>
-            </text>
-            <!-- Profiles added by user - show only when such profiles exist -->
-            <text id="profileitem7" class="userprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="7"/>
-                <property class="policy/Content" name="profileitem7" value="display:block"/>
-                <property class="policy/emptyContent" name="profileitem7" value="display:none"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(6)"/>
-                    </action>
-                </actions>
-            </text> 
-            <text id="profileitem8" class="userprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="8"/>
-                <property class="policy/Content" name="profileitem8" value="display:block"/>
-                <property class="policy/emptyContent" name="profileitem8" value="display:none"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(7)"/>
-                    </action>        
-               </actions>
-            </text>
-            <text id="profileitem9" class="userprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="9"/>
-                <property class="policy/Content" name="profileitem9" value="display:block"/>
-                <property class="policy/emptyContent" name="profileitem9" value="display:none"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(8)"/>
-                    </action>
-                </actions>
-            </text>
-            <text id="profileitem10" class="userprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="10"/>
-                <property class="policy/Content" name="profileitem10" value="display:block"/>
-                <property class="policy/emptyContent" name="profileitem10" value="display:none"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(9)"/>
-                    </action>
-                </actions>
-            </text>
-            <text id="profileitem11" class="userprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="11"/>
-                <property class="policy/Content" name="profileitem11" value="display:block"/>
-                <property class="policy/emptyContent" name="profileitem11" value="display:none"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(10)"/>
-                    </action>
-                </actions>
-            </text>
-            <text id="profileitem12" class="userprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="12"/>
-                <property class="policy/Content" name="profileitem12" value="display:block"/>
-                <property class="policy/emptyContent" name="profileitem12" value="display:none"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(11)"/>
-                    </action>
-                </actions>
-            </text>
-            <text id="profileitem13" class="userprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="13"/>
-                <property class="policy/Content" name="profileitem13" value="display:block"/>
-                <property class="policy/emptyContent" name="profileitem13" value="display:none"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(12)"/>
-                    </action>
-                </actions>
-            </text>
-            <text id="profileitem14" class="userprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="14"/>
-                <property class="policy/Content" name="profileitem14" value="display:block"/>
-                <property class="policy/emptyContent" name="profileitem14" value="display:none"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(13)"/>
-                    </action>
-                </actions>
-            </text>
-            <text id="profileitem15" class="userprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="15"/>
-                <property class="policy/Content" name="profileitem15" value="display:block"/>
-                <property class="policy/emptyContent" name="profileitem15" value="display:none"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(14)"/>
-                    </action>
-                </actions>
-            </text>
-            <text id="profileitem16" class="userprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="16"/>
-                <property class="policy/Content" name="profileitem16" value="display:block"/>
-                <property class="policy/emptyContent" name="profileitem16" value="display:none"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(15)"/>
+                        <event name="system/removefocusedwidget"/>
                     </action>
                 </actions>
-            </text>
-            <text id="profileitem17" class="userprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="17"/>
-                <property class="policy/Content" name="profileitem17" value="display:block"/>
-                <property class="policy/emptyContent" name="profileitem17" value="display:none"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(16)"/>
-                    </action>
-                </actions>
-            </text>
-            <text id="profileitem18" class="userprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="18"/>
-                <property class="policy/Content" name="profileitem18" value="display:block"/>
-                <property class="policy/emptyContent" name="profileitem18" value="display:none"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(17)"/>
-                    </action>
-                </actions>
-            </text>
-            <text id="profileitem19" class="userprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="19"/>
-                <property class="policy/Content" name="profileitem19" value="display:block"/>
-                <property class="policy/emptyContent" name="profileitem19" value="display:none"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(18)"/>
-                    </action>
-                </actions>
-            </text>
-            <text id="profileitem20" class="userprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="20"/>
-                <property class="policy/Content" name="profileitem20" value="display:block"/>
-                <property class="policy/emptyContent" name="profileitem20" value="display:none"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(19)"/>
-                    </action>
-                </actions>
-            </text>
-            <text id="profileitem21" class="userprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="21"/>
-                <property class="policy/Content" name="profileitem21" value="display:block"/>
-                <property class="policy/emptyContent" name="profileitem21" value="display:none"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(20)"/>
-                    </action>
-                </actions>
-            </text>
-            <text id="profileitem22" class="userprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="22"/>
-                <property class="policy/Content" name="profileitem22" value="display:block"/>
-                <property class="policy/emptyContent" name="profileitem22" value="display:none"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(21)"/>
-                    </action>
-                </actions>
-            </text>
-            <text id="profileitem23" class="userprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="23"/>
-                <property class="policy/Content" name="profileitem23" value="display:block"/>
-                <property class="policy/emptyContent" name="profileitem23" value="display:none"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(22)"/>
-                    </action>
-                </actions>
-            </text>
-            <text id="profileitem24" class="userprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="24"/>
-                <property class="policy/Content" name="profileitem24" value="display:block"/>
-                <property class="policy/emptyContent" name="profileitem24" value="display:none"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(23)"/>
-                    </action>
-                </actions>
-            </text>
-            <text id="profileitem25" class="userprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="25"/>
-                <property class="policy/Content" name="profileitem25" value="display:block"/>
-                <property class="policy/emptyContent" name="profileitem25" value="display:none"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(24)"/>
-                    </action>
-                </actions>
-            </text>
-            <text id="profileitem26" class="userprofileitem">
-                <property class="Profile/ProfileName" name="ordinal" value="26"/>
-                <property class="policy/Content" name="profileitem26" value="display:block"/>
-                <property class="policy/emptyContent" name="profileitem26" value="display:none"/>
-                <actions>
-                    <action>
-                        <trigger name="activate"/>
-                        <event name="Profile/SwitchProfileByIndex(25)"/>
-                    </action>
-                </actions>
-            </text>
-        </listquerydialog>
-                
-        <!-- RSK shortcut, default AppShell -->    			
-        <property class="Settings/Shortcut" name="0x01000101" value="localapp:0x101F4CD2"/>
-        <!-- UI resources for RSK shortcut -->
-        <desc id="Shortcut/EmptyCaption">&shortcut_emptycaption;</desc>
-        <desc id="Shortcut/BackCaption">&qtn_hs_text_softkey_back;</desc>
-        
-        <menubar id="hs_menubar">                  
-            <!-- menu item grouping table is traversed through in run-time always when options menu is launched. -->                     
+            </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 widget is selected (focus is in widget) -->
-                <menuitemgroup id="Menu/WidgetSpecific">
-                    <property name="hs_widget_select"/>
-                    <property name="hs_widget_open"/>
-                    <property name="hs_widget_settings"/>        
-                    <property name="hs_move_widget"/>        
-                    <property name="hs_remove_widget"/>                        
-                </menuitemgroup>   
-                <!-- These items are shown when view is selected (focus is in view) -->
-                <menuitemgroup id="Menu/ViewSpecific">
-                    <property name="hs_widget_select"/>
-                    <property name="hs_widget_open"/>                
-                </menuitemgroup>           
-                <!-- These items are shown when content is hidden -->
-                <menuitemgroup id="Menu/WidgetsHidden">                
-                    <property name="hs_show_widgets"/>
-                </menuitemgroup>   
                 <!-- These items are shown when content is visible -->
-                <menuitemgroup id="Menu/WidgetsShown">                                
-                    <property name="hs_add_widget"/>        
-                    <property name="hs_hide_widgets"/>                                
-                </menuitemgroup>        
+                <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>
+                <menuitemgroup id="ContextMenu/EditMode">
+                    <property name="hs_remove_widget"/>
+                    <property name="hs_widget_settings"/>
+                    <property name="hs_widget_general_1"/>
+                    <property name="hs_widget_general_2"/>
+                </menuitemgroup>
                 <!-- These items are always shown, if not otherwise changed in the declaration -->
                 <menuitemgroup id="Menu/AlwaysShown">
-                    <property name="hs_lock_keypad"/>                
-                    <property name="hs_change_wallpaper"/>
-                    <property name="hs_rsk_setting"/>
                     <property name="hs_show_help"/>
-                </menuitemgroup>        
-            </menuitemgrouping>            
-            <menu id="options_menu">
-                <menuitem id="hs_lock_keypad" label="&qtn_hs_lock_keypad;">
-                    <actions>
-                        <action>
-                            <trigger name="activate"/>
-                            <event name="Shortcut/LaunchByValue(localapp:keylock?on)" />
-                        </action>
-                    </actions>
-                </menuitem>            
-                <!-- widget specified options menu item select -->
-                <widgetmenuitem id="hs_widget_select" source="hs_widget_menuitem_select" label="&qtn_options_select_widget;"/>
-                <!-- widget specified options menu item open -->                         
-                <widgetmenuitem id="hs_widget_open" source="hs_widget_menuitem_open" label="&qtn_options_open;"/>
-                <menuitem id="hs_show_widgets" label="&qtn_hs_show_widgets;">
-                    <actions>
-                        <action>
-                            <trigger name="activate" />                        
-                            <event name="system/beginfullscreeneffect" effectid="1508"/>
-                            <event name="system/togglewidgetsvisibilty"/>
-                            <event name="system/endfullscreeneffect"/>                                                                        
-                            <event name="system/set">
-                                <!-- Show "add content" menuitem -->
-                                <property name="name" value="display"/>
-                                <property name="value" value="block"/>
-                                <property name="type" value="string"/>
-                                <property name="id" value="hs_add_widget"/>                
-                            </event>                                                                                                      
-                        </action>
-                    </actions>
-                </menuitem>                                    
-                <menuitem id="hs_add_widget" label="&qtn_hs_add_widget;">
+                </menuitemgroup>
+            </menuitemgrouping>
+            <menu id="hs_options_menu">
+                <menuitem id="hs_widget_catalog" label="&qtn_hs_widget_catalog;">
                     <actions>
                         <action>
                             <trigger name="activate"/>
@@ -753,181 +161,129 @@
                         </action>
                     </actions>
                 </menuitem>
-                <!-- TODO: implement properly
-                <menuitem id="hs_refresh" name="refresh" source="contentmodel" label="&qtn_hs_refresh_widget;">
+                <!-- 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="menu_event"/>
-                        </action>
-                    </actions>
-                </menuitem>-->
-                <menuitem id="hs_hide_widgets" label="&qtn_hs_hide_widgets;">
-                    <actions>
-                        <action>
-                            <trigger name="activate" />                        
-                            <event name="system/beginfullscreeneffect" effectid="1508"/>
-                            <event name="system/togglewidgetsvisibilty"/>
-                            <event name="system/endfullscreeneffect"/>                                                                                                
-                            <event name="system/set">
-                                <!-- Hide "add content" menuitem -->
-                                <property name="name" value="display"/>
-                                <property name="value" value="none"/>
-                                <property name="type" value="string"/>
-                                <property name="id" value="hs_add_widget"/>                
-                            </event>                                                                              
+                            <event name="system/removefocusedwidget"/>
                         </action>
                     </actions>
-                </menuitem>            
-                <!-- widget sub-menu -->
-                <menu id="hs_widget_submenu" label="&qtn_hs_edit_widget;">
-                    <!-- settings controlled by widgets -->
-                    <widgetmenuitem id="hs_widget_settings" source="hs_widget_menuitem_settings" label="&qtn_hs_widget_settings;"/>                                
-                    <menuitem id="hs_move_widget" label="&qtn_hs_move_widget;">
-                        <actions>
-                            <action>
-                                <trigger name="activate"/>
-                                <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="class" value="plugins"/>                                
-                                    <property name="class" value="normal_mode_sk"/>
-                                    <property name="class" value="edit_mode_sk"/>
-                                    <property name="keymovemode" value="true"/>
-                                </event>
-                            </action>
-                        </actions>
-                    </menuitem>                
-                    <menuitem id="hs_remove_widget" label="&qtn_hs_remove_widget;">
-                        <actions>
-                            <action>
-                                <trigger name="activate"/>
-                                <event name="system/removefocusedwidget"/>
-                            </action>
-                        </actions>
-                    </menuitem>
-                </menu>            
-                <!-- Dymanic menu items for web online/offline capability when installing a new internet/web widget -->
-                <!--<menuitem id="hs_online" status="online" name="online_offline" source="contentmodel" label="&qtn_hs_online;">
+                </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="menu_event"/>
+                            <event name="system/reportentereditmode" effectid="1005"/>
                         </action>
-                    </actions>   
+                    </actions>
                 </menuitem>
-                <menuitem id="hs_offline" status="offline" name="online_offline" source="contentmodel" label="&qtn_hs_offline;">
+                <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="menu_event"/>
-                        </action>
-                    </actions>   
-                </menuitem>                        -->
-                <menuitem id="hs_change_wallpaper" label ="&qtn_hs_change_wallpaper;">
-                    <actions>
-                        <action id="a_setwallpaper">
-                            <trigger id="t_setwallpaper" name="activate"/>
-                            <event id="e_setwallpaper" name="setwallpaper_event"/>
+                            <event name="system/addview" effectid="1009"/>
                         </action>
                     </actions>
-                </menuitem>                        
-                <menuitem id="hs_rsk_setting" label="&qtn_hs_options_sk2;">
+                </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="Shortcut/ShowSetting(0x01000101)" />
+                            <event name="EventHandler/SetOnline"/>
                         </action>
                     </actions>
-                </menuitem>            
+                </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 id="a_help">
+                        <action>
                             <trigger name="activate"/>
-                            <event name="help_event"/>
+                            <event name="EventHandler/ShowHelp"/>
                         </action>
                     </actions>
-                </menuitem>            
-            </menu>            
-            <!-- softkeys -->
-            <widgetsoftkey source="hs_widget_msk_select" label="&qtn_msk_select;"/>
-            <widgetsoftkey source="hs_widget_msk_open" label="&qtn_msk_open;"/>
-            <softkey id="lsk" type="left" class="normal_mode_sk" label="&qtn_ai_softkey_options;" >
+                </menuitem>
+            </menu>
+            <softkey id="lsk" type="left" label="&qtn_hs_text_softkey_options;">
                 <actions>
                     <action>
-                        <trigger name="stylus"/>
-                        <trigger name="activate">
-                            <property name="eventtype" value="2"/>
-                        </trigger>
+                        <trigger name="activate"/>
                         <event name="system/trydisplayingmenu">
-                            <property name="id" value="options_menu"/>
-                        </event>
-                    </action>
-                    <action>
-                        <trigger name="hold"/>
-                        <event name="Shortcut/LaunchByValue(localapp:0x10201B00?ui=read_new)"/>
-                    </action>
-                </actions>
-            </softkey>
-            <softkey id="SK2" type="right" class="normal_mode_sk" label="">
-                <property class="Shortcut/ShortcutSkCaption" name="ordinal" value="0x01000101"/>
-                <!--<property class="Shortcut/ShortcutSkIcon" name="ordinal" value="0x01000101"/>-->
-                <actions>
-                    <action>
-                        <trigger name="stylus"/>
-                        <trigger name="activate">
-                            <property name="eventtype" value="2"/>
-                        </trigger>
-                        <event name="Shortcut/LaunchByIndex(0x01000101)"/>
-                    </action>
-                        <action>
-                            <trigger name="hold"/>
-                            <event name="Shortcut/LaunchByValue(localapp:0x101F8543)"/>
-                        </action>
-                </actions>
-            </softkey>            
-            <softkey id="edit_lsk_ok" type="left" class="edit_mode_sk" label="&qtn_softkey_ok;">
-                <actions>
-                    <action>
-                        <trigger name="stylus"/>
-                        <trigger name="activate"/>
-                        <event name="system/reseteditmode">
-                            <property name="class" value="plugins"/>
-                            <property name="class" value="edit_mode_sk"/>
-                            <property name="class" value="normal_mode_sk"/>
-                        </event>
-                        <event name="system/set">
-                            <property name="name" value="focusable"/>
-                            <property name="value" value="false"/>
-                            <property name="type" value="string"/>
-                            <property name="class" value="plugins"/>
+                            <property name="id" value="hs_options_menu"/>
                         </event>
                     </action>
                 </actions>
             </softkey>
-            <softkey id="edit_msk_ok" type="middle" class="edit_mode_sk" label="#mskdot">
+            <softkey id="rsk" type="right" mode="mode_callinactive" label="#Menu">
+            	<actions>
+            		<action>
+            			<trigger name="activate"/>
+            			<event name="EventHandler/LaunchApp" uid="0x101F4CD2"/>
+            		</action>
+            	</actions>
+            </softkey>
+            <softkey id="rsk" type="right" mode="mode_callactive" label="#Menu">
+            	<actions>
+            		<action>
+            			<trigger name="activate"/>            			
+            			<event name="EventHandler/LaunchApp" uid="0x101F4CD2"/>
+            		</action>
+            	</actions>
+            </softkey>
+            <softkey id="rsk_done" type="right" mode="mode_edit" label="&qtn_hs_text_softkey_done;">
                 <actions>
                     <action>
-                        <trigger name="stylus"/>
                         <trigger name="activate"/>
-                        <event name="system/reseteditmode">
-                            <property name="class" value="plugins"/>
-                            <property name="class" value="edit_mode_sk"/>
-                            <property name="class" value="normal_mode_sk"/>                                                
-                        </event>
-                        <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/reportexiteditmode" effectid="1006"/>
                     </action>
                 </actions>
             </softkey>
-        </menubar>            
+            <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>
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/37/view.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/37/view.css	Tue Sep 14 20:58:58 2010 +0300
@@ -1,543 +1,73 @@
-view {
-    display: block; 
-    position: static;
-    width: 100%;
-    height: 100%;
+view 
+{
     direction: rtl;
     block-progression: tb;
     background-image: wallpaper;
-    nav-index: appearance;
-    _s60-focus-visibility: true;
-    _s60-status-pane-layout: widescreen-flat-3softkeys;
-
-}
-
-trigger.western{
-    display: none;
-}
-
-
-/** Softkeys **/
-softkey.normal_mode_sk
-{
-    display: block;
-}
-
-softkey.normal_mode_sk:edit
-{
-    display: none;
-}
+    swipe: true;
 
-softkey.edit_mode_sk
-{
-    display: none;
-}
-
-softkey.edit_mode_sk:edit
-{
-    display: block;
-}
-
-/** General **/
-
-plugin.widget_full_width{
-    /* every plug-in decides its own height */
-    height: adaptive;
-    background-color: "SKIN(268458534 9906)";
-    background-size: 100%;
-    width: 100%;
-/*    padding-left: 1.7u;
-    padding-right: 1.7u;*/
-    margin-bottom: 0.55u;
-    nav-index: auto;
-}
-
-plugin.widget_full_width:focus {
-    focus-background:"SKIN(268458534 9896)";
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
 }
 
-plugin:edit {
-    background-color:"SKIN(270501603 8582)";
-}
-
-text{
-    text-align: center;
-    font-family: tahoma;
-    font-size: 3.0u;
-    /*color:"SKIN(268458534 13056 19)";*/
-    color: white;
-}
-
-/************
-Page switcher
-*************
-					
-text#switchertext{
-	position: static;
-	text-align: right;
-	margin-left: 6.0u;
-}
-
-image#switcherimage{
-	position: absolute;
-   	top: 1.4u;
-    	left: 2.5u;
-	height: 3.5u;
-	width: 3.0u;
-	_s60-aspect-ratio: preserve;
-}
-*/
-
-
-/****************** 
-container areas 
-******************/
-box#mainbox{
-    width: 100%;
-    height: 100%;
-}
-
-box.profile_date
+box#plugins_container
 {
-    background-color: "SKIN(268458534 9916)";
-    nav-index: appearance;
-    height: auto;
-}
-
-box.profile_date:focus
-{
-    background-color: "SKIN(268458534 5120 9)";
+    direction: rtl;
+    block-progression: tb;
 }
 
-
-/********************************************* 
-Clock Profiles - portrait specific containers 
-**********************************************/
+plugin.miniplugins
+{
+    height: 115px; 
+    width: 176px;
 
-box#clock_profiles_portrait{
-    display: block;
-    visibility: visible;
-    direction: rtl;
-    block-progression: rl;
-    padding-left: 1.7u;
-    padding-right: 1.7u;
-    margin-bottom: 0.55u;
-    height:13.86u;
-    visualisationaware:true;
-}
+    margin-top: 9px;
+    margin-right: 9px;
+ 
+    _s60-longtap: true;
 
-box#profiles_pages_portrait{
-    block-progression: tb;
-    direction: rtl;
-    height: adaptive;
-}
-
-box#clock_container_portrait{
-    display: block;
-    visibility: visible;
-    position: static;    
     nav-index: appearance;
-    block-progression: tb;
-    background-color: "SKIN(268458534 9906)";
-
-    margin-left: 0.7u;
-    visualisationaware:true;
-    _s60-initial-focus: 1;
-}
-
-box#clock_container_portrait:focus{
-    background-color: "SKIN(268458534 5120 9)";
-}
-
-clock#clock_portrait{
-    display: block;
-    visibility: visible;
-    position: static;     
-    width: auto;
-    /*height: 70%;*/
-    height: auto;
-    direction: rtl;
-    block-progression: tb;        
-    background: none;
-    nav-index: appearance;
-    _s60-format: locale;
-    _s60-ampm-font-size: 16px;
-    _s60-digital-font-size: 56px;
-    color: white;	
 }
 
-box#date_container_portrait
-{
-    width: auto;
-    direction: rtl;
-    block-progression: rl;
-    height: 4.05u;
-    margin-bottom: 0.55u;
-    padding-top: 3px;
-    visualisationaware:true;
-}
-
-box#date_content_portrait
+plugin.plugins
 {
-    width: adaptive;
-    height: adaptive;
-}
+    height: 115px; 
+    width: 436px;
 
-text#datetext2_portrait
-{
-    text-align: center;
-    width: auto;
-    height: auto;
-    font-family: EAknLogicalFontPrimaryFont;
-    font-size: 3u;
-    color: white;
+    margin-top: 9px;
+    margin-right: 10px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
 }
 
-box#profile_softindicator_portrait
-{
-    width: auto;
-    direction: rtl;
-    block-progression: tb;
-    background-color: "SKIN(268458534 9906)";
-    nav-index: appearance;
-    height: 9.0u;
-    visualisationaware:true;
-}
-
-box#NT_CUGMCN_portrait
-{
-    text-align: center;
-    width: adaptive;
-    height: auto;
-    block-progression: rl;
-}
-
-
-box#NT_SATVHZ_portrait
-{
-    display: none;
-    text-align: center;
-    width: adaptive;
-    height: auto;
-    block-progression: rl;
-}
-
-title#title_vhz_portrait
-{
-    display: none;
-}
-
-title#title_sat_portrait
+trigger#hs_popup_open_hold:edit
 {
     display: none;
 }
 
-/********************************************* 
-Clock Profiles - landscape specific containers 
-**********************************************/
-
-box#clock_profiles_landscape{
-    display: block;
-    visibility: visible;
-    direction: rtl;
-    block-progression: tb;
-    width: 30%;
-    height: 100%;
-    padding-left: 5px;
-    padding-top: 5px;
-    visualisationaware:true;
-}
-
-box#profiles_pages_landscape{
-    block-progression: tb;
-    direction: rtl;
-    height: adaptive;
-}
-
-box#clock_container_landscape{
-    
-    display: block;
-    visibility: visible;
-    position: static;    
-    nav-index: appearance;
-    block-progression: tb;
-    background-color: "SKIN(268458534 9906)";
-    height: 10.74u;
-    width: auto;
-    margin-bottom: 0.55u;
-    visualisationaware:true;
-    _s60-initial-focus: 2;
-}
-
-box#clock_container_landscape:focus{
-    background-color: "SKIN(268458534 5120 9)";
-}
-
-box#date_container_landscape
+trigger#hs_popup_open_up
 {
-    width: auto;
-    direction: rtl;
-    block-progression: rl;
-    height: 6.7u;
-    margin-bottom: 0.55u;
-    visualisationaware:true;
-}
-
-box#profile_softindicator_landscape
-{
-    width: auto;
-    direction: rtl;
-    block-progression: tb;
-    background-color: "SKIN(268458534 9906)";
-    nav-index: appearance;
-    height: 6.7u;
-    margin-bottom: 0.55u;
-    visualisationaware:true;
-}
-
-clock#clock_landscape{
-    display: block;
-    visibility: visible;
-    position: static;     
-    width: 100%;
-    height: auto;
-    direction: rtl;
-    block-progression: tb;        
-    background: none;
-    nav-index: appearance;
-    _s60-format: locale;
-    _s60-ampm-font-size: 16px;
-    _s60-digital-font-size: 56px;
-    color: white;	
+    display: none;
 }
 
-clock:focus{
-    background-color: "SKIN(268458534 5120 9)";
-}
-/* Date in the clock widget */
-text#datetext{
-    nav-index: appearance;
-    text-align: center;
-    padding-top: 0.5u;
-    padding-bottom: 0.5u;
-    width: 100%;
-    height: 24%;
-    font-family: EAknLogicalFontPrimaryFont;
-    font-size: 3u;
-    color: white;
-}
-/* Date in the clock widget */
-text#datetext:focus{
-    background-color: "SKIN(268458534 5120 9)";
-}
-
-/* Date in separate widget above profiles */
-
-box#date_content_landscape
-{
-    width: inherit;
-    height: inherit;
-}
-
-text#datetext2_landscape
-{
-    text-align: center;
-    width: auto;
-    height: auto;
-    font-family: EAknLogicalFontPrimaryFont;
-    font-size: 3u;
-    color: white;
-}
-
-box#profile_softindicator:focus
-{
-    focus-background:"SKIN(268458534 5120 9)";
-}
-
-image#profileicon {
-    display: block;
-    visibility: hidden;
-    width: 18px;
-    height: 20px;
-    position: static;
-    margin-top: auto;
-    z-index: 2;
-}
-
-image#SatIdleModeIcon
-{
-    display: block;
-    visibility: hidden;
-    width: 18px;
-    height: 20px;
-    position: static;
-    margin-top: auto;
-}
-
-text#profiletext
-{
-    text-align: center;
-    margin-left: 2px;
-    margin-right: 2px;
-    width: adaptive;
-    height: adaptive;
-    font-family: EAknLogicalFontPrimaryFont;
-    font-size: 3u;
-    color:"SKIN(268458534 13056 19)";
-}
-
-/* Profiles dialog */
-listquerydialog#profiledialog
-{
-    /* Avkon dialog is not layout capable */
-    display: none;    
-}
-
-/* Default system profiles */
-text.systemprofileitem
+trigger#hs_popup_open_up:edit
 {
     display: block;
 }
 
-/* Placeholders for profiles added by user */
-text.userprofileitem
+softkey#rsk
 {
-    display: none;
-}
-
-/******************
-    SOFT INDICATOR WIDGET AREA 
-*******************/
-
-newsticker.SIText {
-    text-align: center;
-    display: block;
-    visibility: visible;
-    width: auto;
-    margin-left: 2px;
-    margin-right: 2px;
-    font-family: EAknLogicalFontPrimaryFont;
-    font-size: 3u;
-    white-space-collapse: collapse;
-    _s60-scroll-behaviour: alternate;
-    /*_s60-scroll-behaviour: scroll;*/
-    _s60-display-time: 2000;
-    _s60-scroll-loop: false;
-    _s60-start-delay: 0;
-    _s60-restart-after-update: true;
-    color: white;
-    /*color:"SKIN(268458534 13056 19)";*/
+    _s60-longtap: true;
+    _s60-aspect-ratio: preserve;
 }
 
-box#NT_CUGMCN_landscape
+softkey#msk_ltr
 {
-    text-align: center;
-    margin-left: auto;
-    margin-right: auto;
-    width: adaptive;
-    height: auto;
-    block-progression: rl;
+    display: block;
 }
 
-box#NT_SATVHZ_landscape
-{
-    display: none;
-    text-align: center;
-    margin-left: auto;
-    margin-right: auto;
-    width: adaptive;
-    height: auto;
-    block-progression: rl;
-}
-
-title#title_vhz_landscape
-{
-    display: none;
-}
-
-title#title_sat_landscape
-{
-    display: none;
-}
-
-image#SatIdleModeIcon_portrait
-{
-    display: none;
-}
-
-image#SatIdleModeIcon_landscape
+softkey#msk_rtl
 {
     display: none;
 }
 
-/************
-Page switcher
-*************
-box#switcher{
-    display: block;
-    visibility: visible;
-    block-progression: rl;
-    direction: ltr;
-    height: 4.5u;
-    background-color: "SKIN(268458534 9906)";
-    background-size: 100%;		
-    margin-top: 0.55u;
-}
-
-box#switcher:focus {
-    background-color: "SKIN(268458534 5120 9)";
-}
-
-text#switchertext
-{
-    text-align: center;
-    margin-left: auto;
-    margin-right: auto;
-    width: adaptive;
-    height: 3.5u;
-    font-family: EAknLogicalFontPrimaryFont;
-    font-size: 3u;
-    color:"SKIN(268458534 13056 19)";
-    color: white;
-    padding-top: 0.5u;
-    padding-bottom: 0.5u;
-}
-
-image#switcherimage
-{
-    position: static;
-    height: 3.5u;
-    width: 3.5u;
-    margin-top: 0.5u;
-    margin-left: 2u;
-}
-*/
-
-menuitem#webonlineitem
-{
-   display: block;
-}
-
-menuitem#webonlineitem:edit
-{
-   display: none;
-}
-
-menuitem#webofflineitem
-{
-   display: block;
-}
-
-menuitem#webofflineitem:edit
-{
-   display: none;
-}
-
-box#main_plugins{
-    block-progression: tb;
-    display: block;
-    visibility: visible;
-    padding-left: 1.7u;
-    padding-right: 1.7u;
-}
-
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/50/view.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/50/view.css	Tue Sep 14 20:58:58 2010 +0300
@@ -1,543 +1,73 @@
-view {
-    display: block; 
-    position: static;
-    width: 100%;
-    height: 100%;
+view 
+{
     direction: rtl;
     block-progression: tb;
     background-image: wallpaper;
-    nav-index: appearance;
-    _s60-focus-visibility: true;
-    _s60-status-pane-layout: widescreen-flat-3softkeys;
-
-}
-
-trigger.western{
-    display: none;
-}
-
-
-/** Softkeys **/
-softkey.normal_mode_sk
-{
-    display: block;
-}
-
-softkey.normal_mode_sk:edit
-{
-    display: none;
-}
+    swipe: true;
 
-softkey.edit_mode_sk
-{
-    display: none;
-}
-
-softkey.edit_mode_sk:edit
-{
-    display: block;
-}
-
-/** General **/
-
-plugin.widget_full_width{
-    /* every plug-in decides its own height */
-    height: adaptive;
-    background-color: "SKIN(268458534 9906)";
-    background-size: 100%;
-    width: 100%;
-/*    padding-left: 1.7u;
-    padding-right: 1.7u;*/
-    margin-bottom: 0.55u;
-    nav-index: auto;
-}
-
-plugin.widget_full_width:focus {
-    focus-background:"SKIN(268458534 9896)";
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
 }
 
-plugin:edit {
-    background-color:"SKIN(270501603 8582)";
-}
-
-text{
-    text-align: center;
-    font-family: tahoma;
-    font-size: 3.0u;
-    /*color:"SKIN(268458534 13056 19)";*/
-    color: white;
-}
-
-/************
-Page switcher
-*************
-					
-text#switchertext{
-	position: static;
-	text-align: right;
-	margin-left: 6.0u;
-}
-
-image#switcherimage{
-	position: absolute;
-   	top: 1.4u;
-    	left: 2.5u;
-	height: 3.5u;
-	width: 3.0u;
-	_s60-aspect-ratio: preserve;
-}
-*/
-
-
-/****************** 
-container areas 
-******************/
-box#mainbox{
-    width: 100%;
-    height: 100%;
-}
-
-box.profile_date
+box#plugins_container
 {
-    background-color: "SKIN(268458534 9916)";
-    nav-index: appearance;
-    height: auto;
-}
-
-box.profile_date:focus
-{
-    background-color: "SKIN(268458534 5120 9)";
+    direction: rtl;
+    block-progression: tb;
 }
 
-
-/********************************************* 
-Clock Profiles - portrait specific containers 
-**********************************************/
+plugin.miniplugins
+{
+    height: 115px; 
+    width: 176px;
 
-box#clock_profiles_portrait{
-    display: block;
-    visibility: visible;
-    direction: rtl;
-    block-progression: rl;
-    padding-left: 1.7u;
-    padding-right: 1.7u;
-    margin-bottom: 0.55u;
-    height:13.86u;
-    visualisationaware:true;
-}
+    margin-top: 9px;
+    margin-right: 9px;
+ 
+    _s60-longtap: true;
 
-box#profiles_pages_portrait{
-    block-progression: tb;
-    direction: rtl;
-    height: adaptive;
-}
-
-box#clock_container_portrait{
-    display: block;
-    visibility: visible;
-    position: static;    
     nav-index: appearance;
-    block-progression: tb;
-    background-color: "SKIN(268458534 9906)";
-
-    margin-left: 0.7u;
-    visualisationaware:true;
-    _s60-initial-focus: 1;
-}
-
-box#clock_container_portrait:focus{
-    background-color: "SKIN(268458534 5120 9)";
-}
-
-clock#clock_portrait{
-    display: block;
-    visibility: visible;
-    position: static;     
-    width: auto;
-    /*height: 70%;*/
-    height: auto;
-    direction: rtl;
-    block-progression: tb;        
-    background: none;
-    nav-index: appearance;
-    _s60-format: locale;
-    _s60-ampm-font-size: 16px;
-    _s60-digital-font-size: 56px;
-    color: white;	
 }
 
-box#date_container_portrait
-{
-    width: auto;
-    direction: rtl;
-    block-progression: rl;
-    height: 4.05u;
-    margin-bottom: 0.55u;
-    padding-top: 3px;
-    visualisationaware:true;
-}
-
-box#date_content_portrait
+plugin.plugins
 {
-    width: adaptive;
-    height: adaptive;
-}
+    height: 115px; 
+    width: 436px;
 
-text#datetext2_portrait
-{
-    text-align: center;
-    width: auto;
-    height: auto;
-    font-family: EAknLogicalFontPrimaryFont;
-    font-size: 3u;
-    color: white;
+    margin-top: 9px;
+    margin-right: 10px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
 }
 
-box#profile_softindicator_portrait
-{
-    width: auto;
-    direction: rtl;
-    block-progression: tb;
-    background-color: "SKIN(268458534 9906)";
-    nav-index: appearance;
-    height: 9.0u;
-    visualisationaware:true;
-}
-
-box#NT_CUGMCN_portrait
-{
-    text-align: center;
-    width: adaptive;
-    height: auto;
-    block-progression: rl;
-}
-
-
-box#NT_SATVHZ_portrait
-{
-    display: none;
-    text-align: center;
-    width: adaptive;
-    height: auto;
-    block-progression: rl;
-}
-
-title#title_vhz_portrait
-{
-    display: none;
-}
-
-title#title_sat_portrait
+trigger#hs_popup_open_hold:edit
 {
     display: none;
 }
 
-/********************************************* 
-Clock Profiles - landscape specific containers 
-**********************************************/
-
-box#clock_profiles_landscape{
-    display: block;
-    visibility: visible;
-    direction: rtl;
-    block-progression: tb;
-    width: 30%;
-    height: 100%;
-    padding-left: 5px;
-    padding-top: 5px;
-    visualisationaware:true;
-}
-
-box#profiles_pages_landscape{
-    block-progression: tb;
-    direction: rtl;
-    height: adaptive;
-}
-
-box#clock_container_landscape{
-    
-    display: block;
-    visibility: visible;
-    position: static;    
-    nav-index: appearance;
-    block-progression: tb;
-    background-color: "SKIN(268458534 9906)";
-    height: 10.74u;
-    width: auto;
-    margin-bottom: 0.55u;
-    visualisationaware:true;
-    _s60-initial-focus: 2;
-}
-
-box#clock_container_landscape:focus{
-    background-color: "SKIN(268458534 5120 9)";
-}
-
-box#date_container_landscape
+trigger#hs_popup_open_up
 {
-    width: auto;
-    direction: rtl;
-    block-progression: rl;
-    height: 6.7u;
-    margin-bottom: 0.55u;
-    visualisationaware:true;
-}
-
-box#profile_softindicator_landscape
-{
-    width: auto;
-    direction: rtl;
-    block-progression: tb;
-    background-color: "SKIN(268458534 9906)";
-    nav-index: appearance;
-    height: 6.7u;
-    margin-bottom: 0.55u;
-    visualisationaware:true;
-}
-
-clock#clock_landscape{
-    display: block;
-    visibility: visible;
-    position: static;     
-    width: 100%;
-    height: auto;
-    direction: rtl;
-    block-progression: tb;        
-    background: none;
-    nav-index: appearance;
-    _s60-format: locale;
-    _s60-ampm-font-size: 16px;
-    _s60-digital-font-size: 56px;
-    color: white;	
+    display: none;
 }
 
-clock:focus{
-    background-color: "SKIN(268458534 5120 9)";
-}
-/* Date in the clock widget */
-text#datetext{
-    nav-index: appearance;
-    text-align: center;
-    padding-top: 0.5u;
-    padding-bottom: 0.5u;
-    width: 100%;
-    height: 24%;
-    font-family: EAknLogicalFontPrimaryFont;
-    font-size: 3u;
-    color: white;
-}
-/* Date in the clock widget */
-text#datetext:focus{
-    background-color: "SKIN(268458534 5120 9)";
-}
-
-/* Date in separate widget above profiles */
-
-box#date_content_landscape
-{
-    width: inherit;
-    height: inherit;
-}
-
-text#datetext2_landscape
-{
-    text-align: center;
-    width: auto;
-    height: auto;
-    font-family: EAknLogicalFontPrimaryFont;
-    font-size: 3u;
-    color: white;
-}
-
-box#profile_softindicator:focus
-{
-    focus-background:"SKIN(268458534 5120 9)";
-}
-
-image#profileicon {
-    display: block;
-    visibility: hidden;
-    width: 18px;
-    height: 20px;
-    position: static;
-    margin-top: auto;
-    z-index: 2;
-}
-
-image#SatIdleModeIcon
-{
-    display: block;
-    visibility: hidden;
-    width: 18px;
-    height: 20px;
-    position: static;
-    margin-top: auto;
-}
-
-text#profiletext
-{
-    text-align: center;
-    margin-left: 2px;
-    margin-right: 2px;
-    width: adaptive;
-    height: adaptive;
-    font-family: EAknLogicalFontPrimaryFont;
-    font-size: 3u;
-    color:"SKIN(268458534 13056 19)";
-}
-
-/* Profiles dialog */
-listquerydialog#profiledialog
-{
-    /* Avkon dialog is not layout capable */
-    display: none;    
-}
-
-/* Default system profiles */
-text.systemprofileitem
+trigger#hs_popup_open_up:edit
 {
     display: block;
 }
 
-/* Placeholders for profiles added by user */
-text.userprofileitem
+softkey#rsk
 {
-    display: none;
-}
-
-/******************
-    SOFT INDICATOR WIDGET AREA 
-*******************/
-
-newsticker.SIText {
-    text-align: center;
-    display: block;
-    visibility: visible;
-    width: auto;
-    margin-left: 2px;
-    margin-right: 2px;
-    font-family: EAknLogicalFontPrimaryFont;
-    font-size: 3u;
-    white-space-collapse: collapse;
-    _s60-scroll-behaviour: alternate;
-    /*_s60-scroll-behaviour: scroll;*/
-    _s60-display-time: 2000;
-    _s60-scroll-loop: false;
-    _s60-start-delay: 0;
-    _s60-restart-after-update: true;
-    color: white;
-    /*color:"SKIN(268458534 13056 19)";*/
+    _s60-longtap: true;
+    _s60-aspect-ratio: preserve;
 }
 
-box#NT_CUGMCN_landscape
+softkey#msk_ltr
 {
-    text-align: center;
-    margin-left: auto;
-    margin-right: auto;
-    width: adaptive;
-    height: auto;
-    block-progression: rl;
+    display: block;
 }
 
-box#NT_SATVHZ_landscape
-{
-    display: none;
-    text-align: center;
-    margin-left: auto;
-    margin-right: auto;
-    width: adaptive;
-    height: auto;
-    block-progression: rl;
-}
-
-title#title_vhz_landscape
-{
-    display: none;
-}
-
-title#title_sat_landscape
-{
-   display: none;
-}
-
-image#SatIdleModeIcon_portrait
-{
-    display: none;
-}
-
-image#SatIdleModeIcon_landscape
+softkey#msk_rtl
 {
     display: none;
 }
 
-/************
-Page switcher
-*************
-box#switcher{
-    display: block;
-    visibility: visible;
-    block-progression: rl;
-    direction: ltr;
-    height: 4.5u;
-    background-color: "SKIN(268458534 9906)";
-    background-size: 100%;		
-    margin-top: 0.55u;
-}
-
-box#switcher:focus {
-    background-color: "SKIN(268458534 5120 9)";
-}
-
-text#switchertext
-{
-    text-align: center;
-    margin-left: auto;
-    margin-right: auto;
-    width: adaptive;
-    height: 3.5u;
-    font-family: EAknLogicalFontPrimaryFont;
-    font-size: 3u;
-    color:"SKIN(268458534 13056 19)";
-    color: white;
-    padding-top: 0.5u;
-    padding-bottom: 0.5u;
-}
-
-image#switcherimage
-{
-    position: static;
-    height: 3.5u;
-    width: 3.5u;
-    margin-top: 0.5u;
-    margin-left: 2u;
-}
-*/
-
-menuitem#webonlineitem
-{
-   display: block;
-}
-
-menuitem#webonlineitem:edit
-{
-   display: none;
-}
-
-menuitem#webofflineitem
-{
-   display: block;
-}
-
-menuitem#webofflineitem:edit
-{
-   display: none;
-}
-
-box#main_plugins{
-    block-progression: tb;
-    display: block;
-    visibility: visible;
-    padding-left: 1.7u;
-    padding-right: 1.7u;
-}
-
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/57/view.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/57/view.css	Tue Sep 14 20:58:58 2010 +0300
@@ -1,543 +1,73 @@
-view {
-    display: block; 
-    position: static;
-    width: 100%;
-    height: 100%;
+view 
+{
     direction: rtl;
     block-progression: tb;
     background-image: wallpaper;
-    nav-index: appearance;
-    _s60-focus-visibility: true;
-    _s60-status-pane-layout: widescreen-flat-3softkeys;
-
-}
-
-trigger.western{
-    display: none;
-}
-
-
-/** Softkeys **/
-softkey.normal_mode_sk
-{
-    display: block;
-}
-
-softkey.normal_mode_sk:edit
-{
-    display: none;
-}
+    swipe: true;
 
-softkey.edit_mode_sk
-{
-    display: none;
-}
-
-softkey.edit_mode_sk:edit
-{
-    display: block;
-}
-
-/** General **/
-
-plugin.widget_full_width{
-    /* every plug-in decides its own height */
-    height: adaptive;
-    background-color: "SKIN(268458534 9906)";
-    background-size: 100%;
-    width: 100%;
-/*    padding-left: 1.7u;
-    padding-right: 1.7u;*/
-    margin-bottom: 0.55u;
-    nav-index: auto;
-}
-
-plugin.widget_full_width:focus {
-    focus-background:"SKIN(268458534 9896)";
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
 }
 
-plugin:edit {
-    background-color:"SKIN(270501603 8582)";
-}
-
-text{
-    text-align: center;
-    font-family: tahoma;
-    font-size: 3.0u;
-    /*color:"SKIN(268458534 13056 19)";*/
-    color: white;
-}
-
-/************
-Page switcher
-*************
-					
-text#switchertext{
-	position: static;
-	text-align: right;
-	margin-left: 6.0u;
-}
-
-image#switcherimage{
-	position: absolute;
-   	top: 1.4u;
-    	left: 2.5u;
-	height: 3.5u;
-	width: 3.0u;
-	_s60-aspect-ratio: preserve;
-}
-*/
-
-
-/****************** 
-container areas 
-******************/
-box#mainbox{
-    width: 100%;
-    height: 100%;
-}
-
-box.profile_date
+box#plugins_container
 {
-    background-color: "SKIN(268458534 9916)";
-    nav-index: appearance;
-    height: auto;
-}
-
-box.profile_date:focus
-{
-    background-color: "SKIN(268458534 5120 9)";
+    direction: rtl;
+    block-progression: tb;
 }
 
-
-/********************************************* 
-Clock Profiles - portrait specific containers 
-**********************************************/
+plugin.miniplugins
+{
+    height: 115px; 
+    width: 176px;
 
-box#clock_profiles_portrait{
-    display: block;
-    visibility: visible;
-    direction: rtl;
-    block-progression: rl;
-    padding-left: 1.7u;
-    padding-right: 1.7u;
-    margin-bottom: 0.55u;
-    height:13.86u;
-    visualisationaware:true;
-}
+    margin-top: 9px;
+    margin-right: 9px;
+ 
+    _s60-longtap: true;
 
-box#profiles_pages_portrait{
-    block-progression: tb;
-    direction: rtl;
-    height: adaptive;
-}
-
-box#clock_container_portrait{
-    display: block;
-    visibility: visible;
-    position: static;    
     nav-index: appearance;
-    block-progression: tb;
-    background-color: "SKIN(268458534 9906)";
-
-    margin-left: 0.7u;
-    visualisationaware:true;
-    _s60-initial-focus: 1;
-}
-
-box#clock_container_portrait:focus{
-    background-color: "SKIN(268458534 5120 9)";
-}
-
-clock#clock_portrait{
-    display: block;
-    visibility: visible;
-    position: static;     
-    width: auto;
-    /*height: 70%;*/
-    height: auto;
-    direction: rtl;
-    block-progression: tb;        
-    background: none;
-    nav-index: appearance;
-    _s60-format: locale;
-    _s60-ampm-font-size: 16px;
-    _s60-digital-font-size: 56px;
-    color: white;	
 }
 
-box#date_container_portrait
-{
-    width: auto;
-    direction: rtl;
-    block-progression: rl;
-    height: 4.05u;
-    margin-bottom: 0.55u;
-    padding-top: 3px;
-    visualisationaware:true;
-}
-
-box#date_content_portrait
+plugin.plugins
 {
-    width: adaptive;
-    height: adaptive;
-}
+    height: 115px; 
+    width: 436px;
 
-text#datetext2_portrait
-{
-    text-align: center;
-    width: auto;
-    height: auto;
-    font-family: EAknLogicalFontPrimaryFont;
-    font-size: 3u;
-    color: white;
+    margin-top: 9px;
+    margin-right: 10px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
 }
 
-box#profile_softindicator_portrait
-{
-    width: auto;
-    direction: rtl;
-    block-progression: tb;
-    background-color: "SKIN(268458534 9906)";
-    nav-index: appearance;
-    height: 9.0u;
-    visualisationaware:true;
-}
-
-box#NT_CUGMCN_portrait
-{
-    text-align: center;
-    width: adaptive;
-    height: auto;
-    block-progression: rl;
-}
-
-
-box#NT_SATVHZ_portrait
-{
-    display: none;
-    text-align: center;
-    width: adaptive;
-    height: auto;
-    block-progression: rl;
-}
-
-title#title_vhz_portrait
-{
-    display: none;
-}
-
-title#title_sat_portrait
+trigger#hs_popup_open_hold:edit
 {
     display: none;
 }
 
-/********************************************* 
-Clock Profiles - landscape specific containers 
-**********************************************/
-
-box#clock_profiles_landscape{
-    display: block;
-    visibility: visible;
-    direction: rtl;
-    block-progression: tb;
-    width: 30%;
-    height: 100%;
-    padding-left: 5px;
-    padding-top: 5px;
-    visualisationaware:true;
-}
-
-box#profiles_pages_landscape{
-    block-progression: tb;
-    direction: rtl;
-    height: adaptive;
-}
-
-box#clock_container_landscape{
-    
-    display: block;
-    visibility: visible;
-    position: static;    
-    nav-index: appearance;
-    block-progression: tb;
-    background-color: "SKIN(268458534 9906)";
-    height: 10.74u;
-    width: auto;
-    margin-bottom: 0.55u;
-    visualisationaware:true;
-    _s60-initial-focus: 2;
-}
-
-box#clock_container_landscape:focus{
-    background-color: "SKIN(268458534 5120 9)";
-}
-
-box#date_container_landscape
+trigger#hs_popup_open_up
 {
-    width: auto;
-    direction: rtl;
-    block-progression: rl;
-    height: 6.7u;
-    margin-bottom: 0.55u;
-    visualisationaware:true;
-}
-
-box#profile_softindicator_landscape
-{
-    width: auto;
-    direction: rtl;
-    block-progression: tb;
-    background-color: "SKIN(268458534 9906)";
-    nav-index: appearance;
-    height: 6.7u;
-    margin-bottom: 0.55u;
-    visualisationaware:true;
-}
-
-clock#clock_landscape{
-    display: block;
-    visibility: visible;
-    position: static;     
-    width: 100%;
-    height: auto;
-    direction: rtl;
-    block-progression: tb;        
-    background: none;
-    nav-index: appearance;
-    _s60-format: locale;
-    _s60-ampm-font-size: 16px;
-    _s60-digital-font-size: 56px;
-    color: white;	
+    display: none;
 }
 
-clock:focus{
-    background-color: "SKIN(268458534 5120 9)";
-}
-/* Date in the clock widget */
-text#datetext{
-    nav-index: appearance;
-    text-align: center;
-    padding-top: 0.5u;
-    padding-bottom: 0.5u;
-    width: 100%;
-    height: 24%;
-    font-family: EAknLogicalFontPrimaryFont;
-    font-size: 3u;
-    color: white;
-}
-/* Date in the clock widget */
-text#datetext:focus{
-    background-color: "SKIN(268458534 5120 9)";
-}
-
-/* Date in separate widget above profiles */
-
-box#date_content_landscape
-{
-    width: inherit;
-    height: inherit;
-}
-
-text#datetext2_landscape
-{
-    text-align: center;
-    width: auto;
-    height: auto;
-    font-family: EAknLogicalFontPrimaryFont;
-    font-size: 3u;
-    color: white;
-}
-
-box#profile_softindicator:focus
-{
-    focus-background:"SKIN(268458534 5120 9)";
-}
-
-image#profileicon {
-    display: block;
-    visibility: hidden;
-    width: 18px;
-    height: 20px;
-    position: static;
-    margin-top: auto;
-    z-index: 2;
-}
-
-image#SatIdleModeIcon
-{
-    display: block;
-    visibility: hidden;
-    width: 18px;
-    height: 20px;
-    position: static;
-    margin-top: auto;
-}
-
-text#profiletext
-{
-    text-align: center;
-    margin-left: 2px;
-    margin-right: 2px;
-    width: adaptive;
-    height: adaptive;
-    font-family: EAknLogicalFontPrimaryFont;
-    font-size: 3u;
-    color:"SKIN(268458534 13056 19)";
-}
-
-/* Profiles dialog */
-listquerydialog#profiledialog
-{
-    /* Avkon dialog is not layout capable */
-    display: none;    
-}
-
-/* Default system profiles */
-text.systemprofileitem
+trigger#hs_popup_open_up:edit
 {
     display: block;
 }
 
-/* Placeholders for profiles added by user */
-text.userprofileitem
+softkey#rsk
 {
-    display: none;
-}
-
-/******************
-    SOFT INDICATOR WIDGET AREA 
-*******************/
-
-newsticker.SIText {
-    text-align: center;
-    display: block;
-    visibility: visible;
-    width: auto;
-    margin-left: 2px;
-    margin-right: 2px;
-    font-family: EAknLogicalFontPrimaryFont;
-    font-size: 3u;
-    white-space-collapse: collapse;
-    _s60-scroll-behaviour: alternate;
-    /*_s60-scroll-behaviour: scroll;*/
-    _s60-display-time: 2000;
-    _s60-scroll-loop: false;
-    _s60-start-delay: 0;
-    _s60-restart-after-update: true;
-    color: white;
-    /*color:"SKIN(268458534 13056 19)";*/
+    _s60-longtap: true;
+    _s60-aspect-ratio: preserve;
 }
 
-box#NT_CUGMCN_landscape
+softkey#msk_ltr
 {
-    text-align: center;
-    margin-left: auto;
-    margin-right: auto;
-    width: adaptive;
-    height: auto;
-    block-progression: rl;
+    display: block;
 }
 
-box#NT_SATVHZ_landscape
-{
-    display: none;
-    text-align: center;
-    margin-left: auto;
-    margin-right: auto;
-    width: adaptive;
-    height: auto;
-    block-progression: rl;
-}
-
-title#title_vhz_landscape
-{
-    display: none;
-}
-
-title#title_sat_landscape
-{
-   display: none;
-}
-
-image#SatIdleModeIcon_portrait
-{
-    display: none;
-}
-
-image#SatIdleModeIcon_landscape
+softkey#msk_rtl
 {
     display: none;
 }
 
-/************
-Page switcher
-*************
-box#switcher{
-    display: block;
-    visibility: visible;
-    block-progression: rl;
-    direction: ltr;
-    height: 4.5u;
-    background-color: "SKIN(268458534 9906)";
-    background-size: 100%;		
-    margin-top: 0.55u;
-}
-
-box#switcher:focus {
-    background-color: "SKIN(268458534 5120 9)";
-}
-
-text#switchertext
-{
-    text-align: center;
-    margin-left: auto;
-    margin-right: auto;
-    width: adaptive;
-    height: 3.5u;
-    font-family: EAknLogicalFontPrimaryFont;
-    font-size: 3u;
-    color:"SKIN(268458534 13056 19)";
-    color: white;
-    padding-top: 0.5u;
-    padding-bottom: 0.5u;
-}
-
-image#switcherimage
-{
-    position: static;
-    height: 3.5u;
-    width: 3.5u;
-    margin-top: 0.5u;
-    margin-left: 2u;
-}
-*/
-
-menuitem#webonlineitem
-{
-   display: block;
-}
-
-menuitem#webonlineitem:edit
-{
-   display: none;
-}
-
-menuitem#webofflineitem
-{
-   display: block;
-}
-
-menuitem#webofflineitem:edit
-{
-   display: none;
-}
-
-box#main_plugins{
-    block-progression: tb;
-    display: block;
-    visibility: visible;
-    padding-left: 1.7u;
-    padding-right: 1.7u;
-}
-
--- a/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/94/view.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/view1_2001fdb9/xuikon/94/view.css	Tue Sep 14 20:58:58 2010 +0300
@@ -1,543 +1,73 @@
-view {
-    display: block; 
-    position: static;
-    width: 100%;
-    height: 100%;
+view 
+{
     direction: rtl;
     block-progression: tb;
     background-image: wallpaper;
-    nav-index: appearance;
-    _s60-focus-visibility: true;
-    _s60-status-pane-layout: widescreen-flat-3softkeys;
-
-}
-
-trigger.western{
-    display: none;
-}
-
-
-/** Softkeys **/
-softkey.normal_mode_sk
-{
-    display: block;
-}
-
-softkey.normal_mode_sk:edit
-{
-    display: none;
-}
+    swipe: true;
 
-softkey.edit_mode_sk
-{
-    display: none;
-}
-
-softkey.edit_mode_sk:edit
-{
-    display: block;
-}
-
-/** General **/
-
-plugin.widget_full_width{
-    /* every plug-in decides its own height */
-    height: adaptive;
-    background-color: "SKIN(268458534 9906)";
-    background-size: 100%;
-    width: 100%;
-/*    padding-left: 1.7u;
-    padding-right: 1.7u;*/
-    margin-bottom: 0.55u;
-    nav-index: auto;
-}
-
-plugin.widget_full_width:focus {
-    focus-background:"SKIN(268458534 9896)";
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
 }
 
-plugin:edit {
-    background-color:"SKIN(270501603 8582)";
-}
-
-text{
-    text-align: center;
-    font-family: tahoma;
-    font-size: 3.0u;
-    /*color:"SKIN(268458534 13056 19)";*/
-    color: white;
-}
-
-/************
-Page switcher
-*************
-					
-text#switchertext{
-	position: static;
-	text-align: right;
-	margin-left: 6.0u;
-}
-
-image#switcherimage{
-	position: absolute;
-   	top: 1.4u;
-    	left: 2.5u;
-	height: 3.5u;
-	width: 3.0u;
-	_s60-aspect-ratio: preserve;
-}
-*/
-
-
-/****************** 
-container areas 
-******************/
-box#mainbox{
-    width: 100%;
-    height: 100%;
-}
-
-box.profile_date
+box#plugins_container
 {
-    background-color: "SKIN(268458534 9916)";
-    nav-index: appearance;
-    height: auto;
-}
-
-box.profile_date:focus
-{
-    background-color: "SKIN(268458534 5120 9)";
+    direction: rtl;
+    block-progression: tb;
 }
 
-
-/********************************************* 
-Clock Profiles - portrait specific containers 
-**********************************************/
+plugin.miniplugins
+{
+    height: 115px; 
+    width: 176px;
 
-box#clock_profiles_portrait{
-    display: block;
-    visibility: visible;
-    direction: rtl;
-    block-progression: rl;
-    padding-left: 1.7u;
-    padding-right: 1.7u;
-    margin-bottom: 0.55u;
-    height:13.86u;
-    visualisationaware:true;
-}
+    margin-top: 9px;
+    margin-right: 9px;
+ 
+    _s60-longtap: true;
 
-box#profiles_pages_portrait{
-    block-progression: tb;
-    direction: rtl;
-    height: adaptive;
-}
-
-box#clock_container_portrait{
-    display: block;
-    visibility: visible;
-    position: static;    
     nav-index: appearance;
-    block-progression: tb;
-    background-color: "SKIN(268458534 9906)";
-
-    margin-left: 0.7u;
-    visualisationaware:true;
-    _s60-initial-focus: 1;
-}
-
-box#clock_container_portrait:focus{
-    background-color: "SKIN(268458534 5120 9)";
-}
-
-clock#clock_portrait{
-    display: block;
-    visibility: visible;
-    position: static;     
-    width: auto;
-    /*height: 70%;*/
-    height: auto;
-    direction: rtl;
-    block-progression: tb;        
-    background: none;
-    nav-index: appearance;
-    _s60-format: locale;
-    _s60-ampm-font-size: 16px;
-    _s60-digital-font-size: 56px;
-    color: white;	
 }
 
-box#date_container_portrait
-{
-    width: auto;
-    direction: rtl;
-    block-progression: rl;
-    height: 4.05u;
-    margin-bottom: 0.55u;
-    padding-top: 3px;
-    visualisationaware:true;
-}
-
-box#date_content_portrait
+plugin.plugins
 {
-    width: adaptive;
-    height: adaptive;
-}
+    height: 115px; 
+    width: 436px;
 
-text#datetext2_portrait
-{
-    text-align: center;
-    width: auto;
-    height: auto;
-    font-family: EAknLogicalFontPrimaryFont;
-    font-size: 3u;
-    color: white;
+    margin-top: 9px;
+    margin-right: 10px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
 }
 
-box#profile_softindicator_portrait
-{
-    width: auto;
-    direction: rtl;
-    block-progression: tb;
-    background-color: "SKIN(268458534 9906)";
-    nav-index: appearance;
-    height: 9.0u;
-    visualisationaware:true;
-}
-
-box#NT_CUGMCN_portrait
-{
-    text-align: center;
-    width: adaptive;
-    height: auto;
-    block-progression: rl;
-}
-
-
-box#NT_SATVHZ_portrait
-{
-    display: none;
-    text-align: center;
-    width: adaptive;
-    height: auto;
-    block-progression: rl;
-}
-
-title#title_vhz_portrait
-{
-    display: none;
-}
-
-title#title_sat_portrait
+trigger#hs_popup_open_hold:edit
 {
     display: none;
 }
 
-/********************************************* 
-Clock Profiles - landscape specific containers 
-**********************************************/
-
-box#clock_profiles_landscape{
-    display: block;
-    visibility: visible;
-    direction: rtl;
-    block-progression: tb;
-    width: 30%;
-    height: 100%;
-    padding-left: 5px;
-    padding-top: 5px;
-    visualisationaware:true;
-}
-
-box#profiles_pages_landscape{
-    block-progression: tb;
-    direction: rtl;
-    height: adaptive;
-}
-
-box#clock_container_landscape{
-    
-    display: block;
-    visibility: visible;
-    position: static;    
-    nav-index: appearance;
-    block-progression: tb;
-    background-color: "SKIN(268458534 9906)";
-    height: 10.74u;
-    width: auto;
-    margin-bottom: 0.55u;
-    visualisationaware:true;
-    _s60-initial-focus: 2;
-}
-
-box#clock_container_landscape:focus{
-    background-color: "SKIN(268458534 5120 9)";
-}
-
-box#date_container_landscape
+trigger#hs_popup_open_up
 {
-    width: auto;
-    direction: rtl;
-    block-progression: rl;
-    height: 6.7u;
-    margin-bottom: 0.55u;
-    visualisationaware:true;
-}
-
-box#profile_softindicator_landscape
-{
-    width: auto;
-    direction: rtl;
-    block-progression: tb;
-    background-color: "SKIN(268458534 9906)";
-    nav-index: appearance;
-    height: 6.7u;
-    margin-bottom: 0.55u;
-    visualisationaware:true;
-}
-
-clock#clock_landscape{
-    display: block;
-    visibility: visible;
-    position: static;     
-    width: 100%;
-    height: auto;
-    direction: rtl;
-    block-progression: tb;        
-    background: none;
-    nav-index: appearance;
-    _s60-format: locale;
-    _s60-ampm-font-size: 16px;
-    _s60-digital-font-size: 56px;
-    color: white;	
+    display: none;
 }
 
-clock:focus{
-    background-color: "SKIN(268458534 5120 9)";
-}
-/* Date in the clock widget */
-text#datetext{
-    nav-index: appearance;
-    text-align: center;
-    padding-top: 0.5u;
-    padding-bottom: 0.5u;
-    width: 100%;
-    height: 24%;
-    font-family: EAknLogicalFontPrimaryFont;
-    font-size: 3u;
-    color: white;
-}
-/* Date in the clock widget */
-text#datetext:focus{
-    background-color: "SKIN(268458534 5120 9)";
-}
-
-/* Date in separate widget above profiles */
-
-box#date_content_landscape
-{
-    width: inherit;
-    height: inherit;
-}
-
-text#datetext2_landscape
-{
-    text-align: center;
-    width: auto;
-    height: auto;
-    font-family: EAknLogicalFontPrimaryFont;
-    font-size: 3u;
-    color: white;
-}
-
-box#profile_softindicator:focus
-{
-    focus-background:"SKIN(268458534 5120 9)";
-}
-
-image#profileicon {
-    display: block;
-    visibility: hidden;
-    width: 18px;
-    height: 20px;
-    position: static;
-    margin-top: auto;
-    z-index: 2;
-}
-
-image#SatIdleModeIcon
-{
-    display: block;
-    visibility: hidden;
-    width: 18px;
-    height: 20px;
-    position: static;
-    margin-top: auto;
-}
-
-text#profiletext
-{
-    text-align: center;
-    margin-left: 2px;
-    margin-right: 2px;
-    width: adaptive;
-    height: adaptive;
-    font-family: EAknLogicalFontPrimaryFont;
-    font-size: 3u;
-    color:"SKIN(268458534 13056 19)";
-}
-
-/* Profiles dialog */
-listquerydialog#profiledialog
-{
-    /* Avkon dialog is not layout capable */
-    display: none;    
-}
-
-/* Default system profiles */
-text.systemprofileitem
+trigger#hs_popup_open_up:edit
 {
     display: block;
 }
 
-/* Placeholders for profiles added by user */
-text.userprofileitem
+softkey#rsk
 {
-    display: none;
-}
-
-/******************
-    SOFT INDICATOR WIDGET AREA 
-*******************/
-
-newsticker.SIText {
-    text-align: center;
-    display: block;
-    visibility: visible;
-    width: auto;
-    margin-left: 2px;
-    margin-right: 2px;
-    font-family: EAknLogicalFontPrimaryFont;
-    font-size: 3u;
-    white-space-collapse: collapse;
-    _s60-scroll-behaviour: alternate;
-    /*_s60-scroll-behaviour: scroll;*/
-    _s60-display-time: 2000;
-    _s60-scroll-loop: false;
-    _s60-start-delay: 0;
-    _s60-restart-after-update: true;
-    color: white;
-    /*color:"SKIN(268458534 13056 19)";*/
+    _s60-longtap: true;
+    _s60-aspect-ratio: preserve;
 }
 
-box#NT_CUGMCN_landscape
+softkey#msk_ltr
 {
-    text-align: center;
-    margin-left: auto;
-    margin-right: auto;
-    width: adaptive;
-    height: auto;
-    block-progression: rl;
+    display: block;
 }
 
-box#NT_SATVHZ_landscape
-{
-    display: none;
-    text-align: center;
-    margin-left: auto;
-    margin-right: auto;
-    width: adaptive;
-    height: auto;
-    block-progression: rl;
-}
-
-title#title_vhz_landscape
-{
-    display: none;
-}
-
-title#title_sat_landscape
-{
-   display: none;
-}
-
-image#SatIdleModeIcon_portrait
-{
-    display: none;
-}
-
-image#SatIdleModeIcon_landscape
+softkey#msk_rtl
 {
     display: none;
 }
 
-/************
-Page switcher
-*************
-box#switcher{
-    display: block;
-    visibility: visible;
-    block-progression: rl;
-    direction: ltr;
-    height: 4.5u;
-    background-color: "SKIN(268458534 9906)";
-    background-size: 100%;		
-    margin-top: 0.55u;
-}
-
-box#switcher:focus {
-    background-color: "SKIN(268458534 5120 9)";
-}
-
-text#switchertext
-{
-    text-align: center;
-    margin-left: auto;
-    margin-right: auto;
-    width: adaptive;
-    height: 3.5u;
-    font-family: EAknLogicalFontPrimaryFont;
-    font-size: 3u;
-    color:"SKIN(268458534 13056 19)";
-    color: white;
-    padding-top: 0.5u;
-    padding-bottom: 0.5u;
-}
-
-image#switcherimage
-{
-    position: static;
-    height: 3.5u;
-    width: 3.5u;
-    margin-top: 0.5u;
-    margin-left: 2u;
-}
-*/
-
-menuitem#webonlineitem
-{
-   display: block;
-}
-
-menuitem#webonlineitem:edit
-{
-   display: none;
-}
-
-menuitem#webofflineitem
-{
-   display: block;
-}
-
-menuitem#webofflineitem:edit
-{
-   display: none;
-}
-
-box#main_plugins{
-    block-progression: tb;
-    display: block;
-    visibility: visible;
-    padding-left: 1.7u;
-    padding-right: 1.7u;
-}
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286ea.confml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,483 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration name="VGA Homescreen 2" version="1" xmlns="http://www.s60.com/xml/confml/2" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <feature name="VGA Homescreen 2 widgets" ref="VGA_HomescreenPlugins_2">
+    <setting name="Max Widgets" ref="MaxWidgets" type="string">
+      <desc>Maximum widget amount in Homescreen 2 page. Customizable</desc>
+    </setting>
+  <setting name="Use Empty Widgets" readOnly="true" ref="UseEmptyWidgets" type="boolean">
+      <desc>Not customizable!</desc>
+    </setting>
+  <setting name="Item id for empty widgets definition in view" readOnly="true" ref="ItemIdEmptyWidgets" type="string">
+      <desc>Not customizable!</desc>
+    </setting>
+  <setting name="Property name for empty widgets definition in view" readOnly="true" ref="PropertyEmptyWidgets" type="string">
+      <desc>Not customizable!</desc>
+    </setting>
+  <setting name="background path" ref="BackGroundPath" type="string">
+      <desc>Path of the Wallpaper resource. Customizable. </desc>
+    </setting>
+  <setting name="Item id wallpaper" readOnly="true" ref="ItemIdWallpaper" type="string">
+      <desc>Not customizable!</desc>
+    </setting>
+  <setting name="Wallpaper property name" readOnly="true" ref="WallpaperPropertyName" type="string">
+      <desc>Not customizable!</desc>
+    </setting>
+  <setting name="Widgets" ref="Plugins" type="sequence">
+      <desc>Widgets in the Homescreen 2</desc>
+    <setting name="Widget" ref="Uid" type="string">
+      <desc>Widget name</desc>
+      <option name="Empty" value="0x2001f47f" />
+      <option name="ClockDate" value="0x200286E6" />
+      <option name="Desktop" value="0x20018EEE" />
+      <option name="Profilemode" value="0x200286e7" />
+      <option name="wrtplugin_1" value="0x20022FD4"/>
+      <option name="wrtplugin_2" value="0x20022FD5"/>
+      <option name="wrtplugin_3" value="0x20022FD6"/>
+      <option name="wrtplugin_4" value="0x20022FD7"/>
+      <option name="wrtplugin_5" value="0x20022FD8"/>
+      <option name="wrtplugin_6" value="0x20022FD9"/>
+      <option name="wrtplugin_7" value="0x20022FDA"/>
+      <option name="wrtplugin_8" value="0x20022FDB"/>
+      <option name="wrtplugin_9" value="0x2001CB7D"/>
+      <option name="wrtplugin_10" value="0x2001CB7E"/>
+      <option name="wrtplugin_11" value="0x2001CB7F"/>
+      <option name="wrtplugin_12" value="0x200286EE"/>
+    </setting>
+    <setting name="Bundle Identifier" ref="BundleIdentifier" type="string">
+        <desc>Bundle identifier for the (C)WRT widgets. None for the native widgets</desc>
+        <option name="None / Automatic" value="0" />
+	<option name="8TV Catch Up" value="com.nerdattack.widget.8TV"/>
+        <option name="Aftonbladet WebbTV" value="apegroup.aftonbladet.webbtv.symbian3"/>
+        <option name="Al Jazeera" value="si.inova.verve.aljazeera"/>
+        <option name="BBC Arabic Web TV" value="com.nokia.forum.bbcatv1.widget"/>
+        <option name="BH TV" value="com.bollywoodhungama.widget.BollywoodHungamaTV"/>
+        <option name="Channel NewsAsia" value="Channel.newsasia"/>
+        <option name="CNN Video" value="com.cnn"/>
+        <option name="DigiturkWebTV" value="com.digiturkwebtv.widget"/>
+        <option name="EFE Videos" value="com.ericsson.efe.widget"/>
+        <option name="E!" value="com.moderati.eonline"/>
+        <option name="Bollywood" value="br.org.indt.widget.eros"/>
+        <option name="Ovi Files" value="com.nokia.ss.sas.filesql"/>
+        <option name="Hi5" value="com.hi5.widget.Launcher"/>
+        <option name="凤凰电视" value="com.ifeng.www.webtv.widget"/>
+        <option name="Chat" value="com.nokia.ChatClient"/>
+        <option name="芒果 TV" value="com.imgo.tv"/>
+        <option name="India Today" value="br.org.indt.widget.indiatoday"/>
+        <option name="BBC iPlayer" value="com.bbc.widget.iplayer"/>
+        <option name="Contacts' latest activities" value="com.nokia.somawebui.xwidget"/>
+        <option name="M1TV" value="com.m1tv.basic.widget"/>
+        <option name="Makansutr" value="com.nerdattack.wrt.Makansutra"/>
+        <option name="bose" value="com.bose.basic.widget"/>
+        <option name="SingTel MTVS" value="com.nokia.widget.sapi.mtvs"/>
+        <option name="Nat Geo" value="com.natgeo"/>
+        <option name="NRK Mobil-TV" value="no.nrk.mobil.mobiltv.widget"/>
+        <option name="ontv" value="ontv.cc.on.tv.widget"/>
+        <option name="ovi" value="com.nokia.ovi"/>
+        <option name="Movie Teasers" value="com.movieteasers"/>
+        <option name="Schweizer Fernsehen" value="com.sftvreader.basic.widget"/>
+        <option name="Sky News On Demand" value="com.nerdattack.widget.SKYNEWS"/>
+        <option name="Social" value="com.nokia.socialmixer.v1"/>
+        <option name="æœç‹å¨±ä¹" value="com.sohu.widget.webtv4ovi"/>
+        <option name="SSOUI" value="ovi.serviceui.SSOUI"/>
+        <option name="Terra TV" value="com.terra.widget.wrt.tv"/>
+        <option name="Terra TV Lat" value="com.terra.widget.wrt.tv.latam"/>
+        <option name="topApps" value="com.topApps.basic.widget"/>
+        <option name="Tudou" value="com.Tudou.widget"/>
+        <option name="tv2news" value="com.nokia.forum.widget.tv2news"/>
+        <option name="TV2Play" value="no.tv2.tv2play.widget"/>
+        <option name="TV3 Catch Up" value="com.nerdattack.widget.TV3"/>
+        <option name="ВеÑти" value="com.vesti.basic.widget"/>
+        <option name="Viasat No" value="no.viasat.widget"/>
+        <option name="Viasat Swe" value="se.viasat.widget"/>
+        <option name="Virtual Malaysia" value="com.nerdattack.widget.VirtualMalaysia"/>
+        <option name="央广新浪" value="cn.com.sina.3g"/>
+        <option name="Web TV Demo" value="com.nokia.forum.webtv.widget"/>
+        <option name="Yle Areena" value="com.tieto.yle"/>
+        <option name="优酷" value="com.youku.s605th.webtv"/>
+      </setting>
+    <setting name="Template Identifier" ref="TemplateIdentifier" type="selection">
+        <desc>Templeate identifier for the (C)WRT widgets. None for the native widgets</desc>
+      <option name="None" value="0" />
+      <option name="Single row icon widget template" value="0x2001FDC0" />
+      <option name="Single row widget template" value="0x2001FDC1" />
+      <option name="Double row icon widget template" value="0x2001FDBD" />
+      <option name="Double row widget template" value="0x2001FDC2" />
+      <option name="Triple row icon widget template" value="0x2001FDBE" />
+      <option name="Triple row widget template" value="0x2001FDBF" />
+      <option name="Wideimage template" value="0x10009DFF" />
+      </setting>
+    <setting name="locking Status" ref="LockingStatus" type="selection">
+        <desc>Locking status for the widget 1 in Homescreen 2 page</desc>
+      <option name="None" value="none" />
+      <option name="Locked" value="locked" />
+      <option name="Permanent" value="permanent" />
+      </setting>
+    <setting name="Customize Shortcut widget" ref="ShortcutWidget" type="selection">
+        <desc>Customize enabler for desktop/shortcut widget</desc>
+      <option name="Not Customize desktop Widget" value="0" />
+      <option name="Customize desktop widget" value="1" />
+      </setting>
+    <setting name="Customize 1st Shortcut" ref="Customize1Shortcut" type="selection">
+        <desc>Customize 1st item in desktop widget</desc>
+      <option name="Not Customize 1st shortcut" value="0" />
+      <option name="Customize 1st shortcut" value="1" />
+      </setting>
+    <setting name="1st Shortcut type" ref="Shortcut1Type" type="selection">
+        <desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
+      <option name="Application" value="application" />
+      <option name="Bookmark" value="bookmark" />
+      <option name="Shortcut" value="shortcut" />
+      </setting>
+    <setting name="1st Shortcut Uid" ref="Shortcut1Uid" type="string">
+        <desc>Uid for the application, Menu content Uid for the bookmarks and shortcuts.</desc>
+      </setting>
+    <setting name="1st Shortcut View" ref="Shortcut1View" type="string">
+        <desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
+      </setting>
+    <setting name="1st Shortcut Param" ref="Shortcut1Param" type="string">
+        <desc>Params for shortcut. For example: messaging:msg</desc>
+      </setting>
+    <setting name="Customize 2nd Shortcut" ref="Customize2Shortcut" type="selection">
+        <desc>Customize 2nd item in desktop widget</desc>
+      <option name="Not Customize 2nd shortcut" value="0" />
+      <option name="Customize 2nd shortcut" value="1" />
+      </setting>
+    <setting name="2nd Shortcut Application" ref="Shortcut2Type" type="selection">
+        <desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
+      <option name="Application" value="application" />
+      <option name="Bookmark" value="bookmark" />
+      <option name="Shortcut" value="shortcut" />
+      </setting>
+    <setting name="2nd Shortcut Uid" ref="Shortcut2Uid" type="string">
+        <desc>Uid for the application, Menu content Uid for the bookmarks and shortcuts</desc>
+      </setting>
+    <setting name="2nd Shortcut View" ref="Shortcut2View" type="string">
+        <desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
+      </setting>
+    <setting name="2nd Shortcut Param" ref="Shortcut2Param" type="string">
+        <desc>Params for shortcut. messaging:msg</desc>
+      </setting>
+    <setting name="Customize 3rd Shortcut" ref="Customize3Shortcut" type="selection">
+        <desc>Customize 3rd item in desktop widget</desc>
+      <option name="Not Customize 3rd shortcut" value="0" />
+      <option name="Customize 3rd shortcut" value="1" />
+      </setting>
+    <setting name="3rd Shortcut Application" ref="Shortcut3Type" type="selection">
+        <desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
+      <option name="Application" value="application" />
+      <option name="Bookmark" value="bookmark" />
+      <option name="Shortcut" value="shortcut" />
+      </setting>
+    <setting name="3rd Shortcut Uid" ref="Shortcut3Uid" type="string">
+        <desc>Uid for the application,Menu content  Uid for the bookmarks and shortcuts.</desc>
+      </setting>
+    <setting name="3rd Shortcut View" ref="Shortcut3View" type="string">
+        <desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
+      </setting>
+    <setting name="3rd Shortcut Param" ref="Shortcut3Param" type="string">
+        <desc>Params for shortcut. messaging:msg</desc>
+      </setting>
+    <setting name="Customize 4th Shortcut" ref="Customize4Shortcut" type="selection">
+        <desc>Customize 4th item in desktop widget</desc>
+      <option name="Not Customize 4th shortcut" value="0" />
+      <option name="Customize 4th shortcut" value="1" />
+      </setting>
+    <setting name="4th ShortCut Application" ref="Shortcut4Type" type="selection">
+        <desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
+      <option name="Application" value="application" />
+      <option name="Bookmark" value="bookmark" />
+      <option name="Shortcut" value="shortcut" />
+      </setting>
+    <setting name="4th Shortcut Uid" ref="Shortcut4Uid" type="string">
+        <desc>Uid for the application, Menu content  ids for the bookmarks and shortcuts </desc>
+      </setting>
+    <setting name="4th Shortcut View" ref="Shortcut4View" type="string">
+        <desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
+      </setting>
+    <setting name="4th Shortcut Param" ref="Shortcut4Param" type="string">
+        <desc>Params for shortcut. messaging:msg</desc>
+      </setting>
+    <setting name="Shortcut1 ItemId" readOnly="true" ref="Shortcut1ItemId" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut1 ItemName" readOnly="true" ref="Shortcut1ItemName" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut2 ItemId" readOnly="true" ref="Shortcut2ItemId" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut2 ItemName" readOnly="true" ref="Shortcut2ItemName" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut3 ItemId" readOnly="true" ref="Shortcut3ItemId" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut3 ItemName" readOnly="true" ref="Shortcut3ItemName" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut4 ItemId" readOnly="true" ref="Shortcut4ItemId" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut4 ItemName" readOnly="true" ref="Shortcut4ItemName" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut PropertyNameType" readOnly="true" ref="ShortcutPropertyNameType" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut PropertyNameUid" readOnly="true" ref="ShortcutPropertyNameUid" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut PropertyNameView" readOnly="true" ref="ShortcutPropertyNameView" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut PropertyNameParam" readOnly="true" ref="ShortcutPropertyNameParam" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    </setting>
+  </feature>
+<data>
+    <VGA_HomescreenPlugins_2>
+      <MaxWidgets>6</MaxWidgets>
+    <UseEmptyWidgets>true</UseEmptyWidgets>
+    <ItemIdEmptyWidgets>hs_vga_tch_view</ItemIdEmptyWidgets>
+    <PropertyEmptyWidgets>use_empty_widget</PropertyEmptyWidgets>
+    <ItemIdWallpaper>wallpaper</ItemIdWallpaper>
+    <WallpaperPropertyName>path</WallpaperPropertyName>
+    <BackGroundPath />
+    <Plugins extensionPolicy="replace">
+        <Uid>0x200286e6</Uid>
+      <BundleIdentifier>0</BundleIdentifier>
+      <TemplateIdentifier>0</TemplateIdentifier>
+      <LockingStatus>permanent</LockingStatus>
+      <ShortcutWidget>0</ShortcutWidget>
+      <Customize1Shortcut>0</Customize1Shortcut>
+      <Shortcut1Type />
+      <Shortcut1Uid />
+      <Shortcut1View />
+      <Shortcut1Param />
+      <Customize2Shortcut />
+      <Shortcut2Type />
+      <Shortcut2Uid />
+      <Shortcut2View />
+      <Shortcut2Param />
+      <Customize3Shortcut />
+      <Shortcut3Type />
+      <Shortcut3Uid />
+      <Shortcut3View />
+      <Shortcut3Param />
+      <Customize4Shortcut />
+      <Shortcut4Type />
+      <Shortcut4Uid />
+      <Shortcut4View />
+      <Shortcut4Param />
+      <Shortcut1ItemId>first</Shortcut1ItemId>
+      <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+      <Shortcut2ItemId>second</Shortcut2ItemId>
+      <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+      <Shortcut3ItemId>third</Shortcut3ItemId>
+      <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+      <Shortcut4ItemId>fourth</Shortcut4ItemId>
+      <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+      <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+      <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+      <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+      <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+      </Plugins>
+    <Plugins>
+        <Uid>0x200286e7</Uid>
+      <BundleIdentifier>0</BundleIdentifier>
+      <TemplateIdentifier>0</TemplateIdentifier>
+      <LockingStatus>permanent</LockingStatus>
+      <ShortcutWidget>0</ShortcutWidget>
+      <Customize1Shortcut>0</Customize1Shortcut>
+      <Shortcut1Type />
+      <Shortcut1Uid />
+      <Shortcut1View />
+      <Shortcut1Param />
+      <Customize2Shortcut />
+      <Shortcut2Type />
+      <Shortcut2Uid />
+      <Shortcut2View />
+      <Shortcut2Param />
+      <Customize3Shortcut />
+      <Shortcut3Type />
+      <Shortcut3Uid />
+      <Shortcut3View />
+      <Shortcut3Param />
+      <Customize4Shortcut />
+      <Shortcut4Type />
+      <Shortcut4Uid />
+      <Shortcut4View />
+      <Shortcut4Param />
+      <Shortcut1ItemId>first</Shortcut1ItemId>
+      <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+      <Shortcut2ItemId>second</Shortcut2ItemId>
+      <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+      <Shortcut3ItemId>third</Shortcut3ItemId>
+      <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+      <Shortcut4ItemId>fourth</Shortcut4ItemId>
+      <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+      <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+      <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+      <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+      <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+      </Plugins>
+    <Plugins>
+        <Uid>0x2001f47f</Uid>
+      <BundleIdentifier>0</BundleIdentifier>
+      <TemplateIdentifier>0</TemplateIdentifier>
+      <LockingStatus>permanent</LockingStatus>
+      <ShortcutWidget>0</ShortcutWidget>
+      <Customize1Shortcut>0</Customize1Shortcut>
+      <Shortcut1Type />
+      <Shortcut1Uid />
+      <Shortcut1View />
+      <Shortcut1Param />
+      <Customize2Shortcut />
+      <Shortcut2Type />
+      <Shortcut2Uid />
+      <Shortcut2View />
+      <Shortcut2Param />
+      <Customize3Shortcut />
+      <Shortcut3Type />
+      <Shortcut3Uid />
+      <Shortcut3View />
+      <Shortcut3Param />
+      <Customize4Shortcut />
+      <Shortcut4Type />
+      <Shortcut4Uid />
+      <Shortcut4View />
+      <Shortcut4Param />
+      <Shortcut1ItemId>first</Shortcut1ItemId>
+      <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+      <Shortcut2ItemId>second</Shortcut2ItemId>
+      <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+      <Shortcut3ItemId>third</Shortcut3ItemId>
+      <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+      <Shortcut4ItemId>fourth</Shortcut4ItemId>
+      <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+      <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+      <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+      <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+      <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+      </Plugins>
+    <Plugins>
+        <Uid>0x2001f47f</Uid>
+      <BundleIdentifier>0</BundleIdentifier>
+      <TemplateIdentifier>0</TemplateIdentifier>
+      <LockingStatus>permanent</LockingStatus>
+      <ShortcutWidget>0</ShortcutWidget>
+      <Customize1Shortcut>0</Customize1Shortcut>
+      <Shortcut1Type />
+      <Shortcut1Uid />
+      <Shortcut1View />
+      <Shortcut1Param />
+      <Customize2Shortcut />
+      <Shortcut2Type />
+      <Shortcut2Uid />
+      <Shortcut2View />
+      <Shortcut2Param />
+      <Customize3Shortcut />
+      <Shortcut3Type />
+      <Shortcut3Uid />
+      <Shortcut3View />
+      <Shortcut3Param />
+      <Customize4Shortcut />
+      <Shortcut4Type />
+      <Shortcut4Uid />
+      <Shortcut4View />
+      <Shortcut4Param />
+      <Shortcut1ItemId>first</Shortcut1ItemId>
+      <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+      <Shortcut2ItemId>second</Shortcut2ItemId>
+      <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+      <Shortcut3ItemId>third</Shortcut3ItemId>
+      <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+      <Shortcut4ItemId>fourth</Shortcut4ItemId>
+      <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+      <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+      <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+      <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+      <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+      </Plugins>
+    <Plugins>
+        <Uid>0x2001f47f</Uid>
+      <BundleIdentifier>0</BundleIdentifier>
+      <TemplateIdentifier>0</TemplateIdentifier>
+      <LockingStatus>permanent</LockingStatus>
+      <ShortcutWidget>0</ShortcutWidget>
+      <Customize1Shortcut>0</Customize1Shortcut>
+      <Shortcut1Type />
+      <Shortcut1Uid />
+      <Shortcut1View />
+      <Shortcut1Param />
+      <Customize2Shortcut />
+      <Shortcut2Type />
+      <Shortcut2Uid />
+      <Shortcut2View />
+      <Shortcut2Param />
+      <Customize3Shortcut />
+      <Shortcut3Type />
+      <Shortcut3Uid />
+      <Shortcut3View />
+      <Shortcut3Param />
+      <Customize4Shortcut />
+      <Shortcut4Type />
+      <Shortcut4Uid />
+      <Shortcut4View />
+      <Shortcut4Param />
+      <Shortcut1ItemId>first</Shortcut1ItemId>
+      <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+      <Shortcut2ItemId>second</Shortcut2ItemId>
+      <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+      <Shortcut3ItemId>third</Shortcut3ItemId>
+      <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+      <Shortcut4ItemId>fourth</Shortcut4ItemId>
+      <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+      <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+      <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+      <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+      <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+      </Plugins>
+    <Plugins>
+        <Uid>0x2001f47f</Uid>
+      <BundleIdentifier>0</BundleIdentifier>
+      <TemplateIdentifier>0</TemplateIdentifier>
+      <LockingStatus>none</LockingStatus>
+      <ShortcutWidget>0</ShortcutWidget>
+      <Customize1Shortcut>0</Customize1Shortcut>
+      <Shortcut1Type />
+      <Shortcut1Uid />
+      <Shortcut1View />
+      <Shortcut1Param />
+      <Customize2Shortcut />
+      <Shortcut2Type />
+      <Shortcut2Uid />
+      <Shortcut2View />
+      <Shortcut2Param />
+      <Customize3Shortcut />
+      <Shortcut3Type />
+      <Shortcut3Uid />
+      <Shortcut3View />
+      <Shortcut3Param />
+      <Customize4Shortcut />
+      <Shortcut4Type />
+      <Shortcut4Uid />
+      <Shortcut4View />
+      <Shortcut4Param />
+      <Shortcut1ItemId>first</Shortcut1ItemId>
+      <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+      <Shortcut2ItemId>second</Shortcut2ItemId>
+      <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+      <Shortcut3ItemId>third</Shortcut3ItemId>
+      <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+      <Shortcut4ItemId>fourth</Shortcut4ItemId>
+      <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+      <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+      <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+      <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+      <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+      </Plugins>
+    </VGA_HomescreenPlugins_2>
+  </data>
+</configuration>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286ea.gcfml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+	<tag name="target" value="core"/>
+	<tag name="target" value="rofs2"/>
+	<tag name="target" value="rofs3"/>
+  <phase name='post'/> <!-- post phase for making sure that data for all homescreen widgets is available in sequence -->
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="viewconfiguration.xml" target="\private\200159c0\install\view2_200286ea\hsps\00\">
+	<setting ref="VGA_HomescreenPlugins_2/MaxWidgets"/>
+	<setting ref="VGA_HomescreenPlugins_2/UseEmptyWidgets"/>
+  <setting ref="VGA_HomescreenPlugins_2/ItemIdEmptyWidgets"/>
+  <setting ref="VGA_HomescreenPlugins_2/PropertyEmptyWidgets"/>
+  <setting ref="VGA_HomescreenPlugins_2/BackGroundPath"/>
+  <setting ref="VGA_HomescreenPlugins_2/ItemIdWallpaper"/> 
+  <setting ref="VGA_HomescreenPlugins_2/WallpaperPropertyName"/>
+	<setting ref="VGA_HomescreenPlugins_2/Shortcut1ItemId"/>
+  <setting ref="VGA_HomescreenPlugins_2/Shortcut1ItemName"/>
+  <setting ref="VGA_HomescreenPlugins_2/Shortcut2ItemId"/>
+  <setting ref="VGA_HomescreenPlugins_2/Shortcut2ItemName"/>
+  <setting ref="VGA_HomescreenPlugins_2/Shortcut3ItemId"/>
+  <setting ref="VGA_HomescreenPlugins_2/Shortcut3ItemName"/>
+  <setting ref="VGA_HomescreenPlugins_2/Shortcut4ItemId"/>
+  <setting ref="VGA_omescreenPlugins_2/Shortcut4ItemName"/>
+  <setting ref="VGA_HomescreenPlugins_2/ShortcutPropertyNameType"/>
+  <setting ref="VGA_HomescreenPlugins_2/ShortcutPropertyNameUid"/>
+  <setting ref="VGA_HomescreenPlugins_2/ShortcutPropertyNameView"/>
+  <setting ref="VGA_HomescreenPlugins_2/ShortcutPropertyNameParam"/>
+	<setting ref="VGA_HomescreenPlugins_2/Plugins"/>
+	<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+                xmlns:xi="http://www.w3.org/2001/xinclude">
+		<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+		<xsl:template match="configuration/data">
+			<configuration>
+			 <xsl:attribute name="max_child"><xsl:value-of select="VGA_HomescreenPlugins_2/MaxWidgets"/></xsl:attribute>
+				<control>
+				  <settings>
+				    <item>
+				      <xsl:attribute name="id"><xsl:value-of select="VGA_HomescreenPlugins_2/ItemIdEmptyWidgets"/></xsl:attribute>
+				        <property>
+					  <xsl:attribute name="name"><xsl:value-of select="VGA_HomescreenPlugins_2/PropertyEmptyWidgets"/></xsl:attribute>								             
+  					  <xsl:attribute name="value"><xsl:value-of select="VGA_HomescreenPlugins_2/UseEmptyWidgets"/></xsl:attribute>
+					</property>
+				      </item>
+				      <item>
+				        <xsl:attribute name="id"><xsl:value-of select="VGA_HomescreenPlugins_2/ItemIdWallpaper"/></xsl:attribute>
+					  <property>
+					    <xsl:attribute name="name"><xsl:value-of select="VGA_HomescreenPlugins_2/WallpaperPropertyName"/></xsl:attribute>								             
+  					    <xsl:attribute name="value"><xsl:value-of select="VGA_HomescreenPlugins_2/BackGroundPath"/></xsl:attribute>
+					  </property>
+					</item>      
+                                      </settings>
+				      <plugins>
+						<xsl:for-each select="VGA_HomescreenPlugins_2/Plugins">
+							<plugin>
+								<xsl:attribute name="uid"><xsl:value-of select="Uid"/></xsl:attribute>
+								<xsl:attribute name="bundle_id"><xsl:value-of select="BundleIdentifier"/></xsl:attribute>
+								<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">
+								    <initial_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>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameView"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut1View"/></xsl:attribute>
+								            </property>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameParam"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut1Param"/></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>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameView"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut2View"/></xsl:attribute>
+								            </property>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameParam"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut2Param"/></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>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameView"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut3View"/></xsl:attribute>
+								            </property>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameParam"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut3Param"/></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>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameView"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut4View"/></xsl:attribute>
+								            </property>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameParam"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut4Param"/></xsl:attribute>
+								            </property>
+								          </item>
+				                </xsl:if>
+				              </settings>
+				            </initial_settings>
+			            </xsl:if>
+							</plugin>
+						</xsl:for-each>
+					</plugins>
+				</control>
+			</configuration>
+		</xsl:template>
+	</xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
Binary file idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eamanifest.confml has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eamanifest.gcfml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+	<tag name="target" value="core"/>
+	<tag name="target" value="rofs2"/>
+	<tag name="target" value="rofs3"/>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="manifest.dat" target="\private\200159c0\install\view2_200286ea\hsps\00\">
+	<setting ref="VGAHomescreen2manifest/PackageVersion"/>
+	<setting ref="VGAHomescreen2manifest/DeviceFamily"/>
+	<setting ref="VGAHomescreen2manifest/ConfigurationType"/>
+	<setting ref="VGAHomescreen2manifest/InterfaceUid"/>
+	<setting ref="VGAHomescreen2manifest/ProviderUid"/>
+	<setting ref="VGAHomescreen2manifest/ConfigurationUid"/>
+	<setting ref="VGAHomescreen2manifest/FullName"/>
+	<setting ref="VGAHomescreen2manifest/ShortName"/>
+	<setting ref="VGAHomescreen2manifest/ConfigurationVersion"/>
+	<setting ref="VGAHomescreen2manifest/ConfigurationFile"/>
+	<setting ref="VGAHomescreen2manifest/UiResourceFile"/>
+		<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+                xmlns:xi="http://www.w3.org/2001/xinclude">
+		<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+		<xsl:template match="configuration/data">
+		<package>
+	  <xsl:attribute name="version"><xsl:value-of select="VGAHomescreen2manifest/PackageVersion"/></xsl:attribute>
+    <family>
+    <xsl:value-of select="VGAHomescreen2manifest/DeviceFamily"/>
+    </family>
+    <type>
+    <xsl:value-of select="VGAHomescreen2manifest/ConfigurationType"/>
+    </type>
+    <interfaceuid>
+    <xsl:value-of select="VGAHomescreen2manifest/InterfaceUid"/>
+    </interfaceuid>
+    <provideruid>
+    <xsl:value-of select="VGAHomescreen2manifest/ProviderUid"/>
+    </provideruid>
+    <configurationuid>
+    <xsl:value-of select="VGAHomescreen2manifest/ConfigurationUid"/>
+    </configurationuid>
+    <fullname>
+    <!--xsl:text>&#x26;</xsl:text-->
+    <xsl:value-of select="VGAHomescreen2manifest/FullName"/>
+    <!--xsl:text>&#x3B;</xsl:text-->
+    </fullname>
+    <shortname>
+    <xsl:value-of select="VGAHomescreen2manifest/ShortName"/>
+    </shortname>
+    <version>
+    <xsl:value-of select="VGAHomescreen2manifest/ConfigurationVersion"/>
+    </version>
+    <filexml>
+    <xsl:value-of select="VGAHomescreen2manifest/ConfigurationFile"/>
+    </filexml>
+    <localization>
+        <fileresource>
+        <xsl:value-of select="VGAHomescreen2manifest/UiResourceFile"/>
+        </fileresource>
+    </localization>
+  </package>
+  </xsl:template>
+	</xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
Binary file idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eaxuikon.confml has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/conf/view200286eaxuikon.gcfml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+	<tag name="target" value="core"/>
+	<tag name="target" value="rofs2"/>
+	<tag name="target" value="rofs3"/>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="empty.foo" target="\private\200159c0\install\view2_200286ea\xuikon\">
+	<setting ref="VGAHomescreen2XuikonFolder/FolderCFG"/>
+		<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+                xmlns:xi="http://www.w3.org/2001/xinclude">
+		<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+		<xsl:template match="configuration/data">
+		<whois>
+	  <xsl:attribute name="dude"><xsl:value-of select="VGAHomescreen2XuikonFolder/FolderCFG"/></xsl:attribute>
+	  </whois>
+  </xsl:template>
+	</xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/group/bld.inf	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,86 @@
+/*
+* 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/view2_200286ea/hsps/manifest.dat
+//../hsps/00/viewconfiguration.xml /epoc32/data/z/resource/homescreen/view2_200286ea/hsps/viewconfiguration.xml
+//../hsps/00/viewconfiguration.dtd /epoc32/data/z/resource/homescreen/view2_200286ea/hsps/viewconfiguration.dtd
+
+../xuikon/00/view.dat /epoc32/data/z/resource/homescreen/view2_200286ea/xuikon/view2_200286ea.dat
+../xuikon/00/view.xml /epoc32/data/z/resource/homescreen/view2_200286ea/xuikon/view.xml
+../xuikon/00/view.dtd /epoc32/data/z/resource/homescreen/view2_200286ea/xuikon/view.dtd
+../xuikon/00/view.css /epoc32/data/z/resource/homescreen/view2_200286ea/xuikon/view.css
+
+// Arabic languages
+//*****************
+../xuikon/37/view.css /epoc32/data/z/resource/homescreen/view2_200286ea/xuikon/37/view.css
+../xuikon/50/view.css /epoc32/data/z/resource/homescreen/view2_200286ea/xuikon/50/view.css
+../xuikon/57/view.css /epoc32/data/z/resource/homescreen/view2_200286ea/xuikon/57/view.css
+../xuikon/94/view.css /epoc32/data/z/resource/homescreen/view2_200286ea/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/view200286ea.confml   APP_LAYER_CONFML(view200286ea.confml)
+../conf/view200286ea.gcfml    APP_LAYER_GCFML(view200286ea.gcfml)
+../conf/view200286eamanifest.confml   APP_LAYER_CONFML(view200286eamanifest.confml)
+../conf/view200286eamanifest.gcfml    APP_LAYER_GCFML(view200286eamanifest.gcfml)
+../conf/view200286eaxuikon.confml   APP_LAYER_CONFML(view200286eaxuikon.confml)
+../conf/view200286eaxuikon.gcfml    APP_LAYER_GCFML(view200286eaxuikon.gcfml)
+// Support for S60 localization
+//*****************************
+//#ifndef __VIEWCONFIGURATION_LOC__
+//#define __VIEWCONFIGURATION_LOC__
+//../loc/viewconfiguration.loc APP_LAYER_LOC_EXPORT_PATH(viewconfiguration.loc)
+//#endif // __VIEWCONFIGURATION_LOC__
+
+#ifndef __VIEW_LOC__
+#define __VIEW_LOC__
+../loc/view.loc APP_LAYER_LOC_EXPORT_PATH(view.loc)
+#endif // __VIEW_LOC__
+
+// Support for S60 builds
+//***********************
+../rom/view_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(view2_200286ea_resources.iby)
+../rom/view_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view2_200286ea_customer.iby)
+../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view2_200286ea_variant.iby)
+//../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view2_200286ea.iby)
+
+
+// Dtd-localization
+//*****************
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME view2_200286ea
+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/vga_tch/view2_200286ea/hsps/00/manifest.dat	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<package version="2.0">
+
+    <family>vga_tch</family>
+    
+    <type>view</type>
+
+    <!-- interface uid -->
+    <interfaceuid>0x2001f48a</interfaceuid>
+
+    <!-- vendor uid -->
+    <provideruid>0x101fb657</provideruid>
+
+    <!-- configuration uid -->
+    <configurationuid>0x200286ea</configurationuid>
+
+    <!-- description -->
+    <fullname>view2</fullname>
+    <shortname>ai3_nokia</shortname>
+    <version>1.0</version>
+
+    <!-- configuration -->
+    <filexml>viewconfiguration.xml</filexml>
+    
+    <!-- Name of the localization files -->
+    <!--filedtd>viewconfiguration.dtd</filedtd-->
+
+    <!-- Locale specific resources -->
+    <localization>
+        <fileresource>view.o0000</fileresource>
+    </localization>
+  
+</package>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/hsps/00/viewconfiguration.dtd	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+============================================================================
+<FileName: "viewconfiguration.dtd">
+
+<FileDescription: "Localization strings for HSPS view configuration">
+<FileVersion    : >
+
+<Copyright:
+"Copyright © 2005 Nokia Corporation.
+This material, including documentation and any related 
+computer programs, is protected by copyright controlled by 
+Nokia Corporation. All rights are reserved. Copying, 
+including reproducing, storing,  adapting or translating, any 
+or all of this material requires the prior written consent of 
+Nokia Corporation. This material also contains confidential 
+information which may not be disclosed to others without the 
+prior written consent of Nokia Corporation.">
+============================================================================
+-->
+
+<!--  LOCALISATION STRINGS  -->
+
+<!ENTITY qtn_view_configuration_name "ai3_nokia">
+
+
+<!-- End of File-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/hsps/00/viewconfiguration.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -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_vga_tch_view">
+                <property name="use_empty_widget" value="true"/>
+            </item>
+            <item id="wallpaper">
+                <property name="path" value=""/>
+            </item>
+        </settings>
+        <plugins>
+            <plugin uid="0x200286e6" bundle_id="0" template_id="0" locking_status="permanent"/>
+            <plugin uid="0x200286e7" bundle_id="0" template_id="0" locking_status="permanent"/>
+            <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="permanent"/>
+            <plugin uid="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>
+    </control>
+</configuration>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/loc/view.loc	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,322 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Localization strings for project Active Idle 3
+*
+*/
+
+// d: Help
+// l: list_single_pane_t1_cp2
+// w: 
+// r: TB9.2
+#define qtn_options_help "Help"
+
+// d: Open
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define qtn_msk_open "Open"
+
+// d: Done
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_done "Done"
+
+// d: Open 
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_options_open "Open"
+
+// d: Back
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_back "Back"
+
+// d: Empty string
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define shortcut_emptycaption " "
+
+// d: Add page
+// l: list_single_pane_t1_cp2
+// w: 
+// r: TB9.2
+#define qtn_hs_add_page "Add page"
+
+// d: Select
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_options_select_widget "Select"
+
+// d: Add content
+// l: list_single_pane_t1_cp2
+// w: 
+// r: TB9.2
+#define qtn_hs_add_widget "Add content"
+
+// d: Access the widget catalog
+// l: list_single_pane_t1_cp2
+// w: 
+// r: TB9.2
+#define qtn_hs_widget_catalog "Widget catalog"
+
+// d: Search
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_search "Search"
+
+// d: Options
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_options "Options"
+
+// d: Refresh 
+// l: list_single_pane_t1_cp2/opt3
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_widget "Refresh"
+
+// d: Focused widget
+// l: list_single_popup_submenu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_one_widget "One"
+
+// d: All widgets 
+// l: list_single_popup_submenu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_all_widgets "All"
+
+// d: Remove content 
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_remove_widget "Remove content"
+
+// d: Hide the content 
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_hide_widgets "Hide the content"
+
+// d: Edit contents 
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_edit_content "Edit content"
+
+// d: Change Wallpaper
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_wallpaper "Change Wallpaper"
+
+// d: Change Shortcut Settings
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_shortcut_settings "Change Shortcut Settings"
+
+// d: Widget settings
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_widget_settings "Widget settings"
+
+// d: Show widgets
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_show_widgets "Show the content"
+
+// d: Change Home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_page "Change Home screen page"
+
+// d: Change
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define qtn_msk_change "Change"
+
+// d: Show all profiles in Profiles widget
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_show_profiles "Show all profiles"
+
+// d: Right selection key
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_set_right_idle_softkey "Right selection key"
+
+// d: Select
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_select "Select"
+
+// d: Cancel
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_cancel "Cancel"
+
+// d: Options menu item which switches home to online. Web widgets get updates from network.
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_online "Switch Home to online"
+
+// d: Options menu item which switches home to offline. Web widgets are not updated
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_offline "Switch Home to offline"
+
+// d: String which is shown in long tap menu of Home screen if tapped widget has settings
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_settings "Settings"
+
+// d: String which is shown in long tap menu of Home screen if tapped some widget which is removable
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_remove_element "Remove"
+
+// d: String which is shown in long tap menu of Home screen if tapped empty space in home screen
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_add "Add content"
+
+// d: String which is shown in long tap menu of Home screen
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_change_longtap_wallpaper "Change wallpaper"
+
+// d: User can download new HS widgets. String is visible in add content list query
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_download_new_widgets "Download"
+
+// d: Changes focused widget
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_edit_replace "Replace"
+
+// d: deletes current home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_options_delete "Delete page"
+
+// d: creates new home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_options_new "New page"
+
+// d: view title in editing mode
+// l: title_pane_t2
+// w:
+// r: TB9.2
+#define qtn_hs_title_editing_view "Editing view"
+
+// d: Call
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_call "Call"
+
+// d: Added new option menu item to Edit mode for opening the widget catalog,
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_edit_widget_catalog "Widget Catalog"
+
+// d: Deletes the current Home screen page and focus goes to the next available Home screen page in Edit mode
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_edit_options_delete "Delete page"
+
+// d: Done
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_done "Done"
+
+// d: Search
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_search "Search"
+
+// d: Options
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_options "Options"
+
+// d: Back
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_back "Back"
+
+// d: Select
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_select "Select"
+
+// d: Cancel
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_cancel "Cancel"
+
+// d: Call
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_call "Call"
+
+// d: Lock keypad
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_lock_keypad "Lock keypad"
+
+// d: Menu
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_apps_menu_skey "Menu"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/loc/viewconfiguration.loc	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,27 @@
+/*
+* 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 view2 plugin configuration (HSPS)
+*
+*/
+
+
+<!--  LOCALISATION STRINGS  -->
+// d: AI3 View
+// l: ai_gene_pane_1_t1
+// w:
+// r: TB9.2
+//#define qtn_view_configuration_name  "AI3 View"
+
+
+<!-- End of File-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/rom/view.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  View widget HSPS-plugin IBY file.
+*
+*/
+
+
+#ifndef __AI3VIEW_200286EA_IBY__
+#define __AI3VIEW_200286EA_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools
+data=ZPRIVATE\200159c0\install\view2_200286ea\hsps\00\manifest.dat \private\200159c0\install\view2_200286ea\hsps\00\manifest.dat
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __AI3VIEW_200286EA_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/rom/view_customer.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  View widget HSPS-plugin language specific IBY file.
+*
+*/
+
+
+#ifndef __AI3VIEW_200286EA_CUSTOMER_IBY__
+#define __AI3VIEW_200286EA_CUSTOMER_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\view2_200286ea\xuikon\00\view.o0000 \private\200159c0\install\view2_200286ea\xuikon\00\view.o0000
+//data=ZPRIVATE\200159c0\install\view2_200286ea\hsps\00\viewconfiguration.dtd \private\200159c0\install\view2_200286ea\hsps\00\viewconfiguration.dtd
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __AI3VIEW_200286EA_CUSTOMER_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/rom/view_resources.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  View widget HSPS-plugin language specific IBY file.
+*
+*/
+
+
+#ifndef __AI3VIEW_200286EA_RESOURCES_IBY__
+#define __AI3VIEW_200286EA_RESOURCES_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\view2_200286ea\xuikon\00\view.o0000 \private\200159c0\install\view2_200286ea\xuikon\00\view.o0000
+//data=ZPRIVATE\200159c0\install\view2_200286ea\hsps\00\viewconfiguration.dtd \private\200159c0\install\view2_200286ea\hsps\00\viewconfiguration.dtd
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __AI3VIEW_200286EA_RESOURCES_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/rom/view_variant.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  View widget HSPS-plugin variant specific IBY file.
+*
+*/
+
+
+#ifndef __AI3VIEW_200286EA_VARIANT_IBY__
+#define __AI3VIEW_200286EA_VARIANT_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by variation tools, variant specific
+data=ZPRIVATE\200159c0\install\view2_200286ea\hsps\00\viewconfiguration.xml \private\200159c0\install\view2_200286ea\hsps\00\viewconfiguration.xml
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __AI3VIEW_200286EA_VARIANT_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/00/View.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+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: tb;
+}
+
+plugin.miniplugins
+{
+    height: 115px; 
+    width: 176px;
+
+    margin-top: 9px;
+    margin-left: 9px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+plugin.plugins
+{
+    height: 115px; 
+    width: 436px;
+
+    margin-top: 9px;
+    margin-left: 10px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+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/vga_tch/view2_200286ea/xuikon/00/View.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,289 @@
+<?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_vga_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"/>
+                </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"/>
+                </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="miniplugins" actionshandler="plugin_actions">
+            </plugin>
+            <plugin id="plugin2" class="miniplugins" actionshandler="plugin_actions">
+            </plugin>
+            <plugin id="plugin3" class="miniplugins" actionshandler="plugin_actions">
+            </plugin>
+            <plugin id="plugin4" class="plugins" actionshandler="plugin_actions">
+            </plugin>
+            <plugin id="plugin5" class="plugins" actionshandler="plugin_actions">
+            </plugin>
+            <plugin id="plugin6" class="plugins" actionshandler="plugin_actions">
+            </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>
+                <menuitemgroup id="ContextMenu/EditMode">
+                    <property name="hs_remove_widget"/>
+                    <property name="hs_widget_settings"/>
+                    <property name="hs_widget_general_1"/>
+                    <property name="hs_widget_general_2"/>
+                </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="&qtn_hs_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="#Menu">
+            	<actions>
+            		<action>
+            			<trigger name="activate"/>
+            			<event name="EventHandler/LaunchApp" uid="0x101F4CD2"/>
+            		</action>
+            	</actions>
+            </softkey>
+            <softkey id="rsk" type="right" mode="mode_callactive" label="#Menu">
+            	<actions>
+            		<action>
+            			<trigger name="activate"/>            			
+            			<event name="EventHandler/LaunchApp" uid="0x101F4CD2"/>
+            		</action>
+            	</actions>
+            </softkey>
+            <softkey id="rsk_done" type="right" mode="mode_edit" label="&qtn_hs_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/vga_tch/view2_200286ea/xuikon/00/view.dat	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<data>
+    <AppUid>E029CF57</AppUid>
+    <Provideruid>101FB657</Provideruid>
+    <ThemeUid>11001234</ThemeUid>
+    <ThemeFullName>Nokia</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/vga_tch/view2_200286ea/xuikon/00/view.dtd	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,514 @@
+<?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 "nhd_control_pane_t2/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 "nhd_control_pane_t2/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 "nhd_control_pane_t2/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 "nhd_control_pane_t2/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 "nhd_control_pane_t2/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 "nhd_control_pane_t2/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 "nhd_control_pane_t2/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">
+
+<!--
+qtn_hs_text_softkey_done.attributes
+qtn_hs_text_softkey_done.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_done.release "TB9.2"
+qtn_hs_text_softkey_done.description "Done"
+qtn_hs_text_softkey_done.grammar "Done"
+qtn_hs_text_softkey_done.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_done "Done">
+
+<!--
+qtn_hs_text_softkey_search.attributes
+qtn_hs_text_softkey_search.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_search.release "TB9.2"
+qtn_hs_text_softkey_search.description "Search"
+qtn_hs_text_softkey_search.grammar "Search"
+qtn_hs_text_softkey_search.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_search "Search">
+
+<!--
+qtn_hs_text_softkey_options.attributes
+qtn_hs_text_softkey_options.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_options.release "TB9.2"
+qtn_hs_text_softkey_options.description "Options"
+qtn_hs_text_softkey_options.grammar "Options"
+qtn_hs_text_softkey_options.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_options "Options">
+
+<!--
+qtn_hs_text_softkey_back.attributes
+qtn_hs_text_softkey_back.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_back.release "TB9.2"
+qtn_hs_text_softkey_back.description "Back text for SK2"
+qtn_hs_text_softkey_back.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_back "Back">
+
+<!--
+qtn_hs_text_softkey_select.attributes
+qtn_hs_text_softkey_select.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_select.release "TB9.2"
+qtn_hs_text_softkey_select.description "Select"
+qtn_hs_text_softkey_select.grammar "Select"
+qtn_hs_text_softkey_select.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_select "Select">
+
+<!--
+qtn_hs_text_softkey_cancel.attributes
+qtn_hs_text_softkey_cancel.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_cancel.release "TB9.2"
+qtn_hs_text_softkey_cancel.description "Cancel"
+qtn_hs_text_softkey_cancel.grammar "Cancel"
+qtn_hs_text_softkey_cancel.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_cancel "Cancel">
+
+<!--
+qtn_hs_text_softkey_call.attributes
+qtn_hs_text_softkey_call.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_call.release "TB9.2"
+qtn_hs_text_softkey_call.description "RSK caption call inactive"
+qtn_hs_text_softkey_call.parents ""
+-->
+<!ENTITY qtn_hs_text_softkey_call "Call">
+
+<!--
+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 "Lock keypad"
+qtn_hs_page_edit_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_lock_keypad "Lock keypad">
+
+<!--
+qtn_hs_text_softkey_call.attributes
+qtn_hs_text_softkey_call.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_call.release "TB9.2"
+qtn_hs_text_softkey_call.description "RSK caption"
+qtn_hs_text_softkey_call.parents ""
+-->
+<!ENTITY qtn_hs_apps_menu_skey "Menu">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view2_200286ea/xuikon/37/view.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view 
+{
+    direction: rtl;
+    block-progression: tb;
+    background-image: wallpaper;
+    swipe: true;
+
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+    direction: rtl;
+    block-progression: tb;
+}
+
+plugin.miniplugins
+{
+    height: 115px; 
+    width: 176px;
+
+    margin-top: 9px;
+    margin-right: 9px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+plugin.plugins
+{
+    height: 115px; 
+    width: 436px;
+
+    margin-top: 9px;
+    margin-right: 10px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+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/vga_tch/view2_200286ea/xuikon/50/view.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view 
+{
+    direction: rtl;
+    block-progression: tb;
+    background-image: wallpaper;
+    swipe: true;
+
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+    direction: rtl;
+    block-progression: tb;
+}
+
+plugin.miniplugins
+{
+    height: 115px; 
+    width: 176px;
+
+    margin-top: 9px;
+    margin-right: 9px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+plugin.plugins
+{
+    height: 115px; 
+    width: 436px;
+
+    margin-top: 9px;
+    margin-right: 10px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+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/vga_tch/view2_200286ea/xuikon/57/view.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view 
+{
+    direction: rtl;
+    block-progression: tb;
+    background-image: wallpaper;
+    swipe: true;
+
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+    direction: rtl;
+    block-progression: tb;
+}
+
+plugin.miniplugins
+{
+    height: 115px; 
+    width: 176px;
+
+    margin-top: 9px;
+    margin-right: 9px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+plugin.plugins
+{
+    height: 115px; 
+    width: 436px;
+
+    margin-top: 9px;
+    margin-right: 10px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+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/vga_tch/view2_200286ea/xuikon/94/view.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view 
+{
+    direction: rtl;
+    block-progression: tb;
+    background-image: wallpaper;
+    swipe: true;
+
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+    direction: rtl;
+    block-progression: tb;
+}
+
+plugin.miniplugins
+{
+    height: 115px; 
+    width: 176px;
+
+    margin-top: 9px;
+    margin-right: 9px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+plugin.plugins
+{
+    height: 115px; 
+    width: 436px;
+
+    margin-top: 9px;
+    margin-right: 10px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+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/vga_tch/view3_200286eb/conf/view200286eb.confml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,483 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration name="Homescreen 3" version="1" xmlns="http://www.s60.com/xml/confml/2" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <feature name="VGA Homescreen 3 widgets" ref="VGA_HomescreenPlugins_3">
+    <setting name="Max Widgets" ref="MaxWidgets" type="string">
+      <desc>Maximum widget amount in Homescreen 3 page. Customizable</desc>
+    </setting>
+  <setting name="Use Empty Widgets" readOnly="true" ref="UseEmptyWidgets" type="boolean">
+      <desc>Not customizable!</desc>
+    </setting>
+  <setting name="Item id for empty widgets definition in view" readOnly="true" ref="ItemIdEmptyWidgets" type="string">
+      <desc>Not customizable!</desc>
+    </setting>
+  <setting name="Property name for empty widgets definition in view" readOnly="true" ref="PropertyEmptyWidgets" type="string">
+      <desc>Not customizable!</desc>
+    </setting>
+  <setting name="background path" ref="BackGroundPath" type="string">
+      <desc>Path of the Wallpaper resource. Customizable. </desc>
+    </setting>
+  <setting name="Item id wallpaper" readOnly="true" ref="ItemIdWallpaper" type="string">
+      <desc>Not customizable!</desc>
+    </setting>
+  <setting name="Wallpaper property name" readOnly="true" ref="WallpaperPropertyName" type="string">
+      <desc>Not customizable!</desc>
+    </setting>
+  <setting name="Widgets" ref="Plugins" type="sequence">
+      <desc>Widgets in the Homescreen 3</desc>
+    <setting name="Widget" ref="Uid" type="string">
+      <desc>Widget name</desc>
+      <option name="Empty" value="0x2001f47f" />
+      <option name="ClockDate" value="0x200286E6" />
+      <option name="Desktop" value="0x20018EEE" />
+      <option name="Profilemode" value="0x200286e7" />
+      <option name="wrtplugin_1" value="0x20022FD4"/>
+      <option name="wrtplugin_2" value="0x20022FD5"/>
+      <option name="wrtplugin_3" value="0x20022FD6"/>
+      <option name="wrtplugin_4" value="0x20022FD7"/>
+      <option name="wrtplugin_5" value="0x20022FD8"/>
+      <option name="wrtplugin_6" value="0x20022FD9"/>
+      <option name="wrtplugin_7" value="0x20022FDA"/>
+      <option name="wrtplugin_8" value="0x20022FDB"/>
+      <option name="wrtplugin_9" value="0x2001CB7D"/>
+      <option name="wrtplugin_10" value="0x2001CB7E"/>
+      <option name="wrtplugin_11" value="0x2001CB7F"/>
+      <option name="wrtplugin_12" value="0x200286EE"/>
+    </setting>
+    <setting name="Bundle Identifier" ref="BundleIdentifier" type="string">
+        <desc>Bundle identifier for the (C)WRT widgets. None for the native widgets</desc>
+        <option name="None / Automatic" value="0" />
+	<option name="8TV Catch Up" value="com.nerdattack.widget.8TV"/>
+        <option name="Aftonbladet WebbTV" value="apegroup.aftonbladet.webbtv.symbian3"/>
+        <option name="Al Jazeera" value="si.inova.verve.aljazeera"/>
+        <option name="BBC Arabic Web TV" value="com.nokia.forum.bbcatv1.widget"/>
+        <option name="BH TV" value="com.bollywoodhungama.widget.BollywoodHungamaTV"/>
+        <option name="Channel NewsAsia" value="Channel.newsasia"/>
+        <option name="CNN Video" value="com.cnn"/>
+        <option name="DigiturkWebTV" value="com.digiturkwebtv.widget"/>
+        <option name="EFE Videos" value="com.ericsson.efe.widget"/>
+        <option name="E!" value="com.moderati.eonline"/>
+        <option name="Bollywood" value="br.org.indt.widget.eros"/>
+        <option name="Ovi Files" value="com.nokia.ss.sas.filesql"/>
+        <option name="Hi5" value="com.hi5.widget.Launcher"/>
+        <option name="凤凰电视" value="com.ifeng.www.webtv.widget"/>
+        <option name="Chat" value="com.nokia.ChatClient"/>
+        <option name="芒果 TV" value="com.imgo.tv"/>
+        <option name="India Today" value="br.org.indt.widget.indiatoday"/>
+        <option name="BBC iPlayer" value="com.bbc.widget.iplayer"/>
+        <option name="Contacts' latest activities" value="com.nokia.somawebui.xwidget"/>
+        <option name="M1TV" value="com.m1tv.basic.widget"/>
+        <option name="Makansutr" value="com.nerdattack.wrt.Makansutra"/>
+        <option name="bose" value="com.bose.basic.widget"/>
+        <option name="SingTel MTVS" value="com.nokia.widget.sapi.mtvs"/>
+        <option name="Nat Geo" value="com.natgeo"/>
+        <option name="NRK Mobil-TV" value="no.nrk.mobil.mobiltv.widget"/>
+        <option name="ontv" value="ontv.cc.on.tv.widget"/>
+        <option name="ovi" value="com.nokia.ovi"/>
+        <option name="Movie Teasers" value="com.movieteasers"/>
+        <option name="Schweizer Fernsehen" value="com.sftvreader.basic.widget"/>
+        <option name="Sky News On Demand" value="com.nerdattack.widget.SKYNEWS"/>
+        <option name="Social" value="com.nokia.socialmixer.v1"/>
+        <option name="æœç‹å¨±ä¹" value="com.sohu.widget.webtv4ovi"/>
+        <option name="SSOUI" value="ovi.serviceui.SSOUI"/>
+        <option name="Terra TV" value="com.terra.widget.wrt.tv"/>
+        <option name="Terra TV Lat" value="com.terra.widget.wrt.tv.latam"/>
+        <option name="topApps" value="com.topApps.basic.widget"/>
+        <option name="Tudou" value="com.Tudou.widget"/>
+        <option name="tv2news" value="com.nokia.forum.widget.tv2news"/>
+        <option name="TV2Play" value="no.tv2.tv2play.widget"/>
+        <option name="TV3 Catch Up" value="com.nerdattack.widget.TV3"/>
+        <option name="ВеÑти" value="com.vesti.basic.widget"/>
+        <option name="Viasat No" value="no.viasat.widget"/>
+        <option name="Viasat Swe" value="se.viasat.widget"/>
+        <option name="Virtual Malaysia" value="com.nerdattack.widget.VirtualMalaysia"/>
+        <option name="央广新浪" value="cn.com.sina.3g"/>
+        <option name="Web TV Demo" value="com.nokia.forum.webtv.widget"/>
+        <option name="Yle Areena" value="com.tieto.yle"/>
+        <option name="优酷" value="com.youku.s605th.webtv"/>
+      </setting>
+    <setting name="Template Identifier" ref="TemplateIdentifier" type="selection">
+        <desc>Templeate identifier for the (C)WRT widgets. None for the native widgets</desc>
+      <option name="None" value="0" />
+      <option name="Single row icon widget template" value="0x2001FDC0" />
+      <option name="Single row widget template" value="0x2001FDC1" />
+      <option name="Double row icon widget template" value="0x2001FDBD" />
+      <option name="Double row widget template" value="0x2001FDC2" />
+      <option name="Triple row icon widget template" value="0x2001FDBE" />
+      <option name="Triple row widget template" value="0x2001FDBF" />
+      <option name="Wideimage template" value="0x10009DFF" />
+      </setting>
+    <setting name="locking Status" ref="LockingStatus" type="selection">
+        <desc>Locking status for the widget 1 in Homescreen 3 page</desc>
+      <option name="None" value="none" />
+      <option name="Locked" value="locked" />
+      <option name="Permanent" value="permanent" />
+      </setting>
+    <setting name="Customize Shortcut widget" ref="ShortcutWidget" type="selection">
+        <desc>Customize enabler for desktop/shortcut widget</desc>
+      <option name="Not Customize desktop Widget" value="0" />
+      <option name="Customize desktop widget" value="1" />
+      </setting>
+    <setting name="Customize 1st Shortcut" ref="Customize1Shortcut" type="selection">
+        <desc>Customize 1st item in desktop widget</desc>
+      <option name="Not Customize 1st shortcut" value="0" />
+      <option name="Customize 1st shortcut" value="1" />
+      </setting>
+    <setting name="1st Shortcut type" ref="Shortcut1Type" type="selection">
+        <desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
+      <option name="Application" value="application" />
+      <option name="Bookmark" value="bookmark" />
+      <option name="Shortcut" value="shortcut" />
+      </setting>
+    <setting name="1st Shortcut Uid" ref="Shortcut1Uid" type="string">
+        <desc>Uid for the application, Menu content Uid for the bookmarks and shortcuts.</desc>
+      </setting>
+    <setting name="1st Shortcut View" ref="Shortcut1View" type="string">
+        <desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
+      </setting>
+    <setting name="1st Shortcut Param" ref="Shortcut1Param" type="string">
+        <desc>Params for shortcut. For example: messaging:msg</desc>
+      </setting>
+    <setting name="Customize 2nd Shortcut" ref="Customize2Shortcut" type="selection">
+        <desc>Customize 2nd item in desktop widget</desc>
+      <option name="Not Customize 2nd shortcut" value="0" />
+      <option name="Customize 2nd shortcut" value="1" />
+      </setting>
+    <setting name="2nd Shortcut Application" ref="Shortcut2Type" type="selection">
+        <desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
+      <option name="Application" value="application" />
+      <option name="Bookmark" value="bookmark" />
+      <option name="Shortcut" value="shortcut" />
+      </setting>
+    <setting name="2nd Shortcut Uid" ref="Shortcut2Uid" type="string">
+        <desc>Uid for the application, Menu content Uid for the bookmarks and shortcuts</desc>
+      </setting>
+    <setting name="2nd Shortcut View" ref="Shortcut2View" type="string">
+        <desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
+      </setting>
+    <setting name="2nd Shortcut Param" ref="Shortcut2Param" type="string">
+        <desc>Params for shortcut. messaging:msg</desc>
+      </setting>
+    <setting name="Customize 3rd Shortcut" ref="Customize3Shortcut" type="selection">
+        <desc>Customize 3rd item in desktop widget</desc>
+      <option name="Not Customize 3rd shortcut" value="0" />
+      <option name="Customize 3rd shortcut" value="1" />
+      </setting>
+    <setting name="3rd Shortcut Application" ref="Shortcut3Type" type="selection">
+        <desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
+      <option name="Application" value="application" />
+      <option name="Bookmark" value="bookmark" />
+      <option name="Shortcut" value="shortcut" />
+      </setting>
+    <setting name="3rd Shortcut Uid" ref="Shortcut3Uid" type="string">
+        <desc>Uid for the application,Menu content  Uid for the bookmarks and shortcuts.</desc>
+      </setting>
+    <setting name="3rd Shortcut View" ref="Shortcut3View" type="string">
+        <desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
+      </setting>
+    <setting name="3rd Shortcut Param" ref="Shortcut3Param" type="string">
+        <desc>Params for shortcut. messaging:msg</desc>
+      </setting>
+    <setting name="Customize 4th Shortcut" ref="Customize4Shortcut" type="selection">
+        <desc>Customize 4th item in desktop widget</desc>
+      <option name="Not Customize 4th shortcut" value="0" />
+      <option name="Customize 4th shortcut" value="1" />
+      </setting>
+    <setting name="4th ShortCut Application" ref="Shortcut4Type" type="selection">
+        <desc>Type of the item: Application, bookmark, or shortcut(param specific item)</desc>
+      <option name="Application" value="application" />
+      <option name="Bookmark" value="bookmark" />
+      <option name="Shortcut" value="shortcut" />
+      </setting>
+    <setting name="4th Shortcut Uid" ref="Shortcut4Uid" type="string">
+        <desc>Uid for the application, Menu content  ids for the bookmarks and shortcuts </desc>
+      </setting>
+    <setting name="4th Shortcut View" ref="Shortcut4View" type="string">
+        <desc>url for the bookmark based shortcut. for example http://www.google.com</desc>
+      </setting>
+    <setting name="4th Shortcut Param" ref="Shortcut4Param" type="string">
+        <desc>Params for shortcut. messaging:msg</desc>
+      </setting>
+    <setting name="Shortcut1 ItemId" readOnly="true" ref="Shortcut1ItemId" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut1 ItemName" readOnly="true" ref="Shortcut1ItemName" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut2 ItemId" readOnly="true" ref="Shortcut2ItemId" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut2 ItemName" readOnly="true" ref="Shortcut2ItemName" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut3 ItemId" readOnly="true" ref="Shortcut3ItemId" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut3 ItemName" readOnly="true" ref="Shortcut3ItemName" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut4 ItemId" readOnly="true" ref="Shortcut4ItemId" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut4 ItemName" readOnly="true" ref="Shortcut4ItemName" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut PropertyNameType" readOnly="true" ref="ShortcutPropertyNameType" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut PropertyNameUid" readOnly="true" ref="ShortcutPropertyNameUid" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut PropertyNameView" readOnly="true" ref="ShortcutPropertyNameView" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    <setting name="Shortcut PropertyNameParam" readOnly="true" ref="ShortcutPropertyNameParam" type="string">
+        <desc>Not customizable!</desc>
+      </setting>
+    </setting>
+  </feature>
+<data>
+    <VGA_HomescreenPlugins_3>
+      <MaxWidgets>6</MaxWidgets>
+    <UseEmptyWidgets>true</UseEmptyWidgets>
+    <ItemIdEmptyWidgets>hs_vga_tch_view</ItemIdEmptyWidgets>
+    <PropertyEmptyWidgets>use_empty_widget</PropertyEmptyWidgets>
+    <ItemIdWallpaper>wallpaper</ItemIdWallpaper>
+    <WallpaperPropertyName>path</WallpaperPropertyName>
+    <BackGroundPath />
+    <Plugins extensionPolicy="replace">
+        <Uid>0x2001f47f</Uid>
+      <BundleIdentifier>0</BundleIdentifier>
+      <TemplateIdentifier>0</TemplateIdentifier>
+      <LockingStatus>permanent</LockingStatus>
+      <ShortcutWidget>0</ShortcutWidget>
+      <Customize1Shortcut>0</Customize1Shortcut>
+      <Shortcut1Type />
+      <Shortcut1Uid />
+      <Shortcut1View />
+      <Shortcut1Param />
+      <Customize2Shortcut />
+      <Shortcut2Type />
+      <Shortcut2Uid />
+      <Shortcut2View />
+      <Shortcut2Param />
+      <Customize3Shortcut />
+      <Shortcut3Type />
+      <Shortcut3Uid />
+      <Shortcut3View />
+      <Shortcut3Param />
+      <Customize4Shortcut />
+      <Shortcut4Type />
+      <Shortcut4Uid />
+      <Shortcut4View />
+      <Shortcut4Param />
+      <Shortcut1ItemId>first</Shortcut1ItemId>
+      <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+      <Shortcut2ItemId>second</Shortcut2ItemId>
+      <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+      <Shortcut3ItemId>third</Shortcut3ItemId>
+      <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+      <Shortcut4ItemId>fourth</Shortcut4ItemId>
+      <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+      <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+      <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+      <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+      <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+      </Plugins>
+    <Plugins>
+        <Uid>0x2001f47f</Uid>
+      <BundleIdentifier>0</BundleIdentifier>
+      <TemplateIdentifier>0</TemplateIdentifier>
+      <LockingStatus>permanent</LockingStatus>
+      <ShortcutWidget>0</ShortcutWidget>
+      <Customize1Shortcut>0</Customize1Shortcut>
+      <Shortcut1Type />
+      <Shortcut1Uid />
+      <Shortcut1View />
+      <Shortcut1Param />
+      <Customize2Shortcut />
+      <Shortcut2Type />
+      <Shortcut2Uid />
+      <Shortcut2View />
+      <Shortcut2Param />
+      <Customize3Shortcut />
+      <Shortcut3Type />
+      <Shortcut3Uid />
+      <Shortcut3View />
+      <Shortcut3Param />
+      <Customize4Shortcut />
+      <Shortcut4Type />
+      <Shortcut4Uid />
+      <Shortcut4View />
+      <Shortcut4Param />
+      <Shortcut1ItemId>first</Shortcut1ItemId>
+      <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+      <Shortcut2ItemId>second</Shortcut2ItemId>
+      <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+      <Shortcut3ItemId>third</Shortcut3ItemId>
+      <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+      <Shortcut4ItemId>fourth</Shortcut4ItemId>
+      <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+      <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+      <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+      <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+      <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+      </Plugins>
+    <Plugins>
+        <Uid>0x2001f47f</Uid>
+      <BundleIdentifier>0</BundleIdentifier>
+      <TemplateIdentifier>0</TemplateIdentifier>
+      <LockingStatus>permanent</LockingStatus>
+      <ShortcutWidget>0</ShortcutWidget>
+      <Customize1Shortcut>0</Customize1Shortcut>
+      <Shortcut1Type />
+      <Shortcut1Uid />
+      <Shortcut1View />
+      <Shortcut1Param />
+      <Customize2Shortcut />
+      <Shortcut2Type />
+      <Shortcut2Uid />
+      <Shortcut2View />
+      <Shortcut2Param />
+      <Customize3Shortcut />
+      <Shortcut3Type />
+      <Shortcut3Uid />
+      <Shortcut3View />
+      <Shortcut3Param />
+      <Customize4Shortcut />
+      <Shortcut4Type />
+      <Shortcut4Uid />
+      <Shortcut4View />
+      <Shortcut4Param />
+      <Shortcut1ItemId>first</Shortcut1ItemId>
+      <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+      <Shortcut2ItemId>second</Shortcut2ItemId>
+      <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+      <Shortcut3ItemId>third</Shortcut3ItemId>
+      <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+      <Shortcut4ItemId>fourth</Shortcut4ItemId>
+      <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+      <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+      <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+      <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+      <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+      </Plugins>
+    <Plugins>
+        <Uid>0x2001f47f</Uid>
+      <BundleIdentifier>0</BundleIdentifier>
+      <TemplateIdentifier>0</TemplateIdentifier>
+      <LockingStatus>permanent</LockingStatus>
+      <ShortcutWidget>0</ShortcutWidget>
+      <Customize1Shortcut>0</Customize1Shortcut>
+      <Shortcut1Type />
+      <Shortcut1Uid />
+      <Shortcut1View />
+      <Shortcut1Param />
+      <Customize2Shortcut />
+      <Shortcut2Type />
+      <Shortcut2Uid />
+      <Shortcut2View />
+      <Shortcut2Param />
+      <Customize3Shortcut />
+      <Shortcut3Type />
+      <Shortcut3Uid />
+      <Shortcut3View />
+      <Shortcut3Param />
+      <Customize4Shortcut />
+      <Shortcut4Type />
+      <Shortcut4Uid />
+      <Shortcut4View />
+      <Shortcut4Param />
+      <Shortcut1ItemId>first</Shortcut1ItemId>
+      <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+      <Shortcut2ItemId>second</Shortcut2ItemId>
+      <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+      <Shortcut3ItemId>third</Shortcut3ItemId>
+      <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+      <Shortcut4ItemId>fourth</Shortcut4ItemId>
+      <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+      <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+      <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+      <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+      <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+      </Plugins>
+    <Plugins>
+        <Uid>0x2001f47f</Uid>
+      <BundleIdentifier>0</BundleIdentifier>
+      <TemplateIdentifier>0</TemplateIdentifier>
+      <LockingStatus>permanent</LockingStatus>
+      <ShortcutWidget>0</ShortcutWidget>
+      <Customize1Shortcut>0</Customize1Shortcut>
+      <Shortcut1Type />
+      <Shortcut1Uid />
+      <Shortcut1View />
+      <Shortcut1Param />
+      <Customize2Shortcut />
+      <Shortcut2Type />
+      <Shortcut2Uid />
+      <Shortcut2View />
+      <Shortcut2Param />
+      <Customize3Shortcut />
+      <Shortcut3Type />
+      <Shortcut3Uid />
+      <Shortcut3View />
+      <Shortcut3Param />
+      <Customize4Shortcut />
+      <Shortcut4Type />
+      <Shortcut4Uid />
+      <Shortcut4View />
+      <Shortcut4Param />
+      <Shortcut1ItemId>first</Shortcut1ItemId>
+      <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+      <Shortcut2ItemId>second</Shortcut2ItemId>
+      <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+      <Shortcut3ItemId>third</Shortcut3ItemId>
+      <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+      <Shortcut4ItemId>fourth</Shortcut4ItemId>
+      <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+      <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+      <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+      <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+      <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+      </Plugins>
+    <Plugins>
+        <Uid>0x2001f47f</Uid>
+      <BundleIdentifier>0</BundleIdentifier>
+      <TemplateIdentifier>0</TemplateIdentifier>
+      <LockingStatus>permanent</LockingStatus>
+      <ShortcutWidget>0</ShortcutWidget>
+      <Customize1Shortcut>0</Customize1Shortcut>
+      <Shortcut1Type />
+      <Shortcut1Uid />
+      <Shortcut1View />
+      <Shortcut1Param />
+      <Customize2Shortcut />
+      <Shortcut2Type />
+      <Shortcut2Uid />
+      <Shortcut2View />
+      <Shortcut2Param />
+      <Customize3Shortcut />
+      <Shortcut3Type />
+      <Shortcut3Uid />
+      <Shortcut3View />
+      <Shortcut3Param />
+      <Customize4Shortcut />
+      <Shortcut4Type />
+      <Shortcut4Uid />
+      <Shortcut4View />
+      <Shortcut4Param />
+      <Shortcut1ItemId>first</Shortcut1ItemId>
+      <Shortcut1ItemName>Shortcut1</Shortcut1ItemName>
+      <Shortcut2ItemId>second</Shortcut2ItemId>
+      <Shortcut2ItemName>Shortcut2</Shortcut2ItemName>
+      <Shortcut3ItemId>third</Shortcut3ItemId>
+      <Shortcut3ItemName>Shortcut3</Shortcut3ItemName>
+      <Shortcut4ItemId>fourth</Shortcut4ItemId>
+      <Shortcut4ItemName>Shortcut4</Shortcut4ItemName>
+      <ShortcutPropertyNameType>type</ShortcutPropertyNameType>
+      <ShortcutPropertyNameUid>uid</ShortcutPropertyNameUid>
+      <ShortcutPropertyNameView>view</ShortcutPropertyNameView>
+      <ShortcutPropertyNameParam>param</ShortcutPropertyNameParam>
+      </Plugins>
+    </VGA_HomescreenPlugins_3>
+  </data>
+</configuration>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286eb.gcfml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+	<tag name="target" value="core"/>
+	<tag name="target" value="rofs2"/>
+	<tag name="target" value="rofs3"/>
+  <phase name='post'/> <!-- post phase for making sure that data for all homescreen widgets is available in sequence -->
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="viewconfiguration.xml" target="\private\200159c0\install\view3_200286eb\hsps\00\">
+	<setting ref="VGA_HomescreenPlugins_3/MaxWidgets"/>
+	<setting ref="VGA_HomescreenPlugins_3/UseEmptyWidgets"/>
+  <setting ref="VGA_HomescreenPlugins_3/ItemIdEmptyWidgets"/>
+  <setting ref="VGA_HomescreenPlugins_3/PropertyEmptyWidgets"/>
+  <setting ref="VGA_HomescreenPlugins_3/BackGroundPath"/>
+  <setting ref="VGA_HomescreenPlugins_3/ItemIdWallpaper"/>
+  <setting ref="VGA_HomescreenPlugins_3/WallpaperPropertyName"/>
+	<setting ref="VGA_HomescreenPlugins_3/Shortcut1ItemId"/>
+  <setting ref="VGA_HomescreenPlugins_3/Shortcut1ItemName"/>
+  <setting ref="VGA_HomescreenPlugins_3/Shortcut2ItemId"/>
+  <setting ref="VGA_HomescreenPlugins_3/Shortcut2ItemName"/>
+  <setting ref="VGA_HomescreenPlugins_3/Shortcut3ItemId"/>
+  <setting ref="VGA_HomescreenPlugins_3/Shortcut3ItemName"/>
+  <setting ref="VGA_HomescreenPlugins_3/Shortcut4ItemId"/>
+  <setting ref="VGA_HomescreenPlugins_3/Shortcut4ItemName"/>
+  <setting ref="VGA_HomescreenPlugins_3/ShortcutPropertyNameType"/>
+  <setting ref="VGA_HomescreenPlugins_3/ShortcutPropertyNameUid"/>
+  <setting ref="VGA_HomescreenPlugins_3/ShortcutPropertyNameView"/>
+  <setting ref="VGA_HomescreenPlugins_3/ShortcutPropertyNameParam"/>
+	<setting ref="VGA_HomescreenPlugins_3/Plugins"/>
+	<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+                xmlns:xi="http://www.w3.org/2001/xinclude">
+		<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+		<xsl:template match="configuration/data">
+			<configuration>
+			 <xsl:attribute name="max_child"><xsl:value-of select="VGA_HomescreenPlugins_3/MaxWidgets"/></xsl:attribute>
+				<control>
+				  <settings>
+				    <item>
+				      <xsl:attribute name="id"><xsl:value-of select="VGA_HomescreenPlugins_3/ItemIdEmptyWidgets"/></xsl:attribute>
+				        <property>
+					  <xsl:attribute name="name"><xsl:value-of select="VGA_HomescreenPlugins_3/PropertyEmptyWidgets"/></xsl:attribute>								             
+  					  <xsl:attribute name="value"><xsl:value-of select="VGA_HomescreenPlugins_3/UseEmptyWidgets"/></xsl:attribute>
+					</property>
+				      </item>
+				      <item>
+				        <xsl:attribute name="id"><xsl:value-of select="VGA_HomescreenPlugins_3/ItemIdWallpaper"/></xsl:attribute>
+					  <property>
+					    <xsl:attribute name="name"><xsl:value-of select="VGA_HomescreenPlugins_3/WallpaperPropertyName"/></xsl:attribute>								             
+  					    <xsl:attribute name="value"><xsl:value-of select="VGA_HomescreenPlugins_3/BackGroundPath"/></xsl:attribute>
+					  </property>
+					</item>      
+                                      </settings>
+				      <plugins>
+						<xsl:for-each select="VGA_HomescreenPlugins_3/Plugins">
+							<plugin>
+								<xsl:attribute name="uid"><xsl:value-of select="Uid"/></xsl:attribute>
+								<xsl:attribute name="bundle_id"><xsl:value-of select="BundleIdentifier"/></xsl:attribute>
+								<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">
+								    <initial_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>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameView"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut1View"/></xsl:attribute>
+								            </property>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameParam"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut1Param"/></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>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameView"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut2View"/></xsl:attribute>
+								            </property>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameParam"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut2Param"/></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>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameView"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut3View"/></xsl:attribute>
+								            </property>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameParam"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut3Param"/></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>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameView"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut4View"/></xsl:attribute>
+								            </property>
+								            <property>
+								              <xsl:attribute name="name"><xsl:value-of select="ShortcutPropertyNameParam"/></xsl:attribute>
+								              <xsl:attribute name="value"><xsl:value-of select="Shortcut4Param"/></xsl:attribute>
+								            </property>
+								          </item>
+				                </xsl:if>
+				              </settings>
+				            </initial_settings>
+			            </xsl:if>
+							</plugin>
+						</xsl:for-each>
+					</plugins>
+				</control>
+			</configuration>
+		</xsl:template>
+	</xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
Binary file idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebmanifest.confml has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebmanifest.gcfml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+	<tag name="target" value="core"/>
+	<tag name="target" value="rofs2"/>
+	<tag name="target" value="rofs3"/>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="manifest.dat" target="\private\200159c0\install\view3_200286eb\hsps\00\">
+	<setting ref="VGAHomescreen3manifest/PackageVersion"/>
+	<setting ref="VGAHomescreen3manifest/DeviceFamily"/>
+	<setting ref="VGAHomescreen3manifest/ConfigurationType"/>
+	<setting ref="VGAHomescreen3manifest/InterfaceUid"/>
+	<setting ref="VGAHomescreen3manifest/ProviderUid"/>
+	<setting ref="VGAHomescreen3manifest/ConfigurationUid"/>
+	<setting ref="VGAHomescreen3manifest/FullName"/>
+	<setting ref="VGAHomescreen3manifest/ShortName"/>
+	<setting ref="VGAHomescreen3manifest/ConfigurationVersion"/>
+	<setting ref="VGAHomescreen3manifest/ConfigurationFile"/>
+	<setting ref="VGAHomescreen3manifest/UiResourceFile"/>
+		<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+                xmlns:xi="http://www.w3.org/2001/xinclude">
+		<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+		<xsl:template match="configuration/data">
+		<package>
+	  <xsl:attribute name="version"><xsl:value-of select="VGAHomescreen3manifest/PackageVersion"/></xsl:attribute>
+    <family>
+    <xsl:value-of select="VGAHomescreen3manifest/DeviceFamily"/>
+    </family>
+    <type>
+    <xsl:value-of select="VGAHomescreen3manifest/ConfigurationType"/>
+    </type>
+    <interfaceuid>
+    <xsl:value-of select="VGAHomescreen3manifest/InterfaceUid"/>
+    </interfaceuid>
+    <provideruid>
+    <xsl:value-of select="VGAHomescreen3manifest/ProviderUid"/>
+    </provideruid>
+    <configurationuid>
+    <xsl:value-of select="VGAHomescreen3manifest/ConfigurationUid"/>
+    </configurationuid>
+    <fullname>
+    <!--xsl:text>&#x26;</xsl:text-->
+    <xsl:value-of select="VGAHomescreen3manifest/FullName"/>
+    <!--xsl:text>&#x3B;</xsl:text-->
+    </fullname>
+    <shortname>
+    <xsl:value-of select="VGAHomescreen3manifest/ShortName"/>
+    </shortname>
+    <version>
+    <xsl:value-of select="VGAHomescreen3manifest/ConfigurationVersion"/>
+    </version>
+    <filexml>
+    <xsl:value-of select="VGAHomescreen3manifest/ConfigurationFile"/>
+    </filexml>
+    <localization>
+        <fileresource>
+        <xsl:value-of select="VGAHomescreen3manifest/UiResourceFile"/>
+        </fileresource>
+    </localization>
+  </package>
+  </xsl:template>
+	</xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
Binary file idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebxuikon.confml has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/conf/view200286ebxuikon.gcfml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<container xmlns="http://www.symbianfoundation.org/xml/implml/1">
+	<tag name="target" value="core"/>
+	<tag name="target" value="rofs2"/>
+	<tag name="target" value="rofs3"/>
+<file xmlns="http://www.s60.com/xml/genconfml/1" name="empty.foo" target="\private\200159c0\install\view3_200286eb\xuikon\">
+	<setting ref="VGAHomescreen3XuikonFolder/FolderCFG"/>
+		<xsl:stylesheet version="1.0" 
+                xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+                xmlns:xi="http://www.w3.org/2001/xinclude">
+		<xsl:output method="xml" indent="yes" encoding="UTF-8"/>
+		<xsl:template match="configuration/data">
+		<whois>
+	  <xsl:attribute name="dude"><xsl:value-of select="VGAHomescreen3XuikonFolder/FolderCFG"/></xsl:attribute>
+	  </whois>
+  </xsl:template>
+	</xsl:stylesheet>
+</file>
+</container>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/group/bld.inf	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,85 @@
+/*
+* 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/view3_200286eb/hsps/manifest.dat
+//../hsps/00/viewconfiguration.xml /epoc32/data/z/resource/homescreen/view3_200286eb/hsps/viewconfiguration.xml
+//../hsps/00/viewconfiguration.dtd /epoc32/data/z/resource/homescreen/view3_200286eb/hsps/viewconfiguration.dtd
+
+../xuikon/00/view.dat /epoc32/data/z/resource/homescreen/view3_200286eb/xuikon/view3_200286eb.dat
+../xuikon/00/view.xml /epoc32/data/z/resource/homescreen/view3_200286eb/xuikon/view.xml
+../xuikon/00/view.dtd /epoc32/data/z/resource/homescreen/view3_200286eb/xuikon/view.dtd
+../xuikon/00/view.css /epoc32/data/z/resource/homescreen/view3_200286eb/xuikon/view.css
+
+// Arabic languages
+//*****************
+../xuikon/37/view.css /epoc32/data/z/resource/homescreen/view3_200286eb/xuikon/37/view.css
+../xuikon/50/view.css /epoc32/data/z/resource/homescreen/view3_200286eb/xuikon/50/view.css
+../xuikon/57/view.css /epoc32/data/z/resource/homescreen/view3_200286eb/xuikon/57/view.css
+../xuikon/94/view.css /epoc32/data/z/resource/homescreen/view3_200286eb/xuikon/94/view.css
+
+
+//Confml and cfgml files for the customization
+//***********************************
+../conf/view200286eb.confml   APP_LAYER_CONFML(view200286eb.confml)
+../conf/view200286eb.gcfml    APP_LAYER_GCFML(view200286eb.gcfml)
+../conf/view200286ebmanifest.confml   APP_LAYER_CONFML(view200286ebmanifest.confml)
+../conf/view200286ebmanifest.gcfml    APP_LAYER_GCFML(view200286ebmanifest.gcfml)
+../conf/view200286ebxuikon.confml   APP_LAYER_CONFML(view200286ebxuikon.confml)
+../conf/view200286ebxuikon.gcfml    APP_LAYER_GCFML(view200286ebxuikon.gcfml)
+// Support for S60 localization
+//*****************************
+//#ifndef __VIEWCONFIGURATION_LOC__
+//#define __VIEWCONFIGURATION_LOC__
+//../loc/viewconfiguration.loc APP_LAYER_LOC_EXPORT_PATH(viewconfiguration.loc)
+//#endif // __VIEWCONFIGURATION_LOC__
+
+#ifndef __VIEW_LOC__
+#define __VIEW_LOC__
+../loc/view.loc APP_LAYER_LOC_EXPORT_PATH(view.loc)
+#endif // __VIEW_LOC__
+
+// Support for S60 builds
+//***********************
+../rom/view_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(view3_200286eb_resources.iby)
+../rom/view_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view3_200286eb_customer.iby)
+../rom/view_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(view3_200286eb_variant.iby)
+//../rom/view.iby CORE_APP_LAYER_IBY_EXPORT_PATH(view3_200286eb.iby)
+
+
+// Dtd-localization
+//*****************
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME view3_200286eb
+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/vga_tch/view3_200286eb/hsps/00/manifest.dat	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,33 @@
+<?xml version="1.0"?>
+<package version="2.0">
+
+    <family>vga_tch</family>
+    
+    <type>view</type>
+
+    <!-- interface uid -->
+    <interfaceuid>0x2001f48a</interfaceuid>
+
+    <!-- vendor uid -->
+    <provideruid>0x101fb657</provideruid>
+
+    <!-- configuration uid -->
+    <configurationuid>0x200286eb</configurationuid>
+
+    <!-- description -->
+    <fullname>view3</fullname>
+    <shortname>ai3_nokia</shortname>
+    <version>1.0</version>
+
+    <!-- configuration -->
+    <filexml>viewconfiguration.xml</filexml>
+    
+    <!-- Name of the localization files -->
+    <!--filedtd>viewconfiguration.dtd</filedtd-->
+
+    <!-- Locale specific resources -->
+    <localization>
+        <fileresource>view.o0000</fileresource>
+    </localization>
+  
+</package>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/hsps/00/viewconfiguration.dtd	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+============================================================================
+<FileName: "viewconfiguration.dtd">
+
+<FileDescription: "Localization strings for HSPS view configuration">
+<FileVersion    : >
+
+<Copyright:
+"Copyright © 2005 Nokia Corporation.
+This material, including documentation and any related 
+computer programs, is protected by copyright controlled by 
+Nokia Corporation. All rights are reserved. Copying, 
+including reproducing, storing,  adapting or translating, any 
+or all of this material requires the prior written consent of 
+Nokia Corporation. This material also contains confidential 
+information which may not be disclosed to others without the 
+prior written consent of Nokia Corporation.">
+============================================================================
+-->
+
+<!--  LOCALISATION STRINGS  -->
+
+<!ENTITY qtn_view_configuration_name "ai3_nokia">
+
+
+<!-- End of File-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/hsps/00/viewconfiguration.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -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_vga_tch_view">
+                <property name="use_empty_widget" value="true"/>
+            </item>
+            <item id="wallpaper">
+                <property name="path" value=""/>
+            </item>
+        </settings>
+        <plugins>
+            <plugin uid="0x200286e6" bundle_id="0" template_id="0" locking_status="permanent"/>
+            <plugin uid="0x200286e7" bundle_id="0" template_id="0" locking_status="permanent"/>
+            <plugin uid="0x2001f47f" bundle_id="0" template_id="0" locking_status="permanent"/>
+            <plugin uid="0x20018eee" bundle_id="0" template_id="0" locking_status="none"/>
+            <plugin uid="0x20018eee" bundle_id="0" template_id="0" locking_status="none"/>
+            <plugin uid="0x20018eee" bundle_id="0" template_id="0" locking_status="none"/>
+        </plugins>
+    </control>
+</configuration>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/loc/view.loc	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,322 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Localization strings for project Active Idle 3
+*
+*/
+
+// d: Help
+// l: list_single_pane_t1_cp2
+// w: 
+// r: TB9.2
+#define qtn_options_help "Help"
+
+// d: Open
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define qtn_msk_open "Open"
+
+// d: Done
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_done "Done"
+
+// d: Open 
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_options_open "Open"
+
+// d: Back
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_back "Back"
+
+// d: Empty string
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define shortcut_emptycaption " "
+
+// d: Add page
+// l: list_single_pane_t1_cp2
+// w: 
+// r: TB9.2
+#define qtn_hs_add_page "Add page"
+
+// d: Select
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_options_select_widget "Select"
+
+// d: Add content
+// l: list_single_pane_t1_cp2
+// w: 
+// r: TB9.2
+#define qtn_hs_add_widget "Add content"
+
+// d: Access the widget catalog
+// l: list_single_pane_t1_cp2
+// w: 
+// r: TB9.2
+#define qtn_hs_widget_catalog "Widget catalog"
+
+// d: Search
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_search "Search"
+
+// d: Options
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_options "Options"
+
+// d: Refresh 
+// l: list_single_pane_t1_cp2/opt3
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_widget "Refresh"
+
+// d: Focused widget
+// l: list_single_popup_submenu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_one_widget "One"
+
+// d: All widgets 
+// l: list_single_popup_submenu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_refresh_all_widgets "All"
+
+// d: Remove content 
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_remove_widget "Remove content"
+
+// d: Hide the content 
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_hide_widgets "Hide the content"
+
+// d: Edit contents 
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_edit_content "Edit content"
+
+// d: Change Wallpaper
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_wallpaper "Change Wallpaper"
+
+// d: Change Shortcut Settings
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_shortcut_settings "Change Shortcut Settings"
+
+// d: Widget settings
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_widget_settings "Widget settings"
+
+// d: Show widgets
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_show_widgets "Show the content"
+
+// d: Change Home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_change_page "Change Home screen page"
+
+// d: Change
+// l: control_pane_t1/opt7
+// w:
+// r: TB9.2
+#define qtn_msk_change "Change"
+
+// d: Show all profiles in Profiles widget
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_show_profiles "Show all profiles"
+
+// d: Right selection key
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_set_right_idle_softkey "Right selection key"
+
+// d: Select
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_select "Select"
+
+// d: Cancel
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_cancel "Cancel"
+
+// d: Options menu item which switches home to online. Web widgets get updates from network.
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_online "Switch Home to online"
+
+// d: Options menu item which switches home to offline. Web widgets are not updated
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_offline "Switch Home to offline"
+
+// d: String which is shown in long tap menu of Home screen if tapped widget has settings
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_settings "Settings"
+
+// d: String which is shown in long tap menu of Home screen if tapped some widget which is removable
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_remove_element "Remove"
+
+// d: String which is shown in long tap menu of Home screen if tapped empty space in home screen
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_longtap_add "Add content"
+
+// d: String which is shown in long tap menu of Home screen
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_change_longtap_wallpaper "Change wallpaper"
+
+// d: User can download new HS widgets. String is visible in add content list query
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_download_new_widgets "Download"
+
+// d: Changes focused widget
+// l: list_single_touch_menu_pane_t1
+// w:
+// r: TB9.2
+#define qtn_hs_edit_replace "Replace"
+
+// d: deletes current home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_options_delete "Delete page"
+
+// d: creates new home screen page
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_options_new "New page"
+
+// d: view title in editing mode
+// l: title_pane_t2
+// w:
+// r: TB9.2
+#define qtn_hs_title_editing_view "Editing view"
+
+// d: Call
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define text_softkey_call "Call"
+
+// d: Added new option menu item to Edit mode for opening the widget catalog,
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_edit_widget_catalog "Widget Catalog"
+
+// d: Deletes the current Home screen page and focus goes to the next available Home screen page in Edit mode
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_page_edit_options_delete "Delete page"
+
+// d: Done
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_done "Done"
+
+// d: Search
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_search "Search"
+
+// d: Options
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_options "Options"
+
+// d: Back
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_back "Back"
+
+// d: Select
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_select "Select"
+
+// d: Cancel
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_cancel "Cancel"
+
+// d: Call
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_text_softkey_call "Call"
+
+// d: Lock keypad
+// l: list_single_pane_t1_cp2
+// w:
+// r: TB9.2
+#define qtn_hs_lock_keypad "Lock keypad"
+
+// d: Menu
+// l: nhd_control_pane_t2/opt7
+// w:
+// r: TB9.2
+#define qtn_hs_apps_menu_skey "Menu"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/loc/viewconfiguration.loc	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,27 @@
+/*
+* 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 view3 plugin configuration (HSPS)
+*
+*/
+
+
+<!--  LOCALISATION STRINGS  -->
+// d: AI3 View
+// l: ai_gene_pane_1_t1
+// w:
+// r: TB9.2
+//#define qtn_view_configuration_name  "AI3 View"
+
+
+<!-- End of File-->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/rom/view.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  View widget HSPS-plugin IBY file.
+*
+*/
+
+
+#ifndef __AI3VIEW_200286EB_IBY__
+#define __AI3VIEW_200286EB_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools
+data=ZPRIVATE\200159c0\install\view3_200286eb\hsps\00\manifest.dat \private\200159c0\install\view3_200286eb\hsps\00\manifest.dat
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __AI3VIEW_200286EB_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/rom/view_customer.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  View widget HSPS-plugin language specific IBY file.
+*
+*/
+
+
+#ifndef __AI3VIEW_200286EB_CUSTOMER_IBY__
+#define __AI3VIEW_200286EB_CUSTOMER_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\view3_200286eb\xuikon\00\view.o0000 \private\200159c0\install\view3_200286eb\xuikon\00\view.o0000
+//data=ZPRIVATE\200159c0\install\view3_200286eb\hsps\00\viewconfiguration.dtd \private\200159c0\install\view3_200286eb\hsps\00\viewconfiguration.dtd
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __AI3VIEW_200286EB_CUSTOMER_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/rom/view_resources.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  View widget HSPS-plugin language specific IBY file.
+*
+*/
+
+
+#ifndef __AI3VIEW_200286EB_RESOURCES_IBY__
+#define __AI3VIEW_200286EB_RESOURCES_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by DTD-localization tools, language specific
+data=ZPRIVATE\200159c0\install\view3_200286eb\xuikon\00\view.o0000 \private\200159c0\install\view3_200286eb\xuikon\00\view.o0000
+//data=ZPRIVATE\200159c0\install\view3_200286eb\hsps\00\viewconfiguration.dtd \private\200159c0\install\view3_200286eb\hsps\00\viewconfiguration.dtd
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __AI3VIEW_200286EB_RESOURCES_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/rom/view_variant.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  View widget HSPS-plugin variant specific IBY file.
+*
+*/
+
+
+#ifndef __AI3VIEW_200286EB_VARIANT_IBY__
+#define __AI3VIEW_200286EB_VARIANT_IBY__
+
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
+
+// Enabled by variation tools, variant specific
+data=ZPRIVATE\200159c0\install\view3_200286eb\hsps\00\viewconfiguration.xml \private\200159c0\install\view3_200286eb\hsps\00\viewconfiguration.xml
+
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
+
+#endif // __AI3VIEW_200286EB_VARIANT_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/00/View.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+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: tb;
+}
+
+plugin.miniplugins
+{
+    height: 115px; 
+    width: 176px;
+
+    margin-top: 9px;
+    margin-left: 9px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+plugin.plugins
+{
+    height: 115px; 
+    width: 436px;
+
+    margin-top: 9px;
+    margin-left: 10px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+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/vga_tch/view3_200286eb/xuikon/00/View.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,289 @@
+<?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_vga_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"/>
+                </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"/>
+                </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="miniplugins" actionshandler="plugin_actions">
+            </plugin>
+            <plugin id="plugin2" class="miniplugins" actionshandler="plugin_actions">
+            </plugin>
+            <plugin id="plugin3" class="miniplugins" actionshandler="plugin_actions">
+            </plugin>
+            <plugin id="plugin4" class="plugins" actionshandler="plugin_actions">
+            </plugin>
+            <plugin id="plugin5" class="plugins" actionshandler="plugin_actions">
+            </plugin>
+            <plugin id="plugin6" class="plugins" actionshandler="plugin_actions">
+            </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>
+                <menuitemgroup id="ContextMenu/EditMode">
+                    <property name="hs_remove_widget"/>
+                    <property name="hs_widget_settings"/>
+                    <property name="hs_widget_general_1"/>
+                    <property name="hs_widget_general_2"/>
+                </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="&qtn_hs_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="#Menu">
+            	<actions>
+            		<action>
+            			<trigger name="activate"/>
+            			<event name="EventHandler/LaunchApp" uid="0x101F4CD2"/>
+            		</action>
+            	</actions>
+            </softkey>
+            <softkey id="rsk" type="right" mode="mode_callactive" label="#Menu">
+            	<actions>
+            		<action>
+            			<trigger name="activate"/>            			
+            			<event name="EventHandler/LaunchApp" uid="0x101F4CD2"/>
+            		</action>
+            	</actions>
+            </softkey>
+            <softkey id="rsk_done" type="right" mode="mode_edit" label="&qtn_hs_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/vga_tch/view3_200286eb/xuikon/00/view.dat	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<data>
+    <AppUid>E029CF57</AppUid>
+    <Provideruid>101FB657</Provideruid>
+    <ThemeUid>11001234</ThemeUid>
+    <ThemeFullName>Nokia</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/vga_tch/view3_200286eb/xuikon/00/view.dtd	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,514 @@
+<?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 "nhd_control_pane_t2/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 "nhd_control_pane_t2/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 "nhd_control_pane_t2/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 "nhd_control_pane_t2/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 "nhd_control_pane_t2/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 "nhd_control_pane_t2/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 "nhd_control_pane_t2/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">
+
+<!--
+qtn_hs_text_softkey_done.attributes
+qtn_hs_text_softkey_done.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_done.release "TB9.2"
+qtn_hs_text_softkey_done.description "Done"
+qtn_hs_text_softkey_done.grammar "Done"
+qtn_hs_text_softkey_done.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_done "Done">
+
+<!--
+qtn_hs_text_softkey_search.attributes
+qtn_hs_text_softkey_search.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_search.release "TB9.2"
+qtn_hs_text_softkey_search.description "Search"
+qtn_hs_text_softkey_search.grammar "Search"
+qtn_hs_text_softkey_search.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_search "Search">
+
+<!--
+qtn_hs_text_softkey_options.attributes
+qtn_hs_text_softkey_options.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_options.release "TB9.2"
+qtn_hs_text_softkey_options.description "Options"
+qtn_hs_text_softkey_options.grammar "Options"
+qtn_hs_text_softkey_options.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_options "Options">
+
+<!--
+qtn_hs_text_softkey_back.attributes
+qtn_hs_text_softkey_back.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_back.release "TB9.2"
+qtn_hs_text_softkey_back.description "Back text for SK2"
+qtn_hs_text_softkey_back.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_back "Back">
+
+<!--
+qtn_hs_text_softkey_select.attributes
+qtn_hs_text_softkey_select.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_select.release "TB9.2"
+qtn_hs_text_softkey_select.description "Select"
+qtn_hs_text_softkey_select.grammar "Select"
+qtn_hs_text_softkey_select.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_select "Select">
+
+<!--
+qtn_hs_text_softkey_cancel.attributes
+qtn_hs_text_softkey_cancel.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_cancel.release "TB9.2"
+qtn_hs_text_softkey_cancel.description "Cancel"
+qtn_hs_text_softkey_cancel.grammar "Cancel"
+qtn_hs_text_softkey_cancel.parents "control_pane"
+-->
+<!ENTITY qtn_hs_text_softkey_cancel "Cancel">
+
+<!--
+qtn_hs_text_softkey_call.attributes
+qtn_hs_text_softkey_call.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_call.release "TB9.2"
+qtn_hs_text_softkey_call.description "RSK caption call inactive"
+qtn_hs_text_softkey_call.parents ""
+-->
+<!ENTITY qtn_hs_text_softkey_call "Call">
+
+<!--
+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 "Lock keypad"
+qtn_hs_page_edit_options_delete.parents ""
+-->
+<!ENTITY qtn_hs_lock_keypad "Lock keypad">
+
+<!--
+qtn_hs_text_softkey_call.attributes
+qtn_hs_text_softkey_call.layout "nhd_control_pane_t2/opt7"
+qtn_hs_text_softkey_call.release "TB9.2"
+qtn_hs_text_softkey_call.description "RSK caption"
+qtn_hs_text_softkey_call.parents ""
+-->
+<!ENTITY qtn_hs_apps_menu_skey "Menu">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/data/vga_tch/view3_200286eb/xuikon/37/view.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view 
+{
+    direction: rtl;
+    block-progression: tb;
+    background-image: wallpaper;
+    swipe: true;
+
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+    direction: rtl;
+    block-progression: tb;
+}
+
+plugin.miniplugins
+{
+    height: 115px; 
+    width: 176px;
+
+    margin-top: 9px;
+    margin-right: 9px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+plugin.plugins
+{
+    height: 115px; 
+    width: 436px;
+
+    margin-top: 9px;
+    margin-right: 10px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+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/vga_tch/view3_200286eb/xuikon/50/view.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view 
+{
+    direction: rtl;
+    block-progression: tb;
+    background-image: wallpaper;
+    swipe: true;
+
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+    direction: rtl;
+    block-progression: tb;
+}
+
+plugin.miniplugins
+{
+    height: 115px; 
+    width: 176px;
+
+    margin-top: 9px;
+    margin-right: 9px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+plugin.plugins
+{
+    height: 115px; 
+    width: 436px;
+
+    margin-top: 9px;
+    margin-right: 10px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+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/vga_tch/view3_200286eb/xuikon/57/view.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view 
+{
+    direction: rtl;
+    block-progression: tb;
+    background-image: wallpaper;
+    swipe: true;
+
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+    direction: rtl;
+    block-progression: tb;
+}
+
+plugin.miniplugins
+{
+    height: 115px; 
+    width: 176px;
+
+    margin-top: 9px;
+    margin-right: 9px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+plugin.plugins
+{
+    height: 115px; 
+    width: 436px;
+
+    margin-top: 9px;
+    margin-right: 10px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+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/vga_tch/view3_200286eb/xuikon/94/view.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,73 @@
+view 
+{
+    direction: rtl;
+    block-progression: tb;
+    background-image: wallpaper;
+    swipe: true;
+
+    _s60-status-pane-layout: widescreen-flat-3softkeys;
+}
+
+box#plugins_container
+{
+    direction: rtl;
+    block-progression: tb;
+}
+
+plugin.miniplugins
+{
+    height: 115px; 
+    width: 176px;
+
+    margin-top: 9px;
+    margin-right: 9px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+plugin.plugins
+{
+    height: 115px; 
+    width: 436px;
+
+    margin-top: 9px;
+    margin-right: 10px;
+ 
+    _s60-longtap: true;
+
+    nav-index: appearance;
+}
+
+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;
+}
+
--- a/idlehomescreen/data/vga_tch/wideimage_10009dff/group/bld.inf	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/group/bld.inf	Tue Sep 14 20:58:58 2010 +0300
@@ -11,11 +11,11 @@
 *
 * Contributors:
 *
-* Description:  The information required for building
+* Description:
+* The information required for building
 *
 */
 
-
 #include <platform_paths.hrh>
 
 PRJ_PLATFORMS
@@ -24,28 +24,26 @@
 PRJ_EXPORTS
 // Support for productization and Carbide.Ui customization
 //********************************************************
-../hsps/00/manifest.dat /epoc32/data/z/resource/homescreen/wideimage_10009dff/hsps/manifest.dat
-../hsps/00/widgetconfiguration.xml /epoc32/data/z/resource/homescreen/wideimage_10009dff/hsps/widgetconfiguration.xml
+../hsps/00/manifest.dat /epoc32/data/Z/resource/homescreen/wideimage_10009dff/hsps/manifest.dat
+../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/wideimage_10009dff/hsps/widgetconfiguration.xml
+../xuikon/00/wideimage.dat /epoc32/data/Z/resource/homescreen/wideimage_10009dff/xuikon/wideimage_10009dff.dat
+../xuikon/00/wideimage.css /epoc32/data/Z/resource/homescreen/wideimage_10009dff/xuikon/wideimage.css
+../xuikon/00/wideimage.xml /epoc32/data/Z/resource/homescreen/wideimage_10009dff/xuikon/wideimage.xml
 
-../xuikon/00/wideimage.dat /epoc32/data/z/resource/homescreen/wideimage_10009dff/xuikon/wideimage_10009dff.dat
-../xuikon/00/wideimage.css /epoc32/data/z/resource/homescreen/wideimage_10009dff/xuikon/wideimage.css
-../xuikon/00/wideimage.xml /epoc32/data/z/resource/homescreen/wideimage_10009dff/xuikon/wideimage.xml
-../xuikon/00/wideimage.dtd /epoc32/data/z/resource/homescreen/wideimage_10009dff/xuikon/wideimage.dtd
+// Arabic languages
+//*****************
+//../xuikon/37/wideimage.css /epoc32/data/Z/resource/homescreen/wideimage_10009dff/xuikon/37/wideimage.css
+//../xuikon/50/wideimage.css /epoc32/data/Z/resource/homescreen/wideimage_10009dff/xuikon/50/wideimage.css
+//../xuikon/57/wideimage.css /epoc32/data/Z/resource/homescreen/wideimage_10009dff/xuikon/57/wideimage.css
+//../xuikon/94/wideimage.css /epoc32/data/Z/resource/homescreen/wideimage_10009dff/xuikon/94/wideimage.css
 
 // Support for S60 builds
 //***********************
 ../rom/wideimage_resources.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(wideimage_10009dff_resources.iby)
 ../rom/wideimage_customer.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(wideimage_10009dff_customer.iby)
-../rom/wideimage_variant.iby CUSTOMER_VARIANT_APP_LAYER_IBY_EXPORT_PATH(wideimage_10009dff_variant.iby)
+../rom/wideimage_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(wideimage_10009dff_variant.iby)
 ../rom/wideimage.iby CORE_APP_LAYER_IBY_EXPORT_PATH(wideimage_10009dff.iby)
 
-// Support for S60 localization
-//*****************************
-#ifndef __WIDEIMAGE_LOC__
-#define __WIDEIMAGE_LOC__
-../loc/wideimage.loc APP_LAYER_LOC_EXPORT_PATH(wideimage.loc)
-#endif // __WIDEIMAGE_LOC__
-
 // Dtd-localization
 //*****************
 PRJ_EXTENSIONS
@@ -61,7 +59,3 @@
 PRJ_TESTMMPFILES
 
 //  End of File  
-
-
-
-
--- a/idlehomescreen/data/vga_tch/wideimage_10009dff/hsps/00/widgetconfiguration.xml	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/hsps/00/widgetconfiguration.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -1,24 +1,9 @@
 <configuration>
     <control>
         <settings>
-          <item id="wideimage_widget" name="ContentSource" >
-            <property  name="name" value=""/>
-          </item>
-
-          <item id="pub_id" name="publisher">
-            <property  name="value" value=""/> <!--Def value "Test_Publisher"-->
-          </item>
-          
-          <item id="prop1" name="contentdata"  >
-            <property  name="class" value="image1"/>  <!-- Template designer choice -->
-          </item>
-              
-          <!-- Template designer choice -->
-          <item id="p_trigger" name="pubtrigger" >   
-            <property  name="name" value="selected"/> 
-          </item>
-          
-          
+            <item id="pub_id" name="ContentSource">
+                <property name="value" value=""/>
+            </item>
         </settings>
     </control>
 </configuration>
--- a/idlehomescreen/data/vga_tch/wideimage_10009dff/loc/wideimage.loc	Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-/*
-* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Localization strings for WideImage widget (Xuikon)
-*
-*/
-
-// d: Loading content
-// l: ai_gene_pane_1_t1/opt4
-// w: 
-// r: TB9.2
-#define qtn_ai_loading_content  "Loading content..."
\ No newline at end of file
--- a/idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
 #ifndef __WIDEIMAGE_10009DFF_IBY__
 #define __WIDEIMAGE_10009DFF_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools
 data=ZPRIVATE\200159c0\install\wideimage_10009dff\hsps\00\manifest.dat \private\200159c0\install\wideimage_10009dff\hsps\00\manifest.dat
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __WIDEIMAGE_10009DFF_IBY__
--- a/idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage_customer.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage_customer.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
 #ifndef __WIDEIMAGE_10009DFF_CUSTOMER_IBY__
 #define __WIDEIMAGE_10009DFF_CUSTOMER_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools, language specific
 data=ZPRIVATE\200159c0\install\wideimage_10009dff\xuikon\00\wideimage.o0000 \private\200159c0\install\wideimage_10009dff\xuikon\00\wideimage.o0000
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __WIDEIMAGE_10009DFF_CUSTOMER_IBY__
--- a/idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage_resources.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage_resources.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -18,11 +18,11 @@
 #ifndef __WIDEIMAGE_10009DFF_RESOURCES_IBY__
 #define __WIDEIMAGE_10009DFF_RESOURCES_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by DTD-localization tools, language specific
-data=ZPRIVATE\200159c0\install\wideimage_10009dff\xuikon\00\wideimage.o0000 \private\200159c0\install\wideimage_10009dff\xuikon\00\wideimage.o0000
+//data=ZPRIVATE\200159c0\install\wideimage_10009dff\xuikon\00\wideimage.o0000 \private\200159c0\install\wideimage_10009dff\xuikon\00\wideimage.o0000
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif // __WIDEIMAGE_10009DFF_RESOURCES_IBY__
--- a/idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage_variant.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/rom/wideimage_variant.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -19,11 +19,11 @@
 #ifndef __WIDEIMAGE_10009DFF_VARIANT_IBY__
 #define __WIDEIMAGE_10009DFF_VARIANT_IBY__
 
-#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#if defined(FF_LAYOUT_480_640_TOUCH_VGA4) || defined(FF_LAYOUT_640_480_TOUCH_VGA4)
 
 // Enabled by variation tools, variant specific
 data=ZPRIVATE\200159c0\install\wideimage_10009dff\hsps\00\widgetconfiguration.xml \private\200159c0\install\wideimage_10009dff\hsps\00\widgetconfiguration.xml
 
-#endif // (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+#endif // FF_LAYOUT_480_640_TOUCH_VGA4 || FF_LAYOUT_640_480_TOUCH_VGA4
 
 #endif  // __WIDEIMAGE_10009DFF_VARIANT_IBY__
--- a/idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.css	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.css	Tue Sep 14 20:58:58 2010 +0300
@@ -1,45 +1,53 @@
-widget{
-    width:auto;
-    height:60px;
-    }
-
-box#image_container:focus {
-    background-image: "SKIN(268458534 24576)";
-    background-color: "SKIN(268458534 5120 9)";
-}
-
-box#image_container:hold
+widget#wideimage_template
 {
-    background-color: "SKIN(268458534 5120 9)";
+    nav-index: appearance;
+    block-progression:rl;
+    direction: ltr;
 }
 
 box#image_container
 {
-    padding-top   : 2px;
-    padding-bottom: 2px;
-    padding-left  : 10px;
-    padding-right : 10px;
-    direction: ltr;
-    nav-index:appearance;
+    /* Will be updated by content policy */
+    display: none;
+}
+box#default_container
+{
+    /* Will be updated by content policy */
+   display: block;
+}
+
+image#w_default_image
+{
+    padding-top:9px;
+    padding-bottom:9px;
+    padding-left:9px;
+    padding-right:9px;
+    height: 105px;
+    width: 105px;
 }
 
-image#wide_image
+text#w_default_text
 {
-    display: none;
-    width:auto;
-    height:auto;
-    /*_s60-aspect-ratio:preserve;*/
+    padding-left:9px;
+    padding-right:9px;
+    height : 10u;
+    font-line-space: 15;
+    direction: ltr;
+    text-align:left;
+    text-overflow-mode: wrap;
+    font-family: EAknLogicalFontSecondaryFont;
+    font-size: 4u;
+    color: "SKIN(268458534 13056 74)";
 }
 
-text#wide_text
+animation#loading
 {
-    display: block;
-    width:auto;
-    height:auto;
-    padding-left: 5px;
-    font-family: EAknLogicalFontSecondaryFont;
-	  font-size:18px;
-    color:white;
+	position: absolute;
+	top: 9px;
+	left: 401px;
+	right:9px;
+	width:30px;
+	height:30px;
+	/* Will be updated by dataplugin */
+	display: none;
 }
-
-
--- a/idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.dat	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.dat	Tue Sep 14 20:58:58 2010 +0300
@@ -8,5 +8,4 @@
     <ThemeVersion>1.0</ThemeVersion>
     <FileXML>wideimage.xml</FileXML>
     <FileCSS>wideimage.css</FileCSS>
-    <FileDTD>wideimage.dtd</FileDTD>
 </data>
\ No newline at end of file
--- a/idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.dtd	Wed Sep 01 12:32:46 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-============================================================================
-<FileName: "wideimage.dtd">
-<PartOf  : "AI3">
-
-<FileDescription: "Localization strings for AI3">
-<FileVersion    : >
-
-<Copyright:
-"Copyright © 2005 Nokia Corporation.
-This material, including documentation and any related
-computer programs, is protected by copyright controlled by
-Nokia Corporation. All rights are reserved. Copying,
-including reproducing, storing,  adapting or translating, any
-or all of this material requires the prior written consent of
-Nokia Corporation. This material also contains confidential
-information which may not be disclosed to others without the
-prior written consent of Nokia Corporation.">
-============================================================================
--->
-
-
-<!--
-qtn_ai_loading_content.attributes
-qtn_ai_loading_content.layout "ai_gene_pane_1_t1/opt4"
-qtn_ai_loading_content.release "5.0"
-qtn_ai_loading_content.description "Shows information text for slow loading widgets"
-qtn_ai_loading_content.parents "ai_gene_pane_1"
--->
-<!ENTITY qtn_ai_loading_content  "Loading content...">
-
-
-
-
-
--- a/idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.xml	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/data/vga_tch/wideimage_10009dff/xuikon/00/wideimage.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -1,43 +1,62 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE xmluiml SYSTEM "wideimage.dtd">
 <xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
-    <widget>
-      <contentsource id="wideimage_widget" class="ContentSource" name="" value="0x20019594"/>
+    <widget id="wideimage_template" focusable="true" _s60-initial-focus="1">        
+        
+        <!-- Data plugin in this widget -->
+        <contentsource id="wrt_plugin" name="WRTWidget" value="0x200286DD" />
         <configuration name="service" value="Service.ContentPublishing"/>
         <configuration name="interface" value="IContentPublishing"/>
         <configuration name="command" value="GetList"/>
         <configuration id="pub_id" name="publisher" value=""/>
-
-      <box id="image_container" sizeaware="true" focusable="true" _s60-initial-focus="1">
-      <!-- Template designer choice -->
+    
         <actions>
-          <action>
-            <trigger name="stylus">
-              <property name="eventtype" value="downup" />
-            </trigger>
-            <trigger name="activate"/>
-            <trigger name="keyevent">
-                <property name="scancode" value="3"/>
-                <property name="eventtype" value="1"/>
-            </trigger>
-            <event id="p_trigger" name=""/>
-           </action>
-
-           <action>
-              <trigger name="sizechanged"/>
-              <event name="ui/setelementsizetocps(image_container)"/>
+            <action>
+                <trigger name="activate"/>
+                <event id="w_trigger" name="WRTWidget/publisher(selected)" />            
             </action>
         </actions>
-          <image id="wide_image">
-          <configuration name="content_type" value="row1"/>
-            <!-- Template designer choice -->
-            <property id="prop1" class=""/>
-            <property class="policy/emptyContent" name="wide_image" value="display: none;"/>
-            <property class="policy/Content" name="wide_image" value="display: block;"/>
-            <property class="policy/emptyContent" name="wide_text" value="display: block;"/>
-            <property class="policy/Content" name="wide_text" value="display: none;"/>
-          </image>
-          <text id="wide_text">&qtn_ai_loading_content;</text>
-        </box>
+        <box id="default_container" _s60-initial-focus="1">
+            <image id="w_default_image">
+	            <property id="default_image" class="WRTWidget/def_image"/>
+            </image>
+            <text id="w_default_text">
+            	<property id="default_text" class="WRTWidget/def_text"/>
+            </text>
+ 			 </box>            
+       <box id="image_container" sizeaware="true" _s60-initial-focus="1">   
+       	    <actions>
+                <action>
+                    <trigger name="sizechanged"/>
+                    <event name="ui/setelementsizetocps(container)"/>
+                </action>
+            </actions>
+            <image id="wide_image">
+                <property id="w_image" class="WRTWidget/image1"/>
+                <property class="policy/emptyContent" name="image_container" value="display: none;"/>
+                <property class="policy/Content" name="image_container" value="display: block;"/>
+                <property class="policy/Content" name="default_container" value="display: none;"/>
+            </image>
+       </box>
+       <animation id="loading"/>
+        <menuextension>
+            <!-- dynmenuitems are mapped to HS view.xml menu based on target attribute.
+                 HS view.xml provides localisation for predined items: "settings" and "refresh". -->                
+            <dynmenuitem type="widgetsettings" target="hs_widget_menuitem_settings">
+                <actions>
+                    <action>
+                        <trigger name="activate"/>
+                        <event name="menuitem(widgetsettings)" destination="wideimage_plugin"/>  
+                    </action>
+                </actions>
+            </dynmenuitem>                    
+            <dynmenuitem type="refresh" target="hs_widget_menuitem_refresh">
+                <actions>
+                    <action>
+                        <trigger name="activate"/>
+                        <event name="menuitem(refresh)" destination="wideimage_plugin"/>  
+                    </action>
+                </actions>
+            </dynmenuitem>        
+        </menuextension>
     </widget>
 </xmluiml>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/group/bld.inf	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 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"
+ * 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:  Carousel widget for Symbian Homescreen
+ *
+ */
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+ARMV5 WINSCW
+
+#include "../widget/group/bld.inf"
+#include "../renderer/group/bld.inf"
+#include "../publisher/group/bld.inf"
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/data/carouselplugin.rss	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,63 @@
+/*
+* Copyright (c) 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"
+* 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:  Registry info
+ *
+*/
+
+
+// INCLUDES
+#include <ecom/registryinfov2.rh>
+#include <hscontentpublisheruid.hrh>
+#include "carouselpluginuids.hrh"
+
+
+// -----------------------------------------------------------------------------
+//   
+// registry_info
+// Registry information required for identifying the ECOM component
+//
+// -----------------------------------------------------------------------------
+//
+
+RESOURCE REGISTRY_INFO registry_info
+{
+    resource_format_version = RESOURCE_FORMAT_VERSION_2;
+
+    dll_uid = AI_UID_ECOM_DLL_CONTENTPUBLISHER_CAROUSELPLUGIN; 
+
+    // Declare array of interface info
+    interfaces = 
+    {
+        INTERFACE_INFO
+        {
+            // UID of interface that is implemented
+            interface_uid = HS_UID_ECOM_INTERFACE_CONTENTPUBLISHER; 
+
+            implementations = 
+            {
+                IMPLEMENTATION_INFO
+                {
+                    implementation_uid = AI_UID_ECOM_IMPLEMENTATION_CONTENTPUBLISHER_CAROUSELPLUGIN;
+                    version_no         = 1;
+                    display_name       = "carpub";
+                    default_data       = "";
+                    opaque_data        = "";
+                }
+            };
+        }
+    };
+}
+
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/data/carouselpluginres.rss	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,90 @@
+/*
+* Copyright (c) 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"
+* 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:  Resource definitions for carousel plug-in settings
+*
+*/
+
+
+#include <eikon.rh>
+#include <avkon.rsg>
+#include <avkon.rh>
+#include <appinfo.rh>
+#include <avkon.loc>
+
+#include <carouselplugin.loc>
+
+
+NAME MCPL
+
+RESOURCE RSS_SIGNATURE { }
+
+RESOURCE TBUF { buf="CCPL"; }
+
+//----------------------------------------------------
+// EIK_APP_INFO
+// Contains application information.
+//----------------------------------------------------
+//
+RESOURCE EIK_APP_INFO
+{
+}
+
+//----------------------------------------------------
+// R_MCS_DISABLE_OPEN_ITEM
+// Dialog text: Item cannot be run because of backup
+// state
+//----------------------------------------------------
+//
+RESOURCE TBUF r_mcs_disable_open_item
+{
+    buf = qtn_mcs_disable_open_item;
+}
+
+//----------------------------------------------------
+// R_MCS_DISABLE_OPEN_ITEM_MISSING
+// Dialog text: Item cannot be opened because of it is
+// missing
+//----------------------------------------------------
+//
+RESOURCE TBUF r_mcs_disable_open_item_missing
+{
+    buf = qtn_mcs_disable_open_item_missing;
+}
+
+
+//----------------------------------------------------
+// R_MCS_DISABLE_OPEN_ITEM_DLG
+// Contains application information.
+//----------------------------------------------------
+//
+RESOURCE DIALOG r_mcs_disable_open_item_dlg
+{
+    flags = EAknWarningNoteFlags | EEikDialogFlagWait;
+    buttons = R_AVKON_SOFTKEYS_OK_EMPTY;
+    items =
+        {
+        DLG_LINE
+            {
+            type = EAknCtNote;
+            id = EGeneralNote;
+            control = AVKON_NOTE
+                {
+                layout = EGeneralLayout;
+                animation = R_QGN_NOTE_INFO_ANIM;
+                };
+            }
+        };
+}
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/data/carouselpluginuids.hrh	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,37 @@
+/*
+* Copyright (c) 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"
+* 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:  UIDs for the Active Idle subsystem components.
+*
+*/
+
+
+#ifndef CAROUSELPLUGINUIDS_HRH
+#define CAROUSELPLUGINUIDS_HRH
+
+/**
+ * Ecom dll uid for MCS plug-in.
+ */
+#define AI_UID_ECOM_DLL_CONTENTPUBLISHER_CAROUSELPLUGIN 0xE001CB57
+
+/**
+ * Ecom implementation uid for MCS plug-in.
+ */
+#define AI_UID_ECOM_IMPLEMENTATION_CONTENTPUBLISHER_CAROUSELPLUGIN 0xE001CB58
+
+/**
+ * Ecom implementation uid for MCS settings plug-in.
+ */
+#define AI_UID_ECOM_IMPLEMENTATION_SETTINGS_MCSPLUGIN 0x20022FDD
+
+#endif //CAROUSELPLUGINUIDS_HRH
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/group/bld.inf	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,51 @@
+/*
+* Copyright (c) 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"
+* 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 build information file of carousel Plugin
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+../loc/carouselplugin.loc             MW_LAYER_LOC_EXPORT_PATH(carouselplugin.loc)
+
+
+../rom/carouselplugin_resources.iby      LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(carouselplugin_resources.iby)
+../rom/carouselplugin.iby                CORE_MW_LAYER_IBY_EXPORT_PATH(carouselplugin.iby)
+
+
+
+
+PRJ_EXTENSIONS
+
+START EXTENSION s60/mifconv
+OPTION TARGETFILE carouselplugin.mif
+OPTION HEADERFILE carouselplugin.mbg
+OPTION SOURCES -c8,8 qgn_prop_ai_shortcut -c8,8 qgn_menu_url \
+               -c8,8 qgn_menu_mce_sel_mes -c8,8 qgn_menu_mce_syncmail \
+               -c8,8 qgn_menu_am -c8,8 qgn_prop_cp_conn_shortcut \
+               -c8,8 qgn_prop_psln_ai_sub -c8,8 qgn_mcsplugin_log_out
+END
+
+
+PRJ_MMPFILES
+carouselplugin.mmp
+
+
+// End of File.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/group/carouselplugin.mmp	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,83 @@
+/*
+* Copyright (c) 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"
+* 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:  Project definition file for project ProfilePlugin
+*
+*/
+
+#include <platform_paths.hrh>
+#include <data_caging_paths.hrh>
+
+#include "../data/carouselpluginuids.hrh"
+
+TARGET          carouselplugin.dll
+TARGETTYPE      PLUGIN
+UID             0x10009D8D  AI_UID_ECOM_DLL_CONTENTPUBLISHER_CAROUSELPLUGIN
+
+CAPABILITY      CAP_ECOM_PLUGIN
+VENDORID        VID_DEFAULT
+
+SOURCEPATH      ../src
+SOURCE          carouselplugin.cpp
+SOURCE          carouselpluginengine.cpp
+SOURCE          carouselplugindata.cpp
+SOURCE          carouselpluginwatcher.cpp
+
+USERINCLUDE     ../inc
+USERINCLUDE     ../loc
+USERINCLUDE     ../data
+
+APP_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH      ../data
+START RESOURCE  carouselplugin.rss
+HEADER
+TARGETPATH      ECOM_RESOURCE_DIR
+END
+
+START RESOURCE  carouselpluginres.rss
+HEADER
+TARGET          carouselpluginres.rsc
+TARGETPATH      RESOURCE_FILES_DIR
+LANGUAGE_IDS
+END
+LIBRARY         euser.lib
+LIBRARY         mcsmenu.lib
+LIBRARY         mcsextendedmenu.lib
+LIBRARY         egul.lib
+LIBRARY         cone.lib
+LIBRARY         ecom.lib
+LIBRARY         aiutils.lib
+LIBRARY         aknskins.lib
+LIBRARY         aknicon.lib
+LIBRARY         mcsmenuutils.lib
+LIBRARY         hspluginsettings.lib
+LIBRARY         msgs.lib
+LIBRARY         apgrfx.lib
+LIBRARY         apparc.lib
+
+
+LIBRARY         bafl.lib
+LIBRARY         avkon.lib 
+LIBRARY         eikcoctl.lib
+LIBRARY         eikcore.lib
+LIBRARY         efsrv.lib
+LIBRARY         fbscli.lib 
+LIBRARY         gslauncher.lib
+LIBRARY         eikdlg.lib
+LIBRARY         commonengine.lib 
+LIBRARY         favouritesengine.lib
+LIBRARY         viewcli.lib
+LIBRARY         gfxtrans.lib 
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/inc/carouselplugin.h	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,158 @@
+/*
+* Copyright (c) 2009-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"
+* 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:  Plug-in main class
+*
+*/
+
+
+#ifndef CMCSPLUGIN_H
+#define CMCSPLUGIN_H
+
+// System includes
+
+// User includes
+#include <hscontentpublisher.h>
+#include <aicontentmodel.h>
+
+// Forward declarations
+class MAiContentObserver;
+class MAiContentItemIterator;
+class CCarouselPluginEngine;
+class CCarouselData;
+
+
+/**
+ * @ingroup group_mcsplugin
+ *
+ * MCS Plug-in main class
+ *
+ * @since S60 5.2
+ */
+NONSHARABLE_CLASS( CCarouselPlugin ) : public CHsContentPublisher    
+    {
+public:
+    // constructor and destructor
+
+    static CCarouselPlugin* NewL();
+
+    ~CCarouselPlugin();
+
+private:
+    // constructors
+    
+    /**
+    * C++ default constructor
+    */
+    CCarouselPlugin();
+
+    /**
+    * 2nd phase constructor
+    */
+    void ConstructL();
+    
+public:
+    // from CHsContentPublisher
+  
+    /**
+     * @see CHsContentPublisher
+     */
+    void Start( TStartReason aReason );
+
+    /**
+     * @see CHsContentPublisher
+     */
+    void Stop( TStopReason aReason );
+
+    /**
+     * @see CHsContentPublisher
+     */    
+    void Resume( TResumeReason aReason );
+
+    /**
+     * @see CHsContentPublisher
+     */    
+    void Suspend( TSuspendReason aReason );
+
+    /**
+     * @see CHsContentPublisher
+     */    
+    void SubscribeL( MAiContentObserver& aObserver );
+
+    /**
+     * @see CHsContentPublisher
+     */    
+    void ConfigureL( RAiSettingsItemArray& aSettings );
+
+    /**
+     * @see CHsContentPublisher
+     */    
+    TAny* GetProperty( TProperty aProperty );
+
+    /**
+     * @see CHsContentPublisher
+     */   
+    void HandleEvent( const TDesC& aEventName, const TDesC& aParam );
+    
+public:
+    // new functions
+
+    /**
+    * Publishes data
+    */
+    void PublishL();
+    
+private:
+    // new functions
+    
+    /**
+     * CompareItems
+     */
+    static TInt CompareItems( const MAiPluginSettings& aFirst,
+        const MAiPluginSettings& aSecond );
+          
+    /**
+     * Publishes content for one menu item
+     */
+    void PublishLItemL( MAiContentObserver& aObserver, CCarouselData& aDataItem, TInt aIndex );
+    
+    void PublishEditorItemsL();
+        
+    /**
+    * Delete content model
+    */  
+    void DeleteContentModel();    
+    
+    /**
+     * Determines if dirty items exists
+     */
+    TBool PublishRequired() const; 
+    
+private: 
+    // data
+
+    /** Iterator for plugin content, owned */    
+    MAiContentItemIterator* iContent;
+    /** Number of data in the content model */
+    TInt iDataCount;
+    /** Dynamic content model, owned */    
+    TAiContentItem* iContentModel;
+    /** Plugin engine, owned */    
+    CCarouselPluginEngine* iEngine;
+    /** Array of content observers, not owned */    
+    RPointerArray<MAiContentObserver> iObservers;
+    };
+
+#endif // CMCSPLUGIN_H
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/inc/carouselplugindata.h	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,274 @@
+/*
+* Copyright (c) 2009 - 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"
+* 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:  Plug-in data class
+*
+*/
+
+
+#ifndef CMCSPLUGINDATA_H
+#define CMCSPLUGINDATA_H
+
+// INCLUDE FILES
+#include <e32base.h>
+#include <badesca.h>
+#include <mhomescreensettingsobserver.h>
+#include <hspluginsettings.h>
+#include <propertymap.h>
+#include <mcsmenu.h>
+
+class TMenuItem;
+class CCarouselPluginEngine;
+
+/**
+ *  @ingroup group_mcsplugin
+ *
+ *  Stores the MCS Menu Items and keeps track whether
+ *  item needs to be published or not.
+ *
+ *  @since S60 v9.1
+ */
+NONSHARABLE_CLASS( CCarouselData ) : public CBase
+    {
+public:
+    CCarouselData();
+    
+    ~CCarouselData();
+    
+    /**
+     * SetMenuItem
+     * 
+     * @param aMenuItem
+     */
+    void SetMenuItem( TMenuItem& aMenuItem );
+
+    /**
+     * MenuItem
+     * 
+     * @return TMenuItem
+     */
+    TMenuItem& MenuItem();
+    
+    /**
+     * Name of the item.
+     */
+    TDesC& Name();
+    
+    /**
+     * Set name of the item,
+     */
+    void SetNameL( const TDesC& aName );
+
+    /**
+     * Value of the item. Used for bookmark url.
+     */
+    TDesC& Value();
+    
+    /*
+     * Set value of the item.
+     */   
+    void SetValueL( const TDesC& aValue );
+    
+    /**
+     * SetDirty
+     * 
+     * @param aDirty
+     * @return TBool
+     */
+    void SetDirty( TBool aDirty );
+
+    /**
+     * IsDirty
+     * 
+     * @return TBool
+     */
+    TBool IsDirty() const;
+
+private:
+    /**
+     * iMenuItem
+     */
+    TMenuItem iMenuItem;
+    
+    /**
+     * Item name, own
+     */
+    HBufC* iName;
+    
+    /**
+     * Item value, own
+     */
+    HBufC* iValue;
+
+    /**
+     * iDirty
+     */
+    TBool iDirty;
+    };
+
+/**
+ *  @ingroup group_mcsplugin
+ *
+ *  Plug-in data class
+ *
+ *  @since
+ */
+NONSHARABLE_CLASS( CCarouselPluginData ) : public CBase,
+    public HSPluginSettingsIf::MHomeScreenSettingsObserver
+    {
+
+public:
+
+    /**
+    * Part of the two phased constuction
+    *
+    * @param aEngine
+    * @param aInstanceUid
+    * @return Pointer to the created CMCSPluginData object
+    */
+    static CCarouselPluginData* NewL( CCarouselPluginEngine& aEngine,
+        const TDesC8& aInstanceUid );
+
+    /**
+    * Constructor
+    *
+    * @param aEngine
+    * @param aInstanceUid
+    * @return none
+    */
+    CCarouselPluginData( CCarouselPluginEngine& aEngine, const TDesC8& aInstanceUid );
+
+    /**
+    * Destructor
+    *
+    * @param none
+    * @return none
+    */
+    ~CCarouselPluginData();
+
+    /**
+     * DataItem
+     * 
+     * @param aIndex
+     * @return TMCSData&
+     */
+    CCarouselData& DataItemL( TInt aIndex );
+
+    /**
+     * Saves 'Undefined' menu item into settings when mailbox is deleted
+     * 
+     * @param aIndex
+     * @param aMenuItem
+     */
+    void SaveUndefinedItemL( const TInt& aIndex );
+
+    /**
+     * DataCount
+     * 
+     * @return TInt
+     */
+    TInt DataCount(){ return iData.Count();};
+
+    /**
+     * Gets the instance specific settings from HSPS and creates data items
+     */
+    void UpdateDataL();
+
+    /**
+     * Removes data item from data list and saves new setting into HSPS
+     */
+    void RemoveDataL( TInt aId );
+    
+    // From MHomeScreenSettingsObserver
+    /**
+     * SettingsChangedL
+     * 
+     * @param aEvent
+     * @param aPluginName
+     * @param aPluginUid
+     * @param aPluginId
+     */
+    void SettingsChangedL( const TDesC8& aEvent,  const TDesC8& aPluginName,
+                           const TDesC8& aPluginUid, const TDesC8& aPluginId );
+
+private:
+
+    /**
+    * Part of the two phased construction
+    *
+    * @param void
+    * @return void
+    */
+    void ConstructL();
+
+    /**
+     * GetMenuDataL
+     * @param aProperties
+     * @return TMenuItem
+     */
+    CCarouselData* GetMenuDataL(
+        RPointerArray<HSPluginSettingsIf::CPropertyMap>& aProperties );
+    
+    /**
+     * Get bookmark data item
+     * @param aUid, used for bookmark uid
+     * @param aView, used for bookmark url
+     * @param aParam, used for bookmark name
+     * @param aData, is filled with appropriate values
+     */
+    void GetBkmDataL( const TDesC8& aUid, const TDesC8& aView, const TDesC8& aParam, CCarouselData& aData );
+
+    /**
+     * Get folder data item
+     * @param aParam, is used for folder id (in MCS)
+     * @param aData, is filled with appropriate values
+     */    
+    void GetFolderData( const TDesC8& aParam, CCarouselData& aData );
+
+    /**
+     * Get mailbox data item
+     * @param aUid, uid of the mailbox in messaging application
+     * @param aParam, name of the mailbox
+     * @param aData, is filled with appropriate values
+     */
+    void GetMailboxDataL( const TDesC8& aUid, const TDesC8& aParam,  CCarouselData& aData );
+    
+    /**
+     * Get MCS data item
+     * @param aProperties, Properties are used to filter correct item from MCS.
+     * @param aData, is filled with appropriate values
+     */
+    void GetMCSDataL(
+        RPointerArray<HSPluginSettingsIf::CPropertyMap>& aProperties,  CCarouselData& aData );
+
+private: // data
+
+    // Menu items, which are defined in settings
+    // Own
+    RPointerArray<CCarouselData> iData;
+
+    // Plugin settings. NOT OWNED!
+    HSPluginSettingsIf::CHomescreenSettings* iPluginSettings;
+
+    // Reference to MCS plug-in engine
+    CCarouselPluginEngine& iEngine;
+
+    // Reference to instance uid of HSPS widget
+    const TDesC8& iInstanceUid;
+
+    // MCS resource handle, owned 
+    RMenu iMenu;
+
+    };
+
+#endif // CMCSPLUGINDATA_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/inc/carouselpluginengine.h	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,250 @@
+/*
+* Copyright (c) 2009 - 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"
+* 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: 
+*
+*/
+
+
+#ifndef CMCSPLUGINENGINE_H
+#define CMCSPLUGINENGINE_H
+
+// System includes
+#include <e32base.h>
+#include <mcsmenu.h>
+#include <mcsmenuitem.h>
+#include <mcsmenunotifier.h>
+#include <msvapi.h>
+
+// User includes
+#include "carouselpluginwatcher.h"
+
+// Forward declarations
+class CGulIcon;
+class CCarouselPluginData;
+class CCarouselData;
+class CCarouselPlugin;
+
+
+/**
+ * @ingroup group_mcsplugin
+ *
+ * MCSPluginEngine class
+ *
+ * @since S60 5.2
+ */
+NONSHARABLE_CLASS( CCarouselPluginEngine ) : public CBase, 
+    public MCarouselPluginWatcherObserver,
+    public MMsvSessionObserver
+    {
+public:  
+    // constructor and destructor
+
+    /**
+    * Part of the two phased constuction
+    *
+    * @param aPlugin
+    * @param aInstanceUid
+    * @return Pointer to the created CMCSPluginEngine object
+    */
+    static CCarouselPluginEngine* NewL( CCarouselPlugin& aPlugin, 
+        const TDesC8& aInstanceUid );
+
+    /**
+    * Destructor
+    *
+    * @param none
+    * @return none
+    */
+    ~CCarouselPluginEngine();
+
+private:
+    // constructors
+    
+    /**
+     * C++ default constructor 
+     */
+    CCarouselPluginEngine( CCarouselPlugin& aPlugin, const TDesC8& aInstanceUid );
+
+    /*
+     * 2nd phase constructor
+     */
+    void ConstructL();
+    
+public:
+    // new functions
+    
+    /**
+     * Gets the menu data.
+     * 
+     * @param aIndex
+     * @return TMCSData&
+     */
+    CCarouselData& MenuDataL( const TInt& aIndex );
+
+    /** Gets the menu item count
+     * 
+     * @return TInt
+     */
+    TInt MenuItemCount();
+
+    /**
+     * Finds the menu item header for given filter.
+     * 
+     * @param aFilter
+     * @return TMenuItem
+     */
+    TMenuItem FindMenuItemL( CMenuFilter& aFilter );
+
+    /**
+     * Retrieves the menu item object from MCS.
+     * 
+     * @param aMenuItem
+     * @return CMenuItem*
+     */
+    CMenuItem* FetchMenuItemL( CCarouselData& aData);
+    
+    /**
+     * Returns icon for given menu item and given attribute
+     * 
+     * @param aMenuItem
+     * @param aAttr
+     * @return CGulIcon*
+     */
+    CGulIcon* ItemIconL( CMenuItem* aMenuItem, const TDesC& aAttr );
+
+    /**
+     * Returns text for given menu item and given attribute
+     * 
+     * @param aMenuItem
+     * @param aAttr
+     */
+    TPtrC ItemTextL( CMenuItem* aMenuItem, const TDesC& aAttr );
+
+    /** 
+     * Launches menu item
+     * 
+     * @param aIndex
+     */
+    void LaunchItemL( const TInt& aIndex );
+
+    /**
+    * Set backup/restore state
+    *
+    * @param aBackupRestore ETrue if backup/restore is ongoing 
+    * @return void
+    */
+    void SetBackupRestore( TBool aBackupRestore );
+
+    /**
+     * ShowSettingsL
+     */
+    void ShowSettingsL();
+
+private:
+    // from MMCSPluginWatcherObserver
+    
+    /**
+     * @see MMCSPluginWatcherObserver 
+     */
+    void HandleNotifyL();
+
+private:    
+    // from MMsvSessionObserver
+
+    /**
+     * @see MMsvSessionObserver
+     */    
+    void HandleSessionEventL( TMsvSessionEvent aEvent, TAny* aArg1,
+        TAny* aArg2, TAny* aArg3 );
+
+private:
+    // new functions
+
+    /**
+     * InitL
+     */
+    void InitL();
+    
+    /**
+     * Tells the settings container to start observing 
+     * for changes in mailbox db and changes in MCS.
+     */
+    void StartObservingL();
+
+    /**
+     * Tells the settings container to stop observing 
+     * for changes in mailbox db.     
+     */
+    void StopObserving();
+
+    /**
+     * ConstructMenuItemForIconL
+     * 
+     * @param aPath
+     * @param aMenuItem
+     * @return TBool
+     */
+    TBool ConstructMenuItemForIconL( 
+        const TDesC& aPath, CMenuItem& aMenuItem );
+
+    /**
+     * Creates bookmark specific MCS menu item.
+     */
+    CMenuItem* CreateBkmItemL( CCarouselData& aData );
+    
+    /**
+     * Creates mailbox specific MCS menu item.
+     */
+    CMenuItem* CreateMailboxItemL( CCarouselData& aData );
+    
+    void LaunchFolderItemL( CCarouselData& aData );
+    
+    void LaunchBookmarkItemL( CCarouselData& aData );
+    
+    void LaunchMailboxItemL( CCarouselData& aData );
+    
+    void LaunchMCSItemL( CCarouselData& aData );
+
+private:
+    // data
+    
+    /** Plugin data, owned */
+    CCarouselPluginData* iPluginData;
+    /** MCS resource handle, owned */
+    RMenu iMenu;
+    /** MCS change notifier handle, owned */
+    RMenuNotifier iNotifier;
+    /** MCS asynchronous operation watcher, owned */
+    CCarouselPluginWatcher* iWatcher;
+    /** MCS change notifier watcher, owned */
+    CCarouselPluginWatcher* iNotifyWatcher;
+    /** MCS plugin, not owned */
+    CCarouselPlugin& iPlugin;
+    /** Reference to plugin owned instanceUid */
+    const TDesC8& iInstanceUid;
+    /** Flag Indicating that backup/restore is in progress */
+    TBool iBackupRestore;
+    /** Offset of resource file */
+    TInt iResourceOffset;
+    /** Message server session, owned */
+    CMsvSession* iMsvSession;        
+    /** "Undefined" menu item, owned */
+    CMenuItem* iUndefinedItem;
+    /** "Undefined" menu item header */
+    TMenuItem iUndefinedItemHeader;    
+    };
+
+#endif // CMCSPLUGINENGINE_H
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/inc/carouselpluginwatcher.h	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,152 @@
+/*
+* 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:
+*
+*/
+
+#ifndef __MCSPLUGINWATCHER_H
+#define __MCSPLUGINWATCHER_H
+
+#include <e32base.h>
+
+class CMenuOperation;
+class CCarouselPluginEngine;
+
+/**
+ *  @ingroup group_mcsplugin
+ *
+ *  MCS Plugin Watcher Observer
+ *
+ *  @since S60 9.1
+ */
+class MCarouselPluginWatcherObserver
+    {
+    public:
+    /**
+     * HandleNotifyL
+     */
+    virtual void HandleNotifyL() = 0;
+    };
+
+/**
+ *  @ingroup group_mcsplugin
+ *
+ *  This class implements MCS menu action watcher for async calls.
+ * 
+ *  @since S60 9.1
+ */
+class CCarouselPluginWatcher: public CActive
+    {
+    public:
+        
+        /**
+         * enum Type
+         */
+        enum Type
+            {
+            EOperation,
+            ENotify
+            };
+        
+        /**
+         * Two-phased constructor.
+         * 
+         * @param aType
+         */
+        static CCarouselPluginWatcher* NewL( const Type& aType );
+        
+        /**
+         * Destructor.
+         */
+        virtual ~CCarouselPluginWatcher();
+
+        /**
+         * Watch menu operation or notification.
+         * 
+         * @param aOperation
+         */
+        void Watch( CMenuOperation* aOperation = NULL );
+        
+        /**
+         * WatchNotify
+         * 
+         * @param aObserver
+         */
+        void WatchNotify( MCarouselPluginWatcherObserver* aObserver );
+        
+        /**
+         * StopAndWatch
+         * 
+         * @param aOperation
+         * @param aWaitScheduler
+         */
+        void StopAndWatch( CMenuOperation* aOperation, 
+                           CActiveSchedulerWait* aWaitScheduler );
+        
+        /**
+         * GetStatus 
+         */
+        TInt GetStatus();
+
+    private:
+    
+        /** 
+         * Default constructor.
+         * 
+         * @param aType
+         */
+        CCarouselPluginWatcher( const Type& aType );
+
+        /** 
+         * ConstructL
+         */
+        void ConstructL();
+        
+        /**
+        * Inherited from CActive class 
+        */ 
+        void RunL();
+        
+        /**
+        * Inherited from CActive class 
+        */ 
+        void DoCancel();
+    
+    private:
+        
+        /** 
+         * Menu operation
+         * Owned
+         */
+        CMenuOperation* iOperation; 
+        
+        /**
+         * Wait scheduler
+         * Not owned
+         */
+        CActiveSchedulerWait* iWaitScheduler;
+
+        /** 
+         * Observer reference
+         * Not owned
+         */
+        MCarouselPluginWatcherObserver* iObserver;
+        
+        /** 
+         * iType
+         */
+        Type iType;
+    };
+
+#endif /*__MCSPLUGINWATCHER_H*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/loc/carouselplugin.loc	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,34 @@
+/*
+* Copyright (c) 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"
+* 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 carousel Plugin
+*
+*/
+
+// d: A dialog which is shown to user when (s)he is trying to 
+// d: launch shortcut item during backup state.
+// l: popup_note_window
+// w:
+// r: tb9.2
+//
+#define qtn_mcs_disable_open_item "Application cannot be opened during backup"
+
+// d: A dialog which is shown to user when (s)he is trying to 
+// d: launch shortcut item which is missing from menu.
+// l: popup_note_window
+// w:
+// r: tb9.2
+//
+#define qtn_mcs_disable_open_item_missing "Shortcut cannot be opened because item is missing. Try to insert memory card which contains the item or reinstall the application."
+
+//End file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/rom/carouselplugin.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 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:  IBY file for carousel plug-in
+*
+*/
+
+
+#ifndef CAROUSELPLUGIN_IBY
+#define CAROUSELPLUGIN_IBY
+#include <bldvariant.hrh>
+
+data=DATAZ_\BITMAP_DIR\carouselplugin.mif BITMAP_DIR\carouselplugin.mif
+
+ECOM_PLUGIN(carouselplugin.dll, carouselplugin.rsc)
+
+#endif // CAROUSELPLUGIN_IBY
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/rom/carouselplugin_resources.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2005 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:  IBY file for Profile plug-in
+*
+*/
+
+
+#ifndef CAROUSELPLUGIN_RESOURCES_IBY
+#define CAROUSELPLUGIN_RESOURCES_IBY
+
+#include <data_caging_paths_for_iby.hrh>
+
+data=DATAZ_\RESOURCE_FILES_DIR\carouselpluginres.rsc  RESOURCE_FILES_DIR\carouselpluginres.rsc
+
+#endif // CAROUSELPLUGIN_RESOURCES_IBY
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/src/carouselplugin.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,502 @@
+/*
+* Copyright (c) 2009 - 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"
+* 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:  MCS plugin publisher
+*
+*/
+
+// System includes
+#include <ecom/ecom.h>
+#include <ecom/implementationproxy.h>
+#include <gulicon.h>
+#include <mcsmenuitem.h>
+
+// User includes
+#include <aicontentobserver.h>
+#include <aistrcnv.h>
+#include <aiutility.h>
+#include <aipluginsettings.h>
+#include "carouselpluginuids.hrh"
+#include "carouselplugin.h"
+#include "carouselplugindata.h"
+#include "carouselpluginengine.h"
+
+// Constants
+const TUint KPluginNameSeprator =  '/';
+
+const TInt KImplUidMCSPlugin = AI_UID_ECOM_IMPLEMENTATION_CONTENTPUBLISHER_CAROUSELPLUGIN;
+
+_LIT( KEventNameLaunchByIndex,  "LaunchByIndex" );
+_LIT( KEventNameShowSettings,   "ShowSettings" );
+_LIT( KContentItemTypeText, "text" );
+_LIT( KContentItemTypeImage, "image" );
+_LIT( KContentItemTypeData, "data" );
+
+const TImplementationProxy KImplementationTable[] =
+    {
+    IMPLEMENTATION_PROXY_ENTRY( KImplUidMCSPlugin, CCarouselPlugin::NewL ) 
+    };
+
+class CPublishItem : public CBase
+    {
+public:
+    ~CPublishItem();
+    CPublishItem();
+    
+    CGulIcon* icon;
+    HBufC* text;
+    TBool last;
+    };
+
+CPublishItem::CPublishItem()
+    {
+    
+    }
+
+CPublishItem::~CPublishItem()
+    {
+    delete text;
+    }
+
+// ======== LOCAL FUNCTIONS ========
+
+// ======== MEMBER FUNCTIONS ========
+// ----------------------------------------------------------------------------
+// CMCSPlugin::NewL
+//
+// ----------------------------------------------------------------------------
+//
+CCarouselPlugin* CCarouselPlugin::NewL()
+    {
+    CCarouselPlugin* self = new ( ELeave ) CCarouselPlugin;
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+ 
+    return self;
+    }
+    
+// ----------------------------------------------------------------------------
+// CMCSPlugin::CMCSPlugin
+//
+// ----------------------------------------------------------------------------
+//
+CCarouselPlugin::CCarouselPlugin()
+    {
+    }
+    
+// ----------------------------------------------------------------------------
+// CMCSPlugin::ConstructL
+// 
+// ----------------------------------------------------------------------------
+//
+void CCarouselPlugin::ConstructL()
+    {
+    }
+    
+// ----------------------------------------------------------------------------
+// Destructor
+// Deletes all data created to heap
+// ----------------------------------------------------------------------------
+//
+CCarouselPlugin::~CCarouselPlugin()
+    {
+    Release( iContent );
+
+    delete iEngine;
+    iObservers.Close();
+    
+    DeleteContentModel();
+    }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::PublishL
+// Publishes the all the items
+// ----------------------------------------------------------------------------
+//
+void CCarouselPlugin::PublishL()
+    {    
+    TInt err( KErrNone );
+    TInt observers( iObservers.Count() );
+    TInt transactionId( reinterpret_cast<TInt>( this ) );
+    TInt menuItems ( iEngine->MenuItemCount() );
+
+    for ( TInt i = 0; i < observers; i++ )
+        {
+        MAiContentObserver* observer( iObservers[ i ] );
+        err = observer->StartTransaction( transactionId );
+        
+        if ( err == KErrNotSupported )
+            {
+            return;
+            }
+        
+        // Publish content to all items
+        for ( TInt j = 0; j < menuItems; j++ )
+            {
+            // Index has to start from 1 ( j + 1 )
+            PublishLItemL( *observer, iEngine->MenuDataL( j ), ( j + 1 ) );
+            }// shortcut count
+        
+        if ( err == KErrNone )
+            {
+            err = observer->Commit( transactionId );
+            
+            if ( err == KErrNotSupported )
+                {
+                return;
+                }
+            }
+        }//observers
+
+    // Set all items not dirty.
+    for ( TInt j = 0; j < menuItems; j++ )
+        {
+        iEngine->MenuDataL( j ).SetDirty( EFalse );
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::PublishLItemL
+// Publishes one item to given index
+// ----------------------------------------------------------------------------
+//
+void CCarouselPlugin::PublishLItemL( MAiContentObserver& aObserver, 
+    CCarouselData& aData, TInt aIndex )
+    {
+    if( !aData.IsDirty() )
+        {
+        return;
+        }
+
+    CMenuItem* item = iEngine->FetchMenuItemL( aData );
+    CleanupStack::PushL( item );
+    
+    if ( iContentModel[0].type == KAiContentTypeData )
+        {
+        if(TPtrC16( ( const TText16* ) iContentModel[ 0 ].cid ) == _L("widget") )
+            {
+            CGulIcon* icon( iEngine->ItemIconL( item, _L("icon")));
+            icon->SetBitmapsOwnedExternally( ETrue );
+            aObserver.Publish( *this, 0, TPckgC<TAny*>( icon ), aIndex - 1 );
+            }
+        }
+    CleanupStack::PopAndDestroy( item );
+    }
+
+// ----------------------------------------------------------------------------
+// PublishEditorItemsL
+// 
+// ----------------------------------------------------------------------------
+//
+void CCarouselPlugin::PublishEditorItemsL()
+    {/*
+    RArray<TMenuItem> items = iEngine->MenuItemsL();
+    CleanupClosePushL( items );
+    
+    TInt count( items.Count());
+    for( TInt i = 0; i < count; i++ )
+        {
+        CMenuItem* item( iEngine->FetchMenuItemL( items[i]));
+        CleanupStack::PushL( item );
+        CGulIcon* icon( iEngine->ItemIconL( *item, _L("icon")));
+        TPtrC name( iEngine->ItemTextL( *item, _L("long_name") ));
+        CPublishItem* pItem = new CPublishItem;
+        pItem->icon = icon;
+        pItem->text = name.AllocL();
+        if( i < count - 1 )
+            {
+            pItem->last = EFalse;
+            }
+        else
+            {
+            pItem->last = ETrue;
+            }
+        iObservers[0]->Publish( *this, 0, TPckgC<TAny*>( pItem), i );
+        delete pItem;
+        CleanupStack::PopAndDestroy( item );
+        }
+    CleanupStack::PopAndDestroy( &items );
+    */
+    }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::Start
+// 
+// ----------------------------------------------------------------------------
+//
+void CCarouselPlugin::Start( TStartReason /*aReason*/ )
+    {
+ 
+    }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::Stop
+// 
+// ----------------------------------------------------------------------------
+//
+void CCarouselPlugin::Stop( TStopReason /*aReason*/ )
+    {
+
+    }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::Resume
+// 
+// ----------------------------------------------------------------------------
+//
+void CCarouselPlugin::Resume( TResumeReason aReason )
+    {       
+    if ( aReason == EForeground )
+        {
+        iEngine->SetBackupRestore( EFalse );
+        
+        if ( PublishRequired() )
+            {
+            TRAP_IGNORE( PublishL() );
+            }        
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::Suspend
+// 
+// ----------------------------------------------------------------------------
+//
+void CCarouselPlugin::Suspend( TSuspendReason aReason )
+    {    
+    if ( aReason == EGeneralThemeChange )
+        {                   
+        TInt dataCount( iEngine->MenuItemCount() );
+        
+        for ( TInt i = 0; i < dataCount; i++ )
+            {
+            TRAP_IGNORE( iEngine->MenuDataL( i ).SetDirty( ETrue ) );
+            }                
+        }
+    else if ( aReason == EBackupRestore )
+        {
+        // Prevent item launching during backup / restore 
+        iEngine->SetBackupRestore( ETrue );
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::SubscribeL
+//
+// ----------------------------------------------------------------------------
+//
+void CCarouselPlugin::SubscribeL( MAiContentObserver& aObserver )
+    { 
+    iObservers.AppendL( &aObserver );
+    }
+   
+// ----------------------------------------------------------------------------
+// CMCSPlugin::ConfigureL
+// 
+// ----------------------------------------------------------------------------
+//
+void CCarouselPlugin::ConfigureL( RAiSettingsItemArray& aSettings )
+    {    
+    iEngine = CCarouselPluginEngine::NewL( *this, PublisherInfo().Namespace() );
+    
+    TLinearOrder<MAiPluginSettings> sortMethod( CCarouselPlugin::CompareItems );
+    RAiSettingsItemArray contentItemsArr;
+
+    TInt count( aSettings.Count() );
+    
+    for ( TInt i = 0; i < count; i++ )
+       {
+       MAiPluginSettings* setting( aSettings[ i ] );
+       
+       if( setting->AiPluginItemType() == EAiPluginContentItem )
+           {
+           MAiPluginContentItem& contItem( setting->AiPluginContentItem() );
+           TPtrC name( contItem.Name() );
+           TPtrC type( contItem.Type() );
+           
+           contentItemsArr.InsertInOrder( setting, sortMethod );
+           }
+       }
+    
+    iDataCount = contentItemsArr.Count();
+    
+    if ( iDataCount > 0 )
+        {
+        // Create the dynamic content Model
+        DeleteContentModel();
+        
+        iContentModel = new ( ELeave ) TAiContentItem[ iDataCount ];
+        
+        for ( TInt i = 0; i < iDataCount; i++ )
+            {
+            iContentModel[i].id = i;
+        
+            MAiPluginContentItem& contentItem( 
+                contentItemsArr[ i ]->AiPluginContentItem() );
+
+            if( contentItem.Type() == KContentItemTypeText )
+                {
+                // text
+                iContentModel[i].type = KAiContentTypeText;
+                }
+            if( contentItem.Type() == KContentItemTypeImage )
+                {
+                // image
+                iContentModel[i].type = KAiContentTypeBitmap;
+                }
+            else if(contentItem.Type() == KContentItemTypeData )
+                {
+                // data
+                iContentModel[i].type = KAiContentTypeData;
+                }
+            
+            TInt pos( contentItem.Name().Locate( KPluginNameSeprator ) );
+            
+            HBufC* contentId = HBufC::NewL( contentItem.Name().Length() );
+            CleanupStack::PushL( contentId );
+            
+            TPtr ptr( contentId->Des() ); 
+            ptr = contentItem.Name().Mid( pos + 1 );
+            
+            TInt sizeOfContentId( ptr.Size() + sizeof( wchar_t ) );
+            
+            iContentModel[i].cid = 
+                static_cast<const wchar_t*>( User::AllocL( sizeOfContentId ) );
+                
+            Mem::Copy( ( TAny* )iContentModel[i].cid, 
+                ptr.PtrZ(), sizeOfContentId );
+            
+            CleanupStack::PopAndDestroy( contentId );
+            }
+        
+        iContent = AiUtility::CreateContentItemArrayIteratorL( 
+                iContentModel, iDataCount );
+        }
+    
+    contentItemsArr.Reset();
+    // We own the array so destroy it
+    aSettings.ResetAndDestroy();
+    }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::GetProperty
+// 
+// ----------------------------------------------------------------------------
+//
+TAny* CCarouselPlugin::GetProperty( TProperty aProperty )
+    {
+    if( aProperty == EPublisherContent )
+        {
+        return static_cast< MAiContentItemIterator* >( iContent );        
+        }
+        
+    return NULL;
+    }
+ 
+// ----------------------------------------------------------------------------
+// CMCSPlugin::HandleEvent
+// 
+// ----------------------------------------------------------------------------
+//
+void CCarouselPlugin::HandleEvent( const TDesC& aEventName, const TDesC& aParam )
+    {       
+    if( aEventName == KEventNameLaunchByIndex )
+        {        
+        TInt32 index;
+        AiUtility::ParseInt( index, aParam );
+        
+        TRAP_IGNORE( iEngine->LaunchItemL( index - 1 ) );
+        }
+    else if( aEventName == KEventNameShowSettings )
+        {
+        TRAP_IGNORE( iEngine->ShowSettingsL() );
+        }
+    else if( aEventName == _L("ShowEditor"))
+        {
+        TRAP_IGNORE( PublishEditorItemsL() );
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::CompareItems
+//
+// ----------------------------------------------------------------------------
+//
+TInt CCarouselPlugin::CompareItems( const MAiPluginSettings& aFirst,
+    const MAiPluginSettings& aSecond )
+    {
+    MAiPluginSettings& first = const_cast<MAiPluginSettings&>(aFirst);
+    MAiPluginSettings& second = const_cast<MAiPluginSettings&>(aSecond);
+    return first.AiPluginContentItem().Name().CompareC(second.AiPluginContentItem().Name());    
+    }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::DeleteContentModel
+//
+// ----------------------------------------------------------------------------
+//    
+void CCarouselPlugin::DeleteContentModel()
+    {
+    if( iContentModel )
+        {
+        for ( TInt i = 0; i < iDataCount; i++ )
+            {             
+            if( iContentModel[i].cid )
+                {
+                TAny* cell = static_cast<TAny*>( const_cast<wchar_t*>( iContentModel[i].cid ) );
+                User::Free( cell ); // Originally allocated with User::Alloc, so delete
+                                    // with correlating method.
+                iContentModel[i].cid = NULL;
+                }
+            }
+        
+        delete iContentModel;
+        iContentModel = NULL;        
+        }    
+    }
+
+// ----------------------------------------------------------------------------
+// CMCSPlugin::PublishRequired
+//
+// ----------------------------------------------------------------------------
+//    
+TBool CCarouselPlugin::PublishRequired() const
+    {
+    TInt count( iEngine->MenuItemCount() );
+    
+    TBool retval( EFalse );
+    
+    for ( TInt i = 0; !retval && i < count; i++ )
+        {               
+        TRAP_IGNORE( retval = iEngine->MenuDataL( i ).IsDirty() );       
+        }
+        
+    
+    return retval;
+    }
+
+// ======== GLOBAL FUNCTIONS ========
+// ----------------------------------------------------------------------------
+// Constructs and returns an application object.
+// ----------------------------------------------------------------------------
+//
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy( 
+    TInt& aTableCount )
+    {
+    aTableCount = sizeof( KImplementationTable ) / 
+        sizeof( TImplementationProxy );
+    return KImplementationTable;
+    }
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/src/carouselplugindata.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,580 @@
+/*
+* Copyright (c) 2009 - 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"
+* 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 <mcsmenuitem.h>
+#include <mcsmenufilter.h>
+#include <itemmap.h>
+#include <aistrcnv.h>
+
+#include "carouselplugindata.h"
+#include "carouselpluginengine.h"
+
+using namespace HSPluginSettingsIf;
+
+_LIT( KMenuAttrParam, "param" );
+_LIT( KMenuAttrLocked, "locked" );
+_LIT8( KProperNameType, "type" );
+_LIT8( KProperNameParam, "param" );
+_LIT8( KProperNameUid, "uid" );
+_LIT8( KProperNameView, "view" );
+_LIT8( KProperNameLocked, "locked" );
+_LIT8( KProperValueFolder, "folder" );
+_LIT8( KProperValueBookmark, "bookmark" );
+_LIT8( KProperValueAppl, "application" );
+_LIT8( KProperValueMailbox, "mailbox" );
+_LIT8( KMenuAttrUndefUid, "0x99999991" );
+
+_LIT( KMyMenuData, "matrixmenudata" );
+_LIT( KMenuTypeMailbox, "menu:mailbox" );
+
+
+#define KMCSCmailMtmUidValue 0x2001F406
+
+// ======== LOCAL FUNCTIONS ========
+
+// ----------------------------------------------------------------------------
+// CleanupResetAndDestroy()
+// ----------------------------------------------------------------------------
+//
+template<class T>
+static void CleanupResetAndDestroy( TAny* aObj )
+    {
+    if( aObj )
+        {
+        static_cast<T*>( aObj )->ResetAndDestroy();
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CleanupResetAndDestroyPushL
+// ----------------------------------------------------------------------------
+//
+template<class T>
+static void CleanupResetAndDestroyPushL(T& aArray)
+    {
+    CleanupStack::PushL( TCleanupItem( &CleanupResetAndDestroy<T>, &aArray ) );
+    }
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// Default constructor
+// ---------------------------------------------------------------------------
+//
+CCarouselData::CCarouselData()
+    :iDirty( ETrue )
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CCarouselData::~CCarouselData()
+    {
+    delete iName;
+    delete iValue;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+void CCarouselData::SetMenuItem( TMenuItem& aMenuItem )
+    {
+    iMenuItem = aMenuItem;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+TMenuItem& CCarouselData::MenuItem()
+    {
+    return iMenuItem;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+TDesC& CCarouselData::Name()
+    {
+    return *iName;
+    }
+    
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+void CCarouselData::SetNameL( const TDesC& aName )
+    {
+	delete iName;
+	iName = NULL;
+    iName = aName.AllocL();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+TDesC& CCarouselData::Value()
+    {
+    return *iValue;
+    }
+    
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+void CCarouselData::SetValueL( const TDesC& aValue )
+    {
+	delete iValue;
+	iValue = NULL;
+    iValue = aValue.AllocL();
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+void CCarouselData::SetDirty( TBool aDirty )
+    {
+    iDirty = aDirty;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+TBool CCarouselData::IsDirty() const
+    {
+    return iDirty;
+    }
+    
+
+// ---------------------------------------------------------------------------
+// Symbian 2nd phase constructor can leave
+// ---------------------------------------------------------------------------
+//
+CCarouselPluginData* CCarouselPluginData::NewL( CCarouselPluginEngine& aEngine, const TDesC8& aInstanceUid )
+    {
+    CCarouselPluginData* self = new (ELeave) CCarouselPluginData( aEngine, aInstanceUid );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+ 
+    return self;
+    }
+    
+// ---------------------------------------------------------------------------
+// Default constructor
+// ---------------------------------------------------------------------------
+//
+CCarouselPluginData::CCarouselPluginData( CCarouselPluginEngine& aEngine, const TDesC8& aInstanceUid )
+    : iEngine( aEngine ), iInstanceUid( aInstanceUid )
+    {
+    }
+    
+// ---------------------------------------------------------------------------
+// Symbian 2nd phase constructor can leave
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginData::ConstructL()
+    {
+    iPluginSettings = CHomescreenSettings::Instance();
+    if( iPluginSettings == NULL )
+        {
+        User::Leave( KErrUnknown );
+        }
+    iPluginSettings->AddObserverL( this );
+
+    iMenu.OpenL( KMyMenuData );
+
+    UpdateDataL();
+    }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CCarouselPluginData::~CCarouselPluginData()
+    {
+    if( iPluginSettings )
+        {
+        iPluginSettings->RemoveObserver( this );
+        }
+    iData.ResetAndDestroy();
+    iMenu.Close();
+    }
+
+// ---------------------------------------------------------------------------
+// Gets the instance specific settings from HSPS and creates data items
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginData::UpdateDataL()
+    {
+    RPointerArray<CItemMap> settings;
+    CleanupResetAndDestroyPushL( settings );
+
+    User::LeaveIfError( iPluginSettings->GetSettingsL( iInstanceUid, settings ) );
+    if ( settings.Count() <= 0 )
+        {
+        User::Leave( KErrNotFound );
+        }
+
+    TBool wasEmpty = !iData.Count();
+    
+    for ( TInt i = 0; i < settings.Count(); i++ )
+       {
+        CItemMap* itemMap = settings[ i ];
+        
+        // get properties
+        RPointerArray<HSPluginSettingsIf::CPropertyMap>& properties
+            = itemMap->Properties();
+        
+        CCarouselData* data = GetMenuDataL( properties );
+        CleanupStack::PushL( data );
+        if ( wasEmpty )
+            {
+            // list of shortcut slot was empty
+            // we append the shortcut data slots one-by-one to the list            
+            data->SetDirty( ETrue );
+            iData.AppendL( data );
+            CleanupStack::Pop( data );
+            }
+        else 
+            {
+            // check for updates in existing shortcut data slot
+            // if menuitem id has changed, replace the item and 
+            // set as dirty
+            TInt id( iData[ i ]->MenuItem().Id() );
+            
+            // id of all bookmarks is zero so name has to be check
+            // in case of bookmark has changed
+            if ( id >= 0 && ( data->MenuItem().Id() != id ||
+                    ( id == 0 && data->Name().CompareF(
+                            iData[ i ]->Name() ) != 0 ) ) )
+                {
+                data->SetDirty( ETrue );
+                CCarouselData* oldData = iData[i];
+                iData.Remove( i );
+                delete oldData;
+                
+                iData.InsertL( data, i );
+                CleanupStack::Pop( data );
+                }
+            else
+                {
+                CleanupStack::PopAndDestroy( data );
+                }
+            }
+        }
+    
+    // Leave if there isn't any data filled into array as there isn't
+    // anything shortcut to publish on homescreen.
+    if ( iData.Count() <= 0 ) 
+        {
+        User::Leave( KErrNotFound );
+        }
+    
+    // Cleanup.
+    CleanupStack::PopAndDestroy(); // settings
+    }
+
+// ---------------------------------------------------------------------------
+// Removes obsolete data and saves 'Undefined' item to HSPS
+// Used when active mailbox is deleted from system.
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginData::RemoveDataL( TInt aId )
+    {
+    TInt count = iData.Count();
+    for( TInt i = 0; i < count; i++ )
+        {
+        CCarouselData* data = iData[i];
+        if( data->MenuItem().Type() == KMenuTypeMailbox &&
+            data->MenuItem().Id() == aId )
+            {
+            iData[i]->MenuItem().SetId( KErrNotFound );
+            iData[i]->SetDirty( ETrue );
+            SaveUndefinedItemL( i );
+            }
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// Call back from Homescreen settings
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginData::SettingsChangedL( const TDesC8& /*aEvent*/,  const TDesC8& /*aPluginName*/,
+                           const TDesC8& /*aPluginUid*/, const TDesC8& aPluginId )
+    {
+    if( aPluginId.CompareF( iInstanceUid ) == 0 )
+        {
+        UpdateDataL();
+        }   
+    }
+
+// ---------------------------------------------------------------------------
+// Gets the menu item from engine using the setting properties as filter
+// ---------------------------------------------------------------------------
+//
+CCarouselData* CCarouselPluginData::GetMenuDataL( 
+        RPointerArray<HSPluginSettingsIf::CPropertyMap>& aProperties )
+    {
+    if ( aProperties.Count() <= 0 )
+		{
+		User::Leave( KErrArgument );
+		}
+
+    TPtrC8 type;
+	TPtrC8 uid;
+	TPtrC8 view;
+	TPtrC8 param;
+    
+    // first we need to check the item type
+    for ( TInt i = 0; i < aProperties.Count(); i++ )
+        {
+        if ( aProperties[i]->Name() == KProperNameType )
+            {
+            type.Set( aProperties[i]->Value());
+            }
+        else if( aProperties[i]->Name() == KProperNameUid)
+            {
+            uid.Set( aProperties[i]->Value());
+            }
+        else if( aProperties[i]->Name() == KProperNameView)
+            {
+            view.Set( aProperties[i]->Value());
+            }
+        else if( aProperties[i]->Name() == KProperNameParam )
+            {
+            param.Set( aProperties[i]->Value());
+            }
+        }
+    CCarouselData* data = new ( ELeave ) CCarouselData();
+    CleanupStack::PushL( data );
+    if( type == KProperValueBookmark )
+        {
+        GetBkmDataL( uid, view, param, *data );
+        }
+    else if( type == KProperValueFolder )
+        {
+        GetFolderData( param, *data );
+        }
+    else if( type == KProperValueMailbox )
+        {
+        GetMailboxDataL( uid, param, *data );
+        }
+    else
+        {
+        GetMCSDataL( aProperties, *data );
+        }
+    CleanupStack::Pop( data );
+    return data;
+    }
+
+// ---------------------------------------------------------------------------
+// Creates bookmark data item.
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginData::GetBkmDataL( const TDesC8& aUid, const TDesC8& aView, const TDesC8& aParam, CCarouselData& aData )
+    {
+    TMenuItem item;
+        
+    if( aUid.Length() > 0 )
+        {
+        CMenuFilter* filter = CMenuFilter::NewLC();
+        HBufC* name( NULL );
+        HBufC* value( NULL );
+        name = AiUtility::CopyToBufferL( name, KProperNameUid );
+        CleanupStack::PushL( name );
+        value = AiUtility::CopyToBufferL( value, aUid );
+        CleanupStack::PushL( value );
+        filter->HaveAttributeL( *name, *value );  
+        CleanupStack::PopAndDestroy( value );
+        CleanupStack::PopAndDestroy( name );
+        item = iEngine.FindMenuItemL( *filter );
+        CleanupStack::PopAndDestroy( filter );    
+        }
+    
+    item.SetType( KMenuTypeUrl );
+    aData.SetMenuItem( item );
+
+    HBufC* view( NULL );
+    view = AiUtility::CopyToBufferL( view, aView );
+    CleanupStack::PushL( view );
+    aData.SetValueL( *view );
+    CleanupStack::PopAndDestroy( view );
+    
+    HBufC* param( NULL );
+    param = AiUtility::CopyToBufferL( param, aParam );
+    CleanupStack::PushL( param );
+    aData.SetNameL( *param );
+    CleanupStack::PopAndDestroy( param );
+    }
+    
+// ---------------------------------------------------------------------------
+// Creates folder data item.
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginData::GetFolderData( const TDesC8& aParam, CCarouselData& aData )
+    {
+    // In folder case, we have to extract id from 
+    // param attribute and return item with this id
+    // convert id to integer
+    TInt id;
+    TLex8 lextmp( aParam);
+    lextmp.Val( id );
+    
+    TMenuItem item;
+    item.SetType( KMenuTypeFolder );
+    item.SetId( id );
+    aData.SetMenuItem( item );
+    }
+
+// ---------------------------------------------------------------------------
+// Creates mailbox data item.
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginData::GetMailboxDataL( const TDesC8& aUid, const TDesC8& aParam, CCarouselData& aData )
+    {
+    TInt id( KErrNotFound );
+    TLex8 lextmp( aUid);
+    lextmp.Val( id );
+    
+    TMenuItem item;
+    item.SetType( KMenuTypeMailbox );
+    item.SetId( id );
+    aData.SetMenuItem( item );
+    
+    HBufC* param( NULL );
+    param = AiUtility::CopyToBufferL( param, aParam );
+    CleanupStack::PushL( param );
+    
+    aData.SetNameL( *param );
+    
+    CleanupStack::PopAndDestroy( param );
+    }
+    
+// ---------------------------------------------------------------------------
+// Gets data item from MCS
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginData::GetMCSDataL( RPointerArray<HSPluginSettingsIf::CPropertyMap>& aProperties,
+        CCarouselData& aData)
+    {
+    CMenuFilter* filter = CMenuFilter::NewLC();
+
+    // Exclude 'view' and 'param' attributes from search criteria by default
+    // Criterias will be added to filter if setting defines them
+    filter->DoNotHaveAttributeL( KMenuAttrView );
+    filter->DoNotHaveAttributeL( KMenuAttrParam );
+    
+    // then add all property/value pairs to the filter
+    for ( TInt i = 0; i < aProperties.Count(); i++ )
+        {
+        // skip the type property
+        if( aProperties[i]->Name() == KProperNameType )
+            {
+            continue;
+            }
+
+        HBufC* name( NULL );
+        HBufC* value( NULL );
+        name = AiUtility::CopyToBufferL( name, aProperties[i]->Name() );
+        CleanupStack::PushL( name );
+        value = AiUtility::CopyToBufferL( value, aProperties[i]->Value() );
+        CleanupStack::PushL( value );
+
+        if ( value->Length() != 0 )
+            {
+            filter->HaveAttributeL( *name, *value );  
+            }
+        CleanupStack::PopAndDestroy( value );
+        CleanupStack::PopAndDestroy( name );
+        }
+    
+    // locked property excluded from search pattern 
+    filter->DoNotHaveAttributeL( KMenuAttrLocked );
+    
+    TMenuItem item = iEngine.FindMenuItemL( *filter );
+    CleanupStack::PopAndDestroy( filter );
+    aData.SetMenuItem( item );
+    }
+
+// ---------------------------------------------------------------------------
+// Returns menu item for given index
+// ---------------------------------------------------------------------------
+//
+CCarouselData& CCarouselPluginData::DataItemL( TInt aIndex )
+    {
+    if( aIndex < 0 || aIndex >= iData.Count())
+        {
+        User::Leave( KErrArgument ); 
+        }
+    return *iData[aIndex];
+    }
+
+// ---------------------------------------------------------------------------
+// Save the undefined item.
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginData::SaveUndefinedItemL( const TInt& aIndex )
+    {
+    RPointerArray<CItemMap> settingItems;
+    CleanupResetAndDestroyPushL( settingItems );
+    
+    iPluginSettings->GetSettingsL( iInstanceUid, settingItems );
+    if ( aIndex >= 0 && aIndex < settingItems.Count() )
+        {
+        CItemMap* itemMap = settingItems[ aIndex ];
+        
+        // get properties
+        RPointerArray<HSPluginSettingsIf::CPropertyMap>& properties
+            = itemMap->Properties();
+
+        for ( TInt i = 0; i < properties.Count(); i++ )
+            {
+            if ( properties[ i ]->Name() == KProperNameType )
+                {
+                properties[ i ]->SetValueL( KProperValueAppl );
+                }
+            else if ( properties[ i ]->Name() == KProperNameUid )
+                {
+                properties[ i ]->SetValueL( KMenuAttrUndefUid );
+                }
+            else if ( properties[ i ]->Name() == KProperNameView )
+                {
+                properties[ i ]->SetValueL( KNullDesC8 );
+                }
+            else if ( properties[ i ]->Name() == KProperNameParam )
+                {
+                properties[ i ]->SetValueL( KNullDesC8 );
+                }
+            else if ( properties[ i ]->Name() == KProperNameLocked )
+                {
+                properties[i]->SetValueL( KNullDesC8 );
+                }
+            }
+        }
+    // ETrue tells that modified settings are stored also to plugin reference
+    iPluginSettings->SetSettingsL( iInstanceUid, settingItems, ETrue );
+    CleanupStack::PopAndDestroy(); // settingItems
+    }
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/src/carouselpluginengine.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,841 @@
+/*
+* Copyright (c) 2009-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"
+* 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 engine class of MCS plugin. 
+*
+*/
+
+// System includes
+#include <gulicon.h>
+#include <gslauncher.h>
+#include <mcsmenufilter.h>
+#include <mcsmenuoperation.h>
+#include <mcsmenuiconutility.h>
+#include <bautils.h>
+#include <StringLoader.h>
+#include <aknnotedialog.h>
+#include <mcspluginres.rsg>
+#include <apgcli.h> 
+#include <apacmdln.h>
+#include <gfxtranseffect/gfxtranseffect.h>      
+#include <akntranseffect.h>
+#include <schemehandler.h>
+#include <viewcli.h>                // For CVwsSessionWrapper
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <viewclipartner.h>
+#endif
+#include <aisystemuids.hrh>
+
+// User includes
+#include "carouselpluginengine.h"
+#include "carouselplugin.h"
+#include "carouselplugindata.h"
+#include "carouselpluginuids.hrh"
+
+// Constants
+_LIT( KMyMenuData, "matrixmenudata" );
+_LIT( KSkin,         "skin" );
+_LIT( KMif,          "mif" );
+_LIT( KResourceDrive, "Z:" );
+_LIT( KResourceFile, "mcspluginres.rsc" );
+_LIT( KResPath, "\\resource\\" );
+_LIT( KMMApplication, "mm://" );
+_LIT( KHideExit2, "&exit=hide" );
+_LIT( KSetFocusString, "!setfocus?applicationgroup_name=" );
+_LIT( KApplicationGroupName, "applicationgroup_name" );
+_LIT( KIcon, "icon" );
+_LIT( KMenuAttrUndefUid, "0x99999991" );
+_LIT( KMenuIconFile, "aimcsplugin.mif" );
+_LIT( KMenuBookmarkIconId, "16386" );
+_LIT( KMenuBookmarkMaskId, "16387" );
+_LIT( KMenuMailboxIconId, "16388" );
+_LIT( KMenuMailboxMaskId, "16389" );
+_LIT( KMenuTypeMailbox, "menu:mailbox" );
+_LIT( KPrefix, "0x" );
+
+const TUid KHomescreenUid = { AI_UID3_AIFW_COMMON };
+const TUid KMMUid = { 0x101F4CD2 };
+const TUid KMCSCmailUidValue = { 0x2001E277 };
+const TUid KMCSCmailMailboxViewIdValue = { 0x2 };
+const TUid KBrowserUid = { 0x10008D39 };
+
+// ======== LOCAL FUNCTIONS ========
+// ----------------------------------------------------------------------------
+// NextIdToken
+// ----------------------------------------------------------------------------
+//
+static TPtrC NextIdToken( TLex& aLexer )
+   {
+   aLexer.SkipSpace();
+   aLexer.Mark();
+  
+   while( !aLexer.Eos() && !aLexer.Peek().IsSpace() && aLexer.Peek() != ')' )
+       {
+       aLexer.Inc();
+       }
+   
+   return aLexer.MarkedToken();
+   }
+
+// ----------------------------------------------------------------------------
+// Shows note dailog, with the given resource.
+// ----------------------------------------------------------------------------
+//
+static void ShowNoteDlgL( TInt aResource )
+    {
+    HBufC* temp = StringLoader::LoadLC( aResource );
+    
+    CAknNoteDialog* dialog = new (ELeave) CAknNoteDialog(
+    CAknNoteDialog::EConfirmationTone,
+    CAknNoteDialog::ENoTimeout );
+    CleanupStack::PushL( dialog );
+    dialog->SetTextL( temp->Des() );
+    dialog->ExecuteDlgLD( R_MCS_DISABLE_OPEN_ITEM_DLG );
+    CleanupStack::Pop( dialog );
+    CleanupStack::PopAndDestroy( temp );
+    }
+
+// ----------------------------------------------------------------------------
+// Parses uid in Hexadecimal format from the given string.
+// ----------------------------------------------------------------------------
+//
+TUid ParseHexUidFromString(const TDesC& aUidString )
+    {
+    TUid uid( KNullUid ); 
+    const TInt pos( aUidString.FindF( KPrefix ) );
+    
+    if ( pos != KErrNotFound )
+        {
+        TLex lex( aUidString.Mid( pos + KPrefix().Length() ) );
+        
+        // Hex parsing needs unsigned int
+        TUint32 value( 0 );
+        const TInt parseResult( lex.Val( value, EHex ) );
+        
+        if ( parseResult == KErrNone )
+            {
+            TInt32 value32( value );
+            uid.iUid = value32;   
+            }
+        }
+    return uid;
+    }
+
+// ----------------------------------------------------------------------------
+// Start transition effect. User has launched the application with the given uid.
+// ----------------------------------------------------------------------------
+//
+void StartEffect( TUid aUid )
+    {
+    //start a full screen effect
+    GfxTransEffect::BeginFullScreen( 
+        AknTransEffect::EApplicationStart,
+        TRect(), 
+        AknTransEffect::EParameterType, 
+        AknTransEffect::GfxTransParam( aUid,
+        AknTransEffect::TParameter::EActivateExplicitContinue ));
+    }
+
+// ============================ MEMBER FUNCTIONS ===============================
+// ----------------------------------------------------------------------------
+// CMCSPluginEngine::CMCSPluginEngine
+//
+// ----------------------------------------------------------------------------
+//
+CCarouselPluginEngine::CCarouselPluginEngine( CCarouselPlugin& aPlugin, 
+    const TDesC8& aInstanceUid ) 
+    : iPlugin( aPlugin ), iInstanceUid( aInstanceUid )    
+    {
+    }
+    
+// ----------------------------------------------------------------------------
+// CMCSPluginEngine::NewL
+// 
+// ----------------------------------------------------------------------------
+//
+CCarouselPluginEngine* CCarouselPluginEngine::NewL( CCarouselPlugin& aPlugin, 
+    const TDesC8& aInstanceUid )
+    {
+    CCarouselPluginEngine* self = 
+        new( ELeave ) CCarouselPluginEngine( aPlugin, aInstanceUid );
+    
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+
+    return self;
+    }
+
+// ----------------------------------------------------------------------------
+// CMCSPluginEngine::ConstructL
+//
+// ----------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::ConstructL()
+    {
+    TFullName resourceFile( KResourceDrive );
+    resourceFile.Append( KResPath );
+    resourceFile.Append( KResourceFile );
+    BaflUtils::NearestLanguageFile(
+        CCoeEnv::Static()->FsSession(),
+        resourceFile );
+    iResourceOffset =
+        CCoeEnv::Static()->AddResourceFileL( resourceFile );
+    InitL();
+    StartObservingL();
+    
+    // Get "Undefined" item
+    CMenuFilter* filter = CMenuFilter::NewL();
+    CleanupStack::PushL( filter );
+    filter->HaveAttributeL( KMenuAttrUid, KMenuAttrUndefUid );
+    iUndefinedItemHeader = FindMenuItemL( *filter );
+    CleanupStack::PopAndDestroy( filter );
+    iUndefinedItem = CMenuItem::OpenL( iMenu, iUndefinedItemHeader );    
+    }
+
+// ----------------------------------------------------------------------------
+// CMCSPluginEngine::~CMCSPluginEngine
+//
+// ----------------------------------------------------------------------------
+//
+CCarouselPluginEngine::~CCarouselPluginEngine()
+    {
+    StopObserving();
+
+    delete iPluginData;
+
+    // Notifier close has to be before iMenu close
+    iNotifier.Close();
+    iMenu.Close();
+    delete iWatcher;
+    delete iNotifyWatcher;
+
+    CCoeEnv::Static()->DeleteResourceFile( iResourceOffset );
+
+    delete iUndefinedItem;
+    }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::InitL
+//
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::InitL()
+    {
+    iMenu.OpenL( KMyMenuData );
+    iPluginData = CCarouselPluginData::NewL( *this, iInstanceUid );
+    iWatcher = CCarouselPluginWatcher::NewL( CCarouselPluginWatcher::EOperation );
+    
+    TInt err( iNotifier.Open( iMenu ) ); 
+    
+    if ( err == KErrNone )
+        {
+        iNotifyWatcher = CCarouselPluginWatcher::NewL( CCarouselPluginWatcher::ENotify );
+        
+        iNotifier.Notify( 0,
+            RMenuNotifier::EItemsAddedRemoved,
+            iNotifyWatcher->iStatus );
+        iNotifyWatcher->WatchNotify( this );
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::StartObservingL
+//
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::StartObservingL()
+    {
+    // registering to mailbox db. changes observing
+    iMsvSession = CMsvSession::OpenAsObserverL( *this );
+    }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::StopObserving
+//
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::StopObserving()
+    {       
+    delete iMsvSession;
+    iMsvSession = NULL;    
+    }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::MenuDataL
+//
+// ---------------------------------------------------------------------------
+//
+CCarouselData& CCarouselPluginEngine::MenuDataL( const TInt& aIndex )
+    {
+    return iPluginData->DataItemL( aIndex );
+    }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::MenuItemCount
+//
+// ---------------------------------------------------------------------------
+//
+TInt CCarouselPluginEngine::MenuItemCount()
+    {
+    return iPluginData->DataCount();
+    }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::FindMenuItemL
+// Returns the menu item header, which matches the given filter.
+// ---------------------------------------------------------------------------
+//
+TMenuItem CCarouselPluginEngine::FindMenuItemL( CMenuFilter& aFilter )
+    {    
+    TMenuItem item;
+    const TInt root( iMenu.RootFolderL() );
+    
+    RArray<TMenuItem> items;
+    CleanupClosePushL( items );
+    
+    iMenu.GetItemsL( items, root, &aFilter, ETrue );
+    
+    if ( items.Count() > 0 )
+        {
+        item = items[0];
+        }
+
+    CleanupStack::PopAndDestroy( &items );
+    
+    return item;
+    }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::FetchMenuItemL
+// Returns the actual menu item for the given header.
+// ---------------------------------------------------------------------------
+//
+CMenuItem* CCarouselPluginEngine::FetchMenuItemL( CCarouselData& aData )
+    {
+    CMenuItem* item = NULL;
+    
+    TRAP_IGNORE( item = CMenuItem::OpenL( iMenu, aData.MenuItem().Id() ) );
+    
+    if( item )
+        {
+        return item; 
+        }
+    
+    if( aData.MenuItem().Type() == KMenuTypeUrl )
+        {
+        item = CreateBkmItemL( aData );
+        }
+    else if( aData.MenuItem().Type() == KMenuTypeMailbox )
+        {
+        item = CreateMailboxItemL( aData);
+        }
+    
+    return item;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+CMenuItem* CCarouselPluginEngine::CreateBkmItemL( CCarouselData& aData )
+    {
+    CMenuItem* item( NULL );
+    if( aData.MenuItem().Id() != KErrNotFound )
+        {        
+        item = CMenuItem::CreateL( iMenu, KMenuTypeUrl, 0, 0 );
+        CleanupStack::PushL( item );
+        item->SetAttributeL( KMenuAttrLongName, aData.Name() );
+        item->SetAttributeL( KMenuAttrIconFile, KMenuIconFile );
+        item->SetAttributeL( KMenuAttrIconId, KMenuBookmarkIconId );
+        item->SetAttributeL( KMenuAttrMaskId, KMenuBookmarkMaskId );
+        CleanupStack::Pop( item );
+        }
+    return item;
+    }
+    
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+CMenuItem* CCarouselPluginEngine::CreateMailboxItemL( CCarouselData& aData )
+    {
+    CMenuItem* item( NULL );
+    if( aData.MenuItem().Id() != KErrNotFound )
+        {   
+        item = CMenuItem::CreateL( iMenu, KMenuTypeMailbox, 0, 0 );
+        CleanupStack::PushL( item );
+        item->SetAttributeL( KMenuAttrLongName, aData.Name() );
+        item->SetAttributeL( KMenuAttrIconFile, KMenuIconFile );
+        item->SetAttributeL( KMenuAttrIconId, KMenuMailboxIconId );
+        item->SetAttributeL( KMenuAttrMaskId, KMenuMailboxMaskId );
+        CleanupStack::Pop( item );
+        }
+    return item;
+    }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::ItemIconL
+// Returns MCS default icon if attribute is 'icon' else parses the
+// skin definition from attribute and sets attributes to aMenuItem.
+// ---------------------------------------------------------------------------
+//
+CGulIcon* CCarouselPluginEngine::ItemIconL( CMenuItem* aMenuItem, 
+    const TDesC& aAttr )
+    {
+    
+    CMenuItem* menuItem;
+  
+    // check if item exists in MCS
+    if ( aMenuItem )
+        { 
+        TUint32 flags = aMenuItem->Flags();
+        TUint32 isHidden = flags & TMenuItem::EHidden;
+        TUint32 isMissing = flags & TMenuItem::EMissing;
+
+        if ( iUndefinedItem && ( isHidden || isMissing ) )
+            {
+            menuItem = iUndefinedItem;
+            }
+        else
+            {
+            menuItem = aMenuItem;
+            }
+        }
+    else 
+        {
+        // item not found in MCS. Use Undefined Icon
+        menuItem = iUndefinedItem;
+        }
+
+    CAknIcon* icon( NULL );
+    CGulIcon* gIcon( NULL );
+    TBool exists( ETrue );
+    
+    if ( aAttr != KIcon )
+        {
+        // Resolve secondary icon definition from attribute
+        TPtrC iconDef( menuItem->GetAttributeL( aAttr, exists ) );
+    
+        if ( exists )
+            {
+            exists = ConstructMenuItemForIconL( iconDef, *menuItem );
+            }
+        }
+    
+    if ( exists )
+        {
+        icon = MenuIconUtility::GetItemIconL( *menuItem );
+    
+        if ( icon )
+            {
+            CleanupStack::PushL( icon );
+            
+            gIcon = CGulIcon::NewL( icon->Bitmap(), icon->Mask() );
+            
+            // Detach and delete
+            icon->SetBitmap( NULL );
+            icon->SetMask( NULL );    
+            
+            CleanupStack::PopAndDestroy( icon );
+            }
+        }
+    
+    return gIcon;
+    }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::ItemTextL
+// Returns text string for the given attribute
+// ---------------------------------------------------------------------------
+//
+TPtrC CCarouselPluginEngine::ItemTextL( CMenuItem* aMenuItem, const TDesC& aAttr )
+    {
+
+    CMenuItem* menuItem;
+
+    // check if item exists in MCS
+    if ( aMenuItem )
+        {
+        TUint32 flags = aMenuItem->Flags();
+        TUint32 isHidden = flags & TMenuItem::EHidden;
+        TUint32 isMissing = flags & TMenuItem::EMissing;
+
+        // if item is hidden or missing (mmc card removed)
+        // use "Undefined" text instead
+        if ( iUndefinedItem && ( isHidden || isMissing ) )
+            {
+            menuItem = iUndefinedItem;
+            }
+        else
+            {
+            menuItem = aMenuItem;
+            }
+        }
+    else 
+        {
+        // item not found in MCS. Use "Undefined" text
+        menuItem = iUndefinedItem;
+        }
+    
+    TBool exists( KErrNotFound );
+    
+    TPtrC name( menuItem->GetAttributeL( aAttr, exists ) );
+    
+    if ( exists )
+        {
+        return name;
+        }
+
+    return KNullDesC();
+    }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::LaunchItemL
+// Calls the open command for the given menu item header
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::LaunchItemL( const TInt& aIndex )
+    {
+    if ( iBackupRestore )
+        {
+        ShowNoteDlgL( R_MCS_DISABLE_OPEN_ITEM ); 
+        return;
+        }
+
+    CCarouselData& dataItem( iPluginData->DataItemL( aIndex ) );
+    // run item based on its type
+    TPtrC type( dataItem.MenuItem().Type());
+
+    // run folder
+    if ( type == KMenuTypeFolder )
+        {
+        LaunchFolderItemL( dataItem );
+        }
+    else if( type == KMenuTypeUrl )
+        {
+        LaunchBookmarkItemL( dataItem );
+        }
+    else if( type == KMenuTypeMailbox )
+        {
+        LaunchMailboxItemL( dataItem );
+        }
+    else
+        {
+        LaunchMCSItemL( dataItem );
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::LaunchFolderItemL( CCarouselData& aData )
+    {
+    CMenuItem* item = NULL;
+    TRAP_IGNORE( item = CMenuItem::OpenL( iMenu, aData.MenuItem().Id() ) );
+    
+    // item does not exist at all in MCS
+    if ( item == NULL )
+        {
+        ShowNoteDlgL( R_MCS_DISABLE_OPEN_ITEM_MISSING );
+        return;
+        }
+    
+    CleanupStack::PushL( item );
+    
+    StartEffect( KMMUid );
+    
+    // message for MM application
+    HBufC8* message; 
+
+    // prepare message for launching folder
+    TBool hasApplicationGroupName( EFalse );
+    
+    TPtrC applicationGroupName( item->GetAttributeL(
+        KApplicationGroupName, hasApplicationGroupName ) );
+                                                      
+    if ( !hasApplicationGroupName )
+        {
+        return;
+        }
+    
+    message = HBufC8::NewLC( KMMApplication().Length() + 
+                             KSetFocusString().Length() +
+                             applicationGroupName.Length() + 
+                             KHideExit2().Length() );
+
+    message->Des().Copy( KMMApplication );
+    message->Des().Append( KSetFocusString );
+    message->Des().Append( applicationGroupName );
+    message->Des().Append( KHideExit2 );
+
+    // find MM application
+    TApaTaskList taskList( CCoeEnv::Static()->WsSession() );
+    TApaTask task( taskList.FindApp( KMMUid ) );
+
+    if ( task.Exists() )
+        {
+        // MM is already running in background - send APA Message
+        task.SendMessage( 
+            TUid::Uid( KUidApaMessageSwitchOpenFileValue ), *message );
+        }
+    else
+        { 
+        // MM not running yet - use Command Line Tail
+        RApaLsSession appArcSession;
+        CleanupClosePushL( appArcSession );
+        
+        User::LeaveIfError( appArcSession.Connect() );
+        
+        TApaAppInfo appInfo;
+        TInt err( appArcSession.GetAppInfo( appInfo, KMMUid ) );
+        
+        if ( err == KErrNone )
+            {
+            CApaCommandLine* cmdLine = CApaCommandLine::NewLC();
+            cmdLine->SetExecutableNameL( appInfo.iFullName );
+            cmdLine->SetCommandL( EApaCommandRun );
+            cmdLine->SetTailEndL( *message );
+            appArcSession.StartApp( *cmdLine );
+            CleanupStack::PopAndDestroy( cmdLine );
+            }
+        CleanupStack::PopAndDestroy( &appArcSession ); 
+        }
+    CleanupStack::PopAndDestroy( message );
+    CleanupStack::PopAndDestroy( item );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::LaunchBookmarkItemL( CCarouselData& aData )
+    {
+    StartEffect( KBrowserUid );
+    
+    CSchemeHandler* urlHandler = CSchemeHandler::NewL( aData.Value());    
+    CleanupStack::PushL( urlHandler );
+    urlHandler->HandleUrlStandaloneL();
+    CleanupStack::PopAndDestroy( urlHandler );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::LaunchMailboxItemL( CCarouselData& aData )
+    {
+    TInt id( aData.MenuItem().Id());
+    if ( id == KErrNotFound )
+        {
+        ShowNoteDlgL( R_MCS_DISABLE_OPEN_ITEM_MISSING );
+        return;
+        }
+    
+    StartEffect( KMCSCmailUidValue );
+    
+    TUid uId = TUid::Uid( id );
+    const TVwsViewId viewId( KMCSCmailUidValue, KMCSCmailMailboxViewIdValue );
+    CVwsSessionWrapper* vwsSession = CVwsSessionWrapper::NewL();
+    vwsSession->CreateActivateViewEvent( viewId, uId, KNullDesC8() );
+    delete vwsSession;
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::LaunchMCSItemL( CCarouselData& aData )
+    {
+    if( iWatcher->IsActive())
+        {
+        return;
+        }
+    CMenuItem* item = NULL;
+    TRAP_IGNORE( item = CMenuItem::OpenL( iMenu, aData.MenuItem().Id() ) );
+
+    // item does not exist at all in MCS
+    if ( item == NULL )
+        {
+        ShowNoteDlgL( R_MCS_DISABLE_OPEN_ITEM_MISSING );
+        return;
+        }
+
+    CleanupStack::PushL( item );
+    
+    TBool attrExists = ETrue;
+    TPtrC uid = item->GetAttributeL( KMenuAttrUid, attrExists );
+
+    // trying to run hidden or missing application (e.g. unistalled app 
+    // or app on MMC which was removed )
+    // -> We display a note for a user that this is not possible¨
+    TUint32 isHidden = item->Flags() & TMenuItem::EHidden;
+    TUint32 isMissing = item->Flags() & TMenuItem::EMissing;
+
+    if ( ( attrExists && uid == KMenuAttrUndefUid ) || isHidden || isMissing )
+        {
+        CleanupStack::PopAndDestroy( item );
+        ShowNoteDlgL( R_MCS_DISABLE_OPEN_ITEM_MISSING );
+        return;
+        }
+    
+    if ( attrExists )
+        {      
+        StartEffect( ParseHexUidFromString( uid ));
+        }
+    
+    // run application/shortcut
+    CMenuOperation* operation( item->HandleCommandL(
+        KMenuCmdOpen, KNullDesC8, iWatcher->iStatus ) );
+    iWatcher->Watch( operation );
+    CleanupStack::PopAndDestroy( item );
+    }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::HandleNotifyL
+// Handle the change in Menu Content
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::HandleNotifyL()
+    {
+    TInt count( iPluginData->DataCount() );
+    
+    for ( TInt i = 0; i < count; i++ )
+        {
+        CCarouselData& data( iPluginData->DataItemL( i ) );
+        data.SetDirty( ETrue );
+        }
+    
+    iPlugin.PublishL();
+    
+    // Notification must be activated again
+    iNotifyWatcher->Cancel();
+    iNotifier.Notify( 0,
+        RMenuNotifier::EItemsAddedRemoved,
+        iNotifyWatcher->iStatus );
+
+    iNotifyWatcher->WatchNotify( this );
+    }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::HandleSessionEventL
+// Handles an event from the message server.
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::HandleSessionEventL( TMsvSessionEvent aEvent, 
+    TAny* aArg1, TAny* /*aArg2*/, TAny* /*aArg3*/)
+    {
+    switch ( aEvent )
+        {
+        case EMsvEntriesDeleted:
+            {
+            CMsvEntrySelection* sel = static_cast<CMsvEntrySelection*>( aArg1 );
+            TInt count( sel->Count());
+            for( TInt i = 0; i < count; i++ )
+                {
+                iPluginData->RemoveDataL( sel->At( i ) );
+                }
+            }
+            break;
+        default:
+            break;
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::SetBackupRestore
+//
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::SetBackupRestore( TBool aBackupRestore )
+    {
+    iBackupRestore = aBackupRestore;
+    }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::ShowSettingsL
+// Launch General Settings plugin
+// ---------------------------------------------------------------------------
+//
+void CCarouselPluginEngine::ShowSettingsL()
+    { 
+    TUid uid = {AI_UID_ECOM_IMPLEMENTATION_SETTINGS_MCSPLUGIN};
+    
+    CGSLauncher* launcher = CGSLauncher::NewLC();
+    launcher->LaunchGSViewL ( uid, KHomescreenUid, iInstanceUid );
+    CleanupStack::PopAndDestroy( launcher );
+    }
+
+// ---------------------------------------------------------------------------
+// CMCSPluginEngine::ConstructMenuItemForIconL
+// Syntax: skin(major minor):mif(filename bimapId maskId)
+// ---------------------------------------------------------------------------
+//
+TBool CCarouselPluginEngine::ConstructMenuItemForIconL( const TDesC& aPath, 
+    CMenuItem& aMenuItem )
+   {
+   TInt pos( aPath.Locate( ':' ) );
+   if ( pos == KErrNotFound )
+       {
+       pos = aPath.Length();
+       }
+   TPtrC skin( aPath.Left( pos ) );
+   TInt sf( skin.FindF( KSkin ) );
+   
+   if ( sf == KErrNotFound )
+       {
+       return EFalse;
+       }
+   
+   TPtrC temp( skin.Mid( sf + KSkin().Length() ) );
+   TLex input( temp );   
+   input.SkipSpace();
+   
+   if ( !input.Eos() && input.Peek() == '(' )
+       {
+       input.Inc();
+       }
+   TPtrC majorId( NextIdToken( input ) );
+   TPtrC minorId( NextIdToken( input ) );
+   
+   aMenuItem.SetAttributeL( KMenuAttrIconSkinMajorId, majorId );
+   aMenuItem.SetAttributeL( KMenuAttrIconSkinMinorId, minorId );
+   
+   if ( aPath.Length() > pos && 
+      ( aPath.Mid( pos + 1 ).FindF( KMif ) != KErrNotFound ) )
+       {
+       TPtrC mif( aPath.Mid( pos + 1 ) );
+       TInt mf( mif.FindF( KMif ) );
+       
+       TLex input1( mif.Mid( mf + KMif().Length() ) );
+       input1.SkipSpace();
+       
+       if ( !input1.Eos() && input1.Peek() == '(' )
+          {
+          input1.Inc();
+          }
+       
+       TPtrC file( NextIdToken( input1 ) );
+       TPtrC bitmapId( NextIdToken( input1 ) );
+       TPtrC maskId( NextIdToken( input1 ) );
+       
+       aMenuItem.SetAttributeL( KMenuAttrIconFile, file );
+       aMenuItem.SetAttributeL( KMenuAttrIconId, bitmapId );
+       aMenuItem.SetAttributeL( KMenuAttrMaskId, maskId );
+       }
+   
+   return ETrue;
+   }
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/publisher/src/carouselpluginwatcher.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,124 @@
+/*
+* 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:  Menu item operation watcher. 
+*
+*/
+
+#include <mcsmenuoperation.h>
+#include "carouselpluginwatcher.h"
+#include "carouselpluginengine.h"
+
+// ---------------------------------------------------------------------------
+// two-phased constructor
+// ---------------------------------------------------------------------------
+CCarouselPluginWatcher* CCarouselPluginWatcher::NewL( const Type& aType )
+	{
+	CCarouselPluginWatcher* self = new (ELeave) CCarouselPluginWatcher( aType );
+	CleanupStack::PushL( self );
+	self->ConstructL();
+	CleanupStack::Pop( self );
+	return self;
+	}
+
+// ---------------------------------------------------------------------------
+// default constructor
+// ---------------------------------------------------------------------------
+CCarouselPluginWatcher::CCarouselPluginWatcher( const Type& aType )
+	: CActive( CActive::EPriorityStandard ),
+	iType( aType )
+    {
+    CActiveScheduler::Add( this );
+    }
+
+// ---------------------------------------------------------------------------
+// destructor
+// ---------------------------------------------------------------------------
+CCarouselPluginWatcher::~CCarouselPluginWatcher()
+    {
+    Cancel();
+    }
+
+// ---------------------------------------------------------------------------
+// second phase constructor
+// ---------------------------------------------------------------------------
+void CCarouselPluginWatcher::ConstructL()
+	{
+	
+	}
+
+// ---------------------------------------------------------------------------
+// Watch  Async
+// ---------------------------------------------------------------------------
+void CCarouselPluginWatcher::Watch( CMenuOperation* aOperation)
+    {
+    __ASSERT_DEBUG( KRequestPending == iStatus.Int(), User::Invariant() );
+    //__ASSERT_DEBUG( !iOperation, User::Invariant() ); 
+    iOperation = aOperation;
+    SetActive();
+    }
+
+// ---------------------------------------------------------------------------
+// Watch  Async
+// ---------------------------------------------------------------------------
+void CCarouselPluginWatcher::WatchNotify( MCarouselPluginWatcherObserver* aObserver )
+    {
+    __ASSERT_DEBUG( KRequestPending == iStatus.Int(), User::Invariant() );
+    //__ASSERT_DEBUG( !iOperation, User::Invariant() ); 
+    iObserver = aObserver;
+    SetActive();
+    }
+
+void CCarouselPluginWatcher::StopAndWatch( CMenuOperation* aOperation, 
+                                      CActiveSchedulerWait* aWaitScheduler )
+    {
+    __ASSERT_DEBUG( KRequestPending == iStatus.Int(), User::Invariant() );
+    iWaitScheduler = aWaitScheduler;
+    iOperation = aOperation;
+    SetActive();
+    }
+
+// ---------------------------------------------------------------------------
+// Inherited from CActive class 
+// ---------------------------------------------------------------------------
+void CCarouselPluginWatcher::RunL()
+    {
+    delete iOperation;
+    iOperation = NULL;  
+    
+    if( iType == ENotify )
+        {
+        iObserver->HandleNotifyL();
+        }
+    if ( iWaitScheduler && iWaitScheduler->IsStarted() )
+        {
+        Cancel();
+        iWaitScheduler->AsyncStop();
+        }
+    //CActiveScheduler::Stop();
+    }
+
+// ---------------------------------------------------------------------------
+// Inherited from CActive class 
+// ---------------------------------------------------------------------------
+void CCarouselPluginWatcher::DoCancel()
+    {
+    delete iOperation;
+    iOperation = NULL;
+    }
+
+TInt CCarouselPluginWatcher::GetStatus()
+    {
+    return iStatus.Int();
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/renderer/data/carouselwidget.rss	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 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"
+ * 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:  Carousel widget for Symbian Homescreen
+ *
+ */
+
+#include <ecom/registryinfo.rh>
+
+RESOURCE REGISTRY_INFO theInfo
+{
+dll_uid = 0xEabba432;
+interfaces =
+    {
+    INTERFACE_INFO
+        {
+        interface_uid = 0x200286DF;
+        implementations =
+            {
+            IMPLEMENTATION_INFO
+                {
+                implementation_uid = 0xEabba433;
+                version_no = 1;
+                display_name = "CarouselWidget";
+                default_data = "carousel";
+                opaque_data = "";
+                }
+            };
+        }
+    };
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/renderer/group/bld.inf	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 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"
+ * 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:  Carousel widget for Symbian Homescreen
+ *
+ */
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+ARMV5 WINSCW
+
+PRJ_EXPORTS
+
+../rom/carouselwidget.iby                CORE_MW_LAYER_IBY_EXPORT_PATH(carouselwidget.iby)
+
+PRJ_MMPFILES
+
+carouselwidget.mmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/renderer/group/carouselwidget.mmp	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 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"
+ * 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:  Carousel widget for Symbian Homescreen
+ *
+ */
+
+#include <platform_paths.hrh>
+#include <data_caging_paths.hrh>
+
+TARGET          carouselwidget.dll
+TARGETTYPE      PLUGIN
+UID             0x10009d8d 0xEabba432
+
+CAPABILITY      CAP_ECOM_PLUGIN
+
+EPOCALLOWDLLDATA
+
+SOURCEPATH      ../src 
+SOURCE          carouselwidget.cpp
+
+USERINCLUDE     ../inc
+
+MW_LAYER_SYSTEMINCLUDE
+APP_LAYER_SYSTEMINCLUDE
+
+SOURCEPATH      ../data
+START RESOURCE  carouselwidget.rss
+HEADER
+TARGETPATH      ECOM_RESOURCE_DIR
+END
+
+LIBRARY         extrenderingplugin.lib
+LIBRARY         euser.lib
+LIBRARY         eikcore.lib
+LIBRARY         cone.lib
+LIBRARY         xn3layoutengine.lib
+LIBRARY         xn3utils.lib
+LIBRARY         xn3domdocument.lib
+LIBRARY	        avkon.lib
+LIBRARY         ws32.lib
+LIBRARY         fbscli.lib
+LIBRARY         bitgdi.lib
+LIBRARY         egul.lib
+LIBRARY         bafl.lib
+LIBRARY         eikcoctl.lib
+LIBRARY         eikctl.lib
+LIBRARY         gdi.lib
+LIBRARY         aknicon.lib
+LIBRARY         aknphysics.lib
+LIBRARY         AknSkins.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/renderer/inc/carouselwidget.h	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,253 @@
+/*
+ * Copyright (c) 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"
+ * 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:  Carousel widget for Symbian Homescreen
+ *
+ */
+
+#ifndef _CCAROUSELWIDGET_H
+#define _CCAROUSELWIDGET_H
+
+//  INCLUDES
+#include <xnextrenderingpluginadapter.h>
+#include <aknphysicsobserveriface.h>
+
+class MXnExtEventHandler;
+class CCarouselItem;
+class CAknPhysics;
+
+// Class declaration
+NONSHARABLE_CLASS( CCarouselItem ) : public CBase  
+    {
+public:
+
+    // Constructors
+        
+    /**
+     * C++ default constructor.
+     */
+CCarouselItem(/* CCarouselEditor& aEditor,*/ CFbsBitmap* aBitmap, CFbsBitmap* aMask);
+    
+    /**
+     * Destructor.
+     */
+    ~CCarouselItem();
+    
+    void SetTextL( const TDesC& aText );
+
+    CFbsBitmap* iBitmap;
+    CFbsBitmap* iMask;
+private:
+   
+    HBufC* iText;
+    };
+
+// CLASS DECLARATION
+
+/**
+*  
+*/
+class CCarouselWidget : public CXnExtRenderingPluginAdapter, 
+    public MAknPhysicsObserver
+    {
+
+public:  // Constructors and destructor
+        
+    /**
+    * Two-phased constructor.
+    */
+    static CCarouselWidget* NewL();
+    
+    /**
+    * Destructor.
+    */
+    virtual ~CCarouselWidget();
+
+public: // from base classes
+
+    /**
+    * From CCoeControl Handles key events.
+    * @since Series 60 3.1
+    * @param aKeyEvent Key event.
+    * @param aType Event type.
+    * @return Key response
+    */
+    TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
+        TEventCode aType );
+
+    /**
+    * From CCoeControl
+    */
+    void SetContainerWindowL( const CCoeControl &aContainer );
+
+    /**
+    * See CCoeControl documentation
+    */
+    void HandlePointerEventL( const TPointerEvent& aPointerEvent );
+
+    /**
+    * From CCoeControl, CountComponentControls
+    * @return Number of component controls
+    */
+    TInt CountComponentControls() const;
+
+    /**
+    * From CCoeControl, ComponentControl
+    * @param aIndex index of component control
+    * @return pointer to the specified control
+    */
+    CCoeControl* ComponentControl( TInt aIndex ) const;
+
+    /**
+    * Skin change notification.
+    * See CXnControlAdapter documentation
+    * @since Series 60 3.1
+    */
+    void SkinChanged();
+
+    /**
+    * See CXnControlAdapter documentation
+    */
+    void EnterPowerSaveModeL();
+
+    /**
+    * See CXnControlAdapter documentation
+    */
+    void ExitPowerSaveModeL();
+
+    // From MAknPhysicsObserver
+    /**
+     * Physics emulation has moved the view.
+     */
+    void ViewPositionChanged( const TPoint& aNewPosition, 
+                TBool aDrawNow, TUint aFlags );
+
+    /**
+     * Called when emulation ended.
+     */
+    void PhysicEmulationEnded();
+
+    /**
+     * Returns the observer view position.
+     *
+     * @return Physics observer view position.
+     */
+    TPoint ViewPosition() const;
+
+protected: // from base classes
+
+    /**
+    * From CCoeControl
+    * Called if focus changes
+    */
+    void FocusChanged( TDrawNow aDrawNow );
+
+    /**
+    * From CCoeControl
+    * Called if position or size changes
+    */
+    void SizeChanged();
+    
+    /**
+     * Sets the external event handler interface.
+     *
+     * @since Series 60 5.2
+     * @param aEventHandler Event handler interface.
+     */
+    void SetEventHandler( MXnExtEventHandler* aEventHandler );
+    
+    /**
+     * Routes the data stream for the external rendering plugin.
+     *
+     * @since Series 60 5.2
+     * @param aData Data stream.
+     * @param aType Type of the stream.
+     * @param aIndex Index of the data.
+     */
+    void SetDataL( const TDesC8& aData, const TDesC& aType, TInt aIndex );
+
+private: // from base classes
+
+    /**
+    * From CCoeControl, Draw
+    * See CCoeControl documentation
+    */
+    void Draw( const TRect& aRect ) const;
+
+public:
+
+    /**
+    * C++ default constructor.
+    */
+    CCarouselWidget();
+
+    /**
+    * By default Symbian 2nd phase constructor is private.
+    */
+    void ConstructL();
+    
+    TRect ViewPort() {return iViewPort; };
+
+private:
+    void InitPhysicEngineL();
+    
+    TInt ItemIndex( TPoint& aPoint );
+    
+    void LaunchItemL( TPoint& aPosition );
+    
+private: // Member data
+    /**
+     * Physics. 
+     * Own.
+     */
+    CAknPhysics*        iPhysics;
+    
+    MXnExtEventHandler* iEventHandler; // not own
+    
+    /**
+     * Pointer down start time.
+     */
+    TTime               iStartTime;
+
+    /**
+     * Start (pointer down) position.
+     */
+    TPoint              iStartPosition;
+    
+    /**
+     * Current pointer position.
+     */   
+    TPoint              iStylusPosition;
+    
+    /**
+     * Current view position.
+     */
+    TPoint              iCurrentPosition;
+    
+    /**
+     * Adjusted view position
+     */
+    TPoint iViewPosition;
+    
+    /**
+     * Visible area, i.e. area of the scollable control that is to be drawn.
+     */          
+    TRect                           iViewPort;
+    
+    RPointerArray<CCarouselItem>    iStripeItems;
+    
+    TBool                           iDrawHighlight;
+    };
+
+#endif      // _CCAROUSELWIDGET_H
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/renderer/rom/carouselwidget.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 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"
+* 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:
+* IBY file for Carousel Widget
+*
+*/
+
+#ifndef CAROUSELWIDGET_IBY
+#define CAROUSELWIDGET_IBY
+
+ECOM_PLUGIN(carouselwidget.dll, carouselwidget.rsc)
+
+#endif // CAROUSELWIDGET_IBY
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/renderer/src/carouselwidget.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,443 @@
+/*
+ * Copyright (c) 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"
+ * 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:  Carousel widget for Symbian Homescreen
+ *
+ */
+
+#include <ecom/implementationproxy.h>
+#include <aknphysics.h>
+#include <gulicon.h>
+#include <AknIconUtils.h>
+#include <AknsDrawUtils.h>
+#include <xnexteventhandler.h>
+#include "carouselwidget.h"
+
+const TSize KIconSize(70,70);
+const TInt KItemPadding( 6 );
+
+_LIT( KLaunchByIndex, "LaunchByIndex(");
+
+template< class PtrT > inline PtrT* UnpackPtr( 
+    const TDesC8& aBuf )
+    {
+    TAny* result( NULL );
+    
+    if ( aBuf.Size() == sizeof( TAny* ) )
+        {
+        // Effectively writes aBuf contents to result
+        TPckg< TAny* >( result ).Copy( aBuf ); 
+        }
+        
+    return static_cast< PtrT* >( result );
+    }
+// ============================ MEMBER FUNCTIONS ===============================
+CCarouselItem::CCarouselItem( CFbsBitmap* aBitmap, CFbsBitmap* aMask)
+    :iBitmap( aBitmap ), iMask( aMask )
+    {
+    }
+
+CCarouselItem::~CCarouselItem()
+    {
+    delete iBitmap;
+    delete iMask;
+    delete iText;
+    }
+
+void CCarouselItem::SetTextL( const TDesC& aText )
+    {
+    delete iText;
+    iText = NULL;
+    iText = aText.AllocL();    
+    }
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// Symbian static 1st phase constructor
+// -----------------------------------------------------------------------------
+//
+CCarouselWidget* CCarouselWidget::NewL()
+    {
+    CCarouselWidget* self = new( ELeave ) CCarouselWidget();
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// C++ destructor
+// -----------------------------------------------------------------------------
+//
+CCarouselWidget::~CCarouselWidget()
+    {
+    delete iPhysics;
+    iStripeItems.ResetAndDestroy();
+    //delete iCover;
+    }
+
+// -----------------------------------------------------------------------------
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CCarouselWidget::ConstructL()
+    {
+    
+    }
+
+// -----------------------------------------------------------------------------
+// Handles key events.
+// -----------------------------------------------------------------------------
+//
+TKeyResponse CCarouselWidget::OfferKeyEventL( const TKeyEvent& /*aKeyEvent*/,
+    TEventCode /*aType*/ )
+    {
+    return EKeyWasConsumed;
+    }
+
+// -----------------------------------------------------------------------------
+// Set window for this control
+// -----------------------------------------------------------------------------
+//
+void CCarouselWidget::SetContainerWindowL( const CCoeControl &aContainer )
+    {
+    CCoeControl::SetContainerWindowL( aContainer );
+    }
+
+// -----------------------------------------------------------------------------
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CCarouselWidget::HandlePointerEventL( const TPointerEvent& aPointerEvent )
+    {
+    if( !iPhysics )
+        {
+        return;
+        }
+    TPoint stylusPos( aPointerEvent.iPosition );   
+    switch( aPointerEvent.iType )
+        {
+        case TPointerEvent::EButton1Down:
+            {
+            iPhysics->StopPhysics();
+            iPhysics->ResetFriction();
+            iStartPosition = stylusPos;
+            iStartTime.HomeTime();
+            iStylusPosition = stylusPos;
+            iDrawHighlight = ETrue;
+            }
+            break; 
+            
+        case TPointerEvent::EButton1Up:
+            {
+            iDrawHighlight = EFalse;
+            TInt distance = iStartPosition.iX - stylusPos.iX;
+            if( Abs(distance) <= iPhysics->DragThreshold() )
+                {
+                LaunchItemL( stylusPos );
+                }
+            else
+                {
+                TPoint drag( distance, 0 );
+                iPhysics->StartPhysics( drag, iStartTime );
+                }            }
+            break; 
+        case TPointerEvent::EDrag:
+        case TPointerEvent::EMove:
+            {
+            TPoint dragTh(  iStartPosition - stylusPos );
+            if( Abs(dragTh.iX) > iPhysics->DragThreshold() || 
+                Abs(dragTh.iY) > iPhysics->DragThreshold())
+                {
+                iDrawHighlight = EFalse;
+                }
+            TInt deltaX( iStylusPosition.iX - stylusPos.iX );
+            iStylusPosition = stylusPos;
+            TPoint deltaPoint( deltaX, 0 );
+            iPhysics->RegisterPanningPosition( deltaPoint );
+            }
+            break;
+        default:                
+            break;                
+        }
+
+    CCoeControl::HandlePointerEventL( aPointerEvent );
+    }
+
+// -----------------------------------------------------------------------------
+// Returns the number of component controls
+// -----------------------------------------------------------------------------
+//
+TInt CCarouselWidget::CountComponentControls() const
+    {
+    return 0;
+    }    
+
+// -----------------------------------------------------------------------------
+// Returns the specified control
+// -----------------------------------------------------------------------------
+//
+CCoeControl* CCarouselWidget::ComponentControl( TInt /*aIndex*/ ) const
+    {
+      return NULL;
+    }
+
+// -----------------------------------------------------------------------------
+// Skin change notification.
+// -----------------------------------------------------------------------------
+//
+void CCarouselWidget::SkinChanged()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CCarouselWidget::EnterPowerSaveModeL
+//
+// -----------------------------------------------------------------------------
+//
+void CCarouselWidget::EnterPowerSaveModeL()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CCarouselWidget::ExitPowerSaveModeL
+//
+// -----------------------------------------------------------------------------
+//
+void CCarouselWidget::ExitPowerSaveModeL()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// Called if focus changes
+// -----------------------------------------------------------------------------
+//
+void CCarouselWidget::FocusChanged( TDrawNow /*aDrawNow*/ )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// Called if position or size changes
+// -----------------------------------------------------------------------------
+//
+void CCarouselWidget::SizeChanged()
+    {
+    iViewPort = Rect();
+    TRAP_IGNORE( InitPhysicEngineL() );
+    DrawNow();
+    }
+
+// -----------------------------------------------------------------------------
+// Sets the external event handler interface.
+// -----------------------------------------------------------------------------
+//
+void CCarouselWidget::SetEventHandler( MXnExtEventHandler* aEventHandler )
+    {
+    iEventHandler = aEventHandler;
+    }
+
+// -----------------------------------------------------------------------------
+// Data stream from the publisher
+// -----------------------------------------------------------------------------
+//
+void CCarouselWidget::SetDataL( const TDesC8& aData, const TDesC& aType, TInt aIndex )
+    {
+    /// Unpack the data stream, works because publisher is in same process.
+    CGulIcon* icon( UnpackPtr<CGulIcon>( aData ) );
+    CleanupStack::PushL( icon );
+    AknIconUtils::SetSize( icon->Bitmap(), KIconSize);
+    
+    CCarouselItem* item = new ( ELeave ) CCarouselItem(/* *iEditor,*/ icon->Bitmap(), icon->Mask() );
+    CleanupStack::PopAndDestroy( icon );
+    
+    if( aType == _L("Appstripe/widget"))
+        {
+        if( iStripeItems.Count() <= aIndex )
+            {
+            iStripeItems.AppendL( item );
+            InitPhysicEngineL();
+            }
+        else
+            {
+            CCarouselItem* citem = iStripeItems[ aIndex ];
+            delete citem;
+            iStripeItems.Remove( aIndex );
+            iStripeItems.Insert( item, aIndex );
+            }
+        DrawNow();
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// Draws the carousel component
+// -----------------------------------------------------------------------------
+//
+void CCarouselWidget::Draw( const TRect& /*aRect*/ ) const
+    {
+    CWindowGc& gc( SystemGc() );
+    gc.SetClippingRect( iViewPort );    
+    TRect bitmapRect( TPoint(0,0), KIconSize );
+    TPoint point( iViewPort.iTl );
+    point.iX -= iViewPosition.iX;
+    
+    TInt count = iStripeItems.Count();
+    for( TInt i = 0; i < count; i++ )
+        {
+        CFbsBitmap* bitmap = iStripeItems[i]->iBitmap;
+        CFbsBitmap* mask = iStripeItems[i]->iMask;
+
+        TRect drawRect( point, KIconSize );
+        if( iDrawHighlight && drawRect.Contains( iStylusPosition ))
+            {
+            TRect innerRect( drawRect );
+            innerRect.Shrink( 5, 5 );
+            
+            MAknsSkinInstance* skin( AknsUtils::SkinInstance() );
+            AknsDrawUtils::DrawFrame( skin, gc, drawRect, innerRect,
+                KAknsIIDQsnFrHomePressed, KAknsIIDDefault );
+            }
+        if( iViewPort.Contains( drawRect.iBr )||
+            iViewPort.Contains( drawRect.iTl ))
+            {
+            gc.BitBltMasked( point, bitmap, bitmapRect, mask, EFalse);
+            }
+        point.iX += KIconSize.iWidth + KItemPadding;
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// ViewPositionChanged
+// ---------------------------------------------------------------------------
+//
+void CCarouselWidget::ViewPositionChanged( 
+    const TPoint& aNewPosition, TBool aDrawNow, TUint /*aFlags*/ )
+    {
+    iCurrentPosition = aNewPosition;
+    iViewPosition.iX = aNewPosition.iX - iViewPort.Width()/2;
+    if( aDrawNow )
+        {
+        DrawNow( iViewPort );
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// PhysicEmulationEnded
+// ---------------------------------------------------------------------------
+//    
+void CCarouselWidget::PhysicEmulationEnded()
+    {
+    }
+
+// ---------------------------------------------------------------------------
+// ViewPosition
+// ---------------------------------------------------------------------------
+//    
+TPoint CCarouselWidget::ViewPosition() const
+    {
+    return iCurrentPosition;
+    }
+
+// ---------------------------------------------------------------------------
+// InitPhysicEngineL
+// ---------------------------------------------------------------------------
+//    
+void CCarouselWidget::InitPhysicEngineL()
+    {
+    // Init physic engine
+    if ( !iPhysics && CAknPhysics::FeatureEnabled() )
+        {
+        iPhysics = CAknPhysics::NewL( *this, this );
+        }
+    if( !iPhysics )
+        {
+        return;
+        }
+    TSize viewPortSize = iViewPort.Size();
+    TInt totalWidth( iStripeItems.Count() * (KIconSize.iWidth + KItemPadding ));
+    TSize totalSize( totalWidth, viewPortSize.iHeight );
+    iPhysics->InitPhysicsL( totalSize, viewPortSize, ETrue );
+    iCurrentPosition = TPoint( viewPortSize.iWidth / 2, viewPortSize.iHeight / 2 );
+    }
+
+// ---------------------------------------------------------------------------
+// 
+// ---------------------------------------------------------------------------
+//
+TInt CCarouselWidget::ItemIndex( TPoint& aPoint )
+    {
+    TPoint itemStartPoint( iViewPort.iTl );
+    itemStartPoint.iX -= iViewPosition.iX;
+    
+    TRect dropRect( itemStartPoint, KIconSize );
+    dropRect.Resize( KItemPadding, 0 );
+    TInt index( 0 );
+    do
+        {
+        if( dropRect.Contains( aPoint ))
+            {
+            return index;
+            }
+        dropRect.Move( KIconSize.iWidth+KItemPadding, 0);
+        index++;
+        }
+    while( index < iStripeItems.Count() );
+    return KErrNotFound;
+    }
+
+// -----------------------------------------------------------------------------
+// Launches the item, which is in aPosition
+// -----------------------------------------------------------------------------
+//
+void CCarouselWidget::LaunchItemL( TPoint& aPosition )
+    {
+    TInt index = ItemIndex( aPosition );
+    // carousel plugin expects indexes to start from 1
+    index++;
+    TInt len( KLaunchByIndex().Length()+3 );
+    TBuf<17> event;
+    event.Append( KLaunchByIndex );
+    event.AppendNum( index );
+    event.Append( _L(")"));
+    iEventHandler->HandleEventL( event, _L8("Appstripe"));
+    }
+
+// -----------------------------------------------------------------------------
+// C++ default constructor
+// -----------------------------------------------------------------------------
+//
+CCarouselWidget::CCarouselWidget()
+    {
+    }
+
+// ============================ PUBLIC FUNCTIONS ===============================
+const TImplementationProxy KImplementationTable[] =
+    {
+#ifdef __EABI__
+    IMPLEMENTATION_PROXY_ENTRY( 0xEabba433, CCarouselWidget::NewL )
+#else
+    { { 0xEabba433 }, CCarouselWidget::NewL }
+#endif
+    };
+
+// -----------------------------------------------------------------------------
+// Returns the list of implementations provided by the plugin
+// -----------------------------------------------------------------------------
+//
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy(
+    TInt& aTableCount )
+    {
+    aTableCount = sizeof( KImplementationTable ) / sizeof( TImplementationProxy );
+    return KImplementationTable;
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/sis/carousel.pkg	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,33 @@
+; Installation file for carousel widget
+;
+;
+; UID is the dll's UID
+;
+#{"Carousel Shortcut"},(0xE001CB57),1,0,0
+
+
+;Localised Vendor name
+%{"HSExample"}
+
+;Unique Vendor name
+:"HSExample"
+
+;Supports Series 60 v 5.0
+[0x1028315F], 1, 0, 0, {"S60ProductID"}
+
+;Publisher plug-in
+"/epoc32/release/armv5/urel/carouselplugin.dll"       -"c:/sys/bin/carouselplugin.dll"
+"/epoc32/data/z/resource/plugins/carouselplugin.rsc"  -"c:/resource/plugins/carouselplugin.rsc"
+
+;Renderer plug-in
+"/epoc32/release/armv5/urel/carouselwidget.dll"       -"c:/sys/bin/carouselwidget.dll"
+"/epoc32/data/z/resource/plugins/carouselwidget.rsc"  -"c:/resource/plugins/carouselwidget.rsc"
+
+;Widget declaration
+"../widget/hsps/00/widgetconfiguration.xml"           - "c:/private/200159c0/import/2001f48a/101fb657/1725ad3d/1.0/widgetconfiguration.xml"
+"../widget/hsps/00/manifest.dat"                      - "c:/private/200159c0/import/2001f48a/101fb657/1725ad3d/1.0/manifest.dat"
+"/epoc32/data/z/private/200159c0/install/appstripe/xuikon/00/appstripe.o0000" - "c:/private/200159c0/import/2001f48a/101fb657/1725ad3d/1.0/00/appstripe.o0000"
+"../widget/xuikon/00/appstripe.dat"                   - "c:/private/200159c0/import/plugin_2001f48a_101fb657_1725ad3d_1.0.dat"
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/widget/group/bld.inf	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,60 @@
+/*
+* Copyright (c) 2009 - 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"
+* 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: Editor for carousel widget.
+*
+*/
+
+#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/appstripe/hsps/manifest.dat
+../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/appstripe/hsps/widgetconfiguration.xml
+../xuikon/00/appstripe.dat /epoc32/data/Z/resource/homescreen/appstripe/xuikon/appstripe.dat
+../xuikon/00/appstripe.css /epoc32/data/Z/resource/homescreen/appstripe/xuikon/appstripe.css
+../xuikon/00/appstripe.xml /epoc32/data/Z/resource/homescreen/appstripe/xuikon/appstripe.xml
+//../xuikon/00/appstripe.dtd /epoc32/data/Z/resource/homescreen/appstripe/xuikon/appstripe.dtd
+
+// Support for S60 builds
+//***********************
+// export iby files
+../rom/appstripe_resources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(appstripe_resources.iby)
+../rom/appstripe_customer.iby CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(appstripe_customer.iby)
+../rom/appstripe_variant.iby CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(appstripe_variant.iby)
+../rom/appstripe.iby CORE_MW_LAYER_IBY_EXPORT_PATH(appstripe.iby)
+
+
+// Dtd-localization
+//*****************
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME appstripe
+OPTION DTD_TYPE widget
+END
+
+PRJ_MMPFILES
+
+// build icons
+
+// build application
+
+PRJ_TESTMMPFILES
+
+//#endif
+
+//  End of File  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/widget/hsps/00/manifest.dat	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<package version="2.0">
+
+  <family>qhd_tch</family>
+
+  <type>widget</type>
+
+  <!-- interface uid -->
+	<interfaceuid>0x2001f48a</interfaceuid>
+
+	<!-- vendor uid  -->
+	<provideruid>0x101fb657</provideruid>
+
+	<!-- uid -->
+	<configurationuid>0x1725ad3d</configurationuid>
+	
+	<!-- description -->
+	<fullname>App Stripe</fullname>
+	<shortname>appstripe</shortname>
+	<version>1.0</version>
+
+	<!-- configuration -->
+	<filexml>widgetconfiguration.xml</filexml>
+
+ 	<!-- Locale specific resources -->
+	<localization>
+        	<fileresource>appstripe.o0000</fileresource>
+	</localization> 
+	
+</package>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/widget/hsps/00/widgetconfiguration.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,63 @@
+<configuration>
+    <control>
+    <settings>
+      <!-- Shortcut #1, Phonebook -->
+      <item id="first" name="Shortcut1" >
+        <property  name="type" value="application"/>
+        <property  name="uid" value="0x101F4CCE"/>
+        <property  name="view" value=""/>
+        <property  name="param" value=""/>
+      </item>
+      <!-- Shortcut #2, Messaging -->
+      <item id="second" name="Shortcut2" >
+        <property  name="type" value="application"/>
+        <property  name="uid" value="0x100058C5"/>
+        <property  name="view" value=""/>
+        <property  name="param" value=""/>
+      </item>
+      <!-- Shortcut #3, Browser -->
+      <item id="third" name="Shortcut3" >
+        <property  name="type" value="application"/>
+        <property  name="uid" value="0x10008D39"/>
+        <property  name="view" value=""/>
+        <property  name="param" value=""/>
+      </item>
+      <!-- Shortcut #4, Photos -->
+      <item id="fourth" name="Shortcut4" >
+        <property  name="type" value="application"/>
+        <property  name="uid" value="0x200009EE"/>
+        <property  name="view" value=""/>
+        <property  name="param" value=""/>
+      </item>
+      <!-- Shortcut #5 -->
+      <item id="fifth" name="Shortcut5" >
+        <property  name="type" value="application"/>
+        <property  name="uid" value="0x200009EE"/>
+        <property  name="view" value=""/>
+        <property  name="param" value=""/>
+      </item>
+      <!-- Shortcut #6 -->
+      <item id="sixth" name="Shortcut6" >
+        <property  name="type" value="application"/>
+        <property  name="uid" value="0x200009EE"/>
+        <property  name="view" value=""/>
+        <property  name="param" value=""/>
+      </item>
+      <!-- Shortcut #7 -->
+      <item id="seventh" name="Shortcut7" >
+        <property  name="type" value="application"/>
+        <property  name="uid" value="0x200009EE"/>
+        <property  name="view" value=""/>
+        <property  name="param" value=""/>
+      </item>
+      <!-- Shortcut #8 -->
+      <item id="eigth" name="Shortcut8" >
+        <property  name="type" value="application"/>
+        <property  name="uid" value="0x200009EE"/>
+        <property  name="view" value=""/>
+        <property  name="param" value=""/>
+      </item>
+     
+    </settings>
+    </control>
+</configuration>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/widget/rom/appstripe.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,25 @@
+/*
+* 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:
+*
+*/
+
+#ifndef __APPSTRIPE_IBY__
+#define __APPSTRIPE_IBY__
+
+// Enabled by DTD-localization tools
+data=ZPRIVATE\200159c0\install\appstripe\hsps\00\manifest.dat \private\200159c0\install\appstripe\hsps\00\manifest.dat
+data=ZPRIVATE\200159c0\install\appstripe\xuikon\00\appstripe.o0000 \private\200159c0\install\appstripe\xuikon\00\appstripe.o0000
+
+#endif  // __APPSTRIPE_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/widget/rom/appstripe_customer.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,21 @@
+/*
+* 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:
+*
+*/
+
+#ifndef __APPSTRIPE_CUSTOMER_IBY__
+#define __APPSTRIPE_CUSTOMER_IBY__
+
+#endif  // __APPSTRIPE_CUSTOMER_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/widget/rom/appstripe_resources.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,23 @@
+/*
+* 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:
+*
+*/
+
+#ifndef __APPSTRIPE_RESOURCES_IBY__
+#define __APPSTRIPE_RESOURCES_IBY__
+
+// Enabled by DTD-localization tools, language specific
+
+#endif  // __APPSTRIPE_RESOURCES_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/widget/rom/appstripe_variant.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,24 @@
+/*
+* 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:
+*
+*/
+
+#ifndef __APPSTRIPE_VARIANT_IBY__
+#define __APPSTRIPE_VARIANT_IBY__
+
+// Enabled by variation tools, variant specific
+data=ZPRIVATE\200159c0\install\appstripe\hsps\00\widgetconfiguration.xml \private\200159c0\install\appstripe\hsps\00\widgetconfiguration.xml
+
+#endif  // __APPSTRIPE_VARIANT_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/widget/xuikon/00/appstripe.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,10 @@
+widget
+{
+	width:auto;
+	height:auto;
+	padding-top: 5px;
+  padding-bottom: 5px;
+  padding-left: 3px;
+  background-color: none;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/widget/xuikon/00/appstripe.dat	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<data>
+    <AppUid>2001CB4F</AppUid>
+    <Provideruid>101FB657</Provideruid>
+    <ThemeUid>11001240</ThemeUid>
+    <ThemeFullName>AppStripeWidget</ThemeFullName>
+    <ThemeShortName>appstripe</ThemeShortName>
+    <ThemeVersion>1.0</ThemeVersion>
+    <FileXML>appstripe.xml</FileXML>
+    <FileCSS>appstripe.css</FileCSS>
+</data>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/carouselwidgetexample/widget/xuikon/00/appstripe.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- <!DOCTYPE xmluiml SYSTEM "AI3_Demo.dtd"> -->
+<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">   
+    <widget _s60-swipe-destination="none">
+
+        <!-- Data plugin(s) in this widget -->
+        <contentsource id="Appstripe" name="Appstripe" value="0xE001CB58"/>
+
+        <carousel id="Carousel" focusable="true" _s60-focus-appearance="none" _s60-initial-focus="1">
+          <data id="stripe">
+            <property class="Appstripe/widget"/>
+          </data>
+        </carousel>
+
+    <menuextension>
+      <menuitem target="hs_widget_menuitem_settings">
+        <actions>
+          <action>
+            <trigger name="activate"/>
+            <event name="Appstripe/ShowSettings"/>
+          </action>
+        </actions>
+      </menuitem>
+    </menuextension>
+    </widget>
+</xmluiml>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample.l01	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,23 @@
+/*
+* Copyright (c) 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"
+* 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:  Content Control example
+*
+*/
+
+// localized strings for language: UK English (01)
+#define STR_HsContentControlApplication_1 ""
+#define STR_HsContentControlApplication_2 ""
+#define STR_HsContentControlApplication_3 ""
+#define STR_HsContentControlApplication_4 "HS Content Control"
+#define STR_HsContentControlApplication_5 "HS Content Control"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample.loc	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,20 @@
+/*
+* Copyright (c) 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"
+* 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:  Content Control example
+*
+*/
+
+#ifdef LANGUAGE_01
+#include "hscontentcontrolexample.l01"
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample.rss	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,107 @@
+/*
+* Copyright (c) 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"
+* 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:  Content Control example
+*
+*/
+
+NAME HSCO
+
+#include <eikon.rh>
+#include <avkon.rsg>
+#include <avkon.rh>
+#include <appinfo.rh>
+#include "hscontentcontrolexample.loc"
+
+RESOURCE RSS_SIGNATURE
+    {
+    }
+
+RESOURCE TBUF
+    {
+    buf = "HsContentControl";
+    }
+
+RESOURCE EIK_APP_INFO r_application_hs_content_control_app_ui
+    {
+    cba = R_AVKON_SOFTKEYS_EXIT;
+    status_pane = r_application_status_pane;
+    menubar = r_application_options_menu;
+    }
+
+RESOURCE STATUS_PANE_APP_MODEL r_application_status_pane
+    {
+    panes =
+        {
+        SPANE_PANE
+            {
+            id = EEikStatusPaneUidNavi;
+            type = EAknCtNaviPane;
+            resource = r_navi_decorator;
+            }
+
+        };
+    }
+
+RESOURCE NAVI_DECORATOR r_navi_decorator
+    {
+    type = ENaviDecoratorControlTabGroup;
+
+    control = TAB_GROUP
+        {
+        tab_width = EAknTabWidthWithOneTab;
+
+        active = 0;
+
+        tabs = 
+            {
+            TAB
+                {
+                id = 0;
+                txt = "Active configuration";
+                },
+            TAB
+                {
+                id = 1;
+                txt = "Configurations";
+                },
+            TAB
+                {
+                id = 2;
+                txt = "Views";
+                },
+            TAB
+                {
+                id = 3;
+                txt = "Widgets";
+                }                
+            };
+
+        };
+    }
+
+
+RESOURCE MENU_BAR r_application_options_menu
+    {
+    }
+
+RESOURCE LOCALISABLE_APP_INFO r_localisable_app_info
+    {
+    short_caption = STR_HsContentControlApplication_5;
+    caption_and_icon = CAPTION_AND_ICON_INFO
+        {
+        caption = STR_HsContentControlApplication_4;
+        number_of_icons = 0;
+        };
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample_reg.loc	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 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"
+* 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:  Content Control example
+*
+*/
+
+//  LOCALISATION STRINGS
+
+// Caption string for app.
+#define qtn_caption_string "hscontentcontrolexample"
+
+// Short caption string for app.
+#define qtn_short_caption_string "HW"
+
+#define qtn_loc_resource_file_1 "\\resource\\apps\\hscontentcontrolexample"
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/data/hscontentcontrolexample_reg.rss	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,37 @@
+/*
+* Copyright (c) 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"
+* 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:  Content Control example
+*
+*/
+
+#include <eikon.rh>
+#include <avkon.rsg>
+#include <avkon.rh>
+#include <appinfo.rh>
+#include "hscontentcontrolexample_reg.loc"
+#include <hscontentcontrolexample.rsg>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 0xE88D7143
+
+RESOURCE APP_REGISTRATION_INFO
+	{
+	app_file="hscontentcontrolexample";
+	localisable_resource_file =  qtn_loc_resource_file_1;
+	localisable_resource_id = R_LOCALISABLE_APP_INFO;
+
+	embeddability=KAppNotEmbeddable;
+	newfile=KAppDoesNotSupportNewFile;
+	}
+
Binary file idlehomescreen/examples/hscontentcontrolexample/gfx/list_icon.bmp has changed
Binary file idlehomescreen/examples/hscontentcontrolexample/gfx/list_icon_mask.bmp has changed
Binary file idlehomescreen/examples/hscontentcontrolexample/gfx/mark_icon.bmp has changed
Binary file idlehomescreen/examples/hscontentcontrolexample/gfx/mark_icon_mask.bmp has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/gfx/qgn_menu_hscontentcontrolexample.svg	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%" viewBox="0 0 88 87.999">
+<g>
+<g>
+<g>
+<g>
+<rect fill="none" width="88" height="87.999"/>
+</g>
+</g>
+<g>
+<linearGradient id="XMLID_7_" gradientUnits="userSpaceOnUse" x1="12.3042" y1="18.3799" x2="63.4113" y2="79.287">
+<stop offset="0" style="stop-color:#B3DDFF"/>
+<stop offset="0.8146" style="stop-color:#084296"/>
+<stop offset="1" style="stop-color:#084296"/>
+</linearGradient>
+<path fill="url(#XMLID_7_)" d="M32.135,7.415L14.363,17.432v23.167c0,0,8.926,15.351,10.468,18.001       c-2.386,1.704-15.44,11.03-15.44,11.03l21.613,12.652c0,0,12.907-9.85,14.71-11.226c1.979,1.109,16.231,9.101,16.231,9.101       l16.664-15.132c0,0-14.066-6.929-16.888-8.318c1.467-3.01,10.531-21.604,10.531-21.604l-22.298-9.59       c0,0-1.486,3.173-2.093,4.467c-2.046-0.88-6.573-2.826-6.573-2.826s-3.713,2.463-5.696,3.778       c-0.327-0.744-0.542-1.233-0.657-1.495c0.007-0.824,0.213-23.72,0.213-23.72L32.135,7.415z"/>
+<linearGradient id="XMLID_8_" gradientUnits="userSpaceOnUse" x1="40.8276" y1="52.1914" x2="16.1997" y2="21.1353">
+<stop offset="0" style="stop-color:#5AA7E0"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_8_)" points="59.051,57.621 69.536,36.111 50.944,28.115 48.852,32.581 41.493,29.418 34.719,33.911        32.932,29.849 33.117,9.157 16.363,18.601 16.363,40.06 27.476,59.169 13.064,69.463 30.856,79.879 45.546,68.669        61.667,77.708 75.089,65.521 "/>
+<linearGradient id="XMLID_9_" gradientUnits="userSpaceOnUse" x1="60.585" y1="31.876" x2="53.8582" y2="45.1125">
+<stop offset="0" style="stop-color:#5AA7E0"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_9_)" points="41.26,48.783 50.944,28.115 69.536,36.111 59.051,57.621 "/>
+<polygon fill="#0046B7" points="16.363,40.06 27.476,59.169 41.26,48.783 32.932,29.849 "/>
+<polygon fill="#3366CC" points="16.363,40.06 16.363,18.601 33.117,9.157 32.932,29.849 "/>
+<polygon fill="#CFECFF" points="26.696,39.23 41.493,29.418 59.523,37.168 45.546,47.954 "/>
+<path fill="#5AA7E0" d="M41.954,55.286"/>
+<polygon fill="#3366CC" points="26.696,39.23 27.476,59.169 45.546,68.669 45.546,47.954 "/>
+<polygon fill="#5AA7E0" points="13.064,69.463 27.476,59.169 45.546,68.669 30.856,79.879 "/>
+<linearGradient id="XMLID_10_" gradientUnits="userSpaceOnUse" x1="29.2085" y1="63.6836" x2="48.7102" y2="56.1976">
+<stop offset="0" style="stop-color:#5AA7E0"/>
+<stop offset="0.0056" style="stop-color:#5AA7E0"/>
+<stop offset="0.85" style="stop-color:#3366CC"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_10_)" points="43.423,46.971 27.476,59.169 45.546,68.669 45.546,47.954 "/>
+<polygon fill="#0046B7" points="45.546,47.954 45.546,68.669 59.051,57.621 59.523,37.168 "/>
+<linearGradient id="XMLID_11_" gradientUnits="userSpaceOnUse" x1="45.3936" y1="59.5186" x2="59.0508" y2="59.5186">
+<stop offset="0" style="stop-color:#0046B7"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_11_)" points="45.394,50.368 45.546,68.669 59.051,57.621 "/>
+<linearGradient id="XMLID_12_" gradientUnits="userSpaceOnUse" x1="60.8945" y1="68.6807" x2="57.2953" y2="58.792">
+<stop offset="0" style="stop-color:#5AA7E0"/>
+<stop offset="0.4101" style="stop-color:#5AA7E0"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_12_)" points="61.667,77.708 45.546,68.669 59.051,57.621 75.089,65.521 "/>
+</g>
+</g>
+</g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/group/Icons_aif_scalable_dc.mk	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,83 @@
+#
+# Copyright (c) 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"
+# 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:  Content Control example
+#
+#
+
+ifeq (WINS,$(findstring WINS, $(PLATFORM)))
+ZDIR=$(EPOCROOT)epoc32\release\$(PLATFORM)\$(CFG)\Z
+else
+ZDIR=$(EPOCROOT)epoc32\data\z
+endif
+
+
+# ----------------------------------------------------------------------------
+# TODO: Configure these
+# ----------------------------------------------------------------------------
+
+TARGETDIR=$(ZDIR)\resource\apps
+ICONTARGETFILENAME=$(TARGETDIR)\hscontentcontrolexample_aif.mif
+HEADERDIR=$(EPOCROOT)epoc32\include
+HEADERFILENAME=$(HEADERDIR)\hscontentcontrolexample_aif.mbg
+
+ICONDIR=..\gfx
+
+do_nothing :
+	@rem do_nothing
+
+MAKMAKE : do_nothing
+
+BLD : do_nothing
+
+CLEAN :
+	@echo ...Deleting $(ICONTARGETFILENAME)
+	del /q /f $(ICONTARGETFILENAME)
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+# ----------------------------------------------------------------------------
+# TODO: Configure these.
+#
+# NOTE 1: DO NOT DEFINE MASK FILE NAMES! They are included automatically by
+# MifConv if the mask detph is defined.
+#
+# NOTE 2: Usually, source paths should not be included in the bitmap
+# definitions. MifConv searches for the icons in all icon directories in a
+# predefined order, which is currently \s60\icons, \s60\bitmaps2.
+# The directory \s60\icons is included in the search only if the feature flag
+# __SCALABLE_ICONS is defined.
+# ----------------------------------------------------------------------------
+# NOTE: if you have JUSTINTIME enabled for your S60 3rd FP1 or newer SDK
+# and this command crashes, consider adding "/X" to the command line.
+# See <http://forum.nokia.com/document/Forum_Nokia_Technical_Library_v1_35/contents/FNTL/Build_process_fails_at_mif_file_creation_in_S60_3rd_Ed_FP1_SDK.htm>
+# ----------------------------------------------------------------------------
+
+RESOURCE : $(ICONTARGETFILENAME)
+
+$(ICONTARGETFILENAME) : $(ICONDIR)\qgn_menu_hscontentcontrolexample.svg
+	mifconv $(ICONTARGETFILENAME) \
+		/H$(HEADERFILENAME) \
+		/c32,8 $(ICONDIR)\qgn_menu_hscontentcontrolexample.svg
+		
+FREEZE : do_nothing
+
+SAVESPACE : do_nothing
+
+RELEASABLES :
+	@echo $(ICONTARGETFILENAME)
+
+FINAL : do_nothing
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/group/bld.inf	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 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"
+* 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:  Content Control example
+*
+*/
+
+PRJ_PLATFORMS
+WINSCW ARMV5 GCCE
+
+PRJ_EXPORTS
+
+PRJ_MMPFILES
+
+gnumakefile icons_aif_scalable_dc.mk
+
+hscontentcontrolexample.mmp
+
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/group/hscontentcontrolexample.mmp	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,71 @@
+/*
+* Copyright (c) 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"
+* 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:  Content Control example
+*
+*/
+
+#include <platform_paths.hrh>
+#include <data_caging_paths.hrh>
+APP_LAYER_SYSTEMINCLUDE
+TARGET			hscontentcontrolexample.exe
+UID			   0x100039CE 0xE88D7143
+VENDORID	  	  0
+TARGETTYPE		exe
+EPOCSTACKSIZE	 0x5000
+
+CAPABILITY    WriteDeviceData ReadDeviceData
+
+SYSTEMINCLUDE /epoc32/include /epoc32/include/variant /epoc32/include/ecom
+USERINCLUDE	   ../inc ../data
+
+SOURCEPATH		../data
+START RESOURCE	hscontentcontrolexample.rss
+HEADER
+TARGETPATH resource/apps
+END //RESOURCE
+
+START RESOURCE	hscontentcontrolexample_reg.rss
+TARGETPATH 	  /private/10003a3f/apps
+END //RESOURCE
+
+LIBRARY			euser.lib apparc.lib cone.lib eikcore.lib avkon.lib
+LIBRARY			commonengine.lib efsrv.lib estor.lib eikcoctl.lib eikdlg.lib 
+LIBRARY			eikctl.lib bafl.lib fbscli.lib aknnotify.lib aknicon.lib
+LIBRARY			etext.lib gdi.lib egul.lib insock.lib
+LIBRARY			ecom.lib InetProtUtil.lib http.lib esock.lib aknhlist.lib
+LIBRARY         aknskins.lib   
+LIBRARY         hsccapiclient.lib
+LIBRARY         hscontentinfo.lib
+
+LANG 				01
+
+START BITMAP	hscontentcontrolexample.mbm
+HEADER
+TARGETPATH		/resource/apps
+SOURCEPATH		../gfx
+SOURCE	c12,1	list_icon.bmp list_icon_mask.bmp
+END
+
+SOURCEPATH		../src
+
+#ifdef ENABLE_ABIV2_MODE
+DEBUGGABLE_UDEBONLY
+#endif
+
+SOURCE          HsContentControlListBox.cpp 
+SOURCE          HsContentControlApplication.cpp 
+SOURCE          HsContentControlAppUi.cpp 
+SOURCE          HsContentControlDocument.cpp
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/inc/HsContentControlAppUi.h	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,72 @@
+/*
+* Copyright (c) 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"
+* 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:  Content Control example
+*
+*/
+
+
+#ifndef HSCONTENTCONTROLAPPUI_H
+#define HSCONTENTCONTROLAPPUI_H
+
+// [[[ begin generated region: do not modify [Generated Includes]
+#include <aknappui.h>
+#include <eikmenub.h>
+// ]]] end generated region [Generated Includes]
+
+// [[[ begin generated region: do not modify [Generated Forward Declarations]
+class CHsContentControlListBox;
+// ]]] end generated region [Generated Forward Declarations]
+
+/**
+ * @class    CHsContentControlAppUi HsContentControlAppUi.h
+ * @brief The AppUi class handles application-wide aspects of the user interface, including
+ *        container management and the default menu, control pane, and status pane.
+ */
+class CHsContentControlAppUi : public CAknAppUi
+    {
+public: 
+    // constructor and destructor
+    CHsContentControlAppUi();
+    void ConstructL();
+    virtual ~CHsContentControlAppUi();
+
+public: 
+    // from CEikAppUi
+    void HandleCommandL( TInt aCommand );
+    void HandleResourceChangeL( TInt aType );    
+    
+private:
+    void InitializeContainersL();
+    // [[[ begin generated region: do not modify [Generated Methods]
+public: 
+    // ]]] end generated region [Generated Methods]
+    
+    // [[[ begin generated region: do not modify [Generated Instance Variables]
+private: 
+    CHsContentControlListBox* iHsContentControlListBox;
+    // ]]] end generated region [Generated Instance Variables]
+    
+    
+    // [[[ begin [Overridden Methods]
+protected: 
+    // ]]] end [Overridden Methods]
+    
+    
+    // [[[ begin [User Handlers]
+protected: 
+    // ]]] end [User Handlers]
+    
+    };
+
+#endif // HSCONTENTCONTROLAPPUI_H            
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/inc/HsContentControlApplication.h	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,45 @@
+/*
+* Copyright (c) 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"
+* 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:  Content Control example
+*
+*/
+
+
+#ifndef HSCONTENTCONTROLAPPLICATION_H
+#define HSCONTENTCONTROLAPPLICATION_H
+
+// [[[ begin generated region: do not modify [Generated Includes]
+#include <aknapp.h>
+// ]]] end generated region [Generated Includes]
+
+// [[[ begin generated region: do not modify [Generated Constants]
+const TUid KUidHsContentControlApplication = { 0xE88D7143 };
+// ]]] end generated region [Generated Constants]
+
+/**
+ *
+ * @class    CHsContentControlApplication HsContentControlApplication.h
+ * @brief    A CAknApplication-derived class is required by the S60 application 
+ *          framework. It is subclassed to create the application's document 
+ *          object.
+ */
+class CHsContentControlApplication : public CAknApplication
+    {
+private:
+    TUid AppDllUid() const;
+    CApaDocument* CreateDocumentL();
+    
+    };
+            
+#endif // HSCONTENTCONTROLAPPLICATION_H        
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/inc/HsContentControlDocument.h	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,46 @@
+/*
+* Copyright (c) 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"
+* 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:  Content Control example
+*
+*/
+
+
+#ifndef HSCONTENTCONTROLDOCUMENT_H
+#define HSCONTENTCONTROLDOCUMENT_H
+
+#include <akndoc.h>
+        
+class CEikAppUi;
+
+/**
+* @class    CHsContentControlDocument HsContentControlDocument.h
+* @brief    A CAknDocument-derived class is required by the S60 application 
+*           framework. It is responsible for creating the AppUi object. 
+*/
+class CHsContentControlDocument : public CAknDocument
+    {
+public: 
+    // constructor
+    static CHsContentControlDocument* NewL( CEikApplication& aApp );
+
+private: 
+    // constructors
+    CHsContentControlDocument( CEikApplication& aApp );
+    void ConstructL();
+    
+public: 
+    // from base class CEikDocument
+    CEikAppUi* CreateAppUiL();
+    };
+#endif // HSCONTENTCONTROLDOCUMENT_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/inc/HsContentControlListBox.h	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,206 @@
+/*
+* Copyright (c) 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"
+* 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:  Content Control example
+*
+*/
+
+
+#ifndef __HSCONTENTCONTROLLISTBOX_H__
+#define __HSCONTENTCONTROLLISTBOX_H__
+
+//  Includes
+#include <coecntrl.h>        
+#include <akntreelistobserver.h>
+#include <AknTabObserver.h>
+#include <hscontentcontrol.h>
+
+//  Forward declarations
+class MEikCommandObserver;        
+class CAknSingleStyleTreeList;
+class CAknsBasicBackgroundControlContext;
+class CAknNavigationDecorator;
+class CAknTabGroup;
+class CAknStylusPopUpMenu;
+class CHsCcApiClient;
+class CHsContentInfoArray;
+
+/**
+ * Container class for HsContentControlListBox
+ * 
+ * @class    CHsContentControlListBox HsContentControlListBox.h
+ */
+class CHsContentControlListBox : public CCoeControl,     
+    public MAknTreeListObserver,
+    public MAknTabObserver,
+    public MEikMenuObserver,
+    public MHsContentControl    
+    {
+public:
+    // constructors and destructor
+    
+    /**
+     * Two-phased constructor.
+     */    
+    static CHsContentControlListBox* NewL( 
+        const TRect& aRect, 
+        const CCoeControl* aParent, 
+        MEikCommandObserver* aCommandObserver );
+
+    /**
+     * Two-phased constructor.
+     */    
+    static CHsContentControlListBox* NewLC( 
+        const TRect& aRect, 
+        const CCoeControl* aParent, 
+        MEikCommandObserver* aCommandObserver );
+        
+    /**
+     * Destructor
+     */    
+    ~CHsContentControlListBox();
+
+public:
+    // from CCoeControl
+    
+    /**
+     * @see CCoeControl
+     */            
+    TInt CountComponentControls() const;
+
+    /**
+     * @see CCoeControl
+     */                
+    CCoeControl* ComponentControl( TInt aIndex ) const;
+    
+    /**
+     * @see CCoeControl
+     */                
+    TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType ); 
+    
+    /**
+     * @see CCoeControl
+     */                
+    void HandleResourceChange( TInt aType );
+
+    /**
+     * @see CCoeControl
+     */                
+    void SizeChanged();
+
+    /**
+     * @see CCoeControl
+     */                
+    TTypeUid::Ptr MopSupplyObject( TTypeUid aId );
+            
+private:
+   // from MAknTreeListObserver
+
+    /**
+     * @see MAknTreeListObserver
+     */
+    TInt HandleTreeListEvent(       
+        CAknTreeList& aList,
+        TAknTreeItemID aItem,
+        TEvent aEvent );
+    
+private:    
+    // From MEikMenuObserver
+
+    /**
+     * @see MEikMenuObserver
+     */
+    void ProcessCommandL( TInt aCommandId );
+    
+    /**
+     * @see MEikMenuObserver
+     */
+    void SetEmphasis( CCoeControl* aMenuControl, TBool aEmphasis );
+    
+private:
+    // from MAknTabObserver
+    
+    /**
+     * @see MAknTabObserver
+     */    
+    void TabChangedL( TInt aIndex );
+    
+private:
+    // from MHsContentControl
+    
+    /**
+     * @see MHsContentControl
+     */
+    void NotifyWidgetListChanged();
+
+    /**
+     * @see MHsContentControl
+     */
+    void NotifyViewListChanged();
+
+    /**
+     * @see MHsContentControl
+     */
+    void NotifyAppListChanged();
+          
+private:
+    // new functions
+    
+    void InitializeControlsL();    
+    void LayoutControls();
+    void PopulateListL();
+
+    static TInt PopulateList( TAny* aAny );
+    
+private:
+    // constructors
+
+    /**
+     * C++ default constructor
+     */    
+    CHsContentControlListBox();
+
+    /** 
+     * 2nd phase constructor
+     */
+    void ConstructL( 
+        const TRect& aRect, 
+        const CCoeControl* aParent, 
+        MEikCommandObserver* aCommandObserver );
+    
+private:
+    // data
+
+    /** Homescreen content control client, owned */
+    CHsCcApiClient* iHsCcApiClient;    
+    /** Callback, owned */
+    CAsyncCallBack* iCallback;
+    /** Popup menu, owned */
+    CAknStylusPopUpMenu* iPopup;    
+    /** List box, owned */
+    CAknSingleStyleTreeList* iListBox;
+    /** Bg context, owned */
+    CAknsBasicBackgroundControlContext* iBgContext;
+    /** Content info array, owned */
+    CHsContentInfoArray* iArray;
+    /** Navigation decorator, owned */
+    CAknNavigationDecorator* iDecorator;
+    /** Tab group, not owned */
+    CAknTabGroup* iTabGroup;   
+    /** Selected tree item */
+    TAknTreeItemID iSelectedItem;    
+    /** Active tab index */
+    TInt iTabIndex;
+    };
+                
+#endif // __HSCONTENTCONTROLLISTBOX_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/group/bld.inf	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,38 @@
+/*
+* Copyright (c) 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"
+* 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:  Content Control example
+*
+*/
+
+#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/root2/hsps/manifest.dat
+../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/root2/hsps/widgetconfiguration.xml
+../xuikon/00/root2.dat /epoc32/data/Z/resource/homescreen/root2/xuikon/root2.dat
+../xuikon/00/root2.css /epoc32/data/Z/resource/homescreen/root2/xuikon/root2.css
+../xuikon/00/root2.xml /epoc32/data/Z/resource/homescreen/root2/xuikon/root2.xml
+//../xuikon/00/root2.dtd /epoc32/data/Z/resource/homescreen/root2/xuikon/root2.dtd
+
+
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME root2
+OPTION DTD_TYPE widget
+END
+//  End of File  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/hsps/00/manifest.dat	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<package version="2.0">
+    <family>qhd_tch</family>
+    <type>application</type>
+
+    <interfaceuid>0x102750F0</interfaceuid>
+    <provideruid>0x101fb657</provideruid>
+    <configurationuid>0x20102020</configurationuid>
+
+    <fullname>HS Configuration</fullname>
+    <shortname>root2</shortname>
+    <version>1.0</version>
+
+    <filexml>widgetconfiguration.xml</filexml>
+    <!-- Locale specific resources -->
+    <localization>
+        <fileresource tag="xuikon">root2.o0000</fileresource>
+    </localization>
+</package>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/hsps/00/widgetconfiguration.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<configuration max_child="6" xmlns:xi="http://www.w3.org/2001/xinclude">
+    <control>
+        <plugins>
+            <plugin uid="0x2001f48b" locking_status="none"/>
+            <plugin uid="0x20026f50" locking_status="none"/>
+            <plugin uid="0x20026f50" locking_status="none"/>
+            <plugin uid="0x20026f50" locking_status="none"/>
+            <plugin uid="0x20026f50" locking_status="none"/>
+            <plugin uid="0x20026f50" locking_status="none"/>            
+        </plugins>
+        <settings/>
+    </control>
+</configuration>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/sis/hs_configuration_urel.pkg	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,33 @@
+; Installation file for recentcallswidget dll
+;
+; This is an auto-generated PKG file by Carbide.
+; This file uses variables specific to Carbide builds that will not work
+; on command-line builds. If you want to use this generated PKG file from the
+; command-line tools you will need to modify the variables with the appropriate
+; values: $(EPOCROOT), $(PLATFORM), $(TARGET)
+
+;
+; UID is the dll's UID
+;
+#{"HS 6 pages configuration"},(0x20102020),1,0,0
+
+
+;Localised Vendor name
+%{"Nokia"}
+
+;Unique Vendor name
+:"Nokia"
+
+;Supports Series 60 v 5.0
+[0x1028315F], 0, 0, 0, {"S60ProductID"}
+
+
+"../hsps/00/widgetconfiguration.xml"                 - "c:/private/200159C0/import/102750F0/101FB657/20102020/1.0/widgetconfiguration.xml"
+"../hsps/00/manifest.dat"                            - "c:/private/200159C0/import/102750F0/101FB657/20102020/1.0/manifest.dat"
+
+"/epoc32/data/z/private/200159c0/install/root2/xuikon/00/root2.o0000" - "c:/private/200159C0/import/102750F0/101FB657/20102020/1.0/00/root2.o0000"
+
+"../xuikon/00/root2.dat"                       - "c:/private/200159C0/import/plugin_102750F0_101FB657_20102020_1.0.dat"
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/xuikon/00/root2.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,3 @@
+views 
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/xuikon/00/root2.dat	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<data>
+    <!-- UIDs below are not used, deprecated functionality.-->
+    <AppUid>2001CB4F</AppUid>
+    <Provideruid>101FB657</Provideruid>
+    <ThemeUid>11001241</ThemeUid>
+    <ThemeFullName>Anything</ThemeFullName>
+    <ThemeShortName>root2</ThemeShortName>
+    <ThemeVersion>1.0</ThemeVersion>
+    <FileXML>root2.xml</FileXML>
+    <FileCSS>root2.css</FileCSS>
+</data>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_qhd_tch/xuikon/00/root2.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
+    <views/>    
+</xmluiml>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/group/bld.inf	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,38 @@
+/*
+* Copyright (c) 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"
+* 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:  Content Control example
+*
+*/
+
+#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/root2/hsps/manifest.dat
+../hsps/00/widgetconfiguration.xml /epoc32/data/Z/resource/homescreen/root2/hsps/widgetconfiguration.xml
+../xuikon/00/root2.dat /epoc32/data/Z/resource/homescreen/root2/xuikon/root2.dat
+../xuikon/00/root2.css /epoc32/data/Z/resource/homescreen/root2/xuikon/root2.css
+../xuikon/00/root2.xml /epoc32/data/Z/resource/homescreen/root2/xuikon/root2.xml
+//../xuikon/00/root2.dtd /epoc32/data/Z/resource/homescreen/root2/xuikon/root2.dtd
+
+
+PRJ_EXTENSIONS
+START EXTENSION tools/dtd
+OPTION SWITCH_LOC_FILE_NAME root2
+OPTION DTD_TYPE widget
+END
+//  End of File  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/hsps/00/manifest.dat	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<package version="2.0">
+    <family>vga_tch</family>
+    <type>application</type>
+
+    <interfaceuid>0x102750F0</interfaceuid>
+    <provideruid>0x101fb657</provideruid>
+    <configurationuid>0x20102020</configurationuid>
+
+    <fullname>HS Configuration</fullname>
+    <shortname>root2</shortname>
+    <version>1.0</version>
+
+    <filexml>widgetconfiguration.xml</filexml>
+    <!-- Locale specific resources -->
+    <localization>
+        <fileresource tag="xuikon">root2.o0000</fileresource>
+    </localization>
+</package>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/hsps/00/widgetconfiguration.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<configuration max_child="6" xmlns:xi="http://www.w3.org/2001/xinclude">
+    <control>
+        <plugins>
+            <plugin uid="0x2001fdb9" locking_status="none"/>
+            <plugin uid="0x200286ec" locking_status="none"/>
+            <plugin uid="0x200286ec" locking_status="none"/>
+            <plugin uid="0x200286ec" locking_status="none"/>
+            <plugin uid="0x200286ec" locking_status="none"/>
+            <plugin uid="0x200286ec" locking_status="none"/>
+        </plugins>
+        <settings/>
+    </control>
+</configuration>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/sis/hs_configuration_urel.pkg	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,33 @@
+; Installation file for recentcallswidget dll
+;
+; This is an auto-generated PKG file by Carbide.
+; This file uses variables specific to Carbide builds that will not work
+; on command-line builds. If you want to use this generated PKG file from the
+; command-line tools you will need to modify the variables with the appropriate
+; values: $(EPOCROOT), $(PLATFORM), $(TARGET)
+
+;
+; UID is the dll's UID
+;
+#{"HS 6 pages configuration"},(0x20102020),1,0,0
+
+
+;Localised Vendor name
+%{"Nokia"}
+
+;Unique Vendor name
+:"Nokia"
+
+;Supports Series 60 v 5.0
+[0x1028315F], 0, 0, 0, {"S60ProductID"}
+
+
+"../hsps/00/widgetconfiguration.xml"                 - "c:/private/200159C0/import/102750F0/101FB657/20102020/1.0/widgetconfiguration.xml"
+"../hsps/00/manifest.dat"                            - "c:/private/200159C0/import/102750F0/101FB657/20102020/1.0/manifest.dat"
+
+"/epoc32/data/z/private/200159c0/install/root2/xuikon/00/root2.o0000" - "c:/private/200159C0/import/102750F0/101FB657/20102020/1.0/00/root2.o0000"
+
+"../xuikon/00/root2.dat"                       - "c:/private/200159C0/import/plugin_102750F0_101FB657_20102020_1.0.dat"
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/xuikon/00/root2.css	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,3 @@
+views 
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/xuikon/00/root2.dat	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,12 @@
+<?xml version="1.0"?>
+<data>
+    <!-- UIDs below are not used, deprecated functionality.-->
+    <AppUid>2001CB4F</AppUid>
+    <Provideruid>101FB657</Provideruid>
+    <ThemeUid>11001241</ThemeUid>
+    <ThemeFullName>Anything</ThemeFullName>
+    <ThemeShortName>root2</ThemeShortName>
+    <ThemeVersion>1.0</ThemeVersion>
+    <FileXML>root2.xml</FileXML>
+    <FileCSS>root2.css</FileCSS>
+</data>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/root_vga_tch/xuikon/00/root2.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xmluiml xmlns="http://www.series60.com/xml/xmluiml/1" version="1.0">
+    <views/>    
+</xmluiml>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/sis/hscontentcontrolexample_urel.pkg	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,36 @@
+; hscontentcontrolexample.pkg
+; This is an auto-generated PKG file by Carbide.
+; This file uses variables specific to Carbide builds that will not work
+; on command-line builds. If you want to use this generated PKG file from the
+; command-line tools you will need to modify the variables with the appropriate
+; values: $(EPOCROOT), $(PLATFORM), $(TARGET)
+; Also, the resource file entries should be changed to match the language
+; used in the build. For example, if building for LANGUAGE_01, change the file
+; extensions .rsc to .r01.
+;
+;Language - standard language definitions
+&EN
+
+; standard SIS file header
+#{"HS ContentControl"},(0xE88D7143),1,0,0
+
+;Localised Vendor name
+%{"Vendor-EN"}
+
+;Unique Vendor name
+:"Vendor"
+
+;Supports Series 60 v 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+;Files to install
+;You should change the source paths to match that of your environment
+;<source> <destination>
+"\epoc32\release\armv5\urel\hscontentcontrolexample.exe"		-"!:\sys\bin\hscontentcontrolexample.exe"
+"\epoc32\data\z\resource\apps\hscontentcontrolexample.r01"		-"!:\resource\apps\hscontentcontrolexample.r01"
+"\epoc32\data\z\private\10003a3f\apps\hscontentcontrolexample_reg.r01"	-"!:\private\10003a3f\import\apps\hscontentcontrolexample_reg.r01"
+"\epoc32\data\z\resource\apps\hscontentcontrolexample_aif.mif" -"!:\resource\apps\hscontentcontrolexample_aif.mif"
+"\epoc32\data\z\resource\apps\hscontentcontrolexample.mbm" -"!:\resource\apps\hscontentcontrolexample.mbm"
+; Add any installation notes if applicable
+;"hscontentcontrolexample.txt"					  -"!:\private\0xE88D7143\hscontentcontrolexample.txt"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/src/HsContentControlAppUi.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,125 @@
+/*
+* Copyright (c) 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"
+* 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:  Content Control example
+*
+*/
+
+
+// [[[ begin generated region: do not modify [Generated System Includes]
+#include <eikmenub.h>
+#include <hscontentcontrolexample.rsg>
+// ]]] end generated region [Generated System Includes]
+
+// [[[ begin generated region: do not modify [Generated User Includes]
+#include "HsContentControlAppUi.h"
+#include "HsContentControlListBox.h"
+// ]]] end generated region [Generated User Includes]
+
+// [[[ begin generated region: do not modify [Generated Constants]
+// ]]] end generated region [Generated Constants]
+
+/**
+ * Construct the CHsContentControlAppUi instance
+ */ 
+CHsContentControlAppUi::CHsContentControlAppUi()
+    {
+    // [[[ begin generated region: do not modify [Generated Contents]
+    iHsContentControlListBox = NULL;
+    // ]]] end generated region [Generated Contents]
+    
+    }
+
+/** 
+ * The appui's destructor removes the container from the control
+ * stack and destroys it.
+ */
+CHsContentControlAppUi::~CHsContentControlAppUi()
+    {
+    // [[[ begin generated region: do not modify [Generated Contents]
+    if ( iHsContentControlListBox != NULL )
+        {
+        RemoveFromStack( iHsContentControlListBox );
+        delete iHsContentControlListBox;
+        iHsContentControlListBox = NULL;
+        }
+    // ]]] end generated region [Generated Contents]
+    
+    }
+
+/**
+ * @brief Completes the second phase of Symbian object construction. 
+ * Put initialization code that could leave here. 
+ */ 
+void CHsContentControlAppUi::ConstructL()
+    {
+    // [[[ begin generated region: do not modify [Generated Contents]
+    
+    BaseConstructL( EAknEnableSkin | EAknEnableMSK |                      
+        EAknTouchCompatible | EAknSingleClickCompatible );
+                        
+    InitializeContainersL();
+    // ]]] end generated region [Generated Contents]
+    
+    }
+
+// [[[ begin generated function: do not modify
+void CHsContentControlAppUi::InitializeContainersL()
+    {
+    iHsContentControlListBox = CHsContentControlListBox::NewL( ClientRect(), NULL, this );
+    iHsContentControlListBox->SetMopParent( this );
+    AddToStackL( iHsContentControlListBox );
+    
+    iHsContentControlListBox->DrawNow();
+    }
+// ]]] end generated function
+
+/**
+ * Handle a command for this appui (override)
+ * @param aCommand command id to be handled
+ */
+void CHsContentControlAppUi::HandleCommandL( TInt aCommand )
+    {
+    // [[[ begin generated region: do not modify [Generated Code]
+    TBool commandHandled = EFalse;
+    switch ( aCommand )
+        { // code to dispatch to the AppUi's menu and CBA commands is generated here
+        default:
+            break;
+        }
+    
+        
+    if ( !commandHandled ) 
+        {
+        if ( aCommand == EAknSoftkeyExit || 
+            aCommand == EAknSoftkeyBack || 
+            aCommand == EEikCmdExit )
+            {
+            Exit();
+            }
+        }
+    // ]]] end generated region [Generated Code]
+    
+    }
+
+/** 
+ * Override of the HandleResourceChangeL virtual function
+ */
+void CHsContentControlAppUi::HandleResourceChangeL( TInt aType )
+    {
+    CAknAppUi::HandleResourceChangeL( aType );
+    // [[[ begin generated region: do not modify [Generated Code]
+    // ]]] end generated region [Generated Code]
+    
+    }
+                
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/src/HsContentControlApplication.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,88 @@
+/*
+* Copyright (c) 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"
+* 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:  Content Control example
+*
+*/
+
+
+// [[[ begin generated region: do not modify [Generated System Includes]
+// ]]] end generated region [Generated System Includes]
+
+// [[[ begin generated region: do not modify [Generated Includes]
+#include "HsContentControlApplication.h"
+#include "HsContentControlDocument.h"
+#ifdef EKA2
+#include <eikstart.h>
+#endif
+// ]]] end generated region [Generated Includes]
+
+/**
+ * @brief Returns the application's UID (override from CApaApplication::AppDllUid())
+ * @return UID for this application (KUidHsContentControlApplication)
+ */
+TUid CHsContentControlApplication::AppDllUid() const
+    {
+    return KUidHsContentControlApplication;
+    }
+
+/**
+ * @brief Creates the application's document (override from CApaApplication::CreateDocumentL())
+ * @return Pointer to the created document object (CHsContentControlDocument)
+ */
+CApaDocument* CHsContentControlApplication::CreateDocumentL()
+    {
+    return CHsContentControlDocument::NewL( *this );
+    }
+
+#ifdef EKA2
+
+/**
+ *    @brief Called by the application framework to construct the application object
+ *  @return The application (CHsContentControlApplication)
+ */    
+LOCAL_C CApaApplication* NewApplication()
+    {
+    return new CHsContentControlApplication;
+    }
+
+/**
+* @brief This standard export is the entry point for all Series 60 applications
+* @return error code
+ */    
+GLDEF_C TInt E32Main()
+    {
+    return EikStart::RunApplication( NewApplication );
+    }
+    
+#else     // Series 60 2.x main DLL program code
+
+/**
+* @brief This standard export constructs the application object.
+* @return The application (CHsContentControlApplication)
+*/
+EXPORT_C CApaApplication* NewApplication()
+    {
+    return new CHsContentControlApplication;
+    }
+
+/**
+* @brief This standard export is the entry point for all Series 60 applications
+* @return error code
+*/
+GLDEF_C TInt E32Dll(TDllReason /*reason*/)
+    {
+    return KErrNone;
+    }
+
+#endif // EKA2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/src/HsContentControlDocument.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,67 @@
+/*
+* Copyright (c) 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"
+* 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:  Content Control example
+*
+*/
+
+
+// [[[ begin generated region: do not modify [Generated User Includes]
+#include "HsContentControlDocument.h"
+#include "HsContentControlAppUi.h"
+// ]]] end generated region [Generated User Includes]
+
+/**
+ * @brief Constructs the document class for the application.
+ * @param anApplication the application instance
+ */
+CHsContentControlDocument::CHsContentControlDocument( CEikApplication& anApplication )
+    : CAknDocument( anApplication )
+    {
+    }
+
+/**
+ * @brief Completes the second phase of Symbian object construction. 
+ * Put initialization code that could leave here.  
+ */ 
+void CHsContentControlDocument::ConstructL()
+    {
+    }
+    
+/**
+ * Symbian OS two-phase constructor.
+ *
+ * Creates an instance of CHsContentControlDocument, constructs it, and
+ * returns it.
+ *
+ * @param aApp the application instance
+ * @return the new CHsContentControlDocument
+ */
+CHsContentControlDocument* CHsContentControlDocument::NewL( CEikApplication& aApp )
+    {
+    CHsContentControlDocument* self = new ( ELeave ) CHsContentControlDocument( aApp );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+/**
+ * @brief Creates the application UI object for this document.
+ * @return the new instance
+ */    
+CEikAppUi* CHsContentControlDocument::CreateAppUiL()
+    {
+    return new ( ELeave ) CHsContentControlAppUi;
+    }
+                
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/hscontentcontrolexample/src/HsContentControlListBox.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,598 @@
+/*
+* Copyright (c) 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"
+* 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:  Content Control example
+*
+*/
+
+
+//  Includes
+#include <aknlists.h>
+#include <akncontext.h>
+#include <akntitle.h>
+#include <aknnavi.h>
+#include <aknnavide.h>
+#include <akntabgrp.h>
+#include <aknstyluspopupmenu.h>
+
+#include <aknsinglestyletreelist.h>
+#include <aknsbasicbackgroundcontrolcontext.h>
+
+#include <hsccapiclient.h>
+#include <hscontentinfo.h>
+#include <hscontentinfoarray.h>
+
+#include "HsContentControlListBox.h"
+
+//  Constants
+const TInt KFlags( CAknSingleStyleTreeList::EPersistent | 
+        CAknSingleStyleTreeList::EExpanded );
+
+_LIT( KActivate, "Activate" );
+
+enum TTabs
+    {
+    ETabFirst = 0,
+    ETabActiveConfiguration = ETabFirst,
+    ETabConfigurations,
+    ETabViews,
+    ETabWidgets,
+    ETabLast = ETabWidgets 
+    };
+
+// ============================ LOCAL FUNCTIONS ================================
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::CHsContentControlListBox
+//
+// -----------------------------------------------------------------------------
+//
+CHsContentControlListBox::CHsContentControlListBox()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::~CHsContentControlListBox
+//
+// -----------------------------------------------------------------------------
+//
+CHsContentControlListBox::~CHsContentControlListBox()
+    {    
+    delete iHsCcApiClient;
+    delete iCallback;
+    delete iPopup;
+    delete iListBox;
+    delete iBgContext;
+    delete iArray;    
+    delete iDecorator;
+    }
+  
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::NewL
+//
+// -----------------------------------------------------------------------------
+//
+CHsContentControlListBox* CHsContentControlListBox::NewL( const TRect& aRect,  
+    const CCoeControl* aParent, MEikCommandObserver* aCommandObserver )          
+    {
+    CHsContentControlListBox* self = 
+        CHsContentControlListBox::NewLC( aRect, aParent, aCommandObserver ); 
+    CleanupStack::Pop( self );
+    
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::NewLC
+//
+// -----------------------------------------------------------------------------
+//
+CHsContentControlListBox* CHsContentControlListBox::NewLC( const TRect& aRect,          
+    const CCoeControl* aParent, MEikCommandObserver* aCommandObserver )         
+    {
+    CHsContentControlListBox* self = new ( ELeave ) CHsContentControlListBox();
+    CleanupStack::PushL( self );
+    
+    self->ConstructL( aRect, aParent, aCommandObserver );
+    
+    return self;
+    }
+            
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::ConstructL
+//
+// -----------------------------------------------------------------------------
+//
+void CHsContentControlListBox::ConstructL( const TRect& aRect,          
+    const CCoeControl* aParent, MEikCommandObserver* /*aCommandObserver*/ )         
+    {
+    iHsCcApiClient = CHsCcApiClient::NewL( this );
+    
+    TCallBack cb( PopulateList, this );
+    
+    iCallback = new ( ELeave ) CAsyncCallBack( cb, CActive::EPriorityStandard );
+    
+    if ( !aParent )
+        {
+        CreateWindowL();
+        }
+    else
+        {
+        SetContainerWindowL( *aParent );
+        }
+    
+    InitializeControlsL();
+
+    SetRect( aRect );
+               
+    ActivateL();
+    
+    PopulateListL();
+    }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::CountComponentControls
+//
+// -----------------------------------------------------------------------------
+//
+TInt CHsContentControlListBox::CountComponentControls() const
+    {
+    return 1;
+    }
+                
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::CHsContentControlListBox
+//
+// -----------------------------------------------------------------------------
+//
+CCoeControl* CHsContentControlListBox::ComponentControl( TInt aIndex ) const
+    {
+    if ( aIndex == 0 )
+        {
+        return iListBox;
+        }
+    
+    return NULL;
+    }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::OfferKeyEventL
+//
+// -----------------------------------------------------------------------------
+//
+TKeyResponse CHsContentControlListBox::OfferKeyEventL(  
+    const TKeyEvent& aKeyEvent, TEventCode aType )         
+    {    
+    if ( iListBox->OfferKeyEventL( aKeyEvent, aType ) == EKeyWasConsumed )         
+        {
+        return EKeyWasConsumed;
+        }
+    
+    return CCoeControl::OfferKeyEventL( aKeyEvent, aType );
+    }
+                
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::HandleResourceChange
+//
+// -----------------------------------------------------------------------------
+//
+void CHsContentControlListBox::HandleResourceChange( TInt aType )
+    {
+    CCoeControl::HandleResourceChange( aType );
+    
+    SetRect( iAvkonAppUi->ClientRect() );
+    }
+                
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::SizeChanged
+//
+// -----------------------------------------------------------------------------
+//
+void CHsContentControlListBox::SizeChanged()
+    {
+    CCoeControl::SizeChanged();
+
+    LayoutControls();    
+    }
+                
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::MopSupplyObject
+//
+// -----------------------------------------------------------------------------
+//
+TTypeUid::Ptr CHsContentControlListBox::MopSupplyObject( TTypeUid aId )
+    {
+    if ( aId.iUid == MAknsControlContext::ETypeId && iBgContext )
+        {
+        return MAknsControlContext::SupplyMopObject( aId, iBgContext );
+        }
+
+    return CCoeControl::MopSupplyObject( aId );
+    }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::HandleTreeListEvent
+//
+// -----------------------------------------------------------------------------
+//
+TInt CHsContentControlListBox::HandleTreeListEvent(       
+    CAknTreeList& /*aList*/,
+    TAknTreeItemID aItem,
+    TEvent aEvent )
+    {        
+    if ( aEvent == EItemSelected )
+        {        
+        if ( !iListBox->IsLeaf( aItem ) && !iListBox->IsMarked( aItem ) )
+            {
+            return KErrNone;
+            }
+                
+        const TWsEvent& event( iCoeEnv->LastEvent() );        
+        
+        if ( event.Type() == EEventPointer )
+            {                              
+            TInt x, y;            
+        
+            TPointerEvent& pointer( *event.Pointer() );
+            
+            x = pointer.iParentPosition.iX;
+            y = pointer.iParentPosition.iY;
+
+            delete iPopup;
+            iPopup = NULL;            
+        
+            iPopup = CAknStylusPopUpMenu::NewL( this, TPoint( x, y ) );             
+                           
+            if ( iTabIndex == ETabConfigurations )
+                {
+                iSelectedItem = aItem;
+                
+                iPopup->AddMenuItemL( KActivate, 1 );
+                
+                iPopup->SetPosition( TPoint( x, y ), 
+                    CAknStylusPopUpMenu::EPositionTypeRightBottom );
+                
+                iPopup->ShowMenu();
+                }
+            }
+        }
+    
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::ProcessCommandL
+//
+// -----------------------------------------------------------------------------
+//
+void CHsContentControlListBox::ProcessCommandL( TInt aCommandId )
+    {  
+    TAknTreeItemID item( iSelectedItem );
+    
+    iSelectedItem = KAknTreeIIDNone;
+    
+    if ( item == KAknTreeIIDNone || aCommandId == KErrCancel )
+        {
+        return;
+        }
+           
+    // Resolve selected item
+    if ( iTabIndex == ETabConfigurations )
+        {
+        TAknTreeItemID id = iListBox->Child( KAknTreeIIDRoot, 0 );
+        
+        TInt count( iListBox->ChildCount( id ) );
+        
+        for ( TInt i = 0; i < count; i++ )
+            {
+            if ( iListBox->Child( id, i ) == item )
+                {
+                CHsContentInfo* info( iArray->Array()[i] );
+                
+                TRAP_IGNORE( iHsCcApiClient->ActivateAppL( *info ) );
+                
+                break;
+                }
+            }
+        }       
+    }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::SetEmphasis
+//
+// -----------------------------------------------------------------------------
+//
+void CHsContentControlListBox::SetEmphasis( CCoeControl* /*aMenuControl*/, 
+    TBool /*aEmphasis*/ )
+    {         
+    }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::TabChangedL
+//
+// -----------------------------------------------------------------------------
+//
+void CHsContentControlListBox::TabChangedL( TInt aIndex )
+    {
+    if ( aIndex != iTabIndex )
+        {
+        iTabIndex = aIndex;
+        
+        iDecorator->SetScrollButtonDimmed( 
+            CAknNavigationDecorator::ERightButton, EFalse );
+        
+        iDecorator->SetScrollButtonDimmed( 
+            CAknNavigationDecorator::ELeftButton, EFalse );
+        
+        if ( iTabIndex == ETabFirst )
+            {
+            iDecorator->SetScrollButtonDimmed( 
+                CAknNavigationDecorator::ELeftButton, ETrue );    
+            }
+        else if ( iTabIndex == ETabLast )
+            {
+            iDecorator->SetScrollButtonDimmed( 
+                CAknNavigationDecorator::ERightButton, ETrue );    
+            }
+        
+        iCallback->Cancel();
+        iCallback->CallBack();        
+        }    
+    }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::NotifyWidgetListChanged
+//
+// -----------------------------------------------------------------------------
+//
+void CHsContentControlListBox::NotifyWidgetListChanged()
+    {
+    iCallback->Cancel();
+    iCallback->CallBack();
+    }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::NotifyViewListChanged
+//
+// -----------------------------------------------------------------------------
+//
+void CHsContentControlListBox::NotifyViewListChanged()
+    {
+    iCallback->Cancel();
+    iCallback->CallBack();
+    }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::NotifyAppListChanged
+//
+// -----------------------------------------------------------------------------
+//
+void CHsContentControlListBox::NotifyAppListChanged()
+    {
+    iCallback->Cancel();
+    iCallback->CallBack();
+    }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::InitializeControlsL
+//
+// -----------------------------------------------------------------------------
+//
+void CHsContentControlListBox::InitializeControlsL()
+    {
+    iListBox = CAknSingleStyleTreeList::NewL( *this );
+    iListBox->SetContainerWindowL( *this );    
+    iListBox->AddObserverL( this );    
+    iListBox->SetFocus( ETrue );
+    
+    iBgContext = CAknsBasicBackgroundControlContext::NewL(
+        KAknsIIDQsnBgScreen, TRect(), ETrue );
+    
+    CEikStatusPane* sp( iAvkonAppUi->StatusPane() );
+    
+    TUid naviPaneUid( TUid::Uid( EEikStatusPaneUidNavi ) );
+                                 
+    CAknNavigationControlContainer* naviPane = 
+        static_cast< CAknNavigationControlContainer* >( sp->ControlL( naviPaneUid ) ); 
+    
+    iDecorator = naviPane->ResourceDecorator();
+            
+    iDecorator->MakeScrollButtonVisible( ETrue );
+    
+    iDecorator->SetScrollButtonDimmed( 
+        CAknNavigationDecorator::ELeftButton, ETrue );
+
+    iDecorator->SetScrollButtonDimmed( 
+        CAknNavigationDecorator::ERightButton, EFalse );
+    
+    iTabGroup = static_cast< CAknTabGroup* > ( iDecorator->DecoratedControl() );    
+    iTabGroup->SetObserver( this );       
+    }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::LayoutControls
+//
+// -----------------------------------------------------------------------------
+//
+void CHsContentControlListBox::LayoutControls()
+    {
+    iListBox->SetRect( Rect() );
+    
+    TRect rect;
+    
+    AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen, rect );     
+    
+    iBgContext->SetRect( rect );
+    }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::PopulateListL
+//
+// -----------------------------------------------------------------------------
+//    
+void CHsContentControlListBox::PopulateListL()
+    {
+    if ( !iListBox->IsEmpty( KAknTreeIIDRoot ) )
+        {
+        // Remove all
+        iListBox->RemoveItem( KAknTreeIIDRoot, EFalse );
+        }
+    
+    delete iArray;
+    iArray = NULL;
+
+    if ( iTabIndex == ETabActiveConfiguration )
+        {       
+        CHsContentInfo* activeApp = CHsContentInfo::NewL();
+        CleanupStack::PushL( activeApp );
+        
+        // Get active homescreen configuration
+        iHsCcApiClient->ActiveAppL( *activeApp );
+
+        _LIT( KActiveConfiguration, "Active configuration" );
+        
+        TAknTreeItemID root = iListBox->AddNodeL( 
+            KAknTreeIIDRoot, KActiveConfiguration, KFlags, EFalse );
+                       
+        CHsContentInfoArray* viewList = CHsContentInfoArray::NewL();
+        CleanupStack::PushL( viewList );
+        
+        // Get view list from the active configuration
+        iHsCcApiClient->ViewListL( *activeApp, *viewList );
+        
+        _LIT( KView, "View " );
+        
+        for ( TInt j = 0; j < viewList->Array().Count(); j++ )
+            {
+            TBuf< 32 > viewname;        
+            viewname = KView();
+            viewname.AppendNum( j + 1 );
+            
+            CHsContentInfo* view( viewList->Array()[j] );
+            
+            TAknTreeItemID parent = iListBox->AddNodeL( 
+                root, viewname, KFlags, EFalse );
+    
+            CHsContentInfoArray* widgetList = CHsContentInfoArray::NewL();
+            CleanupStack::PushL( widgetList );
+    
+            // Get widget list from the view 
+            iHsCcApiClient->WidgetListL( *view, *widgetList );
+            
+            for ( TInt k = 0; k < widgetList->Array().Count(); k++ )
+                {
+                CHsContentInfo* widget( widgetList->Array()[k] );
+                
+                iListBox->AddLeafL( parent, widget->Name(), KFlags, EFalse );            
+                }
+            
+            CleanupStack::PopAndDestroy( widgetList );
+            }   
+        
+        CleanupStack::PopAndDestroy( viewList );
+        
+        CleanupStack::PopAndDestroy( activeApp );    
+        }
+    else if ( iTabIndex == ETabConfigurations )
+        {
+        _LIT( KConfigurations, "Configurations" );
+        
+        TAknTreeItemID root = iListBox->AddNodeL( 
+            KAknTreeIIDRoot, KConfigurations, KFlags, EFalse );
+                   
+        iArray = CHsContentInfoArray::NewL();
+        
+        // Get all homescreen configurations 
+        iHsCcApiClient->AppListL( *iArray );
+        
+        _LIT( KConfiguration, "Configuration " );
+        
+        for ( TInt i = 0; i < iArray->Array().Count(); i++ )
+            {
+            TBuf< 32 > confname;
+            confname = KConfiguration();
+            confname.AppendNum( i + 1 );
+            
+            CHsContentInfo* app( iArray->Array()[i] );
+                        
+            iListBox->AddLeafL( root, confname, KFlags, EFalse );            
+            }
+        }
+    
+    else if ( iTabIndex == ETabViews )
+        {
+        _LIT( KViews, "Views" );
+        
+        TAknTreeItemID root = iListBox->AddNodeL( 
+            KAknTreeIIDRoot, KViews, KFlags, EFalse );
+    
+        iArray = CHsContentInfoArray::NewL();        
+    
+        // Get all homescreen views
+        iHsCcApiClient->ViewListL( *iArray );
+        
+        _LIT( KView, "View " );
+        
+        for ( TInt i = 0; i < iArray->Array().Count(); i++ )
+            {
+            TBuf< 32 > viewname;        
+            viewname = KView();
+            viewname.AppendNum( i + 1 );
+        
+            CHsContentInfo* view( iArray->Array()[i] );
+            
+            iListBox->AddLeafL( root, viewname, KFlags, EFalse );                 
+            }
+        }
+
+    else if ( iTabIndex == ETabWidgets )
+        {
+        _LIT( KWidgets, "Widgets" );
+        
+        TAknTreeItemID root = iListBox->AddNodeL( 
+            KAknTreeIIDRoot, KWidgets, KFlags, EFalse );
+    
+        iArray = CHsContentInfoArray::NewL();
+            
+        // Get all homescreen widgets
+        iHsCcApiClient->WidgetListL( *iArray );
+        
+        for ( TInt i = 0; i < iArray->Array().Count(); i++ )
+            {
+            CHsContentInfo* widget( iArray->Array()[i] );
+            
+            iListBox->AddLeafL( root, widget->Name(), KFlags, EFalse );                 
+            }
+        }
+    
+    DrawNow();
+    }
+
+// -----------------------------------------------------------------------------
+// CHsContentControlListBox::PopulateList
+//
+// -----------------------------------------------------------------------------
+//    
+/*static*/ TInt CHsContentControlListBox::PopulateList( TAny* aAny )
+    {
+    CHsContentControlListBox* self = 
+        static_cast< CHsContentControlListBox* >( aAny );
+    
+    TRAP_IGNORE( self->PopulateListL() );       
+    
+    return KErrNone;
+    }
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/data/MCSExample.rls	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,45 @@
+/*
+* Copyright (c) 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"
+* 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:
+*
+*/
+
+//  LOCALISATION STRINGS
+
+// Caption string for app.
+#define qtn_caption_string "MCSExample"
+
+// First item in "Options" menu pane
+#define qtn_command1 "Message"
+
+// Second item in "Options" menu pane
+#define qtn_command2 "List all items"
+
+#define qtn_help "Help"
+
+#define qtn_about "About"
+
+// Third item in "Options" menu pane
+#define qtn_exit "Exit"
+
+// When user requests ECommand1 event, text below is shown.
+#define qtn_command1_text "MCS example application."
+
+#define qtn_loc_resource_file_1 "\\resource\\apps\\MCSExample_0xEB753B18"
+
+#define qtn_about_dialog_title "About"
+
+#define qtn_about_dialog_text "MCSExample Version 1.0.0\n\nAuthor: Jaakko Haukipuro\n\nSupport: \n\n(c) "
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/data/MCSExample.rss	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,310 @@
+/*
+* Copyright (c) 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"
+* 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:
+*
+*/
+
+//  RESOURCE IDENTIFIER
+NAME MCSE	// 4 letter ID
+
+
+//  INCLUDES
+#include <eikon.rh>
+#include <avkon.rsg>
+#include <avkon.rh>
+#include <appinfo.rh>
+#include "MCSExample.hrh"
+#include "MCSExample.rls"
+
+//  RESOURCE DEFINITIONS
+// -----------------------------------------------------------------------------
+//
+//	Define the resource file signature
+//	This resource should be empty.
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE RSS_SIGNATURE
+	{
+	}
+
+// -----------------------------------------------------------------------------
+//
+//	Default Document Name
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE TBUF r_default_document_name
+	{
+	buf="MCSE";
+	}
+
+// -----------------------------------------------------------------------------
+//
+//	Define default menu and CBA key.
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE EIK_APP_INFO
+	{
+	menubar = r_menubar;
+	cba = R_AVKON_SOFTKEYS_OPTIONS_EXIT;
+	}
+
+
+// -----------------------------------------------------------------------------
+//
+//   r_menubar
+//   Main menubar
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE MENU_BAR r_menubar
+	{
+	titles =
+		{
+		MENU_TITLE { menu_pane = r_menu; }
+		};
+	}
+
+
+// -----------------------------------------------------------------------------
+//
+//   r_menu
+//   Menu for "Options"
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE MENU_PANE r_menu
+	{
+	items =
+		{
+		// added the new Options menu command here
+		MENU_ITEM
+				{
+				command = ECommand1;
+				txt = qtn_command1;
+				},
+		MENU_ITEM
+				{
+				command = ECommand2;
+				txt = qtn_command2;
+				},
+		MENU_ITEM
+				{
+				command = EHelp;
+				txt = qtn_help;
+				},
+		MENU_ITEM
+				{
+				command = EAbout;
+				txt = qtn_about;
+				},
+		MENU_ITEM
+				{
+				command = EAknSoftkeyExit;
+				txt = qtn_exit;
+				}
+		};
+	}
+
+// -----------------------------------------------------------------------------
+//
+// About dialog resource.
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE DIALOG r_about_query_dialog
+	{
+	flags =  EEikDialogFlagNoBorder | EEikDialogFlagNoShadow;
+	buttons = R_AVKON_SOFTKEYS_OK_EMPTY;
+	items=
+		{
+		DLG_LINE 
+			{
+			type = EAknCtPopupHeadingPane;
+			id = EAknMessageQueryHeaderId;
+			itemflags = EEikDlgItemNonFocusing;
+			control = AVKON_HEADING
+				{
+				};
+			},
+		DLG_LINE
+			{
+			type = EAknCtMessageQuery;
+			id = EAknMessageQueryContentId;
+			control = AVKON_MESSAGE_QUERY
+				{
+				};
+			}
+		};
+	}
+
+RESOURCE DIALOG r_icon_query_dialog
+    {
+    flags = EGeneralQueryFlags;
+    buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
+    form = r_icon_form;
+    }
+
+RESOURCE FORM r_icon_form
+    {
+    flags = EEikFormUseDoubleSpacedFormat|EEikFormEditModeOnly;
+    items =
+        {
+        DLG_LINE
+            {
+            type = EEikCtEdwin;
+            prompt = "Major skin ID";
+            id = EMyFirstLine;
+            control = EDWIN
+                 {
+                 flags = EEikEdwinNoHorizScrolling | EEikEdwinResizable;
+                 width = 30;
+                 maxlength = 30;
+                 // added to limit expanding in forms. 
+                 // If you want full screen use 6 here
+                 max_view_height_in_lines = 1; 
+                 // if you have the line above, you must have this. 
+                 // It's calculable from LAF
+                 base_line_delta = 21; 
+                 };
+            },
+        DLG_LINE
+            {
+            type = EEikCtEdwin;
+            prompt = "Minor skin ID";
+            id = EMySecondLine;
+            control = EDWIN
+                 {
+                 flags = EEikEdwinNoHorizScrolling | EEikEdwinResizable;
+                 width = 30;
+                 maxlength = 30;
+                 // added to limit expanding in forms. 
+                 // If you want full screen use 6 here
+                 max_view_height_in_lines = 1; 
+                 // if you have the line above, you must have this. 
+                 // It's calculable from LAF
+                 base_line_delta = 21; 
+                 };
+            },
+        DLG_LINE
+            {
+            type = EEikCtEdwin;
+            prompt = "MIF/MBM file name";
+            id = EMyThirdLine;
+            control = EDWIN
+                 {
+                 flags = EEikEdwinNoHorizScrolling | EEikEdwinResizable;
+                 width = 30;
+                 maxlength = 30;
+                 // added to limit expanding in forms. 
+                 // If you want full screen use 6 here
+                 max_view_height_in_lines = 1; 
+                 // if you have the line above, you must have this. 
+                 // It's calculable from LAF
+                 base_line_delta = 21; 
+                 };
+            },
+        DLG_LINE
+            {
+            type = EEikCtEdwin;
+            prompt = "MIF/MBM bitmap ID";
+            id = EMyFourthLine;
+            control = EDWIN
+                 {
+                 flags = EEikEdwinNoHorizScrolling | EEikEdwinResizable;
+                 width = 30;
+                 maxlength = 30;
+                 // added to limit expanding in forms. 
+                 // If you want full screen use 6 here
+                 max_view_height_in_lines = 1; 
+                 // if you have the line above, you must have this. 
+                 // It's calculable from LAF
+                 base_line_delta = 21; 
+                 };
+            },
+        DLG_LINE
+            {
+            type = EEikCtEdwin;
+            prompt = "MIF/MBM mask ID";
+            id = EMyFifthLine;
+            control = EDWIN
+                 {
+                 flags = EEikEdwinNoHorizScrolling | EEikEdwinResizable;
+                 width = 30;
+                 maxlength = 30;
+                 // added to limit expanding in forms. 
+                 // If you want full screen use 6 here
+                 max_view_height_in_lines = 1; 
+                 // if you have the line above, you must have this. 
+                 // It's calculable from LAF
+                 base_line_delta = 21; 
+                 };
+            },
+        DLG_LINE
+            {
+            type = EEikCtEdwin;
+            prompt = "Presenceicon";
+            id = EMySixthLine;
+            control = EDWIN
+                 {
+                 flags = EEikEdwinNoHorizScrolling | EEikEdwinResizable;
+                 width = 30;
+                 maxlength = 30;
+                 // added to limit expanding in forms. 
+                 // If you want full screen use 6 here
+                 max_view_height_in_lines = 1; 
+                 // if you have the line above, you must have this. 
+                 // It's calculable from LAF
+                 base_line_delta = 21; 
+                 };
+            }
+        };
+    }
+
+
+
+// -----------------------------------------------------------------------------
+//
+// Resources for messages.
+//
+// -----------------------------------------------------------------------------
+//
+RESOURCE TBUF32 r_caption_string { buf=qtn_caption_string; }
+RESOURCE TBUF32 r_about_dialog_title { buf=qtn_about_dialog_title; }
+RESOURCE TBUF r_about_dialog_text { buf=qtn_about_dialog_text; }
+RESOURCE TBUF r_command1_text { buf=qtn_command1_text; }
+
+
+// ---------------------------------------------------------------------------- 
+//
+// r_localisable_app_info
+//
+// ---------------------------------------------------------------------------- 
+//
+RESOURCE LOCALISABLE_APP_INFO r_localisable_app_info
+	{
+	short_caption = qtn_caption_string;
+	caption_and_icon = 
+	CAPTION_AND_ICON_INFO
+		{
+		caption = qtn_caption_string;
+
+		number_of_icons = 1;
+		icon_file = "\\resource\\apps\\MCSExample_0xEB753B18.mif";
+		};
+	}
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/data/MCSExample_reg.rss	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,35 @@
+/*
+* Copyright (c) 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"
+* 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 "MCSExample.hrh"
+#include "MCSExample.rls"
+#include <appinfo.rh>
+#include <MCSExample_0xEB753B18.rsg>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 _UID3
+
+RESOURCE APP_REGISTRATION_INFO
+	{
+	app_file="MCSExample_0xEB753B18";
+	localisable_resource_file =  qtn_loc_resource_file_1;
+	localisable_resource_id = R_LOCALISABLE_APP_INFO;
+
+	embeddability=KAppNotEmbeddable;
+	newfile=KAppDoesNotSupportNewFile;
+	}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/gfx/qgn_menu_MCSExample.svg	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%" viewBox="0 0 88 87.999">
+<g>
+<g>
+<g>
+<g>
+<rect fill="none" width="88" height="87.999"/>
+</g>
+</g>
+<g>
+<linearGradient id="XMLID_7_" gradientUnits="userSpaceOnUse" x1="12.3042" y1="18.3799" x2="63.4113" y2="79.287">
+<stop offset="0" style="stop-color:#B3DDFF"/>
+<stop offset="0.8146" style="stop-color:#084296"/>
+<stop offset="1" style="stop-color:#084296"/>
+</linearGradient>
+<path fill="url(#XMLID_7_)" d="M32.135,7.415L14.363,17.432v23.167c0,0,8.926,15.351,10.468,18.001       c-2.386,1.704-15.44,11.03-15.44,11.03l21.613,12.652c0,0,12.907-9.85,14.71-11.226c1.979,1.109,16.231,9.101,16.231,9.101       l16.664-15.132c0,0-14.066-6.929-16.888-8.318c1.467-3.01,10.531-21.604,10.531-21.604l-22.298-9.59       c0,0-1.486,3.173-2.093,4.467c-2.046-0.88-6.573-2.826-6.573-2.826s-3.713,2.463-5.696,3.778       c-0.327-0.744-0.542-1.233-0.657-1.495c0.007-0.824,0.213-23.72,0.213-23.72L32.135,7.415z"/>
+<linearGradient id="XMLID_8_" gradientUnits="userSpaceOnUse" x1="40.8276" y1="52.1914" x2="16.1997" y2="21.1353">
+<stop offset="0" style="stop-color:#5AA7E0"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_8_)" points="59.051,57.621 69.536,36.111 50.944,28.115 48.852,32.581 41.493,29.418 34.719,33.911        32.932,29.849 33.117,9.157 16.363,18.601 16.363,40.06 27.476,59.169 13.064,69.463 30.856,79.879 45.546,68.669        61.667,77.708 75.089,65.521 "/>
+<linearGradient id="XMLID_9_" gradientUnits="userSpaceOnUse" x1="60.585" y1="31.876" x2="53.8582" y2="45.1125">
+<stop offset="0" style="stop-color:#5AA7E0"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_9_)" points="41.26,48.783 50.944,28.115 69.536,36.111 59.051,57.621 "/>
+<polygon fill="#0046B7" points="16.363,40.06 27.476,59.169 41.26,48.783 32.932,29.849 "/>
+<polygon fill="#3366CC" points="16.363,40.06 16.363,18.601 33.117,9.157 32.932,29.849 "/>
+<polygon fill="#CFECFF" points="26.696,39.23 41.493,29.418 59.523,37.168 45.546,47.954 "/>
+<path fill="#5AA7E0" d="M41.954,55.286"/>
+<polygon fill="#3366CC" points="26.696,39.23 27.476,59.169 45.546,68.669 45.546,47.954 "/>
+<polygon fill="#5AA7E0" points="13.064,69.463 27.476,59.169 45.546,68.669 30.856,79.879 "/>
+<linearGradient id="XMLID_10_" gradientUnits="userSpaceOnUse" x1="29.2085" y1="63.6836" x2="48.7102" y2="56.1976">
+<stop offset="0" style="stop-color:#5AA7E0"/>
+<stop offset="0.0056" style="stop-color:#5AA7E0"/>
+<stop offset="0.85" style="stop-color:#3366CC"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_10_)" points="43.423,46.971 27.476,59.169 45.546,68.669 45.546,47.954 "/>
+<polygon fill="#0046B7" points="45.546,47.954 45.546,68.669 59.051,57.621 59.523,37.168 "/>
+<linearGradient id="XMLID_11_" gradientUnits="userSpaceOnUse" x1="45.3936" y1="59.5186" x2="59.0508" y2="59.5186">
+<stop offset="0" style="stop-color:#0046B7"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_11_)" points="45.394,50.368 45.546,68.669 59.051,57.621 "/>
+<linearGradient id="XMLID_12_" gradientUnits="userSpaceOnUse" x1="60.8945" y1="68.6807" x2="57.2953" y2="58.792">
+<stop offset="0" style="stop-color:#5AA7E0"/>
+<stop offset="0.4101" style="stop-color:#5AA7E0"/>
+<stop offset="1" style="stop-color:#3366CC"/>
+</linearGradient>
+<polygon fill="url(#XMLID_12_)" points="61.667,77.708 45.546,68.669 59.051,57.621 75.089,65.521 "/>
+</g>
+</g>
+</g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/group/Icons_scalable_dc.mk	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,64 @@
+#
+# Copyright (c) 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"
+# 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:
+#
+
+
+ifeq (WINS,$(findstring WINS, $(PLATFORM)))
+ZDIR=$(EPOCROOT)epoc32\release\$(PLATFORM)\$(CFG)\Z
+else
+ZDIR=$(EPOCROOT)epoc32\data\z
+endif
+
+TARGETDIR=$(ZDIR)\resource\apps
+ICONTARGETFILENAME=$(TARGETDIR)\MCSExample_0xEB753B18.mif
+
+ICONDIR=..\gfx
+
+do_nothing :
+	@rem do_nothing
+
+MAKMAKE : do_nothing
+
+BLD : do_nothing
+
+CLEAN :
+	@echo ...Deleting $(ICONTARGETFILENAME)
+	del /q /f $(ICONTARGETFILENAME)
+
+LIB : do_nothing
+
+CLEANLIB : do_nothing
+
+# ----------------------------------------------------------------------------
+# NOTE: if you have JUSTINTIME enabled for your S60 3rd FP1 or newer SDK
+# and this command crashes, consider adding "/X" to the command line.
+# See <http://forum.nokia.com/document/Forum_Nokia_Technical_Library_v1_35/contents/FNTL/Build_process_fails_at_mif_file_creation_in_S60_3rd_Ed_FP1_SDK.htm>
+# ----------------------------------------------------------------------------
+
+RESOURCE : $(ICONTARGETFILENAME)
+
+$(ICONTARGETFILENAME) : $(ICONDIR)\qgn_menu_MCSExample.svg
+	mifconv $(ICONTARGETFILENAME) \
+		/c32 $(ICONDIR)\qgn_menu_MCSExample.svg
+
+FREEZE : do_nothing
+
+SAVESPACE : do_nothing
+
+RELEASABLES :
+	@echo $(ICONTARGETFILENAME)
+
+FINAL : do_nothing
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/group/MCSExample.mmp	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,81 @@
+/*
+* Copyright (c) 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"
+* 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 <platform_paths.hrh>
+#include <data_caging_paths.hrh>
+APP_LAYER_SYSTEMINCLUDE
+
+
+TARGET			MCSExample_0xEB753B18.exe
+TARGETTYPE		exe
+UID		  0x100039CE 0xEB753B18
+
+SOURCEPATH		..\src
+SOURCE			MCSExample.cpp
+SOURCE			MCSExampleApplication.cpp
+SOURCE			MCSExampleAppView.cpp
+SOURCE			MCSExampleAppUi.cpp
+SOURCE			MCSExampleDocument.cpp
+SOURCE          mcspluginwatcher.cpp
+
+SOURCEPATH		..\data
+
+START RESOURCE	MCSExample.rss
+HEADER
+TARGET MCSExample_0xEB753B18
+TARGETPATH resource\apps
+END //RESOURCE
+
+START RESOURCE	MCSExample_reg.rss
+TARGET MCSExample_0xEB753B18_reg
+TARGETPATH 	  \private\10003a3f\apps
+END //RESOURCE
+
+
+
+USERINCLUDE	   ..\inc
+
+SYSTEMINCLUDE	 \epoc32\include
+
+LIBRARY		   euser.lib
+LIBRARY		   apparc.lib
+LIBRARY		   cone.lib
+LIBRARY		   eikcore.lib
+LIBRARY        eikcoctl.lib
+LIBRARY        eikctl.lib
+LIBRARY		   avkon.lib
+LIBRARY        aknicon.lib
+LIBRARY        bafl.lib
+LIBRARY		   commonengine.lib
+LIBRARY        aknnotify.lib
+LIBRARY        fbscli.lib
+LIBRARY        egul.lib
+LIBRARY        mcsmenu.lib
+LIBRARY        mcsextendedmenu.lib
+LIBRARY        eikdlg.lib
+ 
+
+LANG SC
+
+VENDORID	  	  0
+SECUREID		  0xEB753B18
+CAPABILITY	  	  ReadUserData ReadDeviceData WriteDeviceData
+
+#ifdef ENABLE_ABIV2_MODE
+  DEBUGGABLE_UDEBONLY
+#endif
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/group/bld.inf	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 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"
+* 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:
+*
+*/
+
+
+PRJ_PLATFORMS
+WINSCW ARMV5 GCCE
+
+PRJ_MMPFILES
+
+gnumakefile icons_scalable_dc.mk
+
+MCSExample.mmp
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/inc/MCSExample.hrh	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,42 @@
+/*
+* Copyright (c) 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"
+* 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:
+*
+*/
+
+#ifndef __MCSEXAMPLE_HRH__
+#define __MCSEXAMPLE_HRH__
+
+#define _UID3 0xEB753B18
+
+// MCSExample enumerate command codes
+enum TMCSExampleIds
+    {
+    ECommand1 = 0x6001, // start value must not be 0
+    ECommand2,
+    EHelp,
+    EAbout
+    };
+
+enum TMyControlIds
+    {
+    EMyFirstLine = 100,
+    EMySecondLine,
+    EMyThirdLine,
+    EMyFourthLine,
+    EMyFifthLine,
+    EMySixthLine
+    };
+
+#endif // __MCSEXAMPLE_HRH__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/inc/MCSExample.pan	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,34 @@
+/*
+* Copyright (c) 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"
+* 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:
+*
+*/
+
+#ifndef __MCSEXAMPLE_PAN__
+#define __MCSEXAMPLE_PAN__
+
+/** MCSExample application panic codes */
+enum TMCSExamplePanics
+    {
+    EMCSExampleUi = 1
+    // add further panics here
+    };
+
+inline void Panic(TMCSExamplePanics aReason)
+    {
+    _LIT(applicationName, "MCSExample");
+    User::Panic(applicationName, aReason);
+    }
+
+#endif // __MCSEXAMPLE_PAN__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/inc/MCSExampleAppUi.h	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,93 @@
+/*
+* Copyright (c) 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"
+* 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:
+*
+*/
+
+#ifndef __MCSEXAMPLEAPPUI_h__
+#define __MCSEXAMPLEAPPUI_h__
+
+// INCLUDES
+#include <aknappui.h>
+
+// FORWARD DECLARATIONS
+class CMCSExampleAppView;
+
+// CLASS DECLARATION
+/**
+ * CMCSExampleAppUi application UI class.
+ * Interacts with the user through the UI and request message processing
+ * from the handler class
+ */
+class CMCSExampleAppUi : public CAknAppUi
+    {
+public:
+    // Constructors and destructor
+
+    /**
+     * ConstructL.
+     * 2nd phase constructor.
+     */
+    void ConstructL();
+
+    /**
+     * CMCSExampleAppUi.
+     * C++ default constructor. This needs to be public due to
+     * the way the framework constructs the AppUi
+     */
+    CMCSExampleAppUi();
+
+    /**
+     * ~CMCSExampleAppUi.
+     * Virtual Destructor.
+     */
+    virtual ~CMCSExampleAppUi();
+
+private:
+    // Functions from base classes
+
+    /**
+     * From CEikAppUi, HandleCommandL.
+     * Takes care of command handling.
+     * @param aCommand Command to be handled.
+     */
+    void HandleCommandL(TInt aCommand);
+
+    /**
+     *  HandleStatusPaneSizeChange.
+     *  Called by the framework when the application status pane
+     *  size is changed.
+     */
+    void HandleStatusPaneSizeChange();
+
+    /**
+     *  From CCoeAppUi, HelpContextL.
+     *  Provides help context for the application.
+     *  size is changed.
+     */
+    CArrayFix<TCoeHelpContext>* HelpContextL() const;
+
+private:
+    // Data
+
+    /**
+     * The application view
+     * Owned by CMCSExampleAppUi
+     */
+    CMCSExampleAppView* iAppView;
+
+    };
+
+#endif // __MCSEXAMPLEAPPUI_h__
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/inc/MCSExampleAppView.h	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,163 @@
+/*
+* Copyright (c) 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"
+* 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:
+*
+*/
+
+#ifndef __MCSEXAMPLEAPPVIEW_h__
+#define __MCSEXAMPLEAPPVIEW_h__
+
+// INCLUDES
+#include <coecntrl.h>
+#include <aknform.h>
+#include <gulicon.h>
+#include <aknlists.h>
+#include <eiklbo.h> // MEikListBoxObserver
+#include <mcsmenu.h>
+
+class CMCSExampleWatcher;
+
+struct TMyData
+    {
+public:     // data
+    TBuf<256> majorID;
+    TBuf<256> minorID;
+    TBuf<256> iconFile;
+    TBuf<256> iconID;
+    TBuf<256> maskID;
+    TBuf<256> statusIcon;
+    TBool updated;
+    };
+
+class CMyForm : public CAknForm
+    {
+public:     // construction
+    CMyForm( TMyData& aData );
+    virtual ~CMyForm();
+public:     // from CAknForm
+    //void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
+    //void ProcessCommandL( TInt aCommandId );
+    TBool SaveFormDataL();
+    void DoNotSaveFormDataL();
+    //void AddItemL() ;
+    void PreLayoutDynInitL();
+    //MEikDialogPageObserver::TFormControlTypes
+    //    ConvertCustomControlTypeToBaseControlType( TInt aControlType ) const;
+protected:
+    TBool OkToExitL( TInt aButtonId );
+    
+private:
+    void LoadFormDataL();
+private:    // data
+    TMyData& iData;
+    };
+
+
+
+// CLASS DECLARATION
+class CMCSExampleAppView : public CCoeControl, public MEikListBoxObserver
+    {
+public:
+    // New methods
+
+    /**
+     * NewL.
+     * Two-phased constructor.
+     * Create a CMCSExampleAppView object, which will draw itself to aRect.
+     * @param aRect The rectangle this view will be drawn to.
+     * @return a pointer to the created instance of CMCSExampleAppView.
+     */
+    static CMCSExampleAppView* NewL(const TRect& aRect);
+
+    /**
+     * NewLC.
+     * Two-phased constructor.
+     * Create a CMCSExampleAppView object, which will draw itself
+     * to aRect.
+     * @param aRect Rectangle this view will be drawn to.
+     * @return A pointer to the created instance of CMCSExampleAppView.
+     */
+    static CMCSExampleAppView* NewLC(const TRect& aRect);
+
+    /**
+     * ~CMCSExampleAppView
+     * Virtual Destructor.
+     */
+    virtual ~CMCSExampleAppView();
+
+    void ListAllItemsL();
+    
+public:
+    // Functions from base classes
+
+    /**
+     * From CCoeControl, Draw
+     * Draw this CMCSExampleAppView to the screen.
+     * @param aRect the rectangle of this view that needs updating
+     */
+    void Draw(const TRect& aRect) const;
+
+    /**
+     * From CoeControl, SizeChanged.
+     * Called by framework when the view size is changed.
+     */
+    virtual void SizeChanged();
+
+    /**
+     * From CoeControl, HandlePointerEventL.
+     * Called by framework when a pointer touch event occurs.
+     * Note: although this method is compatible with earlier SDKs, 
+     * it will not be called in SDKs without Touch support.
+     * @param aPointerEvent the information about this event
+     */
+    virtual void HandlePointerEventL(const TPointerEvent& aPointerEvent);
+    
+    CCoeControl* ComponentControl( TInt aIndex) const;
+    
+    TInt CountComponentControls() const;
+    
+    void HandleListBoxEventL( CEikListBox* aListBox, TListBoxEvent aEventType );
+
+private:
+    // Constructors
+
+    /**
+     * ConstructL
+     * 2nd phase constructor.
+     * Perform the second phase construction of a
+     * CMCSExampleAppView object.
+     * @param aRect The rectangle this view will be drawn to.
+     */
+    void ConstructL(const TRect& aRect);
+
+    /**
+     * CMCSExampleAppView.
+     * C++ default constructor.
+     */
+    CMCSExampleAppView();
+    
+    CDesCArray* GetArrayL(CArrayPtr<CGulIcon>* aIcons);
+    void MakeListBoxL(void);
+    void UpdateScrollBar(CEikListBox* aListBox);
+    void ShowFormL( TInt aItemIndex);
+    
+    RMenu iMCSMenu;
+    CAknSingleLargeStyleListBox* iListBox;
+    RArray<TMenuItem> iItemArray;
+    /** MCS asynchronous operation watcher, owned */
+    CMCSExampleWatcher* iWatcher;
+    };
+
+#endif // __MCSEXAMPLEAPPVIEW_h__
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/inc/MCSExampleApplication.h	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,64 @@
+/*
+* Copyright (c) 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"
+* 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:
+*
+*/
+
+#ifndef __MCSEXAMPLEAPPLICATION_H__
+#define __MCSEXAMPLEAPPLICATION_H__
+
+// INCLUDES
+#include <aknapp.h>
+#include "MCSExample.hrh"
+
+// UID for the application;
+// this should correspond to the uid defined in the mmp file
+const TUid KUidMCSExampleApp =
+    {
+    _UID3
+    };
+
+// CLASS DECLARATION
+
+/**
+ * CMCSExampleApplication application class.
+ * Provides factory to create concrete document object.
+ * An instance of CMCSExampleApplication is the application part of the
+ * AVKON application framework for the MCSExample example application.
+ */
+class CMCSExampleApplication : public CAknApplication
+    {
+public:
+    // Functions from base classes
+
+    /**
+     * From CApaApplication, AppDllUid.
+     * @return Application's UID (KUidMCSExampleApp).
+     */
+    TUid AppDllUid() const;
+
+protected:
+    // Functions from base classes
+
+    /**
+     * From CApaApplication, CreateDocumentL.
+     * Creates CMCSExampleDocument document object. The returned
+     * pointer in not owned by the CMCSExampleApplication object.
+     * @return A pointer to the created document object.
+     */
+    CApaDocument* CreateDocumentL();
+    };
+
+#endif // __MCSEXAMPLEAPPLICATION_H__
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/inc/MCSExampleDocument.h	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,99 @@
+/*
+* Copyright (c) 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"
+* 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:
+*
+*/
+
+#ifndef __MCSEXAMPLEDOCUMENT_h__
+#define __MCSEXAMPLEDOCUMENT_h__
+
+// INCLUDES
+#include <akndoc.h>
+
+// FORWARD DECLARATIONS
+class CMCSExampleAppUi;
+class CEikApplication;
+
+// CLASS DECLARATION
+
+/**
+ * CMCSExampleDocument application class.
+ * An instance of class CMCSExampleDocument is the Document part of the
+ * AVKON application framework for the MCSExample example application.
+ */
+class CMCSExampleDocument : public CAknDocument
+    {
+public:
+    // Constructors and destructor
+
+    /**
+     * NewL.
+     * Two-phased constructor.
+     * Construct a CMCSExampleDocument for the AVKON application aApp
+     * using two phase construction, and return a pointer
+     * to the created object.
+     * @param aApp Application creating this document.
+     * @return A pointer to the created instance of CMCSExampleDocument.
+     */
+    static CMCSExampleDocument* NewL(CEikApplication& aApp);
+
+    /**
+     * NewLC.
+     * Two-phased constructor.
+     * Construct a CMCSExampleDocument for the AVKON application aApp
+     * using two phase construction, and return a pointer
+     * to the created object.
+     * @param aApp Application creating this document.
+     * @return A pointer to the created instance of CMCSExampleDocument.
+     */
+    static CMCSExampleDocument* NewLC(CEikApplication& aApp);
+
+    /**
+     * ~CMCSExampleDocument
+     * Virtual Destructor.
+     */
+    virtual ~CMCSExampleDocument();
+
+public:
+    // Functions from base classes
+
+    /**
+     * CreateAppUiL
+     * From CEikDocument, CreateAppUiL.
+     * Create a CMCSExampleAppUi object and return a pointer to it.
+     * The object returned is owned by the Uikon framework.
+     * @return Pointer to created instance of AppUi.
+     */
+    CEikAppUi* CreateAppUiL();
+
+private:
+    // Constructors
+
+    /**
+     * ConstructL
+     * 2nd phase constructor.
+     */
+    void ConstructL();
+
+    /**
+     * CMCSExampleDocument.
+     * C++ default constructor.
+     * @param aApp Application creating this document.
+     */
+    CMCSExampleDocument(CEikApplication& aApp);
+
+    };
+
+#endif // __MCSEXAMPLEDOCUMENT_h__
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/inc/mcspluginwatcher.h	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,97 @@
+/*
+* Copyright (c) 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"
+* 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:
+*
+*/
+
+#ifndef __MCSPLUGINWATCHER_H
+#define __MCSPLUGINWATCHER_H
+
+#include <e32base.h>
+
+class CMenuOperation;
+class CMCSPluginEngine;
+class CMCSExampleAppView;
+
+
+/**
+ *
+ *  This class implements MCS menu action watcher for async calls.
+ * 
+ */
+class CMCSExampleWatcher: public CActive
+    {
+    public:
+        
+        
+        /**
+         * Two-phased constructor.
+         * 
+         * @param aType
+         */
+        static CMCSExampleWatcher* NewL( );
+        
+        /**
+         * Destructor.
+         */
+        virtual ~CMCSExampleWatcher();
+
+        /**
+         * Watch menu operation or notification.
+         * 
+         * @param aOperation
+         */
+        void Watch( CMenuOperation* aOperation, CMCSExampleAppView* aObserver );
+
+        
+        /**
+         * GetStatus 
+         */
+        TInt GetStatus();
+
+    private:
+    
+        /** 
+         * Default constructor.
+         * 
+         * @param aType
+         */
+        CMCSExampleWatcher();
+
+        /** 
+         * ConstructL
+         */
+        void ConstructL();
+        
+        /**
+        * Inherited from CActive class 
+        */ 
+        void RunL();
+        
+        /**
+        * Inherited from CActive class 
+        */ 
+        void DoCancel();
+    
+    private:
+        
+        /** 
+         * Menu operation
+         * Owned
+         */
+        CMenuOperation* iOperation; 
+        CMCSExampleAppView* iObserver;
+    };
+
+#endif /*__MCSPLUGINWATCHER_H*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/sis/MCSExample_S60_3_X_v_1_0_0.pkg	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,37 @@
+; Installation file for MCSExample application
+;
+; This is an auto-generated PKG file by Carbide.
+; This file uses variables specific to Carbide builds that will not work
+; on command-line builds. If you want to use this generated PKG file from the
+; command-line tools you will need to modify the variables with the appropriate
+; values: $(EPOCROOT), $(PLATFORM), $(TARGET)
+;
+;Language - standard language definitions
+&EN
+
+; standard SIS file header
+#{"MCSExample"},(0xEB753B18),1,0,0
+
+;Localised Vendor name
+%{"Vendor-EN"}
+
+;Unique Vendor name
+:"Vendor"
+
+;Supports Series 60 v 3.0
+[0x101F7961], 0, 0, 0, {"Series60ProductID"}
+
+;Files to install
+;You should change the source paths to match that of your environment
+;<source> <destination>
+"$(EPOCROOT)Epoc32\release\$(PLATFORM)\$(TARGET)\MCSExample_0xEB753B18.exe"		-"!:\sys\bin\MCSExample_0xEB753B18.exe"
+"$(EPOCROOT)Epoc32\data\z\resource\apps\MCSExample_0xEB753B18.rsc"		-"!:\resource\apps\MCSExample_0xEB753B18.rsc"
+"$(EPOCROOT)Epoc32\data\z\private\10003a3f\apps\MCSExample_0xEB753B18_reg.rsc"	-"!:\private\10003a3f\import\apps\MCSExample_0xEB753B18_reg.rsc"
+"$(EPOCROOT)Epoc32\data\z\resource\apps\MCSExample_0xEB753B18.mif" -"!:\resource\apps\MCSExample_0xEB753B18.mif"
+;"..\help\MCSExample_0xEB753B18.hlp"							 -"!:\resource\help\MCSExample_0xEB753B18.hlp"
+
+; Add any installation notes if applicable
+;"MCSExample.txt"		-"!:\private\EB753B18\MCSExample.txt"
+
+;required for application to be covered by backup/restore facility 
+"..\sis\backup_registration.xml"		-"!:\private\EB753B18\backup_registration.xml"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/sis/backup_registration.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,5 @@
+<?xml version="1.0" standalone="yes"?>
+<backup_registration>
+  <system_backup/>
+  <restore requires_reboot = "no"/>
+</backup_registration>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/src/MCSExample.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,31 @@
+/*
+* Copyright (c) 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"
+* 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 <eikstart.h>
+#include "MCSExampleApplication.h"
+
+LOCAL_C CApaApplication* NewApplication()
+    {
+    return new CMCSExampleApplication;
+    }
+
+GLDEF_C TInt E32Main()
+    {
+    return EikStart::RunApplication(NewApplication);
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/src/MCSExampleAppUi.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,169 @@
+/*
+* Copyright (c) 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"
+* 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 <avkon.hrh>
+#include <aknmessagequerydialog.h>
+#include <aknnotewrappers.h>
+#include <stringloader.h>
+
+#include <MCSExample_0xEB753B18.rsg>
+#include "MCSExample.hrh"
+#include "MCSExample.pan"
+#include "MCSExampleApplication.h"
+#include "MCSExampleAppUi.h"
+#include "MCSExampleAppView.h"
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+
+// -----------------------------------------------------------------------------
+// CMCSExampleAppUi::ConstructL()
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleAppUi::ConstructL()
+    {
+    // Initialise app UI with standard value.
+    BaseConstructL(CAknAppUi::EAknEnableSkin|CAknAppUi::EAknSingleClickCompatible);
+
+    // Create view object
+    iAppView = CMCSExampleAppView::NewL(ClientRect());
+    }
+// -----------------------------------------------------------------------------
+// CMCSExampleAppUi::CMCSExampleAppUi()
+// C++ default constructor can NOT contain any code, that might leave.
+// -----------------------------------------------------------------------------
+//
+CMCSExampleAppUi::CMCSExampleAppUi()
+    {
+    // No implementation required
+    }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleAppUi::~CMCSExampleAppUi()
+// Destructor.
+// -----------------------------------------------------------------------------
+//
+CMCSExampleAppUi::~CMCSExampleAppUi()
+    {
+    if (iAppView)
+        {
+        delete iAppView;
+        iAppView = NULL;
+        }
+
+    }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleAppUi::HandleCommandL()
+// Takes care of command handling.
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleAppUi::HandleCommandL(TInt aCommand)
+    {
+    switch (aCommand)
+        {
+        case EEikCmdExit:
+        case EAknSoftkeyExit:
+            Exit();
+            break;
+
+        case ECommand1:
+            {
+
+            // Load a string from the resource file and display it
+            HBufC* textResource = StringLoader::LoadLC(R_COMMAND1_TEXT);
+            CAknInformationNote* informationNote;
+
+            informationNote = new (ELeave) CAknInformationNote;
+
+            // Show the information Note with
+            // textResource loaded with StringLoader.
+            informationNote->ExecuteLD(*textResource);
+
+            // Pop HBuf from CleanUpStack and Destroy it.
+            CleanupStack::PopAndDestroy(textResource);
+            }
+            break;
+        case ECommand2:
+            {
+            iAppView->ListAllItemsL();
+            }
+            break;
+        case EHelp:
+            {
+
+            }
+            break;
+        case EAbout:
+            {
+
+            CAknMessageQueryDialog* dlg =
+                    new (ELeave) CAknMessageQueryDialog();
+            dlg->PrepareLC(R_ABOUT_QUERY_DIALOG);
+            HBufC* title = iEikonEnv->AllocReadResourceLC(
+                    R_ABOUT_DIALOG_TITLE);
+            dlg->QueryHeading()->SetTextL(*title);
+            CleanupStack::PopAndDestroy(); //title
+            HBufC* msg = iEikonEnv->AllocReadResourceLC(R_ABOUT_DIALOG_TEXT);
+            dlg->SetMessageTextL(*msg);
+            CleanupStack::PopAndDestroy(); //msg
+            dlg->RunLD();
+            }
+            break;
+        default:
+            Panic( EMCSExampleUi);
+            break;
+        }
+    }
+// -----------------------------------------------------------------------------
+//  Called by the framework when the application status pane
+//  size is changed.  Passes the new client rectangle to the
+//  AppView
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleAppUi::HandleStatusPaneSizeChange()
+    {
+    iAppView->SetRect(ClientRect());
+    }
+
+CArrayFix<TCoeHelpContext>* CMCSExampleAppUi::HelpContextL() const
+    {
+#warning "Please see comment about help and UID3..."
+    // Note: Help will not work if the application uid3 is not in the
+    // protected range.  The default uid3 range for projects created
+    // from this template (0xE0000000 - 0xEFFFFFFF) are not in the protected range so that they
+    // can be self signed and installed on the device during testing.
+    // Once you get your official uid3 from Symbian Ltd. and find/replace
+    // all occurrences of uid3 in your project, the context help will
+    // work. Alternatively, a patch now exists for the versions of 
+    // HTML help compiler in SDKs and can be found here along with an FAQ:
+    // http://www3.symbian.com/faq.nsf/AllByDate/E9DF3257FD565A658025733900805EA2?OpenDocument
+#ifdef _HELP_AVAILABLE_
+    CArrayFixFlat<TCoeHelpContext>* array = new(ELeave)CArrayFixFlat<TCoeHelpContext>(1);
+    CleanupStack::PushL(array);
+    array->AppendL(TCoeHelpContext(KUidMCSExampleApp, KGeneral_Information));
+    CleanupStack::Pop(array);
+    return array;
+#else
+    return NULL;
+#endif
+    }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/src/MCSExampleAppView.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,462 @@
+/*
+* Copyright (c) 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"
+* 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 <coemain.h>
+#include <mcsmenuitem.h>
+#include <mcsmenuiconutility.h>
+#include <mcsdef.h>
+#include <akniconarray.h>
+#include <eikclbd.h>
+#include <eikedwin.h>
+
+#include <aknsconstants.h>
+#include <aknsconstants.hrh>
+
+#include <MCSExample_0xEB753B18.rsg>
+#include "MCSExampleAppView.h"
+#include "mcspluginwatcher.h"
+#include "MCSExample.hrh"
+
+_LIT( KMenuData, "matrixmenudata" );
+
+CMyForm::CMyForm( TMyData& aData ) : iData( aData )
+    {
+    }
+
+CMyForm::~CMyForm()
+    {
+    }
+        
+void CMyForm::PreLayoutDynInitL()
+    {
+    CAknForm::PreLayoutDynInitL();
+    LoadFormDataL();
+    }
+
+void CMyForm::LoadFormDataL()
+    {
+    CEikEdwin* textEd1 =
+        (CEikEdwin*)Control( EMyFirstLine );
+    textEd1->SetTextL( &iData.majorID );
+    
+    CEikEdwin* textEd2 =
+        (CEikEdwin*)Control( EMySecondLine );
+    textEd2->SetTextL( &iData.minorID );
+    
+    CEikEdwin* textEd3 =
+        (CEikEdwin*)Control( EMyThirdLine );
+    textEd3->SetTextL( &iData.iconFile );
+    
+    CEikEdwin* textEd4 =
+        (CEikEdwin*)Control( EMyFourthLine );
+    textEd4->SetTextL( &iData.iconID );
+    
+    CEikEdwin* textEd5 =
+        (CEikEdwin*)Control( EMyFifthLine );
+    textEd5->SetTextL( &iData.maskID );
+    
+    CEikEdwin* textEd6 =
+        (CEikEdwin*)Control( EMySixthLine );
+    textEd6->SetTextL( &iData.statusIcon );
+    }
+
+TBool CMyForm::SaveFormDataL()
+    {
+    CEikEdwin* textEd1 =
+        (CEikEdwin*)Control( EMyFirstLine );
+    textEd1->GetText( iData.majorID );
+    
+    CEikEdwin* textEd2 =
+        (CEikEdwin*)Control( EMySecondLine );
+    textEd2->GetText( iData.minorID );
+    
+    CEikEdwin* textEd3 =
+        (CEikEdwin*)Control( EMyThirdLine );
+    textEd3->GetText( iData.iconFile );
+    
+    CEikEdwin* textEd4 =
+        (CEikEdwin*)Control( EMyFourthLine );
+    textEd4->GetText( iData.iconID );
+    
+    CEikEdwin* textEd5 =
+        (CEikEdwin*)Control( EMyFifthLine );
+    textEd5->GetText( iData.maskID );
+    
+    CEikEdwin* textEd6 =
+        (CEikEdwin*)Control( EMySixthLine );
+    textEd6->GetText( iData.statusIcon );
+    return ETrue;
+    }
+
+void CMyForm::DoNotSaveFormDataL()
+    {
+    LoadFormDataL();
+    }
+
+TBool CMyForm::OkToExitL( TInt aButtonId )
+    {
+    if ( aButtonId  == EAknSoftkeyOk)
+        {
+        SaveFormDataL();
+        iData.updated = ETrue;
+        }
+    else if( aButtonId == EAknSoftkeyCancel )
+        {
+        iData.updated = EFalse;
+        }
+    return ETrue;
+    }
+
+CGulIcon* ConvertToGulIconLC( CAknIcon* aIcon )
+    {
+    CGulIcon* icon = CGulIcon::NewL( aIcon->Bitmap(), aIcon->Mask() );
+    CleanupStack::PushL( icon );
+    // Detach bitmap and mask
+    aIcon->SetBitmap( NULL );
+    aIcon->SetMask( NULL );
+    return icon;
+    }
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CMCSExampleAppView::NewL()
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CMCSExampleAppView* CMCSExampleAppView::NewL(const TRect& aRect)
+    {
+    CMCSExampleAppView* self = CMCSExampleAppView::NewLC(aRect);
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleAppView::NewLC()
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CMCSExampleAppView* CMCSExampleAppView::NewLC(const TRect& aRect)
+    {
+    CMCSExampleAppView* self = new (ELeave) CMCSExampleAppView;
+    CleanupStack::PushL(self);
+    self->ConstructL(aRect);
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleAppView::ConstructL()
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleAppView::ConstructL(const TRect& aRect)
+    {
+    // Create a window for this application view
+    CreateWindowL();
+
+    // Set the windows size
+    SetRect(aRect);
+
+    // Activate the window, which makes it ready to be drawn
+    ActivateL();
+    
+    iMCSMenu.OpenL( KMenuData );
+    iWatcher = CMCSExampleWatcher::NewL();
+    }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleAppView::CMCSExampleAppView()
+// C++ default constructor can NOT contain any code, that might leave.
+// -----------------------------------------------------------------------------
+//
+CMCSExampleAppView::CMCSExampleAppView()
+    {
+    // No implementation required
+    }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleAppView::~CMCSExampleAppView()
+// Destructor.
+// -----------------------------------------------------------------------------
+//
+CMCSExampleAppView::~CMCSExampleAppView()
+    {
+    iMCSMenu.Close();
+    delete iListBox;
+    iItemArray.Close();
+    delete iWatcher;
+    }
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleAppView::ListAllItemsL()
+    {
+    
+
+    CArrayPtr<CGulIcon>* icons =new( ELeave ) CAknIconArray(1);
+    CleanupStack::PushL(icons);
+   
+    iListBox->Model()->SetItemTextArray(GetArrayL(icons));
+    iListBox->Model()->SetOwnershipType(ELbmOwnsItemArray);
+    //
+    // Inform the listbox of item additions. 
+    // This should be done if you want your items displayed correctly
+    iListBox ->HandleItemAdditionL();
+ 
+    CleanupStack::Pop(icons);
+    CArrayPtr<CGulIcon>* oldArray = iListBox->ItemDrawer()->ColumnData()->IconArray();
+    delete oldArray;
+    iListBox->ItemDrawer()->ColumnData()->SetIconArray(icons);
+    }
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleAppView::MakeListBoxL()
+    {
+    TInt MySetIndex(0);
+ 
+    if(iListBox)
+    {
+        MySetIndex = iListBox->CurrentItemIndex();
+    }
+ 
+    delete iListBox;
+    iListBox = NULL;
+ 
+    iListBox = new( ELeave ) CAknSingleLargeStyleListBox();
+    iListBox->ConstructL(this,EAknListBoxSelectionList);
+    iListBox->SetListBoxObserver( this );
+    
+    iListBox->CreateScrollBarFrameL( ETrue );
+    iListBox->ScrollBarFrame()->SetScrollBarVisibilityL(
+        CEikScrollBarFrame::EOff, CEikScrollBarFrame::EAuto);
+ 
+    iListBox->SetRect(Rect());
+ 
+    iListBox->View()->SetListEmptyTextL(_L("No data"));
+ 
+    iListBox->ActivateL();
+ 
+    TInt ItemsCount = iListBox->Model()->ItemTextArray()->MdcaCount();
+ 
+    if(ItemsCount > MySetIndex && MySetIndex >= 0)
+        iListBox->SetCurrentItemIndex(MySetIndex);
+    else if(ItemsCount > 0)
+        iListBox->SetCurrentItemIndex(0);
+ 
+    UpdateScrollBar(iListBox);
+    iListBox->DrawNow();
+    }
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+CDesCArray* CMCSExampleAppView::GetArrayL(CArrayPtr<CGulIcon>* aIcons)
+{   
+    TBuf<256> listString;
+    CDesCArrayFlat* myArray = new(ELeave)CDesCArrayFlat(1);
+    CleanupStack::PushL(myArray);
+ 
+    const TInt rootId = iMCSMenu. RootFolderL();
+    iItemArray.Reset();
+    //CleanupClosePushL( itemArray );
+    // Get all the items from MCS
+    iMCSMenu.GetItemsL( iItemArray, rootId, NULL, ETrue );
+
+    for( TInt i = 0; i < iItemArray.Count(); i++ )
+        {
+        // Open the actual item
+        CMenuItem* menuItem = CMenuItem::OpenL( iMCSMenu, iItemArray[i] );
+        CleanupStack::PushL( menuItem );
+        
+        // Get the name of the item
+        TBool attrExists( EFalse );
+        TPtrC attr = menuItem->GetAttributeL(_L("short_name" ), attrExists );
+
+        //Create listbox string
+        listString.Delete(0, 256);
+        listString.AppendNum( i );
+        listString.Append( _L("\t"));
+        listString.Append( attr );
+        myArray->AppendL( listString );
+        
+        //Fetch the item icon from MCS
+        CAknIcon* icon = MenuIconUtility::GetItemIconL( *menuItem );
+        CleanupStack::PushL( icon );
+        if ( icon )
+            {
+            CGulIcon* gIcon = ConvertToGulIconLC( icon );
+            aIcons->AppendL( gIcon );
+            CleanupStack::Pop( gIcon );
+            }
+        CleanupStack::PopAndDestroy( icon );
+        CleanupStack::PopAndDestroy( menuItem );
+        } 
+    CleanupStack::Pop(myArray);
+    return myArray;
+}
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleAppView::UpdateScrollBar(CEikListBox* aListBox)
+    {
+    if (aListBox)
+        {   
+        TInt pos(aListBox->View()->CurrentItemIndex());
+        if (aListBox->ScrollBarFrame())
+            {
+            aListBox->ScrollBarFrame()->MoveVertThumbTo(pos);
+            }
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleAppView::Draw()
+// Draws the display.
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleAppView::Draw(const TRect& /*aRect*/) const
+    {
+    // Get the standard graphics context
+    CWindowGc& gc = SystemGc();
+
+    // Gets the control's extent
+    TRect drawRect(Rect());
+
+    // Clears the screen
+    gc.Clear(drawRect);
+
+    }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleAppView::SizeChanged()
+// Called by framework when the view size is changed.
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleAppView::SizeChanged()
+    {
+    TRAP_IGNORE( MakeListBoxL() );
+    DrawNow();
+    }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleAppView::HandlePointerEventL()
+// Called by framework to handle pointer touch events.
+// Note: although this method is compatible with earlier SDKs, 
+// it will not be called in SDKs without Touch support.
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleAppView::HandlePointerEventL(
+        const TPointerEvent& aPointerEvent)
+    {
+
+    // Call base class HandlePointerEventL()
+    CCoeControl::HandlePointerEventL(aPointerEvent);
+    }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleAppView::HandleListBoxEventL( CEikListBox* /*aListBox*/, TListBoxEvent aEventType )
+    {
+    if( iListBox && aEventType == EEventItemSingleClicked )
+        {
+        TInt index = iListBox->CurrentItemIndex();
+        if( index < iItemArray.Count())
+            {
+            ShowFormL( index );
+            }
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleAppView::ShowFormL( TInt aItemIndex)
+    {
+    CMenuItem* menuItem = CMenuItem::OpenL( iMCSMenu, iItemArray[aItemIndex] );
+    CleanupStack::PushL( menuItem );
+    TBool attrExists( EFalse );
+    TPtrC attr = menuItem->GetAttributeL(_L("short_name" ), attrExists );
+    // Initialize  form data.
+    TBool exists( EFalse );;
+    TMyData myData;
+    myData.majorID = menuItem->GetAttributeL( KMenuAttrIconSkinMajorId, exists );
+    myData.minorID = menuItem->GetAttributeL( KMenuAttrIconSkinMinorId, exists );
+    myData.iconFile = menuItem->GetAttributeL( KMenuAttrIconFile, exists );
+    myData.iconID = menuItem->GetAttributeL( KMenuAttrIconId, exists );
+    myData.maskID = menuItem->GetAttributeL( KMenuAttrMaskId, exists );
+    // e.g. skin(0x101F86E3 0x1ee2)
+    myData.statusIcon = menuItem->GetAttributeL( _L("presenceicon"), exists );
+    myData.updated = EFalse;
+
+    // Launch the dialog to view/edit data
+    CAknForm* dlg = new ( ELeave ) CMyForm( myData );
+    CleanupStack::PushL( dlg );
+    dlg->ConstructL( 0 ); // default menu items only
+    CleanupStack::Pop( dlg );
+    dlg->ExecuteLD( R_ICON_QUERY_DIALOG );
+    // myData now contains the edited values.
+
+    if( myData.updated )
+        {
+        // Changes the main icon, if all values are empty then application icon is used.
+        // Piority 0
+        menuItem->SetAttributeL(KMenuAttrIconSkinMajorId, myData.majorID );
+        menuItem->SetAttributeL(KMenuAttrIconSkinMinorId, myData.minorID );
+        // Pririty 1
+        menuItem->SetAttributeL(KMenuAttrIconFile, myData.iconFile );
+        menuItem->SetAttributeL(KMenuAttrIconId, myData.iconID );
+        menuItem->SetAttributeL(KMenuAttrMaskId, myData.maskID );
+        //Changes the presence icon
+        menuItem->SetAttributeL( _L("presenceicon"), myData.statusIcon );
+                
+        CMenuOperation* operation = menuItem->SaveL( iWatcher->iStatus );
+        // Deletes the operation after its completion
+        iWatcher->Watch( operation, this );
+        }
+    CleanupStack::PopAndDestroy( menuItem );
+    }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+CCoeControl* CMCSExampleAppView::ComponentControl( TInt /*aIndex*/) const
+{
+    return iListBox;
+}
+ 
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+TInt CMCSExampleAppView::CountComponentControls() const
+{   
+    if(iListBox)
+        return 1;
+    else
+        return 0;
+}
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/src/MCSExampleApplication.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,47 @@
+/*
+* Copyright (c) 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"
+* 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 "MCSExample.hrh"
+#include "MCSExampleDocument.h"
+#include "MCSExampleApplication.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CMCSExampleApplication::CreateDocumentL()
+// Creates CApaDocument object
+// -----------------------------------------------------------------------------
+//
+CApaDocument* CMCSExampleApplication::CreateDocumentL()
+    {
+    // Create an MCSExample document, and return a pointer to it
+    return CMCSExampleDocument::NewL(*this);
+    }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleApplication::AppDllUid()
+// Returns application UID
+// -----------------------------------------------------------------------------
+//
+TUid CMCSExampleApplication::AppDllUid() const
+    {
+    // Return the UID for the MCSExample application
+    return KUidMCSExampleApp;
+    }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/src/MCSExampleDocument.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,93 @@
+/*
+* Copyright (c) 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"
+* 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 "MCSExampleAppUi.h"
+#include "MCSExampleDocument.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CMCSExampleDocument::NewL()
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CMCSExampleDocument* CMCSExampleDocument::NewL(CEikApplication& aApp)
+    {
+    CMCSExampleDocument* self = NewLC(aApp);
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleDocument::NewLC()
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CMCSExampleDocument* CMCSExampleDocument::NewLC(CEikApplication& aApp)
+    {
+    CMCSExampleDocument* self = new (ELeave) CMCSExampleDocument(aApp);
+
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleDocument::ConstructL()
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CMCSExampleDocument::ConstructL()
+    {
+    // No implementation required
+    }
+
+// -----------------------------------------------------------------------------
+// CMCSExampleDocument::CMCSExampleDocument()
+// C++ default constructor can NOT contain any code, that might leave.
+// -----------------------------------------------------------------------------
+//
+CMCSExampleDocument::CMCSExampleDocument(CEikApplication& aApp) :
+    CAknDocument(aApp)
+    {
+    // No implementation required
+    }
+
+// ---------------------------------------------------------------------------
+// CMCSExampleDocument::~CMCSExampleDocument()
+// Destructor.
+// ---------------------------------------------------------------------------
+//
+CMCSExampleDocument::~CMCSExampleDocument()
+    {
+    // No implementation required
+    }
+
+// ---------------------------------------------------------------------------
+// CMCSExampleDocument::CreateAppUiL()
+// Constructs CreateAppUi.
+// ---------------------------------------------------------------------------
+//
+CEikAppUi* CMCSExampleDocument::CreateAppUiL()
+    {
+    // Create the application user interface, and return a pointer to it;
+    // the framework takes ownership of this object
+    return new (ELeave) CMCSExampleAppUi;
+    }
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/examples/mcsexample/src/mcspluginwatcher.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,94 @@
+/*
+* Copyright (c) 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"
+* 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:  Menu item operation watcher. 
+*
+*/
+
+#include <mcsmenuoperation.h>
+#include "mcspluginwatcher.h"
+#include "MCSExampleAppView.h"
+
+// ---------------------------------------------------------------------------
+// two-phased constructor
+// ---------------------------------------------------------------------------
+CMCSExampleWatcher* CMCSExampleWatcher::NewL(  )
+	{
+	CMCSExampleWatcher* self = new (ELeave) CMCSExampleWatcher(  );
+	CleanupStack::PushL( self );
+	self->ConstructL();
+	CleanupStack::Pop( self );
+	return self;
+	}
+
+// ---------------------------------------------------------------------------
+// default constructor
+// ---------------------------------------------------------------------------
+CMCSExampleWatcher::CMCSExampleWatcher(  )
+	: CActive( CActive::EPriorityStandard )
+    {
+    CActiveScheduler::Add( this );
+    }
+
+// ---------------------------------------------------------------------------
+// destructor
+// ---------------------------------------------------------------------------
+CMCSExampleWatcher::~CMCSExampleWatcher()
+    {
+    Cancel();
+    }
+
+// ---------------------------------------------------------------------------
+// second phase constructor
+// ---------------------------------------------------------------------------
+void CMCSExampleWatcher::ConstructL()
+	{
+	
+	}
+
+// ---------------------------------------------------------------------------
+// Watch  Async
+// ---------------------------------------------------------------------------
+void CMCSExampleWatcher::Watch( CMenuOperation* aOperation, CMCSExampleAppView* aObserver )
+    {
+    iObserver = aObserver;
+    __ASSERT_DEBUG( KRequestPending == iStatus.Int(), User::Invariant() );
+    //__ASSERT_DEBUG( !iOperation, User::Invariant() ); 
+    iOperation = aOperation;
+    SetActive();
+    }
+
+// ---------------------------------------------------------------------------
+// Inherited from CActive class 
+// ---------------------------------------------------------------------------
+void CMCSExampleWatcher::RunL()
+    {
+    iObserver->ListAllItemsL();
+    delete iOperation;
+    iOperation = NULL;  
+    }
+
+// ---------------------------------------------------------------------------
+// Inherited from CActive class 
+// ---------------------------------------------------------------------------
+void CMCSExampleWatcher::DoCancel()
+    {
+    delete iOperation;
+    iOperation = NULL;
+    }
+
+TInt CMCSExampleWatcher::GetStatus()
+    {
+    return iStatus.Int();
+    }
+
--- a/idlehomescreen/inc/xnappuiadapter.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/inc/xnappuiadapter.h	Tue Sep 14 20:58:58 2010 +0300
@@ -40,6 +40,7 @@
 class CXnEffectManager;
 class MHsContentControl;
 class CXnItemActivator;
+class CXnViewSwitcher;
 
 // Class declaration
 /**
@@ -317,6 +318,13 @@
      */
     void ShowFocus();
 
+    /**
+     * View switcher helper.
+     *
+     * @since S60 5.0     
+     */
+    CXnViewSwitcher* ViewSwitcher();
+    
 private:
     // Data
 
@@ -341,6 +349,12 @@
      * Own.
      */
     TXnUiEngineAppIf* iUiEngineAppIf;
+    
+    /**
+     * View switcher scrolls view when finger follow is used.
+     * Own.
+     */    
+    CXnViewSwitcher* iViewSwitcher;    
     };
 
 #endif
--- a/idlehomescreen/inc/xncontroladapter.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/inc/xncontroladapter.h	Tue Sep 14 20:58:58 2010 +0300
@@ -352,6 +352,13 @@
      */
     IMPORT_C void DrawContentImage() const;
 
+    /*
+     * Checks if widget is Gesture destination node.
+     * 
+     * @return ETrue if widget is Gesture destination. 
+     */
+    TBool IsWidgetGestureDest();
+
 protected:
     /**
      * From CCoeControl.
@@ -430,11 +437,6 @@
      * Get child adapter list i.e which are not window owning controls
      */
     RPointerArray< CXnControlAdapter >& ChildAdapters();
-
-    /**
-     * Determines wheter control refuses focus loss
-     */            
-    virtual TBool RefusesFocusLoss() const { return EFalse; };
     
     /**
      * Routes the data stream for the external rendering plugin.
--- a/idlehomescreen/inc/xnnodeimpl.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/inc/xnnodeimpl.h	Tue Sep 14 20:58:58 2010 +0300
@@ -893,10 +893,6 @@
     /**
      * Find next node located aDirection from aNode.
      */
-    CXnNode* FindNextNodeL(
-        RPointerArray< CXnNode >& aArray,
-        CXnNode& aNode,
-        TInt aDirection );
 
     /**
      * Gets namespace of node
--- a/idlehomescreen/inc/xnnodepluginif.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/inc/xnnodepluginif.h	Tue Sep 14 20:58:58 2010 +0300
@@ -183,7 +183,15 @@
      * @return ETrue if node is focused.
      */
     IMPORT_C TBool IsFocusedState();
-
+    
+    /**
+     * Is the node in edit state
+     *
+     * @since Series 60 3.1
+     * @return ETrue if node is in edit state.
+     */    
+    IMPORT_C TBool IsEditState();
+    
     /**
      * Get node type
      *
--- a/idlehomescreen/inc/xnproperty.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/inc/xnproperty.h	Tue Sep 14 20:58:58 2010 +0300
@@ -166,16 +166,22 @@
         }
     namespace clock
         {
-        _LIT8(KS60Format, "_s60-format");
+        _LIT8( KS60Format, "_s60-format" );
         namespace format
             {
-            _LIT8(KDigital, "digital");
-            _LIT8(KAnalog, "analog");
+            _LIT8( KDigital, "digital" );
+            _LIT8( KAnalog, "analog" );
             }
-            
-        _LIT8(KS60AmPmFontSize, "_s60-ampm-font-size" );  
-        _LIT8(KS60DigitalFontSize, "_s60-digital-font-size");                 
+        _LIT8( KS60AmPmFontSize, "_s60-ampm-font-size" );  
+        _LIT8( KS60DigitalFontSize, "_s60-digital-font-size" );                 
         _LIT8( KS60DateFontSize, "_s60-date-font-size" );
+        _LIT8( KS60FontSize, "_s60-font-size" );
+        _LIT8( KFace, "face" );
+        _LIT8( KFace12, "face12" );
+        _LIT8( KFace24, "face24" );
+        _LIT8( KDate, "date" );
+        _LIT8( KDay, "day" );
+        _LIT8( KAmpm, "ampm" );
         }
     namespace volumecontrol
         {
--- a/idlehomescreen/inc/xntexteditor.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/inc/xntexteditor.h	Tue Sep 14 20:58:58 2010 +0300
@@ -43,26 +43,16 @@
         public: // New functions
 
         /**
-         * Sets the new text to the underlying CEikEdvin
+         * Sets the new text to the underlying CEikEdwin
          * @param aText The new content
          */
         virtual void SetTextL(const TDesC& aText) = 0;
         
         /**
-         * Returns the text contained in the underlying CEikEdvin
+         * Returns the text contained in the underlying CEikEdwin
          * @return HBufC* The text
          */
         virtual const HBufC* Text() = 0;
-
-        /**
-         * Handles editor events
-         * 
-         * @since S60 5.2
-         * @param aReason, editor event       
-         */
-        virtual void HandleEditorEvent( TInt aReason ) = 0;
-
-        private:
         };
     }   
 
@@ -75,18 +65,6 @@
     {
 public:
 
-/**
- * Editor events
- */
-    enum TEditorEvent
-                {
-                KActivateTextEditor,
-                KDeactivateTextEditor,
-                KRemoveSplitInputFromStack,
-                KKeepSplitInputInStack
-                };
-public:
-
 	/**
 	 * 2 phase construction.
 	 */
@@ -100,25 +78,17 @@
 public: // New functions
 
     /**
-     * Sets the new content to the underlying CEikEdvin
+     * Sets the new content to the underlying CEikEdwin
      * @param aText The new content
      */
     void SetTextL(const TDesC& aText);
     
     /**
-     * Returns the text contained in the underlying CEikEdvin
+     * Returns the text contained in the underlying CEikEdwin
      * @return HBufC* The text
      */
     const HBufC* Text();
 
-    /**
-     * Handles editor events
-     * 
-     * @since S60 5.2
-     * @param aReason, editor event       
-     */
-    void HandleEditorEvent( TInt aReason );
-
 public: // from CCoeControl
 
    	/**
--- a/idlehomescreen/inc/xnuiengine.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/inc/xnuiengine.h	Tue Sep 14 20:58:58 2010 +0300
@@ -82,6 +82,18 @@
     void RenderUIL( CXnNode* aNode = NULL );
 
     /**
+     * Calculates the layout of the UI and renders it. 
+     * This generates full re-layout starting from the given node, 
+     * regardless of the current dirty set or the active view.
+     * I.e. this can be used to layout an inactive view.
+     *
+     * @since Series 60 5.2
+     * @param aNode Starting point for the layout
+     * @exception KXnErrLoadLayoutFileFailed Loading the layout file failed.
+     */
+    void RenderFromNodeL( CXnNode& aNode );
+
+    /**
      * Calculates the layout of the UI.
      *
      * @since Series 60 3.1
@@ -90,6 +102,17 @@
     void LayoutUIL( CXnNode* aNode = NULL );
 
     /**
+     * Calculates the layout of the UI.
+     * This generates full re-layout starting from the given node, 
+     * regardless of the current dirty set or the active view.
+     * I.e. this can be used to layout an inactive view.
+     *
+     * @since Series 60 5.2
+     * @param aNode Starting point for the layout
+     */
+    void LayoutFromNodeL( CXnNode& aNode );
+
+    /**
      * Gets the root node of the UI. Ownership is not transferred.
      *
      * @since Series 60 3.1
@@ -444,7 +467,7 @@
       * @param aNode Editor Node
       * @param TBool True if partial input is open      
       */ 
-    void EnablePartialTouchInput( CXnNode& aNode, TBool aEnable );
+    void EnablePartialTouchInput( CXnNode* aNode, TBool aEnable );
     
     /**
       * Is partial input active
--- a/idlehomescreen/inc/xnuienginepluginif.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/inc/xnuienginepluginif.h	Tue Sep 14 20:58:58 2010 +0300
@@ -256,24 +256,15 @@
      * @since Series 60 5.0     
      */                        
     IMPORT_C void DisableRenderUiLC();
-    
-    /**
-     * Enables partial touch input
-     * 
-     * @since Series 60 5.2
-     * @param aNode Editor Node
-     * @param TBool True if partial input is open      
-     */      
-    IMPORT_C void EnablePartialTouchInput( CXnNodePluginIf& aNode, TBool aEnable );
-
+        
     /**
      * Checks if text editor is focused or partioal touch input open.
      * 
-     * @since Series 60 5.2
+     * @since S60 5.2
      * @return TBool True if partial input is open or editor focused
      */      
     IMPORT_C TBool IsTextEditorActive();
-
+    
 private:
     // Data
 
--- a/idlehomescreen/inc/xnviewmanager.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/inc/xnviewmanager.h	Tue Sep 14 20:58:58 2010 +0300
@@ -62,6 +62,8 @@
     // new functions
     virtual void NotifyViewActivatedL( const CXnViewData& aViewData ) = 0;
 
+    virtual void NotifyViewLoadedL( const CXnViewData& aViewData ) = 0;
+
     virtual void NotifyViewDeactivatedL( const CXnViewData& aViewData ) = 0;
 
     virtual void NotifyConfigureWidgetL(
@@ -72,9 +74,9 @@
 
     virtual void NotifyWidgetRemovalL( const CXnPluginData& aPluginData ) = 0;
     
-    virtual void NotifyViewAdditionL( const CXnPluginData& aPluginData ) = 0;
+    virtual void NotifyViewAdditionL( const CXnViewData& aViewData ) = 0;
 
-    virtual void NotifyViewRemovalL( const CXnPluginData& aPluginData ) = 0;
+    virtual void NotifyViewRemovalL( const CXnViewData& aViewData ) = 0;
     
     virtual void NotifyAllViewsLoadedL() = 0;
     
@@ -173,10 +175,12 @@
         const CHsContentInfo& aContentInfo,
         CXnPluginData& aPluginData );
 
-    void ActivateNextViewL( TInt aEffectId = 0 );
+    void ActivateNextViewL();
 
-    void ActivatePreviousViewL( TInt aEffectId = 0 );
+    void ActivatePreviousViewL();
 
+    void ActivateViewL( CXnViewData& aViewData, TUid aEffect, TBool aUpdateBg = ETrue );
+    
     TInt AddViewL( const CHsContentInfo& aInfo );
     
     void AddViewL( TInt aEffectId = 0 );
@@ -213,7 +217,9 @@
     void HandleErrorNotes( const TInt aError ) const;
     
     void PublishersReadyL( CXnViewData& aViewData, TInt aResult );
-        
+
+    void NotifyViewLoadedL( const CXnViewData& aViewData );
+
     void NotifyAllViewsLoadedL();
         
 private:
@@ -241,10 +247,11 @@
 
     CXnViewData* ViewData( CXnNode& aNode ) const;
 
+public:
     CXnViewData& PreviousViewData() const;
-
     CXnViewData& NextViewData() const;
-
+    
+private:
     void UpdateCachesL();
           
     void ReportWidgetAmountL( const CXnViewData& aViewData );
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/inc/xnviewswitcher.h	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,279 @@
+/*
+* Copyright (c) 2002-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:  View switcher.
+*
+*/
+
+#ifndef _XNVIEWSWITCHER_H
+#define _XNVIEWSWITCHER_H
+
+//  System includes
+#include <e32base.h>
+#include <akntouchgesturefw.h>
+
+// User includes
+#include "xnviewmanager.h"
+
+class CXnViewControlAdapter;
+
+using namespace AknTouchGestureFw;
+
+// Class declaration
+
+/**
+ * This class handles view swithing when "finger follow" feature is used. 
+ * The windows of current, next and previous views are moved along with the finger. 
+ * Final view switch animation has been handled here as well.
+ * 
+*  @ingroup group_xnlayoutengine
+*  @lib xn3layoutengine.lib
+*  @since S60 5.2
+*/   
+NONSHARABLE_CLASS( CXnViewSwitcher ) : public CBase
+   {
+
+    /**
+     * Important information of a view to be dragged.
+     */
+    struct TViewInformation
+        {
+        CXnControlAdapter*  iAdapter;
+        CXnViewData*        iViewData;
+        TBool               iReadyToDraw;
+        TBool               iBgDrawn;
+        };
+    
+    /**
+     * States for the view swithcing using "finger follow".
+     */
+    enum TViewSwitchState
+        {
+        KViewSwitchIdle,
+        KViewSwitchBegin,
+        KViewSwitchDragOngoing,
+        KViewSwitchScroll
+        };
+    
+public:
+    // Constructors and destructor
+    
+    /**
+     * 2 phase construction.
+     */
+    static CXnViewSwitcher* NewL();
+
+    /**
+     * Destructor.
+     */
+    ~CXnViewSwitcher();
+
+    /**
+     * Is finger follow feature activated
+     */
+    TBool FingerFollowSupported() const;
+
+    /**
+     * Try to handle and consume pointer event
+     */
+    TBool ProcessPointerEventL( const TPointerEvent& aPointerEvent );
+
+    /**
+     * Check if flick or some gesture occured during drag
+     */            
+    void TouchGesture( TAknTouchGestureFwType& aTouchGesture );
+
+    /**
+     * Updates the client rect
+     */            
+    void SizeChanged( TRect aRect );
+
+
+private: // constructors
+    
+    /**
+     * C++ default constructor
+     */    
+    CXnViewSwitcher();
+    
+    /**
+     * 2nd phase constructor
+     */
+    void ConstructL();
+
+    /**
+     * View scroll timer callback
+     */    
+    static TInt TimerCallback( TAny *aPtr );
+
+    /**
+     * Gets value of finger follow support from AI repository
+     */    
+    TBool IsFingerFollowSupportedL() const;
+
+    /**
+     * Adjusts current view position. Used in final animation.
+     */    
+    void Scroll();
+
+    /**
+     * Moves windows according to the current view position.
+     */    
+    void DoScroll();
+    
+    /**
+     * Start view dragging by setting up view control adapters
+     */    
+    TBool SetupViewsL();
+
+    /**
+     * Layouts and renders the given view out of sight. 
+     */    
+    void PrepareViewL( CXnViewSwitcher::TViewInformation& aView );
+    
+    /**
+     * Removes focused node and sends the up event in order to prevent activate triggers and long tapping.
+     */
+    void StartViewDraggingL();
+
+    /**
+     * Stop view dragging and start view scroll
+     */    
+    void StartViewScrolling();
+
+    /**
+     * View scrolling ended. 
+     */    
+    void ViewSwitchEndedL();
+
+    /**
+     * Get view data
+     */    
+    CXnViewData* ViewData( CXnViewData& aCurrentViewData, TInt aView );
+
+    /**
+     * Clear view information of current, next and previous views.
+     */    
+    void ClearViews();
+    
+    /**
+     * Sets whether next, current or previous view is to be activeted. 
+     * Updated also background if needed.
+     */    
+    void UpdateViewToBeActivated( TInt aOffset );
+
+    /**
+     * Changes background image and runs NGA effect. 
+     */    
+    void ChangeBackground( CXnViewData& aCurrent, CXnViewData& aNext );
+
+private: // data
+    
+    /** 
+     * AppUi 
+     */
+    CXnAppUiAdapter& iAppUi;
+
+    /** 
+     * Client rect set by UI Engine 
+     */
+    TRect iRect;
+    
+    /** 
+     * Whether the feature is supported or not. ETrue when finger follow is supported 
+     */
+    TBool iFingerFollowSupported;
+
+    /**
+     * Timer for animating view switch.
+     * Own.  
+     */    
+    CPeriodic* iTimer;
+
+    /** 
+     * Important information of the current view. 
+     */
+    TViewInformation iCurrentView;
+
+    /** 
+     * Important information of the view coming from the right side. 
+     */
+    TViewInformation iNextView;    
+
+    /** 
+     * Important information of the view coming from the left side. 
+     */
+    TViewInformation iPreviousView;
+
+    /**
+     * Flick gesture type. 
+     */
+    //TAknTouchGestureFwType iTouchGesture;
+    
+    /**
+     * The state of view switch. 
+     */
+    TViewSwitchState iViewSwitchState;
+    
+    /**
+     * Scroll speed in pixels. 
+     */
+    TInt iScrollSpeed;
+
+    /**
+     * Total scroll distance from the beginning in mode KViewSwitchDragOngoing.
+     * Remaining distance to be scrolled in mode KViewSwitchScroll. 
+     */
+    TInt iScrollDistance;
+
+    /**
+     * Measures the scroll distance in current direction. I.e. if direction changes, 
+     * this is set to 0. 
+     */
+    TInt iScrollDirectionDistance;
+
+    /**
+     * Position of the current view in the beginning. 
+     */
+    TPoint iViewStartPosition;
+
+    /**
+     * Position in the beginning. 
+     */
+    TPoint iStartPosition;
+
+    /**
+     * Current view position from the beginning. 
+     */
+    TPoint iViewPosition;
+
+    /**
+     * View to be activated. 
+     */
+    TInt iActivateView;
+    
+    /**
+     * Tick amount to be used when calculating drag speed. 
+     */    
+    TInt iTickAmount;
+
+    /**
+     * Scroll direction. 
+     */    
+    TInt iDirection;
+    
+   };
+    
+#endif      // _XNVIEWSWITCHER_H
+            
+// End of File
--- a/idlehomescreen/nativeuicontroller/group/ainatiui.mmp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/nativeuicontroller/group/ainatiui.mmp	Tue Sep 14 20:58:58 2010 +0300
@@ -20,7 +20,7 @@
 #include        <platform/mw/aisystemuids.hrh>
 #include        <data_caging_paths.hrh>
 
-TARGET          Ai3NatiUi.dll
+TARGET          ai3natiui.dll
 TARGETTYPE      PLUGIN
 UID             0x10009D8D AI_UID_ECOM_DLL_UICONTROLLER_NATIVE
 VENDORID        VID_DEFAULT
@@ -45,12 +45,12 @@
 
 
 START RESOURCE  ai3natiui.rss
-TARGET          Ai3NatiUi.rsc
+TARGET          ai3natiui.rsc
 END
 
 START RESOURCE  ai3nativeui.rss
 HEADER
-TARGET          AiNativeUi.rsc
+TARGET          ainativeui.rsc
 TARGETPATH      APP_RESOURCE_DIR
 LANGUAGE_IDS
 END
--- a/idlehomescreen/nativeuicontroller/src/aidialogrenderer.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/nativeuicontroller/src/aidialogrenderer.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -25,7 +25,7 @@
 #include <hscontentpublisher.h>
 #include <hspublisherinfo.h>
 #include <activeidle2domainpskeys.h>
-#include <AiNativeUi.rsg>
+#include <ainativeui.rsg>
 #include "aidialogrenderer.h"
 #include "ainativeuiplugins.h"
 #ifdef __COVER_DISPLAY
@@ -48,7 +48,7 @@
 #include <PsetSAObserver.h>              // for CPsetSAObserver
 #include <gsmerror.h>                    // for GSM-specific error messages
 
-#include <GsNetworkPluginRsc.rsg>        // for resource IDs
+#include <gsnetworkpluginrsc.rsg>        // for resource IDs
 #include <CoreApplicationUIsSDKCRKeys.h> // for KCRUidCoreApplicationUIs, TCoreAppUIsNetworkConnectionAllowed
 #include <featmgr.h>
 
--- a/idlehomescreen/nativeuicontroller/src/ainotifierrenderer.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/nativeuicontroller/src/ainotifierrenderer.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -22,7 +22,7 @@
 #include <hscontentpublisher.h>
 #include <hspublisherinfo.h>
 #include <activeidle2domainpskeys.h>
-#include <AiNativeUi.rsg>
+#include <ainativeui.rsg>
 #include "ainotifierrenderer.h"
 #include "ainativeuiplugins.h"
 
--- a/idlehomescreen/nativeuicontroller/src/aisoftkeyrenderer.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/nativeuicontroller/src/aisoftkeyrenderer.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -33,7 +33,7 @@
 #include <hscontentpublisher.h>
 #include <hspublisherinfo.h>
 
-#include <AiNativeUi.rsg>
+#include <ainativeui.rsg>
 
 #include "ainativeui.hrh"
 #include "aisoftkeyrenderer.h"
--- a/idlehomescreen/nativeuicontroller/src/aistatuspanel.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/nativeuicontroller/src/aistatuspanel.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -355,6 +355,8 @@
 
 void CAiStatusPanel::SetNaviPaneTextL( const TDesC& aText )
     {
+    __PRINT(__DBG_FORMAT("XAI: CAiStatusPanel::SetNaviPaneTextL aText = %S"), 
+        &aText );
     delete iNaviPaneText;
     iNaviPaneText = NULL;
     if ( !AknStatuspaneUtils::FlatLayoutActive() )
@@ -368,6 +370,9 @@
 
 void CAiStatusPanel::SetTitlePaneTextL( const TDesC& aText )
     {
+    __PRINT(__DBG_FORMAT("XAI: CAiStatusPanel::SetTitlePaneTextL aText = %S"), 
+        &aText );
+
     HBufC* temp = aText.AllocL();
     delete iTitlePaneText;
     iTitlePaneText = temp;
@@ -395,18 +400,22 @@
 
 void CAiStatusPanel::StopTitlePaneScrollingL()
     {
+    __PRINTS("XAI: CAiStatusPanel::StopTitlePaneScrollingL");
     // stop scrolling
     if(  iTextInTitlePane && iTitlePane->Text() )
         {
+        __PRINTS("XAI: stop scrolling");
         iTitlePane->SetTextL( *iTitlePane->Text(), EFalse );
         }
     }
 
 void CAiStatusPanel::ScrollTitlePaneTextL()
     {
+    __PRINTS("XAI: CAiStatusPanel::ScrollTitlePaneTextL");
     // start scrolling
     if ( iTextInTitlePane && iTitlePane->Text() )           
         {
+        __PRINTS("XAI: start scrolling");
         iTitlePane->SetTextL( *iTitlePane->Text(), ETrue );
         }
     }
--- a/idlehomescreen/nativeuicontroller/src/aistatuspanetouchui.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/nativeuicontroller/src/aistatuspanetouchui.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -30,7 +30,7 @@
 #include <hscontentpublisher.h>
 #include <hspublisherinfo.h>
 #include <aidevicestatuscontentmodel.h>
-#include <AiNativeUi.rsg>
+#include <ainativeui.rsg>
 
 // User includes
 #include "aistrcnv.h"
@@ -334,8 +334,9 @@
           iProfileNamePointerArray.Remove( aIndex - 1);
           }
 
-        HBufC* name = aText.AllocL();
-        iProfileNamePointerArray.Insert( name, aIndex - 1 );
+        HBufC* name = aText.AllocLC();
+        iProfileNamePointerArray.InsertL( name, aIndex - 1 );
+        CleanupStack::Pop( name );
         break;
         }
         default:
--- a/idlehomescreen/nativeuicontroller/src/aistyluspopupmenucontent.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/nativeuicontroller/src/aistyluspopupmenucontent.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -108,14 +108,15 @@
     flags = KAknButtonTextLeft | KAknButtonSizeFitText | KAknButtonNoFrame;
     CAknButton* item = CAknButton::NewL( NULL, NULL, NULL, NULL, aItem,
         KNullDesC, flags, 0 );
-
+    CleanupStack::PushL( item );
     item->SetTextFont( AknLayoutUtils::FontFromId(
         AknLayoutScalable_Avkon::
             list_single_popup_submenu_pane_t1( 0 ).LayoutLine().FontId() ) );
     item->SetBackground( Background() );
     item->SetObserver( &aObserver );
-    iItems.Append( item );
-    iCommands.Append( aCommandId );
+    iItems.AppendL( item );
+    CleanupStatck::Pop( item );
+    iCommands.AppendL( aCommandId );    
     SizeChanged();
     }
 
--- a/idlehomescreen/nativeuicontroller/src/aititlepanerenderer.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/nativeuicontroller/src/aititlepanerenderer.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -17,7 +17,7 @@
 
 // System includes
 #include <StringLoader.h>
-#include <AiNativeUi.rsg>
+#include <ainativeui.rsg>
 #include <gulicon.h>
 
 // User includes
@@ -105,6 +105,7 @@
 	            }
 	        default:
 	            {
+                __PRINTS( "XAI: Rendering title pane > different content - leave");                
 	            User::Leave( KErrNotFound );
 	            break;
 	            }
@@ -112,6 +113,7 @@
 	    }
 	else
 		{
+        __PRINTS( "XAI: Rendering title pane > Uid mismatch - leave");        
 		User::Leave( KErrNotFound );
 		}
     }
@@ -150,12 +152,13 @@
 	                // We're publishing bitmap -> set text as invalid
 	                iStatusPanel.SetTitlePaneTextL( KNullDesC );
 	                iStatusPanel.RenderTitlePaneL();
-	                 __PRINTS("XAI: Rendering title pane - done");
+	                __PRINTS("XAI: Rendering title pane - done");
 	                }
 	            break;
 	            }
 	        default:
 	            {
+                __PRINTS( "XAI: Rendering title pane > different content - leave");
 	            User::Leave( KErrNotFound );
 	            break;
 	            }
@@ -163,6 +166,7 @@
 	   	}
 	else
 		{
+        __PRINTS( "XAI: Rendering title pane > Uid mismatch - leave");
 		User::Leave( KErrNotFound );
 		}
     }
@@ -175,6 +179,8 @@
 void CAiTitlePaneRenderer::DoPublishL( CHsContentPublisher& aPlugin, 
     TInt aContent, TInt aResource, TInt /*aIndex*/ )
     {
+    __PRINT(__DBG_FORMAT("XAI: CAiTitlePaneRenderer::DoPublishL - aContent %d"), aContent );
+
     const THsPublisherInfo& info( aPlugin.PublisherInfo() );
     
     if( info.Uid() == KDeviceStatusPluginUid )
@@ -190,10 +196,12 @@
 	            iStatusPanel.RenderTitlePaneL();
 	       
 	            CleanupStack::PopAndDestroy(text); //text
+                __PRINTS("XAI: Rendering title pane - done");
 	            break;
 	            }
 	        default:
 	            {
+                __PRINTS( "XAI: Rendering title pane > different content - leave");
 	            User::Leave( KErrNotFound );
 	            break;
 	            }
@@ -201,6 +209,7 @@
 	    }
 	else
 		{
+        __PRINTS( "XAI: Rendering title pane > Uid mismatch - leave");
 		User::Leave( KErrNotFound );
 		}
     }
@@ -213,7 +222,7 @@
 void CAiTitlePaneRenderer::DoCleanL( CHsContentPublisher& aPlugin, 
     TInt aContent )
 	{
-    __PRINT(__DBG_FORMAT("XAI: Clean title pane - %d"), aContent );
+    __PRINT(__DBG_FORMAT("XAI: Clean title pane - aContent %d"), aContent );
 	
     const THsPublisherInfo& info( aPlugin.PublisherInfo() );
     
@@ -233,13 +242,15 @@
 
 	        default:
 	            {
-				User::Leave( KErrNotFound );
+				__PRINTS( "XAI: clean > different content - leave");
+                User::Leave( KErrNotFound );
 	            break;
 	            }
 	        };
 		}
 	else
 		{
+        __PRINTS( "XAI: clean > Uid mismatch - leave");
 		User::Leave( KErrNotFound );
 		}
 	}
--- a/idlehomescreen/nativeuicontroller/src/aitoolbarrenderer.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/nativeuicontroller/src/aitoolbarrenderer.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -36,7 +36,7 @@
 
 #include "ainativeuiplugins.h"
 
-#include <AiNativeUi.rsg>
+#include <ainativeui.rsg>
 #include "debug.h"
 
 using namespace AiNativeUiController;
@@ -337,8 +337,10 @@
     if ( index >= iButtons.Count() )
         {
         button = CAiToolbarButton::NewL();
+        CleanupStack::PushL( button );
         button->SetShortcutId( aShortcutId );
-        iButtons.Append( button );
+        iButtons.AppendL( button );
+        CleanupStatck::Pop( button );
         }
 
     // Use the old button
--- a/idlehomescreen/nativeuicontroller/src/appui.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/nativeuicontroller/src/appui.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -44,7 +44,7 @@
 #include "application.h"
 #include "nativeuicontroller.h"
 #include "aifweventhandler.h"
-#include <AiNativeUi.rsg>
+#include <ainativeui.rsg>
 
 #include "aicontentmodel.h"
 #include "aiuiidleintegration.h"
--- a/idlehomescreen/nativeuicontroller/src/nativeuicontroller.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/nativeuicontroller/src/nativeuicontroller.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -447,7 +447,7 @@
         THsPublisherInfo deviceStatus( KDeviceStatusPluginUid, 
             KDeviceStatusPluginName, KNativeUiNamespace );
         
-        iPlugins.Append( deviceStatus );
+        iPlugins.AppendL( deviceStatus );
         
         TAiFwPublisherInfo devstatInfo( 
             deviceStatus, TAiFwCallback(), EAiFwSystemStartup );
@@ -457,7 +457,7 @@
         THsPublisherInfo profile( KProfilePluginUid, 
             KProfilePluginName, KNativeUiNamespace );
 
-        iPlugins.Append( profile );
+        iPlugins.AppendL( profile );
 
         TAiFwPublisherInfo profileInfo( 
             profile, TAiFwCallback(), EAiFwSystemStartup );
--- a/idlehomescreen/widgetmanager/src/wmeffectmanager.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/widgetmanager/src/wmeffectmanager.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -89,7 +89,7 @@
     effect->iId = aId;
     effect->iType = KEffectTypeFullscreen;
     effect->iState = KWaitForLayout;
-    iEffects.Append( effect );
+    iEffects.AppendL( effect );
     
     CleanupStack::Pop( effect );
 
--- a/idlehomescreen/widgetmanager/src/wmmaincontainer.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/widgetmanager/src/wmmaincontainer.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -935,8 +935,7 @@
                         CAknSearchField::EAdaptiveSearch,
                         0, KTextLimit );
     AddControlL( iFindbox, EFindBox );
-    iFindbox->AddAdaptiveSearchTextObserverL(this);
-    
+
     UpdateFocusMode();
     StartLoadingWidgetsL();
     }
--- a/idlehomescreen/widgetmanager/src/wmwidgetdata.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/widgetmanager/src/wmwidgetdata.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -132,13 +132,21 @@
     // get publisher uid from widget registry
     FetchPublisherUidL( aHsContentInfo->PublisherId(), 
                         aRegistryClientSession );
-    
+
+    // delete the old list box item
+    delete iMdcaPoint;
+    iMdcaPoint = NULL;
+        
     // create iMdcaPoint for listbox    
     _LIT( KFormatStr, "0\t%S");
     iMdcaPoint = HBufC::NewL( 
             aHsContentInfo->Name().Length() + KFormatStr().Length() );
     iMdcaPoint->Des().Format( KFormatStr(), &aHsContentInfo->Name() );
 
+    // delete the old content info
+    delete iHsContentInfo;
+    iHsContentInfo = NULL;
+    
     // take ownership of the content info
     iHsContentInfo = aHsContentInfo;
     }
@@ -423,10 +431,6 @@
     TBool sameLogo = (
             iHsContentInfo->IconPath() == aHsContentInfo->IconPath() );
 
-    // delete the old content info
-    delete iHsContentInfo;
-    iHsContentInfo = NULL;
-    
     // re-init the object, take care about leave.
     TRAPD( err, InitL( aHsContentInfo, NULL ); );
     if ( KErrNone != err )
--- a/idlehomescreen/xmluicontroller/inc/mtransaction.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluicontroller/inc/mtransaction.h	Tue Sep 14 20:58:58 2010 +0300
@@ -21,6 +21,7 @@
 
 #include <e32hashtab.h>
 
+#include "aipolicyelement.h"
 
 inline TUint32 NodeHash(const TAny* aPtr)
     {
@@ -87,7 +88,8 @@
      *
      * @param [out] aLayoutChanged true if UI layout changes
      */
-    virtual void CommitL( TBool& aLayoutChanged, RPropertyHashMap& aPropertyHashMap ) = 0;
+    virtual void CommitL( RAiPolicyElementArray& aPolicyArray, 
+            RPropertyHashMap& aPropertyHashMap ) = 0;
     
     /**
      * Resets this transaction for reuse.
--- a/idlehomescreen/xmluicontroller/inc/mtransactionelement.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluicontroller/inc/mtransactionelement.h	Tue Sep 14 20:58:58 2010 +0300
@@ -41,11 +41,11 @@
     /**
      * Commits the publish operation and actually updates the UI control/element.
      *
-     * @param [out] aLayoutChanged true if UI layout changes 
      * @see UpdateDataL()
      * @see ApplyPublishingPolicy()
      */
-    void CommitL( TBool& aLayoutChanged, RPropertyHashMap& aPropertyHashMap );
+    void CommitL( RAiPolicyElementArray& aPolicyArray, 
+                  RPropertyHashMap& aPropertyHashMap );
 
     /**
      * Resets the transaction element and clears the references to content
@@ -55,12 +55,6 @@
     virtual void Reset() = 0;
     
     /**
-     * Returns the array of associated content policy elements.
-     *
-     */
-    virtual RAiPolicyElementArray& PolicyArray() = 0;
-    
-    /**
      * Return the target UI element for this transaction element
      */
     virtual CXnNodeAppIf& Target() const = 0 ;
@@ -79,7 +73,7 @@
      *
      * @param [out] aLayoutChanged true if UI layout changes
      */
-    virtual void ApplyPublishingPolicy( TBool& aLayoutChanged,
+    virtual void ApplyPublishingPolicy( RAiPolicyElementArray& aPolicyArray,
                                         RPropertyHashMap& aPropertyHashMap ) = 0;
     
 protected:  // Constructors and destructor
--- a/idlehomescreen/xmluicontroller/inc/transaction.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluicontroller/inc/transaction.h	Tue Sep 14 20:58:58 2010 +0300
@@ -57,7 +57,7 @@
     
     void Append(MTransactionElement& aElement);
     
-    void CommitL(TBool& aLayoutChanged, RPropertyHashMap& aPropertyHashMap);
+    void CommitL(RAiPolicyElementArray& aPolicyArray, RPropertyHashMap& aPropertyHashMap);
     
     void Reset(MTransactionFactory& aFactory);
     
--- a/idlehomescreen/xmluicontroller/inc/transactionelement.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluicontroller/inc/transactionelement.h	Tue Sep 14 20:58:58 2010 +0300
@@ -59,8 +59,6 @@
             
             void Reset();
             
-            RAiPolicyElementArray& PolicyArray();
-            
             /**
              * Sets current content priority value.
              *
@@ -106,10 +104,10 @@
              * The policy is applied by modifying CSS property defined
              * by non-empty content.
              */
-            void ApplyPublishingPolicy( TBool& aLayoutChanged,
+            void ApplyPublishingPolicy( RAiPolicyElementArray& aPolicyArray,
                                         RPropertyHashMap& aPropertyHashMap );
             
-            void DoApplyPublishingPolicyL( TBool& aLayoutChanged,
+            void DoApplyPublishingPolicyL( RAiPolicyElementArray& aPolicyArray,
                                            RPropertyHashMap& aPropertyHashMap );
             
             /**
@@ -127,11 +125,6 @@
         private:
             
             /**
-             * Array of policy elements
-             */
-            RAiPolicyElementArray iPolicyArray;
-            
-            /**
              * Content priority map
              */
             AiUtility::CContentPriorityMap& iContentPriorityMap;
--- a/idlehomescreen/xmluicontroller/inc/transactionfactoryimpl.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluicontroller/inc/transactionfactoryimpl.h	Tue Sep 14 20:58:58 2010 +0300
@@ -22,6 +22,7 @@
 
 #include <e32base.h>
 #include "transactionfactory.h"
+#include "aipolicyelement.h"
 
 namespace AiUtility
     {
@@ -85,6 +86,10 @@
     void ReleaseTransactionElement( MTransactionElement* aElement );
 
     TBool IsSupported( CXnNodeAppIf& aTarget, const TDesC8& aContentType );
+    
+    RAiPolicyElementArray& CTransactionFactoryImpl::PolicyArray();
+
+    void CTransactionFactoryImpl::ResetPolicyArray();
 
 private: // Construction
 
@@ -133,6 +138,11 @@
      * UI controller's CSS property map. Not own.
      */
     CCssPropertyMap& iPropertyMap;
+
+    /**
+     * Array of policy elements
+     */
+    RAiPolicyElementArray iPolicyArray;
     };
 
 } // namespace AiXmlUiController
--- a/idlehomescreen/xmluicontroller/src/contentrenderer.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluicontroller/src/contentrenderer.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -442,7 +442,7 @@
         
         TBool layoutChanged( EFalse );
         
-        TRAPD( error, tr->CommitL( layoutChanged, propertyHashMap ) );
+        TRAPD( error, tr->CommitL( iFactory->PolicyArray(), propertyHashMap ) );
 
         if( error == KErrNone )
             {
@@ -464,7 +464,8 @@
             );
                 
         
-        iFactory->ReleaseTransaction( tr );  
+        iFactory->ReleaseTransaction( tr );
+        iFactory->ResetPolicyArray();
         
         return error;
         }
@@ -1014,10 +1015,10 @@
                 }
             
             iPolicyEvaluator->EvaluateContentPolicyL( 
-                    *target, element->PolicyArray() );
+                    *target, iFactory->PolicyArray() );
                                                      
             iPolicyEvaluator->EvaluateVisibilityPolicyL( 
-                    *target, element->PolicyArray() );
+                    *target, iFactory->PolicyArray() );
                                                          
             ProcessTransactionElementL( element );
             }
@@ -1131,10 +1132,10 @@
                         *target, aFile, priority );
                                                           
             iPolicyEvaluator->EvaluateContentPolicyL( 
-                    *target, element->PolicyArray() );
+                    *target, iFactory->PolicyArray() );
                                                       
             iPolicyEvaluator->EvaluateVisibilityPolicyL( 
-                    *target, element->PolicyArray() );
+                    *target, iFactory->PolicyArray() );
                                                                      
             ProcessTransactionElementL( element );
             }
@@ -1214,10 +1215,10 @@
                 *target, aIndex );
 
     iPolicyEvaluator->EvaluateEmptyContentPolicyL( 
-            *target, element->PolicyArray() );
+            *target, iFactory->PolicyArray() );
                                                    
     iPolicyEvaluator->EvaluateVisibilityPolicyL( 
-            *target, element->PolicyArray() );
+            *target, iFactory->PolicyArray() );
                                                    
     ProcessTransactionElementL( element );
       
@@ -1275,7 +1276,7 @@
         RPropertyHashMap propertyHashMap;
         CleanupClosePushL( propertyHashMap );
         
-        aElement->CommitL( layoutChanged, propertyHashMap );
+        aElement->CommitL( iFactory->PolicyArray(), propertyHashMap );
         SetPropertyArraysL( propertyHashMap );
         
         CleanupStack::PopAndDestroy( &propertyHashMap );
@@ -1444,22 +1445,22 @@
     if ( aResource )
         {
         iPolicyEvaluator->EvaluateResourcePolicyL( 
-            *target, *aResource, element->PolicyArray() );
+            *target, *aResource, iFactory->PolicyArray() );
 
         iPolicyEvaluator->EvaluateContentPolicyL( 
-            *target, element->PolicyArray() );
+            *target, iFactory->PolicyArray() );
                                                   
         iPolicyEvaluator->EvaluateVisibilityPolicyL( 
-            *target, element->PolicyArray() );                                                     
+            *target, iFactory->PolicyArray() );                                                     
         }
 
     else
         {
         iPolicyEvaluator->EvaluateContentPolicyL( 
-            *target, element->PolicyArray() );
+            *target, iFactory->PolicyArray() );
                                                   
         iPolicyEvaluator->EvaluateVisibilityPolicyL( 
-            *target, element->PolicyArray() );                                                    
+            *target, iFactory->PolicyArray() );                                                    
         }
 
     ProcessTransactionElementL( element );
@@ -1522,21 +1523,21 @@
     if ( aResource )
         {
         iPolicyEvaluator->EvaluateResourcePolicyL( 
-            *target, *aResource, element->PolicyArray() );
+            *target, *aResource, iFactory->PolicyArray() );
                                                    
         iPolicyEvaluator->EvaluateContentPolicyL( 
-            *target, element->PolicyArray() );
+            *target, iFactory->PolicyArray() );
                                                   
         iPolicyEvaluator->EvaluateVisibilityPolicyL( 
-            *target, element->PolicyArray() );                                                     
+            *target, iFactory->PolicyArray() );                                                     
         }
     else
         {
         iPolicyEvaluator->EvaluateContentPolicyL( 
-            *target, element->PolicyArray() );
+            *target, iFactory->PolicyArray() );
                                                   
         iPolicyEvaluator->EvaluateVisibilityPolicyL( 
-            *target, element->PolicyArray() );                                                     
+            *target, iFactory->PolicyArray() );                                                     
         }
 
     ProcessTransactionElementL( element );
--- a/idlehomescreen/xmluicontroller/src/transaction.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluicontroller/src/transaction.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -57,10 +57,8 @@
     iTransactionElements.AddLast(dynamic_cast<CTransactionElement&>(aElement));
     }
     
-void CTransaction::CommitL( TBool& aLayoutChanged, RPropertyHashMap& aPropertyHashMap )
+void CTransaction::CommitL( RAiPolicyElementArray& aPolicyArray, RPropertyHashMap& aPropertyHashMap )
     {
-    aLayoutChanged = EFalse;
-        
     if ( iTransactionElements.IsEmpty() )
         {
         // Nothing to do
@@ -75,7 +73,7 @@
     while ( iter )
         {
         // Commit element and advance iterator 
-        (iter++)->CommitL( aLayoutChanged, aPropertyHashMap );
+        (iter++)->CommitL( aPolicyArray, aPropertyHashMap );
         }
     }
 
--- a/idlehomescreen/xmluicontroller/src/transactionelement.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluicontroller/src/transactionelement.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -24,6 +24,7 @@
 #include    "xmluicontrollerpanic.h"
 #include    "aixmluiutils.h"
 #include    "aixmluiconstants.h"
+#include    "aipolicyelement.h"
 
 #include    "contentprioritymap.h"
 
@@ -35,13 +36,14 @@
 /**
  * Template method implementation
  */
-void MTransactionElement::CommitL( TBool& aLayoutChanged, RPropertyHashMap& aPropertyHashMap )
+void MTransactionElement::CommitL( RAiPolicyElementArray& aPolicyArray, 
+                                   RPropertyHashMap& aPropertyHashMap )
     {
     // Update UI element data
     UpdateDataL();
     
     // Update CSS properties
-    ApplyPublishingPolicy( aLayoutChanged, aPropertyHashMap );
+    ApplyPublishingPolicy( aPolicyArray, aPropertyHashMap );
     }
 
 CTransactionElement::CTransactionElement( AiUtility::CContentPriorityMap& aContentPriorityMap )
@@ -61,13 +63,6 @@
     iContentPriority = KErrNotFound;
     
     iElementLink.Deque();
-    
-    iPolicyArray.Reset();
-    }
-    
-RAiPolicyElementArray& CTransactionElement::PolicyArray()
-    {
-    return iPolicyArray;
     }
 
 void CTransactionElement::SetContentPriority( TInt aPriority )
@@ -86,20 +81,22 @@
     iTarget = &aTarget;
     }
 
-void CTransactionElement::ApplyPublishingPolicy( TBool& aLayoutChanged, RPropertyHashMap& aPropertyHashMap )
+void CTransactionElement::ApplyPublishingPolicy( RAiPolicyElementArray& aPolicyArray, 
+                                                 RPropertyHashMap& aPropertyHashMap )
     {
     // Ignore errors if CSS property could not be modified
-    TRAP_IGNORE( DoApplyPublishingPolicyL( aLayoutChanged, aPropertyHashMap ) );
+    TRAP_IGNORE( DoApplyPublishingPolicyL( aPolicyArray, aPropertyHashMap ) );
     }
             
-void CTransactionElement::DoApplyPublishingPolicyL( TBool& aLayoutChanged, RPropertyHashMap& aPropertyHashMap )
+void CTransactionElement::DoApplyPublishingPolicyL( RAiPolicyElementArray& aPolicyArray, 
+                                                    RPropertyHashMap& aPropertyHashMap )
     {
     RArray<CXnNodeAppIf*> targetArray;
     CleanupClosePushL( targetArray );
     
-    for ( TInt i = 0; i < iPolicyArray.Count() && iPropertyMap; ++i )
+    for ( TInt i = 0; i < aPolicyArray.Count() && iPropertyMap; ++i )
         {
-        TAiPolicyElement& element = iPolicyArray[ i ];
+        TAiPolicyElement& element = aPolicyArray[ i ];
         
         RArray<TAiPolicyElement> elementArray;
         CleanupClosePushL( elementArray );
@@ -118,15 +115,15 @@
         if( !found )
             {
             // Mark this target to be processed
-            targetArray.Append( &(element.Target()) );
+            targetArray.AppendL( &(element.Target()) );
             
-            for( TInt i3 = 0; i3 < iPolicyArray.Count(); ++i3 )
+            for( TInt i3 = 0; i3 < aPolicyArray.Count(); ++i3 )
                 {
-                TAiPolicyElement& element2 = iPolicyArray[ i3 ];
+                TAiPolicyElement& element2 = aPolicyArray[ i3 ];
                 // find form target array
                 if( &(element.Target()) == &(element2.Target()) )
                     {
-                    elementArray.Append( element2 );
+                    elementArray.AppendL( element2 );
                     }
                 }
                 
@@ -144,10 +141,6 @@
     
     CleanupStack::PopAndDestroy(); // targetArray
     
-    if ( iPolicyArray.Count() > 0 )
-        {
-        aLayoutChanged |= ETrue;
-        }
     }
     
 CXnNodeAppIf& CTransactionElement::Target() const
--- a/idlehomescreen/xmluicontroller/src/transactionfactoryimpl.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluicontroller/src/transactionfactoryimpl.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -49,9 +49,18 @@
     CTransactionFactoryImpl* self =
                 new( ELeave ) CTransactionFactoryImpl( aContentPriorityMap,
                                                        aPropertyMap );
-    
     return self;
     }
+
+RAiPolicyElementArray& CTransactionFactoryImpl::PolicyArray()
+    {
+    return iPolicyArray;
+    }
+
+void CTransactionFactoryImpl::ResetPolicyArray()
+    {
+    iPolicyArray.Reset();
+    }
     
 CTransactionFactoryImpl::~CTransactionFactoryImpl()
     {
@@ -62,6 +71,8 @@
     // Delete transaction elements
     DeleteElementList( iAvailableElements );
     DeleteElementList( iReservedElements );
+    
+    ResetPolicyArray();
     }
 
 MTransaction* CTransactionFactoryImpl::CreateTransactionL( TInt aTxId )
--- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/group/xnclockfactory.mmp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/group/xnclockfactory.mmp	Tue Sep 14 20:58:58 2010 +0300
@@ -31,6 +31,7 @@
 SOURCE          xnclock.cpp
 SOURCE          xnclockadapter.cpp
 SOURCE          xnclockcontrol.cpp
+SOURCE          xndatecontrol.cpp
 SOURCE          xnclockface.cpp
 
 USERINCLUDE     ../inc
@@ -51,6 +52,8 @@
 LIBRARY         fbscli.lib
 LIBRARY         gdi.lib
 LIBRARY         hwrmlightclient.lib
+LIBRARY         commonengine.lib
+LIBRARY         bafl.lib
 
 LANG            SC
 
--- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockadapter.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockadapter.h	Tue Sep 14 20:58:58 2010 +0300
@@ -30,6 +30,7 @@
 // Forward declarations
 class CXnNodePluginIf;
 class CXnClockControl;
+class CXnDateControl;
 class CAknLayoutFont;
 class CFont;
 class TRgb;
@@ -42,22 +43,20 @@
 */
 NONSHARABLE_CLASS( CXnClockAdapter ) : public CXnControlAdapter, 
     public MCoeMessageMonitorObserver, public MHWRMLightObserver
-    {
-public:
-    enum TClockFont
-        {
-        EDigitalFont,
-        EAmPmFont,
-        EDateFont
-        };
-    
+    {    
 public: 
     // constructor and destructor
     
 	/**
 	 * 2 phase construction.
+	 * 
+	 * @param aParent Parent control
+	 * @param aNode clock node
+	 * 
+	 * @return Newly constructed object
 	 */
-	static CXnClockAdapter* NewL( CXnControlAdapter* aParent, CXnNodePluginIf& aNode );
+	static CXnClockAdapter* NewL( CXnControlAdapter* aParent,
+                                  CXnNodePluginIf& aNode );
 
 	/**
 	 * Destructor.
@@ -66,39 +65,46 @@
 
 public: 
 	// New functions
-
-    /** 
-    * Gets font based on type
-    * 
-    * @return Font based on aType, NULL if not found
-    */    
-    const CAknLayoutFont* FontL( const TInt aType );
-        
-    /**
-    * Gets text color
-    * 
-    * @return Text color
-    */
-    const TRgb& TextColorL();
-
-    /**
-    * Gets date information
-    * 
-    * @return A node which holds date information
-    */    
-    CXnNodePluginIf* Date() const;
-
-    /**
-    * Gets day information
-    * 
-    * @return A node which holds day information
-    */    
-    CXnNodePluginIf* Day() const;
+    
+    /*
+     * Create font
+     * 
+     * @param aNode Node which contains info of font
+     * @param aFontName Font name
+     * @param aFont On return points to a created font
+     */    
+    void CreateFontL( CXnNodePluginIf& aNode,
+                      const TDesC& aFontName,
+                      CFont*& aFont );
+    
+    /*
+     * Create color
+     * 
+     * @param aNode Node which contains color info
+     * @param aColor On return points to a created color
+     */        
+    void CreateColorL( CXnNodePluginIf& aNode, TRgb& aColor );
 
     /**
     * Calls DrawNow, if node is laidout
     */        
     void UpdateDisplay() const;
+    
+    /**
+    * Sets clock format
+    * 
+    * @param aFormat format of clock to set
+    */
+    void SetClockFormatL( TClockFormat aFormat );
+    
+    /**
+    * Gets text align from text-align property
+    * 
+    * @param aNode Node which contains property
+    * 
+    * @return Text align or CGraphicsContext::ECenter if property is not set
+    */
+    CGraphicsContext::TTextAlign GetTextAlignL( CXnNodePluginIf& aNode );
 
 public: 
     // from base classes
@@ -164,16 +170,6 @@
 	void ConstructL();
 
 private: // New functions
-
-    /*
-     * Create font
-     */    
-    void CreateFontL( const TInt aType );
-
-    /*
-     * Create color
-     */        
-    void CreateColorL();
         
     /**
      * Starts clock
@@ -185,29 +181,47 @@
      */
     void StopClock();
     
+    /**
+    * Sets display property of node to block or none
+    * 
+    * @param aNode Node which display property is set
+    * @param aBlock Value of display property to set
+    */
+    void SetDisplayToBlockL( CXnNodePluginIf& aNode, TBool aBlock );
+    
 private:
     // Parent control, not owned
     CXnControlAdapter*  		iParent;        
     // UI node, not owned
     CXnNodePluginIf&    		iNode;
-    // Digital clock date information, not owned
+    // Digital clock element, not owned    
+    CXnNodePluginIf*            iDigital;
+    // Analog clock element, not owned
+    CXnNodePluginIf*            iAnalog;
+    // Day number element, not owned
+    CXnNodePluginIf*            iDay;
+    // Am\Pm element, not owned
+    CXnNodePluginIf*            iAmpm;
+    // Digital face 12h element, not owned
+    CXnNodePluginIf*            iDigitalFace12;
+    // Digital face 24h element, not owned
+    CXnNodePluginIf*            iDigitalFace24;
+    // Analog face element, not owned
+    CXnNodePluginIf*            iAnalogFace;
+    // Date element, not owned
     CXnNodePluginIf*            iDate;
-    // Analog clock day information, not owned
-    CXnNodePluginIf*            iDay;
+    // Digital clock date element, not owned
+    CXnNodePluginIf*            iDigitalDate;
+    // Analog clock date element, not owned
+    CXnNodePluginIf*            iAnalogDate;    
     // Light observer, owned
     CHWRMLight*                 iLightObserver;
-    // Clock control, owned    
-    CXnClockControl*            iClockControl;  
-    // Digital clock font, not owned
-    CFont*                      iDigitalFont;   
-    // AmPm font, not owned
-    CFont*                      iAmPmFont;      
-    // Date font, not owned
-    CFont*                      iDateFont;      
-    // Font color
-    TRgb                        iColor;
-    // Flag for initializing font color
-    TBool                       iColorSet;
+    // Clock control, owned
+    CXnClockControl*            iClockControl;
+    // Date control, owned
+    CXnDateControl*             iDateControl;
+    // Day number control, owned
+    CXnDateControl*             iDayControl;
     // Flag indicating foreground state
     TBool                       iForeground;
     // Flag indicating lights status
--- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockcontrol.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockcontrol.h	Tue Sep 14 20:58:58 2010 +0300
@@ -28,6 +28,7 @@
 class CWindowGc;
 class CXnClockAdapter;
 class CXnClockFace;
+class CXnNodePluginIf;
 
 // Class declaration
 /**
@@ -44,17 +45,15 @@
     *
     * @since S60 5.1
     *
-    * @param  aContainerWindow   Container window for the clock component.
-    *
+    * @param aAdapter Reference to clockadapter.
     * @param  aFormatFromLocale  Boolean flag to indicate whether the clock
     *                            format should be updated from the locale.
-    *
-    * @param  aContextPaneClock  Boolean flag that indicates whether the
-    *                            clock is in the context pane.
+    * @param  aFormat Boolean flag that indicates whether the
+    *                            clock is digital or analog.
     *
     * @return Newly constructed object.
     */
-    static CXnClockControl* NewL( CXnClockAdapter* aAdapter,
+    static CXnClockControl* NewL( CXnClockAdapter& aAdapter,
                                   const TBool aFormatFromLocale,
                                   const TClockFormat aFormat );
                                               
@@ -91,9 +90,10 @@
     * Draws the clock
     *
     * @param aGc Context where to draw
-    * @param aRect Rect Clock rect 
+    * @param aNode Node to draw
+    * @param aAmpm Possible am/pm text to draw 
     */
-    void Draw( CWindowGc& aGc, const TRect& aRect );
+    void Draw( CWindowGc& aGc, CXnNodePluginIf* aNode, CXnNodePluginIf* aAmpm );
     
     /**
     * Starts the clock timer.
@@ -106,6 +106,16 @@
     * Used when the clock loses visibility.
     */
     void StopTimer();
+    
+    /**
+    * Checks if clock format has changed 
+    */
+    void CheckClockFormatL();
+    
+    /**
+    * Reset font and color 
+    */
+    void ResetFont();
 
 private: // New functions
 
@@ -123,7 +133,7 @@
     /**
     * C++ default constructor.
     */
-    CXnClockControl( CXnClockAdapter* aAdapter,
+    CXnClockControl( CXnClockAdapter& aAdapter,
                      const TBool aFormatFromLocale,
                      const TClockFormat aFormat );
                         
@@ -139,11 +149,13 @@
     // Clock face, owned
     CXnClockFace*           iFace;
     // Clock adapter, not owned
-    CXnClockAdapter*        iAdapter;            
+    CXnClockAdapter&        iAdapter;            
     // Clock format
-    TClockFormat            iClockFormat;    
-    // Flag indicating whetger format clock from locale
-    TBool                   iFormatFromLocale;    
+    TClockFormat            iClockFormat;
+    // Time format
+    TTimeFormat             iTimeFormat;
+    // Flag indicating whether format clock from locale
+    TBool                   iFormatFromLocale;
     };
 
 #endif // _XNCLOCKCONTROL_H
--- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockface.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xnclockface.h	Tue Sep 14 20:58:58 2010 +0300
@@ -24,6 +24,7 @@
 
 // FORWARD DECLARATIONS
 class CXnClockAdapter;
+class CXnNodePluginIf;
 class CWindowGc;
 
 // CLASS DECLARATIONS
@@ -49,22 +50,35 @@
         * @since S60 5.1
         *
         * @param aAdapter Clock adapter
-        *   
         * @param aGc Graphics context that can be used to draw to
-        *   the clock
-        *
-        * @param aRect Rect where to scale the clock
-        *                   
+        *                     the clock
+        * @param aNode Node which contains drawing info
         * @param aTime Time to be used for drawing.
+        * @param aAmpm Possible am\pm text to draw
         */
         virtual void DrawL( CXnClockAdapter& aAdapter,
                             CWindowGc& aGc, 
-                            const TRect& aRect, 
-                            const TTime& aTime ) = 0;                                    
+                            CXnNodePluginIf& aNode, 
+                            const TTime& aTime,
+                            CXnNodePluginIf* aAmpm ) = 0;
+        
+        /**
+        * Reset font
+        */
+        virtual void ResetFont() = 0;
     };
 
 class CXnClockFaceDigital : public CXnClockFace
     {
+    public:
+        /**
+        * Type of font, digital or for am/pm text
+        */
+        enum TXnClockFontType {
+                              EClock,
+                              EAmpm
+                              };
+
     public:  // Constructors and destructor
         
         /**
@@ -84,8 +98,14 @@
         */
         void DrawL( CXnClockAdapter& aAdapter,
                     CWindowGc& aGc, 
-                    const TRect& aRect, 
-                    const TTime& aTime );
+                    CXnNodePluginIf& aNode, 
+                    const TTime& aTime,
+                    CXnNodePluginIf* aAmpm );
+        
+        /**
+        * @see CXnClockFace::ResetFont
+        */
+        void ResetFont();
 
     private:
 
@@ -98,8 +118,60 @@
         * By default Symbian 2nd phase constructor is private.
         */
         void ConstructL();
+        
+        /**
+        * Draws am/pm text
+        * 
+        * @param aAdapter Clock adapter
+        * @param aGc Graphics context that can be used to draw to
+        *                     the clock
+        * @param aTime Time to be used for drawing.
+        * @param aAmpm Contains info for drawing
+        */
+        void DrawAmpmL( CXnClockAdapter& aAdapter,
+                        CWindowGc& aGc,
+                        const TTime& aTime,
+                        CXnNodePluginIf& aAmpm );
+        
+        /**
+        * Creates font
+        * 
+        * @param aAdapter Clock adapter
+        * @param aNode Contains info to create font
+        * @param aFontType Digital clock font or am/pm font
+        * 
+        * @return CAknLayoutFont
+        */
+        const CAknLayoutFont* CreateFontL( CXnClockAdapter& aAdapter,
+                                           CXnNodePluginIf& aNode,
+                                           TXnClockFontType aFontType );
+        
+        /**
+        * Creates font color
+        * 
+        * @param aAdapter Clock adapter
+        * @param aNode Contains info to create color
+        * @param aFontType Digital clock font color or am/pm font color
+        * 
+        * @return Color
+        */
+        const TRgb& CreateColorL( CXnClockAdapter& aAdapter,
+                                  CXnNodePluginIf& aNode,
+                                  TXnClockFontType aFontType);
 
     private:    // Data
+        // Date font, not owned
+        CFont*  iClockFont;
+        // Date font, not owned
+        CFont*  iAmpmFont;
+        // Digital clock font color
+        TRgb    iFaceColor;
+        // Indicates whether digital clock color should be created
+        TBool   iIsFaceColorSet;
+        // Am/pm text font color
+        TRgb    iAmpmColor;
+        // Indicates whether am/pm font color should be created
+        TBool   iIsAmpmColorSet;
     };
 
 class CXnClockFaceAnalog : public CXnClockFace
@@ -123,8 +195,14 @@
         */           
         void DrawL( CXnClockAdapter& aAdapter,
                     CWindowGc& aGc, 
-                    const TRect& aRect, 
-                    const TTime& aTime ); 
+                    CXnNodePluginIf& aNode, 
+                    const TTime& aTime,
+                    CXnNodePluginIf* aAmpm );
+        
+        /**
+        * @see CXnClockFace::ResetFont
+        */
+        void ResetFont();
 
     private: // New functions
 
@@ -132,10 +210,8 @@
         * Draws the hands of the clock.
         *
         * @param aGc Graphics context that can be used to draw to the
-        *   clock
-        *
+        *                     clock
         * @param aRect Rectangle defining the size of the clock.
-        *
         * @param aDateTime Time to be used for drawing.
         */                       
         void DrawHandsL( CWindowGc& aGc, const TRect& aRect,
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/inc/xndatecontrol.h	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,161 @@
+/*
+* Copyright (c) 2006-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:  Date control
+*
+*/
+
+
+#ifndef _XNDATECONTROL_H
+#define _XNDATECONTROL_H
+
+// System includes
+#include <e32base.h>
+
+// User includes
+
+// Forward declarations
+class CWindowGc;
+class CXnClockAdapter;
+class CXnNodePluginIf;
+class CEnvironmentChangeNotifier;
+
+enum TXnDateType {
+                 EDate,
+                 EDay
+                 };
+
+// Class declaration
+/**
+*  @ingroup group_xnclockfactory
+*  @lib xnclockfactory.lib
+*  @since S60 5.0
+*/
+NONSHARABLE_CLASS( CXnDateControl ) : public CBase
+    {
+public: // Constructors and destructor
+
+    /**
+    * Two-phased constructor.
+    *
+    * @since S60 5.1
+    *
+    * @param aAdapter Clock adapter
+    * @param aType Type of date. Could be date or day number
+    *
+    * @return Newly constructed object.
+    */
+    static CXnDateControl* NewL( CXnClockAdapter& aAdapter,
+                                 TXnDateType aType );
+                                              
+
+    /**
+    * Destructor.
+    */
+    virtual ~CXnDateControl();
+
+public: // New functions
+        
+    /**
+    * Draws the clock
+    *
+    * @param aGc Context where to draw
+    * @param aNode Contains drawing info 
+    */
+    void DrawL( CWindowGc& aGc, CXnNodePluginIf* aNode );
+    
+    /**
+    * Resets font and color values
+    */
+    void ResetFont();
+
+private: // New functions
+
+    /**
+    * Constructs date string
+    *
+    * @return pointer to date string.
+    */
+    HBufC* ConstructDateStringL();
+    
+    /**
+    * Constructs day number string
+    *
+    * @return pointer to day number string.
+    */
+    HBufC* ConstructDayStringL();
+
+private:
+
+    /**
+    * C++ default constructor.
+    */
+    CXnDateControl( CXnClockAdapter& aAdapter,
+                    TXnDateType aType );
+                        
+    /**
+    * By default Symbian 2nd phase constructor is private.
+    */
+    void ConstructL();
+    
+    /**
+    * Creates font
+    * 
+    * @param aNode Contains info of font
+    * 
+    * @return CAknLayoutFont
+    */
+    const CAknLayoutFont* CreateFontL( CXnNodePluginIf& aNode );
+    
+    /**
+    * Creates font color
+    * 
+    * @param aNode Contains info of color
+    */
+    const TRgb& CreateColorL( CXnNodePluginIf& aNode );
+    
+    /**
+    * Callback when enviroment changed.
+    * 
+    * @param aPtr Pointer to self
+    * 
+    * @return KErrNone
+    */
+    static TInt HandleCallBackL( TAny *aPtr );
+    
+    /**
+    * Updated date/day string
+    */
+    void RefreshDateL();
+
+private: // data
+
+    // Holds date/day text, owned
+    HBufC*	iDateText;
+    // Clock adapter
+    CXnClockAdapter& iAdapter;
+    // Date font, not owned
+    CFont*  iDateFont;
+    // Font color
+    TRgb    iDateColor;
+    // Indicates whether color should be created
+    TBool   iIsColorSet;
+    // Environment notifier, owned
+    CEnvironmentChangeNotifier* iEnvNotifier;
+    // Type of date. Could be date or day number
+    TXnDateType iDateType;
+    };
+
+#endif // _XNDATECONTROL_H
+
+// End of File
--- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockadapter.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockadapter.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -31,15 +31,13 @@
 #include "xncontroladapter.h"
 #include "xnclockcontrol.h"
 #include "xnclockadapter.h"
+#include "xndatecontrol.h"
 #include "c_xnutils.h"
 
 // Constants
-_LIT8( KDateInformation, "Clock/DateInformation" );
-_LIT8( KDayInformation, "Clock/DayInformation" );
-
-_LIT( KDigitalFont, "EAknLogicalFontSecondaryFont" );
-_LIT( KAmPmFont, "EAknLogicalFontSecondaryFont" );
-_LIT( KDateFont, "EAknLogicalFontSecondaryFont" );
+_LIT8( KDisplay, "display" );
+_LIT8( KNone, "none" );
+_LIT8( KBlock, "block" );
 
 // ============================ LOCAL FUNCTIONS ===============================    
 
@@ -120,6 +118,8 @@
 
     delete iLightObserver;    
     delete iClockControl;
+    delete iDateControl;
+    delete iDayControl;
     }
 
 // -----------------------------------------------------------------------------
@@ -135,45 +135,177 @@
     
     iLightObserver = CHWRMLight::NewL( this );
     
+    TBool useLocale;
+    CXnProperty* prop( 
+        iNode.GetPropertyL( XnPropertyNames::clock::KS60Format ) );
+    TClockFormat format( ClockFormat( prop, useLocale ) );
+    
     RPointerArray< CXnNodePluginIf > children( iNode.ChildrenL() );
     CleanupClosePushL( children );
     
-    for( TInt i = 0; i < children.Count(); i++ )
+    for ( TInt i = 0; i < children.Count(); i++ )
         {
         CXnNodePluginIf* child( children[i] );
-        
-        CXnProperty* id( child->IdL() );
+        const TDesC8& clocktype = child->Type()->Type();
         
-        if( id )         
+        if ( clocktype == XnPropertyNames::clock::format::KDigital )
+            {
+            iDigital = child;
+            }
+        else if ( clocktype == XnPropertyNames::clock::format::KAnalog )
+            {
+            iAnalog = child;
+            }
+        else if ( clocktype == XnPropertyNames::clock::KDate )
             {
-            if( id->StringValue() == KDateInformation )
+            if ( !iDateControl )
+                {
+                iDateControl = CXnDateControl::NewL( *this, EDate );
+                }
+            iDate = child;
+            }
+
+        RPointerArray< CXnNodePluginIf > clockChildren( child->ChildrenL() );
+        CleanupClosePushL( clockChildren );
+        for ( TInt j = 0; j < clockChildren.Count(); j++ )
+            {
+            CXnNodePluginIf* clockChild( clockChildren[j] );
+            const TDesC8& childType = clockChild->Type()->Type();
+            
+            if ( childType == XnPropertyNames::clock::KFace12 )
+                {
+                if ( !iClockControl )
+                    {
+                    iClockControl = CXnClockControl::NewL( *this, useLocale, format );
+                    }
+                iDigitalFace12 = clockChild;
+                }
+            else if ( childType == XnPropertyNames::clock::KFace24 )
                 {
-                iDate = child;                               
+                if ( !iClockControl )
+                    {
+                    iClockControl = CXnClockControl::NewL( *this, useLocale, format );
+                    }
+                iDigitalFace24 = clockChild;
                 }
-            else if( id->StringValue() == KDayInformation )
+            else if ( childType == XnPropertyNames::clock::KFace )
+               {
+                if ( !iClockControl )
+                    {
+                    iClockControl = CXnClockControl::NewL( *this, useLocale, format );
+                    }
+                iAnalogFace = clockChild;
+               }
+            else if ( childType == XnPropertyNames::clock::KDate &&
+                      clocktype == XnPropertyNames::clock::format::KDigital )
                 {
-                iDay = child;
+                if ( !iDateControl )
+                    {
+                    iDateControl = CXnDateControl::NewL( *this, EDate );
+                    }
+                iDigitalDate = clockChild;
+                }
+            else if ( childType == XnPropertyNames::clock::KDate &&
+                      clocktype == XnPropertyNames::clock::format::KAnalog )
+                {
+                if ( !iDateControl )
+                    {
+                    iDateControl = CXnDateControl::NewL( *this, EDate );
+                    }
+                iAnalogDate = clockChild;
                 }
+            else if ( childType == XnPropertyNames::clock::KDay )
+               {
+                if ( !iDayControl )
+                    {
+                    iDayControl = CXnDateControl::NewL( *this, EDay );
+                    }
+                iDay = clockChild;
+               }
+            else if ( childType == XnPropertyNames::clock::KAmpm )
+               {
+                iAmpm = clockChild;
+               }
             }
+        CleanupStack::PopAndDestroy( &clockChildren );
         }
         
     CleanupStack::PopAndDestroy( &children );
     
-    TBool useLocale;
-
-    CXnProperty* prop( 
-        iNode.GetPropertyL( XnPropertyNames::clock::KS60Format ) );    
-    
-    TClockFormat format( ClockFormat( prop, useLocale ) );   
-    
-    iClockControl = CXnClockControl::NewL( this, useLocale, format );    
+    SetClockFormatL( format );
     
     iCoeEnv->AddMessageMonitorObserverL( *this );
 	}
+
+// -----------------------------------------------------------------------------
+// CXnClockAdapter::SetDisplayToBlockL
+// -----------------------------------------------------------------------------
+// 
+void CXnClockAdapter::SetDisplayToBlockL( CXnNodePluginIf& aNode, TBool aBlock )
+    {
+    CXnDomStringPool& sp = aNode.UiEngineL()->StringPool();
+    CXnProperty* prop;
+    if ( aBlock )
+        {
+        prop = CXnProperty::NewL( 
+            KDisplay, KBlock, CXnDomPropertyValue::EString, sp );
+        }
+    else
+        {
+        prop = CXnProperty::NewL( 
+            KDisplay, KNone, CXnDomPropertyValue::EString, sp );
+        }
+    CleanupStack::PushL( prop );
+    aNode.SetPropertyL( prop );
+    CleanupStack::Pop( prop );
+    }
+
+// -----------------------------------------------------------------------------
+// CXnClockAdapter::SetClockFormatL
+// -----------------------------------------------------------------------------
+// 
+void CXnClockAdapter::SetClockFormatL( TClockFormat aFormat )
+    {
+    if ( iAnalog && iDigital )
+        {
+        if ( aFormat == EClockAnalog  )
+            {
+            SetDisplayToBlockL( *iAnalog, ETrue );
+            SetDisplayToBlockL( *iDigital, EFalse );
+            }
+        else
+            {
+            SetDisplayToBlockL( *iDigital, ETrue );
+            SetDisplayToBlockL( *iAnalog, EFalse );
+            // check whether time format is 12 or 24
+            if ( iDigitalFace12 && iDigitalFace24 )
+                {
+                if ( TLocale().TimeFormat() == ETime12 )
+                    {
+                    SetDisplayToBlockL( *iDigitalFace12, ETrue );
+                    if ( iAmpm )
+                        {
+                        SetDisplayToBlockL( *iAmpm, ETrue );
+                        }
+                    SetDisplayToBlockL( *iDigitalFace24, EFalse );
+                    }
+                else
+                    {
+                    SetDisplayToBlockL( *iDigitalFace24, ETrue );
+                    SetDisplayToBlockL( *iDigitalFace12, EFalse );
+                    if ( iAmpm )
+                        {
+                        SetDisplayToBlockL( *iAmpm, EFalse );
+                        }
+                    }
+                }
+            }
+        iNode.UiEngineL()->LayoutUIL( &iNode );
+        }
+    }
  
 // -----------------------------------------------------------------------------
 // CXnClockAdapter::DoHandlePropertyChangeL
-//
 // -----------------------------------------------------------------------------
 //
 void CXnClockAdapter::DoHandlePropertyChangeL( CXnProperty* aProperty )
@@ -182,7 +314,7 @@
         {
         const TDesC8& name( aProperty->Property()->Name() );
         
-        if( name == XnPropertyNames::clock::KS60Format )
+        if( iClockControl && name == XnPropertyNames::clock::KS60Format )
             {
             TBool useLocale;
             
@@ -190,28 +322,11 @@
             
             iClockControl->SetFormatL( useLocale, format );
             }
-        else if( name == XnPropertyNames::clock::KS60DigitalFontSize )            
-            {
-            iDigitalFont = NULL;            
-            }
-        else if( name == XnPropertyNames::clock::KS60AmPmFontSize )
-            {
-            iAmPmFont = NULL;
-            }
-        else if( name == XnPropertyNames::clock::KS60DateFontSize )
-            {
-            iDateFont = NULL;
-            }
-        else if( name == XnPropertyNames::appearance::common::KColor )
-            {
-            iColorSet = EFalse;
-            }
         }
     }
 
 // -----------------------------------------------------------------------------
 // CXnClockAdapter::UpdateDisplay
-// Draws the clock component
 // -----------------------------------------------------------------------------
 //
 void CXnClockAdapter::UpdateDisplay() const
@@ -224,7 +339,6 @@
 
 // -----------------------------------------------------------------------------
 // CXnClockAdapter::Draw
-// Draws the clock component
 // -----------------------------------------------------------------------------
 //
 void CXnClockAdapter::Draw( const TRect& aRect ) const
@@ -232,13 +346,51 @@
     CXnControlAdapter::Draw( aRect );
     
     CWindowGc& gc( SystemGc() );
-           
-    iClockControl->Draw( gc, iNode.Rect() );
+
+    if ( iClockControl )
+        {
+        TClockFormat format = iClockControl->Format();
+        if ( format == EClockAnalog )
+            {
+            iClockControl->Draw( gc, iAnalogFace, NULL );
+            }
+        else
+            {
+            if ( TLocale().TimeFormat() == ETime12 )
+                {
+                iClockControl->Draw( gc, iDigitalFace12, iAmpm );
+                }
+            else
+                {
+                iClockControl->Draw( gc, iDigitalFace24, NULL );
+                }
+            }
+        }
+    
+    if ( iDateControl )
+        {
+        if ( iClockControl && iClockControl->Format() == EClockAnalog && iAnalogDate )
+            {
+            TRAP_IGNORE( iDateControl->DrawL( gc, iAnalogDate ) );
+            }
+        else if ( iClockControl && iClockControl->Format() == EClockDigital && iDigitalDate )
+            {
+            TRAP_IGNORE( iDateControl->DrawL( gc, iDigitalDate ) );
+            }
+        else
+            {
+            TRAP_IGNORE( iDateControl->DrawL( gc, iDate ) );
+            }
+        }
+    
+    if ( iDayControl )
+        {
+        TRAP_IGNORE( iDayControl->DrawL( gc, iDay ) );
+        }
     }
 
 // -----------------------------------------------------------------------------
 // CXnClockAdapter::MakeVisible
-// 
 // -----------------------------------------------------------------------------
 //        
 void CXnClockAdapter::MakeVisible( TBool aVisible )
@@ -263,7 +415,6 @@
 
 // -----------------------------------------------------------------------------
 // CXnClockAdapter::MonitorWsMessage
-// 
 // -----------------------------------------------------------------------------
 //    
 void CXnClockAdapter::MonitorWsMessage( const TWsEvent& aEvent )
@@ -284,9 +435,13 @@
     if( foreground != iForeground )            
         {
         if( iForeground )
-            {   
+            {
+            // check if clock format has changed
+            if ( iClockControl )
+                {
+                TRAP_IGNORE( iClockControl->CheckClockFormatL() );
+                }
             UpdateDisplay();
-            
             // Start clock ensures UI state
             StartClock();
             }
@@ -299,7 +454,6 @@
 
 // -----------------------------------------------------------------------------
 // CXnClockAdapter::LightStatusChanged
-// 
 // -----------------------------------------------------------------------------
 //    
 void CXnClockAdapter::LightStatusChanged( TInt aTarget, 
@@ -328,185 +482,101 @@
         }
     }
 
-
 // -----------------------------------------------------------------------------
-// CXnClockAdapter::FontL
-// 
+// CXnClockAdapter::GetTextAlignL
 // -----------------------------------------------------------------------------
-//    
-const CAknLayoutFont* CXnClockAdapter::FontL( const TInt aType )
+// 
+CGraphicsContext::TTextAlign CXnClockAdapter::GetTextAlignL( CXnNodePluginIf& aNode )
     {
-    CFont* font( NULL );
+    CGraphicsContext::TTextAlign ret = CGraphicsContext::ECenter;
+    CXnProperty* prop( aNode.GetPropertyL( 
+            XnPropertyNames::appearance::common::KTextAlign ) );
     
-    if( aType == EDigitalFont )
-        {
-        if( !iDigitalFont )
-            {            
-            CreateFontL( aType );
-            }
-        
-        font = iDigitalFont;        
-        }
-    else if( aType == EAmPmFont )
-        {
-        if( !iAmPmFont )
-            {
-            CreateFontL( aType );        
-            }
-        
-        font = iAmPmFont;
-        }
-    else if( aType == EDateFont )
-        {
-        if( !iDateFont )
-            {
-            CreateFontL( aType );        
-            }
-        
-        font = iDateFont;        
-        }
-    
-    if( font )
+    if( prop )
         {
-        return CAknLayoutFont::AsCAknLayoutFontOrNull( font );
-        }
-    
-    return NULL;
-    }
-
-// -----------------------------------------------------------------------------
-// CXnClockAdapter::TextColorL
-// 
-// -----------------------------------------------------------------------------
-//    
-const TRgb& CXnClockAdapter::TextColorL()
-    {    
-    if( !iColorSet )
-        {
-        CreateColorL();
+        if ( prop->StringValue() ==
+                XnPropertyNames::appearance::common::textalign::KAlignLeft )
+            {
+            ret = CGraphicsContext::ELeft;
+            }
+        else if ( prop->StringValue() ==
+                XnPropertyNames::appearance::common::textalign::KAlignRight )
+            {
+            ret = CGraphicsContext::ERight;
+            }
+        else if ( prop->StringValue() ==
+                XnPropertyNames::appearance::common::textalign::KAlignCenter )
+            {
+            ret = CGraphicsContext::ECenter;
+            }
         }
-        
-    return iColor;            
-    }
-
-// -----------------------------------------------------------------------------
-// CXnClockAdapter::Date
-// 
-// -----------------------------------------------------------------------------
-//    
-CXnNodePluginIf* CXnClockAdapter::Date() const
-    {
-    return iDate;
-    }
-
-// -----------------------------------------------------------------------------
-// CXnClockAdapter::Day
-// 
-// -----------------------------------------------------------------------------
-//    
-CXnNodePluginIf* CXnClockAdapter::Day() const
-    {
-    return iDay;
+    return ret;
     }
 
 // -----------------------------------------------------------------------------
 // CXnClockAdapter::CreateFontL
-// 
 // -----------------------------------------------------------------------------
 //    
-void CXnClockAdapter::CreateFontL( const TInt aType )   
+void CXnClockAdapter::CreateFontL( CXnNodePluginIf& aNode,
+                                   const TDesC& aFontName,
+                                   CFont*& aFont )
     {
     TFontSpec spec;
     TInt dummy;
+    
+    CXnProperty* prop( aNode.GetPropertyL( 
+        XnPropertyNames::clock::KS60FontSize ) );
 
-    if( aType == EDigitalFont )
+    // default
+    TInt height( ( aNode.Rect().Height() / 5 ) );
+
+    if ( prop )
         {
-        iDigitalFont = NULL;
-        
-        CXnProperty* prop( iNode.GetPropertyL( 
-            XnPropertyNames::clock::KS60DigitalFontSize ) );
-
-        // default
-        TInt height( ( iNode.Rect().Height() / 3 ) * 2 );
-
+        height = aNode.UiEngineL()->VerticalPixelValueL(
+            prop, aNode.Rect().Height() );
+        }
+    else
+        {
+        // check if fontsize is defined in clock element
+        prop = iNode.GetPropertyL( 
+            XnPropertyNames::clock::KS60FontSize );
         if ( prop )
             {
             height = iNode.UiEngineL()->VerticalPixelValueL(
                 prop, iNode.Rect().Height() );
             }
-                                            
-        // No need to relase avkon font
-        CXnUtils::CreateFontL( KDigitalFont, 
-                               height,
-                               spec.iFontStyle,
-                               iDigitalFont,
-                               dummy );
         }
-    else if( aType == EAmPmFont )
-        {
-        iAmPmFont = NULL;
-
-        CXnProperty* prop( iNode.GetPropertyL( 
-            XnPropertyNames::clock::KS60AmPmFontSize ) );
-        
-        // default
-        TInt height( ( iNode.Rect().Height() / 5 ) );
-
-        if ( prop )
-            {
-            height = iNode.UiEngineL()->VerticalPixelValueL(
-                prop, iNode.Rect().Height() );
-            }        
-        
-        // No need to relase avkon font
-        CXnUtils::CreateFontL( KAmPmFont, 
-                               height,
-                               spec.iFontStyle,
-                               iAmPmFont,
-                               dummy );      
-        }
-    else if( aType == EDateFont )
-        {
-        iDateFont = NULL;
-        
-        CXnProperty* prop( iNode.GetPropertyL( 
-            XnPropertyNames::clock::KS60DateFontSize ) );
-        
-        // default 
-        TInt height( ( iNode.Rect().Height() / 5 ) );
-        
-        if ( prop )
-            {
-            height = iNode.UiEngineL()->VerticalPixelValueL(
-                prop, iNode.Rect().Height() );
-            }
-        
-        // No need to relase avkon font
-        CXnUtils::CreateFontL( KDateFont, 
-                               height,
-                               spec.iFontStyle,
-                               iDateFont,
-                               dummy );              
-        }
+                                        
+    // No need to relase avkon font
+    CXnUtils::CreateFontL( aFontName, 
+                           height,
+                           spec.iFontStyle,
+                           aFont,
+                           dummy );
     }
 
 // -----------------------------------------------------------------------------
 // CXnClockAdapter::CreateColorL
-// 
 // -----------------------------------------------------------------------------
 //    
-void CXnClockAdapter::CreateColorL()
+void CXnClockAdapter::CreateColorL( CXnNodePluginIf& aNode, TRgb& aColor )
     {        
     TRgb color;
             
     TInt result( KErrNone );
         
-    CXnProperty* prop( iNode.GetPropertyL( 
+    CXnProperty* prop( aNode.GetPropertyL( 
         XnPropertyNames::appearance::common::KColor ) );
     
     if( !prop )
         {
-        return;
+        // check if color is defined in clock element
+        prop = iNode.GetPropertyL( 
+            XnPropertyNames::appearance::common::KColor );
+        if ( !prop )
+            {
+            return;
+            }
         }
         
     CXnDomProperty* domProp( prop->Property() );
@@ -554,53 +624,78 @@
         
     if( result == KErrNone )
         {
-        iColorSet = ETrue;
-        iColor = color;
+        aColor = color;
         }            
     }
 
 // -----------------------------------------------------------------------------
 // CXnClockAdapter::SkinChanged
-// Skin change notification
 // -----------------------------------------------------------------------------
 //  
 void CXnClockAdapter::SkinChanged()
     {
-    iAmPmFont = iDigitalFont = iDateFont = NULL;
-    iColorSet = EFalse;
+    if ( iClockControl )
+        {
+        iClockControl->ResetFont();
+        }
+    if ( iDateControl )
+        {
+        iDateControl->ResetFont();
+        }
+    if ( iDayControl )
+        {
+        iDayControl->ResetFont();
+        }
     
     CXnControlAdapter::SkinChanged();
     }
 
 // -----------------------------------------------------------------------------
 // CXnClockAdapter::HandleScreenDeviceChangedL
-// Screen device change notification
 // -----------------------------------------------------------------------------
 //  
 void CXnClockAdapter::HandleScreenDeviceChangedL()
     {
-    iAmPmFont = iDigitalFont = iDateFont = NULL;
-    iColorSet = EFalse;
+    if ( iClockControl )
+        {
+        iClockControl->ResetFont();
+        }
+    if ( iDateControl )
+        {
+        iDateControl->ResetFont();
+        }
+    if ( iDayControl )
+        {
+        iDayControl->ResetFont();
+        }
     
     CXnControlAdapter::HandleScreenDeviceChangedL();
     }
 
 // -----------------------------------------------------------------------------
 // CXnClockAdapter::SizeChanged
-// Size changed notification
 // -----------------------------------------------------------------------------
 //  
 void CXnClockAdapter::SizeChanged()
     {
-    iAmPmFont = iDigitalFont = iDateFont = NULL;
-    iColorSet = EFalse;
+    if ( iClockControl )
+        {
+        iClockControl->ResetFont();
+        }
+    if ( iDateControl )
+        {
+        iDateControl->ResetFont();
+        }
+    if ( iDayControl )
+        {
+        iDayControl->ResetFont();
+        }
     
     CXnControlAdapter::SizeChanged();    
     }
 
 // -----------------------------------------------------------------------------
 // CXnClockAdapter::StartClock
-// 
 // -----------------------------------------------------------------------------
 // 
 void CXnClockAdapter::StartClock()
@@ -620,7 +715,6 @@
 
 // -----------------------------------------------------------------------------
 // CXnClockAdapter::StopClock
-// 
 // -----------------------------------------------------------------------------
 // 
 void CXnClockAdapter::StopClock()
@@ -628,7 +722,7 @@
     if ( iClockControl )
         {
         iClockControl->StopTimer();
-        }    
+        }
     }
 
 // End of file
--- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockcontrol.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockcontrol.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -24,7 +24,7 @@
 #include "xncontroladapter.h"
 #include "xnclockadapter.h"
 #include "xnclockface.h"
-
+#include "xnnodepluginif.h"
 #include "xnclockcontrol.h"
 
 // Constants
@@ -39,12 +39,12 @@
 // might leave.
 // -----------------------------------------------------------------------------
 //
-CXnClockControl::CXnClockControl( CXnClockAdapter* aAdapter,
+CXnClockControl::CXnClockControl( CXnClockAdapter& aAdapter,
                                   const TBool aFormatFromLocale,
                                   const TClockFormat aFormat )
     : iAdapter( aAdapter ), 
       iClockFormat( aFormat ),
-      iFormatFromLocale ( aFormatFromLocale )      
+      iFormatFromLocale ( aFormatFromLocale )
     {
     }
 
@@ -56,7 +56,7 @@
 void CXnClockControl::ConstructL()
     {           
     iTimer = CPeriodic::NewL( CActive::EPriorityHigh );
-            
+    iTimeFormat = TLocale().TimeFormat();
     SetFormatL( iFormatFromLocale, iClockFormat );   
     }
 
@@ -65,24 +65,20 @@
 // Two-phased constructor.
 // -----------------------------------------------------------------------------
 //
-CXnClockControl* CXnClockControl::NewL( CXnClockAdapter* aAdapter,
+CXnClockControl* CXnClockControl::NewL( CXnClockAdapter& aAdapter,
                                         const TBool aFormatFromLocale,
                                         const TClockFormat aFormat )
     {
     CXnClockControl* self =
         new (ELeave) CXnClockControl( aAdapter, aFormatFromLocale, aFormat );
-        
     CleanupStack::PushL( self );    
     self->ConstructL();
-    
     CleanupStack::Pop( self );
-    
     return self;
     }
 
 // -----------------------------------------------------------------------------
 // Destructor
-//
 // -----------------------------------------------------------------------------
 //
 CXnClockControl::~CXnClockControl()
@@ -93,7 +89,6 @@
 
 // -----------------------------------------------------------------------------
 // CXnClockControl::UpdateDisplay
-// (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
 void CXnClockControl::UpdateDisplay()
@@ -103,12 +98,11 @@
         return;
         }
             
-    iAdapter->UpdateDisplay();
+    iAdapter.UpdateDisplay();
     }
 
 // -----------------------------------------------------------------------------
 // CXnClockControl::SetFormatL
-// (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
 void CXnClockControl::SetFormatL( const TBool aFormatFromLocale, 
@@ -122,14 +116,17 @@
         }
         
     iFormatFromLocale = aFormatFromLocale;
+    
+    TTimeFormat timeFormat = TLocale().TimeFormat();
         
-    if( format == iClockFormat && iFace )
+    if( format == iClockFormat && iFace && timeFormat == iTimeFormat )
         {
         // Already correct face
         return;    
         }      
             
     iClockFormat = format;
+    iTimeFormat = timeFormat;
     
     delete iFace;
     iFace = NULL;
@@ -141,12 +138,22 @@
     else if( format == EClockDigital )
         {
         iFace = CXnClockFaceDigital::NewL();
-        }       
+        }
+    
+    iAdapter.SetClockFormatL( format );
+    }
+
+// -----------------------------------------------------------------------------
+// CXnClockControl::CheckClockFormatL
+// -----------------------------------------------------------------------------
+//
+void CXnClockControl::CheckClockFormatL()
+    {
+    SetFormatL( iFormatFromLocale, iClockFormat );
     }
 
 // -----------------------------------------------------------------------------
 // CXnClockControl::Format
-// (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //       
 TClockFormat CXnClockControl::Format() const
@@ -156,28 +163,38 @@
 
 // -----------------------------------------------------------------------------
 // CXnClockControl::Draw
-// (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //       
-void CXnClockControl::Draw( CWindowGc& aGc, const TRect& aRect )
+void CXnClockControl::Draw( CWindowGc& aGc, CXnNodePluginIf* aNode,
+        CXnNodePluginIf* aAmpm )
     {
-    // Ensure correct appearance
-    TRAP_IGNORE( SetFormatL( iFormatFromLocale, iClockFormat ) );
+    if ( !aNode )
+        {
+        return;
+        }
     
-    if( iFace && !aRect.IsEmpty() )
+    if( iFace && !aNode->Rect().IsEmpty() )
         {
         __PRINT( __DBG_FORMAT( "CXnClockControl::Draw: 0x%X" ), this );
                 
         TTime homeTime;
         homeTime.HomeTime();
 
-        TRAP_IGNORE( iFace->DrawL( *iAdapter, aGc, aRect, homeTime ) );
+        TRAP_IGNORE( iFace->DrawL( iAdapter, aGc, *aNode, homeTime, aAmpm ) );
         }
     }
 
 // -----------------------------------------------------------------------------
+// CXnClockControl::ResetFont
+// -----------------------------------------------------------------------------
+//
+void CXnClockControl::ResetFont()
+    {
+    iFace->ResetFont();
+    }
+
+// -----------------------------------------------------------------------------
 // CXnClockControl::TimerCallback
-// (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
 TInt CXnClockControl::TimerCallback( TAny* aThis )
@@ -206,7 +223,6 @@
     
 // -----------------------------------------------------------------------------
 // CXnClockControl::StartTimer
-// (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
 void CXnClockControl::StartTimer()
@@ -230,7 +246,6 @@
 
 // -----------------------------------------------------------------------------
 // CXnClockControl::StopTimer
-// (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
 void CXnClockControl::StopTimer()
--- a/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockface.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xnclockface.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -38,6 +38,9 @@
 _LIT( KAmPmFormat, "%B" );
 _LIT( KTimeFormat, "%J%:1%T" );
 
+_LIT( KClockFont, "EAknLogicalFontSecondaryFont" );
+_LIT( KAmpmFont, "EAknLogicalFontSecondaryFont" );
+
 // ============================ MEMBER FUNCTIONS ===============================
 
 // -----------------------------------------------------------------------------
@@ -86,123 +89,134 @@
 
 // -----------------------------------------------------------------------------
 // CXnClockFaceDigital::DrawL
-// (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
 void CXnClockFaceDigital::DrawL( CXnClockAdapter& aAdapter, CWindowGc& aGc, 
-    const TRect& aRect, const TTime& aTime )
-    {
+        CXnNodePluginIf& aNode, const TTime& aTime, CXnNodePluginIf* aAmpm )
+    {    
     TBuf< KMaxTimeFormatSpec > time;
     aTime.FormatL( time, KTimeFormat() );
 
-    TBuf< KMaxTimeFormatSpec > ampm;
-    aTime.FormatL( ampm, KAmPmFormat() );
-
     AknTextUtils::LanguageSpecificNumberConversion( time );
 
-    const CAknLayoutFont* clockFont( 
-            aAdapter.FontL( CXnClockAdapter::EDigitalFont ) );
-
-    const CAknLayoutFont* ampmFont( 
-            aAdapter.FontL( CXnClockAdapter::EAmPmFont ) );
-
-    const CAknLayoutFont* dateFont( 
-            aAdapter.FontL( CXnClockAdapter::EDateFont ) );
-
-    const TRgb& color( aAdapter.TextColorL() );
-
-    CXnNodePluginIf* date( aAdapter.Date() );
-
-    const TInt deltaHeight( aRect.Height() - clockFont->TextPaneHeight() );
-    TInt offset( clockFont->TextPaneTopToBaseline() + deltaHeight / 2 );
-
-    if( date )
+    const CAknLayoutFont* clockFont( CreateFontL( aAdapter, aNode, EClock ) );
+    if ( !clockFont )
         {
-        // When date string is shown, time string must be lifted up
-        offset -= ( dateFont->TextPaneHeight() / 2 );
+        return;
         }
 
-    // Measure the full width of the time string 
-    TInt textWidth( AknBidiTextUtils::MeasureTextBoundsWidth( *clockFont, time, 
-        CFont::TMeasureTextInput::EFVisualOrder ) );
+    const TRgb& color( CreateColorL( aAdapter, aNode, EClock) );
 
-    TInt extraWidth( aRect.Width() - textWidth );
-
-    TInt margin( extraWidth / 2 );
+    const TInt deltaHeight( aNode.Rect().Height() - clockFont->TextPaneHeight() );
+    TInt offset( clockFont->TextPaneTopToBaseline() + deltaHeight / 2 );
+    
+    CGraphicsContext::TTextAlign align = aAdapter.GetTextAlignL( aNode );
 
     aGc.SetPenColor( color );
+    aGc.UseFont( clockFont );
+    aGc.DrawText( time, aNode.Rect(), offset, align );
+    aGc.DiscardFont();
 
-    aGc.UseFont( clockFont );
-
-    CGraphicsContext::TTextAlign align;
+    if( TLocale().TimeFormat() == ETime12 && aAmpm )
+        {
+        DrawAmpmL( aAdapter, aGc, aTime, *aAmpm );
+        }
+    }
 
-    TBool mirrored( AknLayoutUtils::LayoutMirrored() );
+// -----------------------------------------------------------------------------
+// CXnClockFaceDigital::DrawAmpmL
+// -----------------------------------------------------------------------------
+//
+void CXnClockFaceDigital::DrawAmpmL( CXnClockAdapter& aAdapter,
+                                     CWindowGc& aGc,
+                                     const TTime& aTime,
+                                     CXnNodePluginIf& aAmpm )
+    {
+    TBuf< KMaxTimeFormatSpec > ampm;
+    aTime.FormatL( ampm, KAmPmFormat() );
+    ampm.Trim();
+    
+    const CAknLayoutFont* ampmFont( CreateFontL( aAdapter, aAmpm, EAmpm ) );
+    if ( !ampmFont )
+        {
+        return;
+        }
+    
+    const TRgb& color( CreateColorL( aAdapter, aAmpm, EAmpm) );
+    
+    const TInt deltaHeight( aAmpm.Rect().Height() - ampmFont->TextPaneHeight() );
+    TInt offset( ampmFont->TextPaneTopToBaseline() + deltaHeight / 2 );
+    
+    CGraphicsContext::TTextAlign align = aAdapter.GetTextAlignL( aAmpm );
 
-    if( mirrored )
+    aGc.SetPenColor( color );
+    aGc.UseFont( ampmFont );
+    aGc.DrawText( ampm, aAmpm.Rect(), offset, align );
+    aGc.DiscardFont();
+    }
+
+// -----------------------------------------------------------------------------
+// CXnClockFaceDigital::CreateFontL
+// -----------------------------------------------------------------------------
+//
+const CAknLayoutFont* CXnClockFaceDigital::CreateFontL( CXnClockAdapter& aAdapter,
+        CXnNodePluginIf& aNode,
+        TXnClockFontType aFontType)
+    {    
+    if ( aFontType == EClock )
         {
-        align = CGraphicsContext::ERight;
+        if ( !iClockFont )
+            {
+            aAdapter.CreateFontL( aNode, KClockFont, iClockFont );
+            }
+        return CAknLayoutFont::AsCAknLayoutFontOrNull( iClockFont );
         }
     else
         {
-        align = CGraphicsContext::ELeft;
-        }
-
-    aGc.DrawText( time, aRect, offset, align, margin );
-
-    aGc.DiscardFont();
-
-    if( TLocale().TimeFormat() == ETime12 )
-        {
-        TRect ampmRect( aRect );
-        TInt ampmHeight( ampmFont->TextPaneHeight() );
-
-        if( mirrored )
+        if ( !iAmpmFont )
             {
-            align = CGraphicsContext::ELeft;
-            }
-        else
-            {
-            align = CGraphicsContext::ERight;
+            aAdapter.CreateFontL( aNode, KAmpmFont, iAmpmFont );
             }
-
-        ampmRect.iTl.iY += ampmHeight;
-
-        aGc.UseFont( ampmFont );
-
-        aGc.DrawText( ampm, ampmRect, offset, align, margin );
-
-        aGc.DiscardFont();
+        return CAknLayoutFont::AsCAknLayoutFontOrNull( iAmpmFont );
         }
+    }
 
-    if( date )
+// -----------------------------------------------------------------------------
+// CXnClockFaceDigital::CreateColorL
+// -----------------------------------------------------------------------------
+//
+const TRgb& CXnClockFaceDigital::CreateColorL( CXnClockAdapter& aAdapter,
+        CXnNodePluginIf& aNode,
+        TXnClockFontType aFontType )
+    {
+    if ( aFontType == EClock )
         {
-        const TDesC* dateStr( &KNullDesC() );
-
-        CXnText* textIf( NULL );
-
-        XnComponentInterface::MakeInterfaceL( textIf, date->AppIfL() );
-
-        if( textIf )
+        if ( !iIsFaceColorSet )
             {
-            dateStr = textIf->Text();
+            aAdapter.CreateColorL( aNode, iFaceColor );
+            iIsFaceColorSet = ETrue;
             }
+        return iFaceColor;
+        }
+    else
+        {
+        if ( !iIsAmpmColorSet )
+            {
+            aAdapter.CreateColorL( aNode, iAmpmColor );
+            iIsAmpmColorSet = ETrue;
+            }
+        return iAmpmColor;
+        }
+    }
 
-        // Measure the full width of the time string 
-        TInt dateWidth( AknBidiTextUtils::MeasureTextBoundsWidth( *dateFont, *dateStr, 
-            CFont::TMeasureTextInput::EFVisualOrder ) );
-
-        TInt width( aRect.Width() - dateWidth );
-        TInt margin( width / 2 );
-
-        // Move date string down by text pane height and 5% of rect height
-        offset += dateFont->TextPaneHeight() + ( aRect.Height() / 20 );
-
-        aGc.UseFont( dateFont );
-
-        aGc.DrawText( *dateStr, aRect, offset, align, margin );
-
-        aGc.DiscardFont();
-        }
+// -----------------------------------------------------------------------------
+// CXnClockFaceDigital::ResetFont
+// -----------------------------------------------------------------------------
+//
+void CXnClockFaceDigital::ResetFont()
+    {
+    iClockFont = iAmpmFont = NULL;
+    iIsFaceColorSet = iIsAmpmColorSet = EFalse;
     }
 
 // ============================ MEMBER FUNCTIONS ===============================
@@ -253,13 +267,12 @@
 
 // -----------------------------------------------------------------------------
 // CXnClockFaceAnalog::DrawL
-// (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
 void CXnClockFaceAnalog::DrawL( CXnClockAdapter& /*aAdapter*/, CWindowGc& aGc, 
-    const TRect& aRect, const TTime& aTime )
-    {
-    TSize faceSize( aRect.Size() );
+        CXnNodePluginIf& aNode, const TTime& aTime, CXnNodePluginIf* /*aAmpm*/ )
+    {    
+    TSize faceSize( aNode.Rect().Size() );
     
     TDateTime dateTime( aTime.DateTime() );
     
@@ -286,7 +299,7 @@
         {
         User::LeaveIfError( AknIconUtils::SetSize( skinMask, faceSize ) );
         
-        aGc.BitBltMasked( aRect.iTl,
+        aGc.BitBltMasked( aNode.Rect().iTl,
                           skinBmp,
                           TRect( TPoint( 0, 0 ), skinBmp->SizeInPixels() ),
                           skinMask,
@@ -294,18 +307,17 @@
         }
     else
         {
-        aGc.BitBlt( aRect.iTl, skinBmp );
+        aGc.BitBlt( aNode.Rect().iTl, skinBmp );
         }
 
     aGc.SetBrushStyle( CGraphicsContext::ENullBrush );
     aGc.SetPenStyle( CGraphicsContext::ESolidPen );
   
-    DrawHandsL( aGc, aRect, dateTime );
+    DrawHandsL( aGc, aNode.Rect(), dateTime );
     }
             
 // -----------------------------------------------------------------------------
 // CXnClockFaceAnalog::DrawHands
-// (other items were commented in a header).
 // -----------------------------------------------------------------------------
 //
 void CXnClockFaceAnalog::DrawHandsL( CWindowGc& aGc,
@@ -355,5 +367,13 @@
                       minmask,
                       EFalse );
     }
+
+// -----------------------------------------------------------------------------
+// CXnClockFaceAnalog::ResetFont
+// -----------------------------------------------------------------------------
+//
+void CXnClockFaceAnalog::ResetFont()
+    {
+    }
     
 //  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnclockfactory/src/xndatecontrol.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,282 @@
+/*
+* Copyright (c) 2006-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:  Clock control
+*
+*/
+
+
+// System includes
+#include <e32std.h>
+#include <debug.h>
+#include <AknLayoutFont.h>
+#include <AknUtils.h>
+#include <AknBidiTextUtils.h>
+#include <StringLoader.h>
+#include <bacntf.h>
+
+// User includes
+#include "xndatecontrol.h"
+#include "xncontroladapter.h"
+#include "xnclockadapter.h"
+#include "xnnodepluginif.h"
+#include "xnproperty.h"
+#include "xnuienginepluginif.h"
+#include "c_xnutils.h"
+
+// Constants
+const TInt KMaxDateStringLength = 100;
+const TInt KMaxDayNumberStringLength = 10;
+
+_LIT( KDateFont, "EAknLogicalFontSecondaryFont" );
+_LIT( KTimeFormat, "%0U %1U" );
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CXnDateControl::CXnDateControl
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CXnDateControl::CXnDateControl( CXnClockAdapter& aAdapter,
+                                TXnDateType aType )
+    : iAdapter( aAdapter ), iDateType( aType )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CXnDateControl::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CXnDateControl::ConstructL()
+    {
+    // Create enviroment notifier
+    iEnvNotifier = CEnvironmentChangeNotifier::NewL( 
+        CActive::EPriorityStandard, TCallBack( HandleCallBackL, this ) );
+    // Start listening notifications
+    iEnvNotifier->Start();
+    }
+
+// -----------------------------------------------------------------------------
+// CXnDateControl::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CXnDateControl* CXnDateControl::NewL( CXnClockAdapter& aAdapter,
+                                      TXnDateType aType )
+    {
+    CXnDateControl* self = new (ELeave) CXnDateControl( aAdapter, aType );
+    CleanupStack::PushL( self );    
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// Destructor
+// -----------------------------------------------------------------------------
+//
+CXnDateControl::~CXnDateControl()
+    {
+    delete iDateText;
+    delete iEnvNotifier;
+    }
+
+// -----------------------------------------------------------------------------
+// CXnDateControl::DrawL
+// -----------------------------------------------------------------------------
+//       
+void CXnDateControl::DrawL( CWindowGc& aGc, CXnNodePluginIf* aNode )
+    {
+    if ( !aNode ||
+         !iDateText ||
+         ( aNode && aNode->Rect().IsEmpty() ) )
+        {
+        return;
+        }
+    
+    const CAknLayoutFont* dateFont( CreateFontL( *aNode ) );
+    if ( !dateFont )
+        {
+        return;
+        }
+    
+    const TRgb& color( CreateColorL( *aNode ) );
+    
+    CGraphicsContext::TTextAlign align = iAdapter.GetTextAlignL( *aNode );
+    
+    const TInt deltaHeight( aNode->Rect().Height() - dateFont->TextPaneHeight() );
+    TInt offset( dateFont->TextPaneTopToBaseline() + deltaHeight / 2 );
+    
+    aGc.SetPenColor( color );
+    aGc.UseFont( dateFont );
+    aGc.DrawText( *iDateText, aNode->Rect(), offset, align );
+    aGc.DiscardFont();
+    }
+
+// -----------------------------------------------------------------------------
+// CXnDateControl::ConstructDateStringL
+// -----------------------------------------------------------------------------
+//
+HBufC* CXnDateControl::ConstructDateStringL()
+    {
+    // Construct date string using date format from resource file
+    CCoeEnv* coeEnv = CCoeEnv::Static();
+
+    if( !coeEnv )
+        {
+        User::Leave( KErrNotReady );
+        }
+
+    TTime time;
+    time.HomeTime();
+
+    HBufC* aiDateString = HBufC::NewLC( KMaxDateStringLength );
+    HBufC* aiDateFormatString = HBufC::NewLC( KMaxDateStringLength );
+    aiDateFormatString->Des().Copy( KTimeFormat() );
+    // TODO: when localisation is ready read format string from resource
+    //HBufC* aiDateFormatString = StringLoader::LoadLC( R_ACTIVEIDLE_TIME_FORMAT,
+    //                                                    coeEnv );
+    HBufC* dateStringBuf = HBufC::NewLC( KMaxDateStringLength );
+    HBufC* dateFormatString = StringLoader::LoadLC( R_QTN_DATE_SHORT_WITH_ZERO,
+                                                    coeEnv );
+    TPtr dateString( dateStringBuf->Des() );    
+    time.FormatL( dateString, *dateFormatString );
+    CleanupStack::PopAndDestroy( dateFormatString );
+
+    //now dateString contains string which is formatted using
+    //R_QTN_DATE_USUAL_WITH_ZERO
+
+    // To arabic
+    AknTextUtils::DisplayTextLanguageSpecificNumberConversion( dateString );
+
+    TPtr aiDateStringPtr = aiDateString->Des();
+    
+    TDayNameAbb wkDayAbb = TDayNameAbb();
+    wkDayAbb.Set(time.DayNoInWeek());
+        
+    //add date to string
+    StringLoader::Format( aiDateStringPtr, *aiDateFormatString, 1,dateString );
+
+    //reuse dateString
+    dateString.Copy( aiDateStringPtr );
+
+    //add weekday to string
+    StringLoader::Format( aiDateStringPtr, dateString, 0, wkDayAbb );
+
+    CleanupStack::PopAndDestroy( dateStringBuf );//dateStringBuf, aiDateFormatString
+    CleanupStack::PopAndDestroy( aiDateFormatString );
+
+    CleanupStack::Pop( aiDateString );
+    return aiDateString;
+    }
+
+// -----------------------------------------------------------------------------
+// CXnDateControl::ConstructDayStringL
+// -----------------------------------------------------------------------------
+//
+HBufC* CXnDateControl::ConstructDayStringL()
+    {
+    TTime time;
+    time.HomeTime();
+
+    HBufC* aiDayString = HBufC::NewLC( KMaxDayNumberStringLength );
+    aiDayString->Des().Num( time.DayNoInMonth() + 1 );
+    // To arabic
+    TPtr dayStringPtr = aiDayString->Des();
+    AknTextUtils::DisplayTextLanguageSpecificNumberConversion( dayStringPtr );
+    CleanupStack::Pop( aiDayString );
+    return aiDayString;
+    }
+
+// -----------------------------------------------------------------------------
+// CXnDateControl::CreateFontL
+// -----------------------------------------------------------------------------
+//
+const CAknLayoutFont* CXnDateControl::CreateFontL( CXnNodePluginIf& aNode )
+    {    
+    if ( !iDateFont )
+        {
+        iAdapter.CreateFontL( aNode, KDateFont, iDateFont );
+        }
+    return CAknLayoutFont::AsCAknLayoutFontOrNull( iDateFont );
+    }
+
+// -----------------------------------------------------------------------------
+// CXnDateControl::CreateColorL
+// -----------------------------------------------------------------------------
+//
+const TRgb& CXnDateControl::CreateColorL( CXnNodePluginIf& aNode )
+    {
+    if ( !iIsColorSet )
+        {
+        iAdapter.CreateColorL( aNode, iDateColor );
+        iIsColorSet = ETrue;
+        }
+    return iDateColor;
+    }
+
+// -----------------------------------------------------------------------------
+// CXnDateControl::ResetFont
+// -----------------------------------------------------------------------------
+//
+void CXnDateControl::ResetFont()
+    {
+    iDateFont = NULL;
+    iIsColorSet = EFalse;
+    }
+
+// -----------------------------------------------------------------------------
+// CXnDateControl::RefreshDateL
+// -----------------------------------------------------------------------------
+//
+void CXnDateControl::RefreshDateL()
+    {
+    delete iDateText;
+    iDateText = NULL;
+    if ( iDateType == EDate )
+        {
+        iDateText = ConstructDateStringL();
+        }
+    else if ( iDateType == EDay )
+        {
+        iDateText = ConstructDayStringL();
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CXnDateControl::HandleCallBackL
+// -----------------------------------------------------------------------------
+//
+TInt CXnDateControl::HandleCallBackL( TAny *aPtr )
+    {
+    CXnDateControl* self = static_cast<CXnDateControl*>( aPtr );
+    
+    if( self )
+        {
+        TInt changes( self->iEnvNotifier->Change() );
+        
+        if ( changes & 
+            ( EChangesLocale | EChangesMidnightCrossover | EChangesSystemTime ) )
+            {
+            self->RefreshDateL();
+            }       
+        }    
+        
+    return KErrNone;
+    }
+
+//  End of File
--- a/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewstickercontrol.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xnnewstickerfactory/src/xnnewstickercontrol.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -154,6 +154,11 @@
             }
 
         UpdateTitleL( KNullDesC, aIndex );      
+        
+        if( aIndex == iCurrentTitleIndex )
+            {
+            iCurrentTitleIndex = GetNextTitleWithContent( aIndex );
+            }
         }
     }
 
--- a/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/inc/xntexteditoradapter.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/inc/xntexteditoradapter.h	Tue Sep 14 20:58:58 2010 +0300
@@ -20,6 +20,7 @@
 
 //  System includes
 #include <e32base.h>
+#include <babitflags.h>
 
 // User includes
 #include "xncontroladapter.h"
@@ -49,7 +50,7 @@
     ~CXnTextEditorAdapter();
 
 public: 
-    // New functions
+    // new functions
 
     /**
      * Gets editor
@@ -57,7 +58,7 @@
      * @since S60 5.0
      * @return Editor, ownership is not transfered
      */
-    CEikEdwin* Editor() const { return iEditor; };
+    CEikEdwin* Editor() const;
 
     /**
      * Set text to the text field
@@ -68,6 +69,14 @@
     void SetTextL( const TDesC& aText );
     
     /**
+     * Queries wheter text content change is caused by call to SetTextL
+     * 
+     * @since S60 5.2
+     * @return ETrue if set text, EFalse otherwise
+     */
+    TBool IsSetText() const;
+        
+    /**
      * Return the text of the text field
      * 
      * @since S60 5.0
@@ -75,15 +84,8 @@
      */
     HBufC* Text() const;
 
-    /**
-     * Handles editor events
-     * 
-     * @since S60 5.2
-     * @param aReason, editor event        
-     */
-    void HandleEditorEvent( TInt aReason );
-
-public: // from base classes
+public: 
+    // from base classes
 
     /**
     * See CCoeControl documentation
@@ -104,12 +106,7 @@
     * See CCoeControl documentation
     */    	
     TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);    
-    
-    /**
-    * See CXnControlAdapter documentation
-    */          
-    TBool RefusesFocusLoss() const;
-    
+        
     /**
     * See CCoeControl documentation
     */    	
@@ -122,23 +119,14 @@
 
     /**
     * See CCoeControl documentation
-    */          
-    void HandleResourceChange( TInt aType );
-    
-    /**
-    * See CCoeControl documentation
     */  
     void HandlePointerEventL(const TPointerEvent& aPointerEvent);
 
-    /**
-     * See CCoeAppUiBase.
-     */
-    void HandleScreenDeviceChangedL();
-
-private: // from base classes
+private: 
+    // from MCoeControlBackground 
 
     /**
-    * See MCoeControlBackground documentation
+    * @see MCoeControlBackground 
     */          
     void Draw( CWindowGc& aGc, const CCoeControl& aControl, 
         const TRect& aRect ) const;
@@ -146,8 +134,14 @@
 private:
     // private constrcutors 
 
+    /**
+     * C++ constructor
+     */
 	CXnTextEditorAdapter( CXnControlAdapter* aParent, CXnNodePluginIf& aNode );
 	
+	/**
+	 * 2nd phase constructor
+	 */
 	void ConstructL();
 
 private:
@@ -156,9 +150,10 @@
     void SetPropertiesL();
     
     void SetEditorMarginPropertiesL();
-
+    
 private:
     // data
+
     /** Parent control, not owned */
     CXnControlAdapter*  	iParent;
     /** UI node, not owned */
@@ -176,11 +171,9 @@
     /** Flag to indicate whether the font needs to be released or not */
     TBool                   iReleaseFont;
     /** Max line amount */
-    TInt                    iMaxLines; 
-    /** Flag to indicate whether focus loss is refused */
-    TBool                   iRefusesFocusLoss;
-    /** Split input states*/
-    TInt                    iSplitInputFlags;
+    TInt                    iMaxLines;
+    /** Flags */
+    TBitFlags32             iFlags;
     };
 
 #endif      // _XNTEXTEDITORADAPTER_H
--- a/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/inc/xntexteditorpublisher.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/inc/xntexteditorpublisher.h	Tue Sep 14 20:58:58 2010 +0300
@@ -19,53 +19,85 @@
 #define XNTEXTEDITORPUBLISHER_H
 
 #include <e32base.h>
-#include <eikedwob.h>
+#include <frmtview.h>
 
 // FORWARD DECLARATIONS
 class CLiwServiceHandler;
 class MLiwInterface;
 class CXnTextEditorAdapter;
 
-class CXnTextEditorPublisher : public CBase, public MEikEdwinObserver
+class CXnTextEditorPublisher : public CBase, public CTextView::MObserver
     {
-    public:
-        /**
-        * Two-phased constructor.
-        */
-        static CXnTextEditorPublisher* NewL( CXnTextEditorAdapter& aAdapter, 
-            const TDesC8& aNodeId );
+public:
+    /**
+    * Two-phased constructor.
+    */
+    static CXnTextEditorPublisher* NewL( CXnTextEditorAdapter& aAdapter, 
+        const TDesC8& aNodeId );
 
-        /**
-        * Destructor.
-        */
-        virtual ~CXnTextEditorPublisher();
-        
-    private:
-        CXnTextEditorPublisher( CXnTextEditorAdapter& aAdapter );
-        void ConstructL( const TDesC8& aNodeId );
+    /**
+    * Destructor.
+    */
+    virtual ~CXnTextEditorPublisher();
+    
+private:
+    // constructors
+    
+    /**
+     * C++ constructor
+     */
+    CXnTextEditorPublisher( CXnTextEditorAdapter& aAdapter );
+    
+    /**
+     * 2nd phase constructor
+     */
+    void ConstructL( const TDesC8& aNodeId );
 
-    public: // From MEikEdwinObserver
-        /**
-        * @see MEikEdwinObserver.
-        */    
-        void HandleEdwinEventL(CEikEdwin* aEdwin,TEdwinEvent aEventType);
-        
-        void PublishTextL( const TDesC& aText );
+public: 
+    // from CTextView::MObserver
+    
+    /**
+    * @see CTextView::MObserver
+    */           
+    void OnReformatL( const CTextView* aTextView );
+    
+public:
+    // new functions
+    
+    /**
+     * Publishes given text to CPS
+     * 
+     * @since S60 5.2
+     * @param aText Text to publish
+     */
+    void PublishTextL( const TDesC& aText );
 
-    private: // New functions
-        void InitCpsInterfaceL();
-        void AddDataToCpsL( const TDesC& aPublisherId, const TDesC& aContentType, 
-            const TDesC& aContentId, const TDesC8& aDataKey, const TDesC& aData );
-        void RemoveDataFromCpsL( const TDesC& aPublisherId, const TDesC& aContentType, 
-            const TDesC& aContentId );
+private: 
+    // new functions
+    
+    void InitCpsInterfaceL();
+    
+    void AddDataToCpsL( const TDesC& aPublisherId, const TDesC& aContentType, 
+        const TDesC& aContentId, const TDesC8& aDataKey, const TDesC& aData );
+    
+    void RemoveDataFromCpsL( const TDesC& aPublisherId, const TDesC& aContentType, 
+        const TDesC& aContentId );
 
-
-    private:
-        CXnTextEditorAdapter&  iAdapter;
-        HBufC*                 iNodeId; // Own
-		MLiwInterface*         iCpsInterface; // Not own
-		CLiwServiceHandler*    iServiceHandler;	// Own
-		HBufC*                 iTextBuffer;   // Own
+private:
+    // data
+    
+    /** Text editor adapter, not owned */
+    CXnTextEditorAdapter& iAdapter;
+    /** <texteditor> element node id, owned */
+    HBufC* iNodeId; 
+    /** CPS intertace, owned */
+    MLiwInterface* iCpsInterface; 
+    /** Service handler, owned */
+    CLiwServiceHandler* iServiceHandler;	
+    /** Text publish buffer, owned */
+    HBufC* iTextBuffer;   
+    /** Text publish temp buffer, owned */
+    HBufC* iTempBuffer;   
     };
 
 #endif //XNTEXTEDITORPUBLISHER_H
--- a/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditor.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditor.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -87,16 +87,6 @@
     }
   
 // ---------------------------------------------------------
-// CXnTextEditor::HandleEditorEvent
-// ---------------------------------------------------------
-//
-void CXnTextEditor::HandleEditorEvent( TInt aReason )
-    {
-    static_cast<CXnTextEditorAdapter*>(ControlAdapter())->
-            HandleEditorEvent( aReason );
-    }
-
-// ---------------------------------------------------------
 // ---------------------------------------------------------
 XnComponentInterface::MXnComponentInterface* CXnTextEditor::MakeInterfaceL(const TDesC8& aType)
     {
--- a/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditoradapter.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditoradapter.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -50,58 +50,32 @@
 #include "c_xnutils.h"
 #include "xntexteditor.h" 
 
-const TInt KMaxLength = 100;
-
-enum TSplitInputState
+// Constants
+enum EFlags
     {
-    ESplitInputEnabled = 1,   
-    ESplitInputOpen = 2,
-    ESplitInputEditorInStack = 4,
-    EScreenDeviceChanged = 8
+    EUsePartialScreenInput = 1,
+    EIsAlreadyFocused,
+    EIsFocused,
+    ESetText    
     };
 
+const TInt KDefaultLength( 100 );
+
 _LIT8( KCpsPublishing, "cpspublishing" );
 _LIT8( KMaxLineAmount, "max-line-amount" );
 _LIT8( KMaxCharAmount, "max-char-amount" );
 _LIT8( KEnablePartialInput, "splitinputenabled" );
-_LIT8( KSplitScreenEnabledTrigger , "splitscreenenabled" );
-_LIT8( KSplitScreenDisabledTrigger, "splitscreendisabled" );
 
 _LIT( KEnterChar, "\x2029" );
 
-// Local macros
+// Macros
 #define IS_ARROW_KEY( k ) \
     ( k == EStdKeyLeftArrow || k == EStdKeyRightArrow || \
       k == EStdKeyUpArrow || k == EStdKeyDownArrow ) 
 
 // ============================ LOCAL FUNCTIONS ================================   
 
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-TBool IsFlagSet( TInt aFlags, TInt aFlag )
-    {
-    return aFlags & aFlag;
-    }
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-void SetFlag( TInt& aFlags, TInt aFlag )
-    {
-    aFlags |= aFlag;
-    }
-
-// -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-void ClearFlag( TInt& aFlags, TInt aFlag )
-    {
-    aFlags &= ~aFlag;
-    }
-
 // ============================ MEMBER FUNCTIONS ===============================
-
 // -----------------------------------------------------------------------------
 // CXnTextEditorAdapter::NewL
 // Symbian static 1st phase constructor
@@ -138,17 +112,16 @@
 //
 CXnTextEditorAdapter::~CXnTextEditorAdapter()
     {  
-    if( IsFlagSet( iSplitInputFlags, ESplitInputOpen ) )    
+    if ( iAppui )
         {
-        if( iUiEngine )
-            {
-            iUiEngine->EnablePartialTouchInput( iNode, EFalse );    
-            }
+        iAppui->RemoveFromStack( iEditor );
         }
-
-    if ( iAvkonAppUi )
+        
+    if ( iFlags.IsSet( EIsFocused ) )
         {
-        iAvkonAppUi->RemoveFromStack( iEditor );
+        RProperty::Set( KPSUidAiInformation, 
+            KActiveIdleForwardNumericKeysToPhone, 
+            EPSAiForwardNumericKeysToPhone );                    
         }
     
     if( iFont && iReleaseFont )
@@ -157,8 +130,9 @@
         dev->ReleaseFont( iFont );
         }
 
-    delete iEditorPublisher;
-    delete iEditor;   
+    delete iEditor;
+    
+    delete iEditorPublisher;       
     }
 
 // -----------------------------------------------------------------------------
@@ -169,6 +143,7 @@
 void CXnTextEditorAdapter::ConstructL()
     {
     CXnControlAdapter::ConstructL( iNode );    
+    
     iUiEngine = iNode.UiEngineL();
 
     iAppui = static_cast< CXnAppUiAdapter* >( iAvkonAppUi );
@@ -183,8 +158,8 @@
         iMaxLines = maxlinesProp->FloatValueL();
         }
 
-    // Max char amount
-    TInt maxChars( KMaxLength );
+    // Default char amount
+    TInt maxChars( KDefaultLength );
     
     CXnProperty* maxcharsProp( iNode.GetPropertyL( KMaxCharAmount ) );    
     
@@ -196,7 +171,11 @@
     iEditor = new ( ELeave ) CEikEdwin;
 
     iEditor->SetContainerWindowL( *iParent );
-    iEditor->ConstructL( 0, maxChars, maxChars, iMaxLines );
+    
+    TInt flags( CEikEdwin::ENoAutoSelection | CEikEdwin::EJustAutoCurEnd |
+        CEikEdwin::EAllowUndo | CEikEdwin::EAvkonEditor );
+    
+    iEditor->ConstructL( flags, maxChars, maxChars, iMaxLines );
     iEditor->SetBackground( this );
     
     // Set allowed input modes
@@ -211,35 +190,25 @@
 
     // Set the default case mode
     iEditor->SetAknEditorCase( EAknEditorTextCase );
-        
-    iEditor->AddFlagToUserFlags( 
-        CEikEdwin::ENoAutoSelection | CEikEdwin::EAllowUndo );
-                                     
+                                             
     // Set numeric keymap
     iEditor->SetAknEditorNumericKeymap( EAknEditorPlainNumberModeKeymap );
 
     // Enable partial Screen
-    CXnProperty* enablepartialinput( iNode.GetPropertyL( KEnablePartialInput ) );
-    iSplitInputFlags = 0;
-     
-    if ( enablepartialinput && 
-         enablepartialinput->StringValue() == XnPropertyNames::KTrue )
+    CXnProperty* prop( iNode.GetPropertyL( KEnablePartialInput ) );
+               
+    if ( prop && prop->StringValue() == XnPropertyNames::KTrue )          
         {
         iEditor->SetAknEditorFlags( EAknEditorFlagEnablePartialScreen );
-        SetFlag( iSplitInputFlags, ESplitInputEnabled );
+                        
+        iFlags.Set( EUsePartialScreenInput );        
         }
-
-    // for RTL languages
-    iEditor->SetAknEditorLocalLanguage( User::Language() );
-    ( AknLayoutUtils::LayoutMirrored() ? 
-                        iEditor->SetAlignment( EAknEditorAlignRight ) : 
-                        iEditor->SetAlignment( EAknEditorAlignLeft ) );
-
-    iEditor->SetObserver( this );
-                                        
-    // Default not focused                                  
-    iEditor->SetFocus( EFalse );                              
         
+    iEditor->SetAlignment( AknLayoutUtils::LayoutMirrored() ? 
+        EAknEditorAlignRight : EAknEditorAlignLeft ); 
+                                                
+    iEditor->CreateTextViewL();
+    
     SetPropertiesL();
 	}
  
@@ -303,9 +272,7 @@
     if ( IS_ARROW_KEY( aKeyEvent.iScanCode ) )    
         {                        
         if ( ret == EKeyWasNotConsumed && aType == EEventKey )
-            {            
-            iRefusesFocusLoss = EFalse;
-            
+            {                  
             ret = CXnControlAdapter::OfferKeyEventL( aKeyEvent, aType );
             }                    
         }
@@ -331,72 +298,42 @@
 
     return ret;        
     }
- 
-// -----------------------------------------------------------------------------
-// CXnTextEditorAdapter::RefusesFocusLoss
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-// 
-TBool CXnTextEditorAdapter::RefusesFocusLoss() const
-    {    
-    return iRefusesFocusLoss;
-    }
 
 // -----------------------------------------------------------------------------
 // CXnTextEditorAdapter::FocusChanged
 // (other items were commented in a header).
 // -----------------------------------------------------------------------------
 // 
-void CXnTextEditorAdapter::FocusChanged( TDrawNow aDrawNow )
+void CXnTextEditorAdapter::FocusChanged( TDrawNow /*aDrawNow*/ )
     {
     TBool isFocused( IsFocused() ? ETrue : EFalse );
-    TInt value;
-
-    if ( isFocused )
-        {      
-        value = EPSAiDontForwardNumericKeysToPhone;
-
-        if( !IsFlagSet( iSplitInputFlags, ESplitInputEnabled ) )
-            {
-            TRAP_IGNORE( iAppui->AddToStackL( iAppui->View(), iEditor ) );  
-            // AddToStackL calls iEditor->SetFocus( ETrue ); 
+    TBool wasFocused( iFlags.IsSet( EIsFocused ) ? ETrue : EFalse );
+    
+    if ( isFocused != wasFocused )
+        {
+        TInt value;
+        
+        if ( isFocused )
+            {      
+            value = EPSAiDontForwardNumericKeysToPhone;
+            
+            iFlags.Set( EIsFocused );
+            
+            TRAP_IGNORE( iAppui->AddToStackL( iAppui->View(), iEditor ) );
             }
-        else if( !IsFlagSet( iSplitInputFlags, ESplitInputOpen ) )
+        else
             {
-            TRAP_IGNORE( iAppui->AddToStackL( iAppui->View(), iEditor ) ); 
-            SetFlag( iSplitInputFlags, ESplitInputEditorInStack );
-            }
-        }
-    else
-        {
-        value = EPSAiForwardNumericKeysToPhone;
-                                      
-        if( !IsFlagSet( iSplitInputFlags, ESplitInputEnabled ) )
-            {    
+            value = EPSAiForwardNumericKeysToPhone;
+            
+            iFlags.Clear( EIsFocused );
+            
             iAppui->RemoveFromStack( iEditor );            
-            iEditor->SetFocus( EFalse, aDrawNow );
-            }
+            iEditor->SetFocus( EFalse );                       
+            } 
         
-        // Remove editor from stack if it has not beed removed AND split screen has been closed
-        else if( IsFlagSet( iSplitInputFlags, ESplitInputEditorInStack ) &&
-                 !IsFlagSet( iSplitInputFlags, ESplitInputOpen ) )
-            {
-            iAppui->RemoveFromStack( iEditor );            
-            iEditor->SetFocus( EFalse, aDrawNow );
-            ClearFlag( iSplitInputFlags, ESplitInputEditorInStack );            
-            }            
-        }
-
-    if( IsFlagSet( iSplitInputFlags, ESplitInputOpen ) )
-        {
-        value = EPSAiDontForwardNumericKeysToPhone;
-        } 
-
-    iRefusesFocusLoss = isFocused;
-    
-    RProperty::Set( KPSUidAiInformation,            
-                    KActiveIdleForwardNumericKeysToPhone,
-                    value );    
+        RProperty::Set( KPSUidAiInformation, 
+            KActiveIdleForwardNumericKeysToPhone, value );                    
+        }        
     }
     
 // -----------------------------------------------------------------------------
@@ -411,113 +348,57 @@
     }
 
 // -----------------------------------------------------------------------------
-// CXnTextEditorAdapter::HandleResourceChange
-//
-// -----------------------------------------------------------------------------
-//
-void CXnTextEditorAdapter::HandleResourceChange( TInt aType )
-    {
-    if ( aType == KAknSplitInputEnabled ) 
-        {
-        if( IsFlagSet( iSplitInputFlags, ESplitInputEditorInStack ) && 
-            !IsFlagSet( iSplitInputFlags, ESplitInputOpen ) )
-            {
-            iUiEngine->EnablePartialTouchInput( iNode, ETrue );
-            SetFlag( iSplitInputFlags, ESplitInputOpen );
-            if ( !IsFlagSet( iSplitInputFlags, EScreenDeviceChanged ) )
-                {
-                TRAP_IGNORE( iNode.ReportTriggerEventL( KSplitScreenEnabledTrigger, 
-                    KNullDesC8, KNullDesC8) );
-                }
-            else
-                {
-                ClearFlag( iSplitInputFlags, EScreenDeviceChanged );
-                }
-            }
-        }    
-    
-     if ( aType == KAknSplitInputDisabled ) 
-        {
-        if( IsFlagSet( iSplitInputFlags, ESplitInputOpen ) )    
-            {
-            iUiEngine->EnablePartialTouchInput( iNode, EFalse );
-            ClearFlag( iSplitInputFlags, ESplitInputOpen );
-            
-            // Note that after orientation switch, split screen is first closed and  
-            // then opened again. Therefore these must be discarded
-            if ( !IsFlagSet( iSplitInputFlags, EScreenDeviceChanged ) )
-                {
-                TRAP_IGNORE( iNode.ReportTriggerEventL( KSplitScreenDisabledTrigger, 
-                    KNullDesC8, KNullDesC8) );
-            
-                // If editor is not focused anymore, remove if from stack
-                CXnNodePluginIf* focusedNode( NULL );
-                TRAP_IGNORE( focusedNode = iUiEngine->FocusedNodeL() );
-                if( focusedNode != &iNode && 
-                    IsFlagSet( iSplitInputFlags, ESplitInputEditorInStack ) )
-                    {
-                    iAppui->RemoveFromStack( iEditor );
-                    iEditor->SetFocus( EFalse );
-                    ClearFlag( iSplitInputFlags, ESplitInputEditorInStack );
-    
-                    // Forward keys to phone again    
-                    RProperty::Set( KPSUidAiInformation,            
-                                    KActiveIdleForwardNumericKeysToPhone,
-                                    EPSAiForwardNumericKeysToPhone );
-                    }
-                }
-            }
-        }
-    CCoeControl::HandleResourceChange( aType );
-    }
-
-// -----------------------------------------------------------------------------
 // CXnTextEditorAdapter::HandlePointerEventL
 //
 // -----------------------------------------------------------------------------
 //
-void CXnTextEditorAdapter::HandlePointerEventL( const TPointerEvent& aPointerEvent )
-    {
-    TPointerEvent pointerEvent( aPointerEvent ); 
-    TRect rect( iEditor->TextView()->ViewRect() );
-    TPoint point( aPointerEvent.iPosition );
-    
-    // this opens partial screen also when margin is tapped
-    if( !IsFlagSet( iSplitInputFlags, ESplitInputOpen ) )
+void CXnTextEditorAdapter::HandlePointerEventL( 
+    const TPointerEvent& aPointerEvent )
+    {       
+    if ( aPointerEvent.iType == TPointerEvent::EButton1Down )
         {
-        if( point.iX < rect.iTl.iX )
+        iFlags.Clear( EIsAlreadyFocused );
+        
+        if ( IsFocused() )
             {
-            pointerEvent.iPosition.iX = rect.iTl.iX;
-            }
-        else if( point.iX > rect.iBr.iX )
-            {
-            pointerEvent.iPosition.iX = rect.iBr.iX;
-            }
-        
-        if( point.iY < rect.iTl.iY )
-            {
-            pointerEvent.iPosition.iY = rect.iTl.iY;
-            }
-        else if( point.iY > rect.iBr.iY )
-            {
-            pointerEvent.iPosition.iY = rect.iBr.iY;
+            iFlags.Set( EIsAlreadyFocused );
             }
         }
     
-    CXnControlAdapter::HandlePointerEventL( pointerEvent );
-    }
-
-// -----------------------------------------------------------------------------
-// CXnTextEditorAdapter::HandleScreenDeviceChangedL
-//
-// -----------------------------------------------------------------------------
-//
-void CXnTextEditorAdapter::HandleScreenDeviceChangedL()
-    {
-    if( IsFlagSet( iSplitInputFlags, ESplitInputOpen ) )
+    if ( iFlags.IsSet( EIsAlreadyFocused ) )
+        {
+        CCoeControl::HandlePointerEventL( aPointerEvent );
+        }
+    else
         {
-        SetFlag( iSplitInputFlags, EScreenDeviceChanged );
-        }
+        TPointerEvent pointerEvent( aPointerEvent ); 
+        TRect rect( iEditor->TextView()->ViewRect() );
+        TPoint point( aPointerEvent.iPosition );
+        
+        // this opens partial screen also when margin is tapped
+        if ( iFlags.IsSet( EUsePartialScreenInput ) )    
+            {
+            if( point.iX < rect.iTl.iX )
+                {
+                pointerEvent.iPosition.iX = rect.iTl.iX;
+                }
+            else if( point.iX > rect.iBr.iX )
+                {
+                pointerEvent.iPosition.iX = rect.iBr.iX;
+                }
+            
+            if( point.iY < rect.iTl.iY )
+                {
+                pointerEvent.iPosition.iY = rect.iTl.iY;
+                }
+            else if( point.iY > rect.iBr.iY )
+                {
+                pointerEvent.iPosition.iY = rect.iBr.iY;
+                }
+            }
+        
+        CXnControlAdapter::HandlePointerEventL( pointerEvent );    
+        }         
     }
 
 // -----------------------------------------------------------------------------
@@ -535,14 +416,54 @@
     }
 
 // -----------------------------------------------------------------------------
+// CXnTextEditorAdapter::Editor
+// Gets underlying CEikEdwin
+// -----------------------------------------------------------------------------
+//
+CEikEdwin* CXnTextEditorAdapter::Editor() const       
+    {
+    return iEditor;
+    }
+
+// -----------------------------------------------------------------------------
 // CXnTextEditorAdapter::SetTextL
 // Sets the new content to the underlying CEikEdwin
 // -----------------------------------------------------------------------------
 //
 void CXnTextEditorAdapter::SetTextL( const TDesC& aText )
     {
-    iEditor->SetTextL( &aText );
-    iNode.SetDirtyL();
+    HBufC* text( Text() );
+    
+    TBool update( EFalse );
+    
+    if ( !text || *text != aText )
+        {
+        update = ETrue;
+        }
+    
+    delete text;
+    text = NULL;
+    
+    if ( update )
+        {
+        iFlags.Set( ESetText );
+        
+        TRAP_IGNORE( iEditor->SetTextL( &aText ) );
+        
+        iFlags.Clear( ESetText );
+        
+        iNode.SetDirtyL();        
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CXnTextEditorAdapter::IsSetText
+// Queries whether SetText API has generated edwin content change
+// -----------------------------------------------------------------------------
+//
+TBool CXnTextEditorAdapter::IsSetText() const
+    {
+    return iFlags.IsSet( ESetText ) ? ETrue : EFalse;
     }
     
 // -----------------------------------------------------------------------------
@@ -561,22 +482,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// CXnTextEditorAdapter::HandleEditorEvent
-// -----------------------------------------------------------------------------
-//
-void CXnTextEditorAdapter::HandleEditorEvent( TInt aReason )
-    {
-    if( aReason == CXnTextEditor::KDeactivateTextEditor &&
-        IsFlagSet( iSplitInputFlags, ESplitInputOpen ) )
-        {
-        iAppui->RemoveFromStack( iEditor );
-        iEditor->SetFocus( EFalse );
-        ClearFlag( iSplitInputFlags, ESplitInputEditorInStack ); 
-        iRefusesFocusLoss = EFalse;
-        }
-    }
-
-// -----------------------------------------------------------------------------
 // CXnTextEditorAdapter::SetPropertiesL
 // Sets text properties
 // -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditorpublisher.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditorpublisher.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -94,13 +94,10 @@
         delete iServiceHandler;
         iServiceHandler = NULL;
         }    
-    CEikEdwin* editor = iAdapter.Editor();
-    if( editor )
-        {
-        editor->RemoveEdwinObserver( this );    
-        }
+
     delete iNodeId;
     delete iTextBuffer;
+    delete iTempBuffer;
     }
 
 // -----------------------------------------------------------------------------
@@ -120,12 +117,18 @@
     {
     iNodeId = CnvUtfConverter::ConvertToUnicodeFromUtf8L( aNodeId );
     InitCpsInterfaceL();
-    CEikEdwin* editor = iAdapter.Editor();
-    if( editor )
-        {
-        editor->SetEdwinObserver( this );  
-        TInt len = editor->MaxLength();
+    
+    CEikEdwin* editor( iAdapter.Editor() );
+    
+    // Editor must be activated before setting observer
+    if( editor && editor->TextView() )
+        {                                    
+        TInt len( editor->MaxLength() );
+        
         iTextBuffer = HBufC::NewL( len );
+        iTempBuffer = HBufC::NewL( len );
+        
+        editor->TextView()->SetObserver( this );
         }
     }
 
@@ -250,19 +253,35 @@
     iCpsInterface = msgInterface;
     }
 
+
 // -----------------------------------------------------------------------------
-// CXnTextEditorPublisher::HandleEdwinEventL
+// CXnTextEditorPublisher::OnReformatL
 // -----------------------------------------------------------------------------
 //
-void CXnTextEditorPublisher::HandleEdwinEventL(CEikEdwin* aEdwin, TEdwinEvent aEventType)
+void CXnTextEditorPublisher::OnReformatL( const CTextView* aTextView )
     {
-    if( aEventType == MEikEdwinObserver::EEventTextUpdate)
+    CEikEdwin* editor( iAdapter.Editor() );
+               
+    if ( editor )
         {
-        TPtr bufferDes = iTextBuffer->Des();
-        bufferDes.Zero();
-        aEdwin->GetText( bufferDes );
-        PublishTextL( bufferDes );
-        }         
+        editor->OnReformatL( aTextView );
+    
+    	TPtr ptr( iTempBuffer->Des() );
+        
+    	ptr.Zero();
+	    
+        editor->GetText( ptr );
+        
+        if ( *iTextBuffer != *iTempBuffer )
+            {
+            *iTextBuffer = *iTempBuffer;
+            
+            if ( !iAdapter.IsSetText() )
+                {
+                PublishTextL( *iTextBuffer );
+                }                       
+            }               
+        }
     }
 
 // -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/renderingplugins/xntextfactory/src/xntextadapter.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/renderingplugins/xntextfactory/src/xntextadapter.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -1044,9 +1044,9 @@
         lineSpace = iNode.UiEngineL()->VerticalPixelValueL( lineSpaceProp, aReference );
         }
         
-    if( lineSpace < 1 )
+    if( lineSpace < 0 )
         {
-        // Must be at least 1
+        // Default
         lineSpace = 1;
         }
 
--- a/idlehomescreen/xmluirendering/uiengine/bwins/xn3layoutengineu.def	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/bwins/xn3layoutengineu.def	Tue Sep 14 20:58:58 2010 +0300
@@ -40,178 +40,178 @@
 	?ComponentNodeImpl@CXnNodePluginIf@@QAEPAVCXnComponentNodeImpl@@XZ @ 39 NONAME ; class CXnComponentNodeImpl * CXnNodePluginIf::ComponentNodeImpl(void)
 	??0CXnViewsNodeImpl@@IAE@XZ @ 40 NONAME ; CXnViewsNodeImpl::CXnViewsNodeImpl(void)
 	?IsTextEditorActive@TXnUiEnginePluginIf@@QAEHXZ @ 41 NONAME ; int TXnUiEnginePluginIf::IsTextEditorActive(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)
-	?DestroyPublisher@CXnAppUiAdapter@@UAEXABVTAiFwPublisherInfo@@@Z @ 56 NONAME ; void CXnAppUiAdapter::DestroyPublisher(class TAiFwPublisherInfo const &)
-	?Rect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 57 NONAME ; class TRect CXnNodePluginIf::Rect(void)
-	?AddChildL@CXnNodePluginIf@@QAEXPAV1@@Z @ 58 NONAME ; void CXnNodePluginIf::AddChildL(class CXnNodePluginIf *)
-	?SetNode@CXnComponent@@QAEXAAVCXnNodePluginIf@@@Z @ 59 NONAME ; void CXnComponent::SetNode(class CXnNodePluginIf &)
-	?ResetStylusCounter@CXnControlAdapter@@QAEXXZ @ 60 NONAME ; void CXnControlAdapter::ResetStylusCounter(void)
-	?SetComponent@CXnComponentNodeImpl@@QAEXPAVCXnComponent@@@Z @ 61 NONAME ; void CXnComponentNodeImpl::SetComponent(class CXnComponent *)
-	?LayoutUIL@TXnUiEnginePluginIf@@QAEXPAVCXnNodePluginIf@@@Z @ 62 NONAME ; void TXnUiEnginePluginIf::LayoutUIL(class CXnNodePluginIf *)
-	?ExitPowerSaveModeL@CXnControlAdapter@@QAEXW4TModeEvent@1@@Z @ 63 NONAME ; void CXnControlAdapter::ExitPowerSaveModeL(enum CXnControlAdapter::TModeEvent)
-	?PublisherInfo@CXnAppUiAdapter@@UAEHAAVCXnNodeAppIf@@AAVTHsPublisherInfo@@@Z @ 64 NONAME ; int CXnAppUiAdapter::PublisherInfo(class CXnNodeAppIf &, class THsPublisherInfo &)
-	?GetThemeResource@TXnUiEngineAppIf@@QAEHABVTDesC16@@AAVRFile@@@Z @ 65 NONAME ; int TXnUiEngineAppIf::GetThemeResource(class TDesC16 const &, class RFile &)
-	?ConstructL@CXnComponent@@IAEXXZ @ 66 NONAME ; void CXnComponent::ConstructL(void)
-	?FindResource@CXnUtils@@SAPAVCXnResource@@AAV?$CArrayPtrSeg@VCXnResource@@@@ABVTDesC16@@AAH@Z @ 67 NONAME ; class CXnResource * CXnUtils::FindResource(class CArrayPtrSeg<class CXnResource> &, class TDesC16 const &, int &)
-	?UnsetStateL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 68 NONAME ; void CXnNodeAppIf::UnsetStateL(class TDesC8 const &)
-	?Uid@CXnDocument@@QAE?AVTUid@@XZ @ 69 NONAME ; class TUid CXnDocument::Uid(void)
-	?FocusChanged@CXnControlAdapter@@UAEXW4TDrawNow@@@Z @ 70 NONAME ; void CXnControlAdapter::FocusChanged(enum TDrawNow)
-	?SetBlank@CXnControlAdapter@@QAEXH@Z @ 71 NONAME ; void CXnControlAdapter::SetBlank(int)
-	?ProcessMessageL@CXnAppUiAdapter@@UAEXVTUid@@ABVTDesC8@@@Z @ 72 NONAME ; void CXnAppUiAdapter::ProcessMessageL(class TUid, class TDesC8 const &)
-	?Component@CXnNodeAppIf@@QAEAAVCXnComponent@@XZ @ 73 NONAME ; class CXnComponent & CXnNodeAppIf::Component(void)
-	?SetLayoutCapable@CXnNodePluginIf@@QAEXH@Z @ 74 NONAME ; void CXnNodePluginIf::SetLayoutCapable(int)
-	?MarginRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 75 NONAME ; class TRect CXnNodePluginIf::MarginRect(void)
-	?UiEngineL@CXnAppUiAdapter@@QAEPAVTXnUiEngineAppIf@@XZ @ 76 NONAME ; class TXnUiEngineAppIf * CXnAppUiAdapter::UiEngineL(void)
-	?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 * &)
-	?UnsetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 94 NONAME ; void CXnNodePluginIf::UnsetStateL(class TDesC8 const &)
-	?StringValueL@CXnProperty@@QAEPAVHBufC16@@XZ @ 95 NONAME ; class HBufC16 * CXnProperty::StringValueL(void)
-	?DisableRenderUiLC@TXnUiEnginePluginIf@@QAEXXZ @ 96 NONAME ; void TXnUiEnginePluginIf::DisableRenderUiLC(void)
-	?SetPropertyL@CXnNodeAppIf@@QAEXPAVCXnProperty@@@Z @ 97 NONAME ; void CXnNodeAppIf::SetPropertyL(class CXnProperty *)
-	?View@CXnAppUiAdapter@@QBEAAVCAknView@@XZ @ 98 NONAME ; class CAknView & CXnAppUiAdapter::View(void) const
-	?ViewNodeImpl@CXnNodePluginIf@@QAEPAVCXnViewNodeImpl@@XZ @ 99 NONAME ; class CXnViewNodeImpl * CXnNodePluginIf::ViewNodeImpl(void)
-	?StripQuotes@CXnUtils@@SAXAAPAVHBufC16@@@Z @ 100 NONAME ; void CXnUtils::StripQuotes(class HBufC16 * &)
-	?SetPCDataL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 101 NONAME ; void CXnNodePluginIf::SetPCDataL(class TDesC8 const &)
-	?VisibilityL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 102 NONAME ; class CXnProperty * CXnNodePluginIf::VisibilityL(void)
-	?Draw@CXnControlAdapter@@MBEXABVTRect@@@Z @ 103 NONAME ; void CXnControlAdapter::Draw(class TRect const &) const
-	??1CXnApplication@@UAE@XZ @ 104 NONAME ; CXnApplication::~CXnApplication(void)
-	?DoesNodeNeedComponentImplL@MXnComponentFactory@@QAEHABVTDesC8@@@Z @ 105 NONAME ; int MXnComponentFactory::DoesNodeNeedComponentImplL(class TDesC8 const &)
-	?ConstructL@CXnViewsNodeImpl@@IAEXPAVCXnType@@@Z @ 106 NONAME ; void CXnViewsNodeImpl::ConstructL(class CXnType *)
-	?StringPool@TXnUiEngineAppIf@@QAEAAVCXnDomStringPool@@XZ @ 107 NONAME ; class CXnDomStringPool & TXnUiEngineAppIf::StringPool(void)
-	?UiEngineL@CXnNodePluginIf@@QAEPAVTXnUiEnginePluginIf@@XZ @ 108 NONAME ; class TXnUiEnginePluginIf * CXnNodePluginIf::UiEngineL(void)
-	?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@@Z @ 109 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &)
-	?PluginNodeL@TXnUiEnginePluginIf@@QAEAAVCXnNodePluginIf@@PAV2@@Z @ 110 NONAME ; class CXnNodePluginIf & TXnUiEnginePluginIf::PluginNodeL(class CXnNodePluginIf *)
-	?VerticalPixelValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 111 NONAME ; int TXnUiEnginePluginIf::VerticalPixelValueL(class CXnProperty *, int)
-	?SetComponent@CXnControlAdapter@@QAEXPAVCXnComponent@@@Z @ 112 NONAME ; void CXnControlAdapter::SetComponent(class CXnComponent *)
-	??0MXnNodePredicate@@QAE@XZ @ 113 NONAME ; MXnNodePredicate::MXnNodePredicate(void)
-	??1CXnViewsNodeImpl@@UAE@XZ @ 114 NONAME ; CXnViewsNodeImpl::~CXnViewsNodeImpl(void)
-	?HandleControlEventL@CXnControlAdapter@@UAEXPAVCCoeControl@@W4TCoeEvent@MCoeControlObserver@@@Z @ 115 NONAME ; void CXnControlAdapter::HandleControlEventL(class CCoeControl *, enum MCoeControlObserver::TCoeEvent)
-	?HandleScreenDeviceChangedL@CXnControlAdapter@@UAEXXZ @ 116 NONAME ; void CXnControlAdapter::HandleScreenDeviceChangedL(void)
-	?SizeChanged@CXnControlAdapter@@MAEXXZ @ 117 NONAME ; void CXnControlAdapter::SizeChanged(void)
-	?CountComponentControls@CXnControlAdapter@@MBEHXZ @ 118 NONAME ; int CXnControlAdapter::CountComponentControls(void) const
-	?HideTooltipsL@CXnNodeAppIf@@QAEXXZ @ 119 NONAME ; void CXnNodeAppIf::HideTooltipsL(void)
-	?GetPropertyL@CXnNodeAppIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 120 NONAME ; class CXnProperty * CXnNodeAppIf::GetPropertyL(class TDesC8 const &) const
-	?FindNodeByClassL@TXnUiEngineAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@ABVTDesC8@@0@Z @ 121 NONAME ; class RPointerArray<class CXnNodeAppIf> TXnUiEngineAppIf::FindNodeByClassL(class TDesC8 const &, class TDesC8 const &)
-	?Match@MXnNodePredicate@@UAEHAAVCXnNode@@@Z @ 122 NONAME ; int MXnNodePredicate::Match(class CXnNode &)
-	?GetBitmapAndMask@CXnControlAdapter@@QAEXABVTDesC16@@0AAPAVCFbsBitmap@@1@Z @ 123 NONAME ; void CXnControlAdapter::GetBitmapAndMask(class TDesC16 const &, class TDesC16 const &, class CFbsBitmap * &, class CFbsBitmap * &)
-	?NewL@CXnViewsNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 124 NONAME ; class CXnViewsNodeImpl * CXnViewsNodeImpl::NewL(class CXnType *)
-	?PaddingRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 125 NONAME ; class TRect CXnNodeAppIf::PaddingRect(void)
-	?SetMarginRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 126 NONAME ; void CXnNodePluginIf::SetMarginRect(class TRect const &)
-	?IsDialogDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 127 NONAME ; int TXnUiEnginePluginIf::IsDialogDisplaying(void)
-	?HandleEventL@CXnAppUiAdapter@@UAEXABVTDesC16@@AAVCXnNodeAppIf@@@Z @ 128 NONAME ; void CXnAppUiAdapter::HandleEventL(class TDesC16 const &, class CXnNodeAppIf &)
-	?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 129 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class TDesC8 const &) const
-	?SetPropertyArrayL@CXnNodeAppIf@@QAEXPAV?$RPointerArray@VCXnProperty@@@@@Z @ 130 NONAME ; void CXnNodeAppIf::SetPropertyArrayL(class RPointerArray<class CXnProperty> *)
-	?RemoveViewL@CXnAppUiAdapter@@QAEXAAVCAknView@@@Z @ 131 NONAME ; void CXnAppUiAdapter::RemoveViewL(class CAknView &)
-	?EnterPowerSaveModeL@CXnComponent@@UAEXXZ @ 132 NONAME ; void CXnComponent::EnterPowerSaveModeL(void)
-	?SetRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 133 NONAME ; void CXnNodePluginIf::SetRect(class TRect const &)
-	??0CXnComponent@@IAE@XZ @ 134 NONAME ; CXnComponent::CXnComponent(void)
-	?CollapseWhiteSpace@CXnUtils@@SAXAAVCXnNodePluginIf@@AAVTDes16@@@Z @ 135 NONAME ; void CXnUtils::CollapseWhiteSpace(class CXnNodePluginIf &, class TDes16 &)
-	?SetHandleTooltip@CXnNodePluginIf@@QAEXH@Z @ 136 NONAME ; void CXnNodePluginIf::SetHandleTooltip(int)
-	??1CXnAppUiAdapter@@UAE@XZ @ 137 NONAME ; CXnAppUiAdapter::~CXnAppUiAdapter(void)
-	?NewL@CXnControlAdapter@@SAPAV1@AAVCXnNodePluginIf@@@Z @ 138 NONAME ; class CXnControlAdapter * CXnControlAdapter::NewL(class CXnNodePluginIf &)
-	?EnableLongTapAnimation@CXnControlAdapter@@QAEXH@Z @ 139 NONAME ; void CXnControlAdapter::EnableLongTapAnimation(int)
-	?SetPaddingRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 140 NONAME ; void CXnNodePluginIf::SetPaddingRect(class TRect const &)
-	?SetFocusedNode@TXnUiEnginePluginIf@@QAEXPAVCXnNodePluginIf@@@Z @ 141 NONAME ; void TXnUiEnginePluginIf::SetFocusedNode(class CXnNodePluginIf *)
-	?ExitPowerSaveModeL@CXnComponent@@UAEXXZ @ 142 NONAME ; void CXnComponent::ExitPowerSaveModeL(void)
-	?GetPCData@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 143 NONAME ; class TDesC8 const & CXnNodeAppIf::GetPCData(void) const
-	?Namespace@CXnNodeAppIf@@QAEABVTDesC8@@XZ @ 144 NONAME ; class TDesC8 const & CXnNodeAppIf::Namespace(void)
-	?LoadPublisher@CXnAppUiAdapter@@UAEXABVTAiFwPublisherInfo@@@Z @ 145 NONAME ; void CXnAppUiAdapter::LoadPublisher(class TAiFwPublisherInfo const &)
-	??1CXnComponentNodeImpl@@UAE@XZ @ 146 NONAME ; CXnComponentNodeImpl::~CXnComponentNodeImpl(void)
-	?SetPropertyWithoutNotificationL@CXnNodePluginIf@@QAEXPAVCXnProperty@@@Z @ 147 NONAME ; void CXnNodePluginIf::SetPropertyWithoutNotificationL(class CXnProperty *)
-	?GetPCData@CXnNodePluginIf@@QBEABVTDesC8@@XZ @ 148 NONAME ; class TDesC8 const & CXnNodePluginIf::GetPCData(void) const
-	?SetPCDataL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 149 NONAME ; void CXnNodeAppIf::SetPCDataL(class TDesC8 const &)
-	?Resources@TXnUiEnginePluginIf@@QAEAAV?$CArrayPtrSeg@VCXnResource@@@@XZ @ 150 NONAME ; class CArrayPtrSeg<class CXnResource> & TXnUiEnginePluginIf::Resources(void)
-	?SetContentBitmaps@CXnControlAdapter@@QAEXABVTDesC16@@0@Z @ 151 NONAME ; void CXnControlAdapter::SetContentBitmaps(class TDesC16 const &, class TDesC16 const &)
-	??1CXnControlAdapter@@UAE@XZ @ 152 NONAME ; CXnControlAdapter::~CXnControlAdapter(void)
-	??1MXnNodePredicate@@UAE@XZ @ 153 NONAME ; MXnNodePredicate::~MXnNodePredicate(void)
-	?HorizontalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 154 NONAME ; int TXnUiEnginePluginIf::HorizontalTwipValueL(class CXnProperty *, int)
-	?ConstructL@CXnAppUiAdapter@@UAEXXZ @ 155 NONAME ; void CXnAppUiAdapter::ConstructL(void)
-	?CreateFontL@CXnUtils@@SAXAAVCXnNodePluginIf@@AAPAVCFont@@AAH@Z @ 156 NONAME ; void CXnUtils::CreateFontL(class CXnNodePluginIf &, class CFont * &, int &)
-	??0CXnApplication@@QAE@VTUid@@@Z @ 157 NONAME ; CXnApplication::CXnApplication(class TUid)
-	?ComponentControl@CXnControlAdapter@@MBEPAVCCoeControl@@H@Z @ 158 NONAME ; class CCoeControl * CXnControlAdapter::ComponentControl(int) const
-	?HandleLongTapEventL@CXnControlAdapter@@UAEXABVTPoint@@0@Z @ 159 NONAME ; void CXnControlAdapter::HandleLongTapEventL(class TPoint const &, class TPoint const &)
-	?ParentL@CXnNodeAppIf@@QBEPAV1@XZ @ 160 NONAME ; class CXnNodeAppIf * CXnNodeAppIf::ParentL(void) const
-	??1CXnComponent@@UAE@XZ @ 161 NONAME ; CXnComponent::~CXnComponent(void)
-	?ControlAdapter@CXnComponent@@QAEPAVCXnControlAdapter@@XZ @ 162 NONAME ; class CXnControlAdapter * CXnComponent::ControlAdapter(void)
-	?DrawContentImage@CXnControlAdapter@@IBEXXZ @ 163 NONAME ; void CXnControlAdapter::DrawContentImage(void) const
-	?Component@CXnComponentNodeImpl@@QAEPAVCXnComponent@@XZ @ 164 NONAME ; class CXnComponent * CXnComponentNodeImpl::Component(void)
-	?WidgetsVisible@TXnUiEnginePluginIf@@QBEHXZ @ 165 NONAME ; int TXnUiEnginePluginIf::WidgetsVisible(void) const
-	?SetControlAdapter@CXnComponent@@QAEXPAVCXnControlAdapter@@@Z @ 166 NONAME ; void CXnComponent::SetControlAdapter(class CXnControlAdapter *)
-	?SetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 167 NONAME ; void CXnNodePluginIf::SetStateL(class TDesC8 const &)
-	?DoesComponentNeedCreation@CXnComponentNodeImpl@@QBEHXZ @ 168 NONAME ; int CXnComponentNodeImpl::DoesComponentNeedCreation(void) const
-	??0CXnDocument@@QAE@AAVCEikApplication@@VTUid@@@Z @ 169 NONAME ; CXnDocument::CXnDocument(class CEikApplication &, class TUid)
-	?FindNodeByClassL@TXnUiEnginePluginIf@@QAE?AV?$RPointerArray@VCXnNodePluginIf@@@@ABVTDesC16@@@Z @ 170 NONAME ; class RPointerArray<class CXnNodePluginIf> TXnUiEnginePluginIf::FindNodeByClassL(class TDesC16 const &)
-	?InternalDomNodeType@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 171 NONAME ; class TDesC8 const & CXnNodeAppIf::InternalDomNodeType(void) const
-	?StringPool@TXnUiEnginePluginIf@@QAEAAVCXnDomStringPool@@XZ @ 172 NONAME ; class CXnDomStringPool & TXnUiEnginePluginIf::StringPool(void)
-	?SetStateL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 173 NONAME ; void CXnNodeAppIf::SetStateL(class TDesC8 const &)
-	?Type@CXnNodeAppIf@@QAEPAVCXnType@@XZ @ 174 NONAME ; class CXnType * CXnNodeAppIf::Type(void)
-	?BorderRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 175 NONAME ; class TRect CXnNodeAppIf::BorderRect(void)
-	?IdL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 176 NONAME ; class CXnProperty * CXnNodePluginIf::IdL(void)
-	?RootNodeL@TXnUiEngineAppIf@@QAEAAVCXnNodeAppIf@@XZ @ 177 NONAME ; class CXnNodeAppIf & TXnUiEngineAppIf::RootNodeL(void)
-	?CreateXnComponentL@MXnComponentFactory@@QAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 178 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::CreateXnComponentL(class CXnNodePluginIf &, class CXnComponent * &)
-	?RefreshMenuL@TXnUiEngineAppIf@@QAEXXZ @ 179 NONAME ; void TXnUiEngineAppIf::RefreshMenuL(void)
-	?PaddingRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 180 NONAME ; class TRect CXnNodePluginIf::PaddingRect(void)
-	?MeasureAdaptiveContentL@CXnControlAdapter@@UAE?AVTSize@@ABV2@@Z @ 181 NONAME ; class TSize CXnControlAdapter::MeasureAdaptiveContentL(class TSize const &)
-	?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@0W4TPrimitiveValueType@CXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 182 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class TDesC8 const &, enum CXnDomPropertyValue::TPrimitiveValueType, class CXnDomStringPool &)
-	?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@AAV2@@Z @ 183 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class CXnProperty &) const
-	?MarginRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 184 NONAME ; class TRect CXnNodeAppIf::MarginRect(void)
-	?EditMode@TXnUiEnginePluginIf@@QAEHXZ @ 185 NONAME ; int TXnUiEnginePluginIf::EditMode(void)
-	?FindNodeByIdL@TXnUiEnginePluginIf@@QAEPAVCXnNodePluginIf@@ABVTDesC8@@0@Z @ 186 NONAME ; class CXnNodePluginIf * TXnUiEnginePluginIf::FindNodeByIdL(class TDesC8 const &, class TDesC8 const &)
-	?MakeInterfaceL@CXnComponent@@UAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 187 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnComponent::MakeInterfaceL(class TDesC8 const &)
-	?EnableRenderUi@CXnUiEngineImpl@@CAXPAX@Z @ 188 NONAME ; void CXnUiEngineImpl::EnableRenderUi(void *)
-	?IsMenuDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 189 NONAME ; int TXnUiEnginePluginIf::IsMenuDisplaying(void)
-	?IsMenuDisplaying@TXnUiEngineAppIf@@QAEHXZ @ 190 NONAME ; int TXnUiEngineAppIf::IsMenuDisplaying(void)
-	?NewL@CXnProperty@@SAPAV1@PAVCXnDomProperty@@@Z @ 191 NONAME ; class CXnProperty * CXnProperty::NewL(class CXnDomProperty *)
-	?ConstructL@CXnComponentNodeImpl@@IAEXPAVCXnType@@@Z @ 192 NONAME ; void CXnComponentNodeImpl::ConstructL(class CXnType *)
-	?ChildrenL@CXnNodeAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@XZ @ 193 NONAME ; class RPointerArray<class CXnNodeAppIf> CXnNodeAppIf::ChildrenL(void)
-	?ConvertHslToRgb@CXnUtils@@SA?AVTRgb@@HHH@Z @ 194 NONAME ; class TRgb CXnUtils::ConvertHslToRgb(int, int, int)
-	?LoadBitmap@CXnControlAdapter@@QAEPAVCFbsBitmap@@ABVTDesC16@@@Z @ 195 NONAME ; class CFbsBitmap * CXnControlAdapter::LoadBitmap(class TDesC16 const &)
-	??0MXnComponentFactory@@IAE@XZ @ 196 NONAME ; MXnComponentFactory::MXnComponentFactory(void)
-	?SetComponent@CXnViewsNodeImpl@@QAEXPAVCXnComponent@@@Z @ 197 NONAME ; void CXnViewsNodeImpl::SetComponent(class CXnComponent *)
-	?BorderRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 198 NONAME ; class TRect CXnNodePluginIf::BorderRect(void)
-	?CreateDocumentL@CXnApplication@@MAEPAVCApaDocument@@XZ @ 199 NONAME ; class CApaDocument * CXnApplication::CreateDocumentL(void)
-	?HandleUiReadyEventL@CXnAppUiAdapter@@UAEXXZ @ 200 NONAME ; void CXnAppUiAdapter::HandleUiReadyEventL(void)
-	?CreateFontL@CXnUtils@@SAXABVTDesC16@@HVTFontStyle@@AAPAVCFont@@AAH@Z @ 201 NONAME ; void CXnUtils::CreateFontL(class TDesC16 const &, int, class TFontStyle, class CFont * &, int &)
-	?GetPluginNodeArrayL@TXnUiEngineAppIf@@QAEHAAV?$RPointerArray@VCXnNodeAppIf@@@@@Z @ 202 NONAME ; int TXnUiEngineAppIf::GetPluginNodeArrayL(class RPointerArray<class CXnNodeAppIf> &)
-	?MakeXnControlAdapterL@MXnComponentFactory@@EAEPAVCXnControlAdapter@@AAVCXnNodePluginIf@@PAV2@@Z @ 203 NONAME ; class CXnControlAdapter * MXnComponentFactory::MakeXnControlAdapterL(class CXnNodePluginIf &, class CXnControlAdapter *)
-	?IsDrawingAllowed@CXnNodePluginIf@@QBEHXZ @ 204 NONAME ; int CXnNodePluginIf::IsDrawingAllowed(void) const
-	?MakeInterfaceL@CXnNodeAppIf@@QAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 205 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnNodeAppIf::MakeInterfaceL(class TDesC8 const &)
-	?VerticalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 206 NONAME ; int TXnUiEnginePluginIf::VerticalTwipValueL(class CXnProperty *, int)
-	?Component@CXnControlAdapter@@QAEPAVCXnComponent@@XZ @ 207 NONAME ; class CXnComponent * CXnControlAdapter::Component(void)
-	?FloatValueL@CXnProperty@@QAENXZ @ 208 NONAME ; double CXnProperty::FloatValueL(void)
-	?SetUiEngine@TXnUiEngineAppIf@@QAEXPAVCXnUiEngine@@@Z @ 209 NONAME ; void TXnUiEngineAppIf::SetUiEngine(class CXnUiEngine *)
-	?FindNodeByIdL@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@ABVTDesC16@@0@Z @ 210 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FindNodeByIdL(class TDesC16 const &, class TDesC16 const &)
-	?IsEditMode@TXnUiEngineAppIf@@QAEHXZ @ 211 NONAME ; int TXnUiEngineAppIf::IsEditMode(void)
-	?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@AAH@Z @ 212 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &, int &)
-	?EnablePartialTouchInput@TXnUiEnginePluginIf@@QAEXAAVCXnNodePluginIf@@H@Z @ 213 NONAME ; void TXnUiEnginePluginIf::EnablePartialTouchInput(class CXnNodePluginIf &, int)
+	?IsEditState@CXnNodePluginIf@@QAEHXZ @ 42 NONAME ; int CXnNodePluginIf::IsEditState(void)
+	?HandlePointerEventL@CXnControlAdapter@@UAEXABUTPointerEvent@@@Z @ 43 NONAME ; void CXnControlAdapter::HandlePointerEventL(struct TPointerEvent const &)
+	??1CXnDocument@@UAE@XZ @ 44 NONAME ; CXnDocument::~CXnDocument(void)
+	?HandleResourceChangeL@CXnAppUiAdapter@@MAEXH@Z @ 45 NONAME ; void CXnAppUiAdapter::HandleResourceChangeL(int)
+	?DoEnterPowerSaveModeL@CXnControlAdapter@@UAEXW4TModeEvent@1@@Z @ 46 NONAME ; void CXnControlAdapter::DoEnterPowerSaveModeL(enum CXnControlAdapter::TModeEvent)
+	?CloneL@CXnProperty@@QAEPAV1@XZ @ 47 NONAME ; class CXnProperty * CXnProperty::CloneL(void)
+	?ReportTriggerEventL@CXnNodePluginIf@@QAEXABVTDesC8@@00@Z @ 48 NONAME ; void CXnNodePluginIf::ReportTriggerEventL(class TDesC8 const &, class TDesC8 const &, class TDesC8 const &)
+	?FocusedNodeL@TXnUiEnginePluginIf@@QAEPAVCXnNodePluginIf@@XZ @ 49 NONAME ; class CXnNodePluginIf * TXnUiEnginePluginIf::FocusedNodeL(void)
+	?FindContentSourceNodesL@TXnUiEngineAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@ABVTDesC8@@@Z @ 50 NONAME ; class RPointerArray<class CXnNodeAppIf> TXnUiEngineAppIf::FindContentSourceNodesL(class TDesC8 const &)
+	?EqualsL@CXnProperty@@QBEHAAV1@@Z @ 51 NONAME ; int CXnProperty::EqualsL(class CXnProperty &) const
+	?ScreenDeviceSize@TXnUiEnginePluginIf@@QAE?AVTSize@@XZ @ 52 NONAME ; class TSize TXnUiEnginePluginIf::ScreenDeviceSize(void)
+	??0CXnControlAdapter@@IAE@XZ @ 53 NONAME ; CXnControlAdapter::CXnControlAdapter(void)
+	?UiEngineL@CXnNodeAppIf@@QAEPAVTXnUiEngineAppIf@@XZ @ 54 NONAME ; class TXnUiEngineAppIf * CXnNodeAppIf::UiEngineL(void)
+	?LongTapDetector@CXnControlAdapter@@QBEPAVCAknLongTapDetector@@XZ @ 55 NONAME ; class CAknLongTapDetector * CXnControlAdapter::LongTapDetector(void) const
+	??0CXnAppUiAdapter@@QAE@VTUid@@@Z @ 56 NONAME ; CXnAppUiAdapter::CXnAppUiAdapter(class TUid)
+	?DestroyPublisher@CXnAppUiAdapter@@UAEXABVTAiFwPublisherInfo@@@Z @ 57 NONAME ; void CXnAppUiAdapter::DestroyPublisher(class TAiFwPublisherInfo const &)
+	?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 *)
+	?ExitPowerSaveModeL@CXnControlAdapter@@QAEXW4TModeEvent@1@@Z @ 64 NONAME ; void CXnControlAdapter::ExitPowerSaveModeL(enum CXnControlAdapter::TModeEvent)
+	?PublisherInfo@CXnAppUiAdapter@@UAEHAAVCXnNodeAppIf@@AAVTHsPublisherInfo@@@Z @ 65 NONAME ; int CXnAppUiAdapter::PublisherInfo(class CXnNodeAppIf &, class THsPublisherInfo &)
+	?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)
+	?ProcessMessageL@CXnAppUiAdapter@@UAEXVTUid@@ABVTDesC8@@@Z @ 73 NONAME ; void CXnAppUiAdapter::ProcessMessageL(class TUid, class TDesC8 const &)
+	?Component@CXnNodeAppIf@@QAEAAVCXnComponent@@XZ @ 74 NONAME ; class CXnComponent & CXnNodeAppIf::Component(void)
+	?SetLayoutCapable@CXnNodePluginIf@@QAEXH@Z @ 75 NONAME ; void CXnNodePluginIf::SetLayoutCapable(int)
+	?MarginRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 76 NONAME ; class TRect CXnNodePluginIf::MarginRect(void)
+	?UiEngineL@CXnAppUiAdapter@@QAEPAVTXnUiEngineAppIf@@XZ @ 77 NONAME ; class TXnUiEngineAppIf * CXnAppUiAdapter::UiEngineL(void)
+	?ActiveView@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@XZ @ 78 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::ActiveView(void)
+	?HandleXuikonEventL@CXnAppUiAdapter@@UAEXAAVCXnNodeAppIf@@0AAVCXnDomNode@@1@Z @ 79 NONAME ; void CXnAppUiAdapter::HandleXuikonEventL(class CXnNodeAppIf &, class CXnNodeAppIf &, class CXnDomNode &, class CXnDomNode &)
+	?RenderUIL@TXnUiEngineAppIf@@QAEXPAVCXnNodeAppIf@@@Z @ 80 NONAME ; void TXnUiEngineAppIf::RenderUIL(class CXnNodeAppIf *)
+	?PrepareToExit@CXnAppUiAdapter@@MAEXXZ @ 81 NONAME ; void CXnAppUiAdapter::PrepareToExit(void)
+	?DoHandlePropertyChangeL@CXnControlAdapter@@UAEXPAVCXnProperty@@@Z @ 82 NONAME ; void CXnControlAdapter::DoHandlePropertyChangeL(class CXnProperty *)
+	?ConstructL@CXnControlAdapter@@IAEXAAVCXnNodePluginIf@@@Z @ 83 NONAME ; void CXnControlAdapter::ConstructL(class CXnNodePluginIf &)
+	?FocusedNode@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@XZ @ 84 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FocusedNode(void)
+	?SetDataL@CXnComponent@@QAEXABVTDesC8@@ABVTDesC16@@H@Z @ 85 NONAME ; void CXnComponent::SetDataL(class TDesC8 const &, class TDesC16 const &, int)
+	?OfferKeyEventL@CXnControlAdapter@@UAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 86 NONAME ; enum TKeyResponse CXnControlAdapter::OfferKeyEventL(struct TKeyEvent const &, enum TEventCode)
+	?IsDrawingAllowed@CXnControlAdapter@@QBEHXZ @ 87 NONAME ; int CXnControlAdapter::IsDrawingAllowed(void) const
+	?DisplayL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 88 NONAME ; class CXnProperty * CXnNodePluginIf::DisplayL(void)
+	?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@PAVCXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 89 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class CXnDomPropertyValue *, class CXnDomStringPool &)
+	?Rect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 90 NONAME ; class TRect CXnNodeAppIf::Rect(void)
+	?NewL@CXnComponentNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 91 NONAME ; class CXnComponentNodeImpl * CXnComponentNodeImpl::NewL(class CXnType *)
+	?WidgetsVisible@TXnUiEngineAppIf@@QBEHXZ @ 92 NONAME ; int TXnUiEngineAppIf::WidgetsVisible(void) const
+	?Type@CXnNodePluginIf@@QAEPAVCXnType@@XZ @ 93 NONAME ; class CXnType * CXnNodePluginIf::Type(void)
+	?MakeXnComponentL@MXnComponentFactory@@EAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 94 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::MakeXnComponentL(class CXnNodePluginIf &, class CXnComponent * &)
+	?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)
+	?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@@Z @ 110 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &)
+	?PluginNodeL@TXnUiEnginePluginIf@@QAEAAVCXnNodePluginIf@@PAV2@@Z @ 111 NONAME ; class CXnNodePluginIf & TXnUiEnginePluginIf::PluginNodeL(class CXnNodePluginIf *)
+	?VerticalPixelValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 112 NONAME ; int TXnUiEnginePluginIf::VerticalPixelValueL(class CXnProperty *, int)
+	?SetComponent@CXnControlAdapter@@QAEXPAVCXnComponent@@@Z @ 113 NONAME ; void CXnControlAdapter::SetComponent(class CXnComponent *)
+	??0MXnNodePredicate@@QAE@XZ @ 114 NONAME ; MXnNodePredicate::MXnNodePredicate(void)
+	??1CXnViewsNodeImpl@@UAE@XZ @ 115 NONAME ; CXnViewsNodeImpl::~CXnViewsNodeImpl(void)
+	?HandleControlEventL@CXnControlAdapter@@UAEXPAVCCoeControl@@W4TCoeEvent@MCoeControlObserver@@@Z @ 116 NONAME ; void CXnControlAdapter::HandleControlEventL(class CCoeControl *, enum MCoeControlObserver::TCoeEvent)
+	?HandleScreenDeviceChangedL@CXnControlAdapter@@UAEXXZ @ 117 NONAME ; void CXnControlAdapter::HandleScreenDeviceChangedL(void)
+	?SizeChanged@CXnControlAdapter@@MAEXXZ @ 118 NONAME ; void CXnControlAdapter::SizeChanged(void)
+	?CountComponentControls@CXnControlAdapter@@MBEHXZ @ 119 NONAME ; int CXnControlAdapter::CountComponentControls(void) const
+	?HideTooltipsL@CXnNodeAppIf@@QAEXXZ @ 120 NONAME ; void CXnNodeAppIf::HideTooltipsL(void)
+	?GetPropertyL@CXnNodeAppIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 121 NONAME ; class CXnProperty * CXnNodeAppIf::GetPropertyL(class TDesC8 const &) const
+	?FindNodeByClassL@TXnUiEngineAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@ABVTDesC8@@0@Z @ 122 NONAME ; class RPointerArray<class CXnNodeAppIf> TXnUiEngineAppIf::FindNodeByClassL(class TDesC8 const &, class TDesC8 const &)
+	?Match@MXnNodePredicate@@UAEHAAVCXnNode@@@Z @ 123 NONAME ; int MXnNodePredicate::Match(class CXnNode &)
+	?GetBitmapAndMask@CXnControlAdapter@@QAEXABVTDesC16@@0AAPAVCFbsBitmap@@1@Z @ 124 NONAME ; void CXnControlAdapter::GetBitmapAndMask(class TDesC16 const &, class TDesC16 const &, class CFbsBitmap * &, class CFbsBitmap * &)
+	?NewL@CXnViewsNodeImpl@@SAPAV1@PAVCXnType@@@Z @ 125 NONAME ; class CXnViewsNodeImpl * CXnViewsNodeImpl::NewL(class CXnType *)
+	?PaddingRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 126 NONAME ; class TRect CXnNodeAppIf::PaddingRect(void)
+	?SetMarginRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 127 NONAME ; void CXnNodePluginIf::SetMarginRect(class TRect const &)
+	?IsDialogDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 128 NONAME ; int TXnUiEnginePluginIf::IsDialogDisplaying(void)
+	?HandleEventL@CXnAppUiAdapter@@UAEXABVTDesC16@@AAVCXnNodeAppIf@@@Z @ 129 NONAME ; void CXnAppUiAdapter::HandleEventL(class TDesC16 const &, class CXnNodeAppIf &)
+	?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@ABVTDesC8@@@Z @ 130 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class TDesC8 const &) const
+	?SetPropertyArrayL@CXnNodeAppIf@@QAEXPAV?$RPointerArray@VCXnProperty@@@@@Z @ 131 NONAME ; void CXnNodeAppIf::SetPropertyArrayL(class RPointerArray<class CXnProperty> *)
+	?RemoveViewL@CXnAppUiAdapter@@QAEXAAVCAknView@@@Z @ 132 NONAME ; void CXnAppUiAdapter::RemoveViewL(class CAknView &)
+	?EnterPowerSaveModeL@CXnComponent@@UAEXXZ @ 133 NONAME ; void CXnComponent::EnterPowerSaveModeL(void)
+	?SetRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 134 NONAME ; void CXnNodePluginIf::SetRect(class TRect const &)
+	??0CXnComponent@@IAE@XZ @ 135 NONAME ; CXnComponent::CXnComponent(void)
+	?CollapseWhiteSpace@CXnUtils@@SAXAAVCXnNodePluginIf@@AAVTDes16@@@Z @ 136 NONAME ; void CXnUtils::CollapseWhiteSpace(class CXnNodePluginIf &, class TDes16 &)
+	?SetHandleTooltip@CXnNodePluginIf@@QAEXH@Z @ 137 NONAME ; void CXnNodePluginIf::SetHandleTooltip(int)
+	??1CXnAppUiAdapter@@UAE@XZ @ 138 NONAME ; CXnAppUiAdapter::~CXnAppUiAdapter(void)
+	?NewL@CXnControlAdapter@@SAPAV1@AAVCXnNodePluginIf@@@Z @ 139 NONAME ; class CXnControlAdapter * CXnControlAdapter::NewL(class CXnNodePluginIf &)
+	?EnableLongTapAnimation@CXnControlAdapter@@QAEXH@Z @ 140 NONAME ; void CXnControlAdapter::EnableLongTapAnimation(int)
+	?SetPaddingRect@CXnNodePluginIf@@QAEXABVTRect@@@Z @ 141 NONAME ; void CXnNodePluginIf::SetPaddingRect(class TRect const &)
+	?SetFocusedNode@TXnUiEnginePluginIf@@QAEXPAVCXnNodePluginIf@@@Z @ 142 NONAME ; void TXnUiEnginePluginIf::SetFocusedNode(class CXnNodePluginIf *)
+	?ExitPowerSaveModeL@CXnComponent@@UAEXXZ @ 143 NONAME ; void CXnComponent::ExitPowerSaveModeL(void)
+	?GetPCData@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 144 NONAME ; class TDesC8 const & CXnNodeAppIf::GetPCData(void) const
+	?Namespace@CXnNodeAppIf@@QAEABVTDesC8@@XZ @ 145 NONAME ; class TDesC8 const & CXnNodeAppIf::Namespace(void)
+	?LoadPublisher@CXnAppUiAdapter@@UAEXABVTAiFwPublisherInfo@@@Z @ 146 NONAME ; void CXnAppUiAdapter::LoadPublisher(class TAiFwPublisherInfo const &)
+	??1CXnComponentNodeImpl@@UAE@XZ @ 147 NONAME ; CXnComponentNodeImpl::~CXnComponentNodeImpl(void)
+	?SetPropertyWithoutNotificationL@CXnNodePluginIf@@QAEXPAVCXnProperty@@@Z @ 148 NONAME ; void CXnNodePluginIf::SetPropertyWithoutNotificationL(class CXnProperty *)
+	?GetPCData@CXnNodePluginIf@@QBEABVTDesC8@@XZ @ 149 NONAME ; class TDesC8 const & CXnNodePluginIf::GetPCData(void) const
+	?SetPCDataL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 150 NONAME ; void CXnNodeAppIf::SetPCDataL(class TDesC8 const &)
+	?Resources@TXnUiEnginePluginIf@@QAEAAV?$CArrayPtrSeg@VCXnResource@@@@XZ @ 151 NONAME ; class CArrayPtrSeg<class CXnResource> & TXnUiEnginePluginIf::Resources(void)
+	?SetContentBitmaps@CXnControlAdapter@@QAEXABVTDesC16@@0@Z @ 152 NONAME ; void CXnControlAdapter::SetContentBitmaps(class TDesC16 const &, class TDesC16 const &)
+	??1CXnControlAdapter@@UAE@XZ @ 153 NONAME ; CXnControlAdapter::~CXnControlAdapter(void)
+	??1MXnNodePredicate@@UAE@XZ @ 154 NONAME ; MXnNodePredicate::~MXnNodePredicate(void)
+	?HorizontalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 155 NONAME ; int TXnUiEnginePluginIf::HorizontalTwipValueL(class CXnProperty *, int)
+	?ConstructL@CXnAppUiAdapter@@UAEXXZ @ 156 NONAME ; void CXnAppUiAdapter::ConstructL(void)
+	?CreateFontL@CXnUtils@@SAXAAVCXnNodePluginIf@@AAPAVCFont@@AAH@Z @ 157 NONAME ; void CXnUtils::CreateFontL(class CXnNodePluginIf &, class CFont * &, int &)
+	??0CXnApplication@@QAE@VTUid@@@Z @ 158 NONAME ; CXnApplication::CXnApplication(class TUid)
+	?ComponentControl@CXnControlAdapter@@MBEPAVCCoeControl@@H@Z @ 159 NONAME ; class CCoeControl * CXnControlAdapter::ComponentControl(int) const
+	?HandleLongTapEventL@CXnControlAdapter@@UAEXABVTPoint@@0@Z @ 160 NONAME ; void CXnControlAdapter::HandleLongTapEventL(class TPoint const &, class TPoint const &)
+	?ParentL@CXnNodeAppIf@@QBEPAV1@XZ @ 161 NONAME ; class CXnNodeAppIf * CXnNodeAppIf::ParentL(void) const
+	??1CXnComponent@@UAE@XZ @ 162 NONAME ; CXnComponent::~CXnComponent(void)
+	?ControlAdapter@CXnComponent@@QAEPAVCXnControlAdapter@@XZ @ 163 NONAME ; class CXnControlAdapter * CXnComponent::ControlAdapter(void)
+	?DrawContentImage@CXnControlAdapter@@IBEXXZ @ 164 NONAME ; void CXnControlAdapter::DrawContentImage(void) const
+	?Component@CXnComponentNodeImpl@@QAEPAVCXnComponent@@XZ @ 165 NONAME ; class CXnComponent * CXnComponentNodeImpl::Component(void)
+	?WidgetsVisible@TXnUiEnginePluginIf@@QBEHXZ @ 166 NONAME ; int TXnUiEnginePluginIf::WidgetsVisible(void) const
+	?SetControlAdapter@CXnComponent@@QAEXPAVCXnControlAdapter@@@Z @ 167 NONAME ; void CXnComponent::SetControlAdapter(class CXnControlAdapter *)
+	?SetStateL@CXnNodePluginIf@@QAEXABVTDesC8@@@Z @ 168 NONAME ; void CXnNodePluginIf::SetStateL(class TDesC8 const &)
+	?DoesComponentNeedCreation@CXnComponentNodeImpl@@QBEHXZ @ 169 NONAME ; int CXnComponentNodeImpl::DoesComponentNeedCreation(void) const
+	??0CXnDocument@@QAE@AAVCEikApplication@@VTUid@@@Z @ 170 NONAME ; CXnDocument::CXnDocument(class CEikApplication &, class TUid)
+	?FindNodeByClassL@TXnUiEnginePluginIf@@QAE?AV?$RPointerArray@VCXnNodePluginIf@@@@ABVTDesC16@@@Z @ 171 NONAME ; class RPointerArray<class CXnNodePluginIf> TXnUiEnginePluginIf::FindNodeByClassL(class TDesC16 const &)
+	?InternalDomNodeType@CXnNodeAppIf@@QBEABVTDesC8@@XZ @ 172 NONAME ; class TDesC8 const & CXnNodeAppIf::InternalDomNodeType(void) const
+	?StringPool@TXnUiEnginePluginIf@@QAEAAVCXnDomStringPool@@XZ @ 173 NONAME ; class CXnDomStringPool & TXnUiEnginePluginIf::StringPool(void)
+	?SetStateL@CXnNodeAppIf@@QAEXABVTDesC8@@@Z @ 174 NONAME ; void CXnNodeAppIf::SetStateL(class TDesC8 const &)
+	?Type@CXnNodeAppIf@@QAEPAVCXnType@@XZ @ 175 NONAME ; class CXnType * CXnNodeAppIf::Type(void)
+	?BorderRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 176 NONAME ; class TRect CXnNodeAppIf::BorderRect(void)
+	?IdL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 177 NONAME ; class CXnProperty * CXnNodePluginIf::IdL(void)
+	?RootNodeL@TXnUiEngineAppIf@@QAEAAVCXnNodeAppIf@@XZ @ 178 NONAME ; class CXnNodeAppIf & TXnUiEngineAppIf::RootNodeL(void)
+	?CreateXnComponentL@MXnComponentFactory@@QAE?AW4TXnComponentFactoryResponse@1@AAVCXnNodePluginIf@@AAPAVCXnComponent@@@Z @ 179 NONAME ; enum MXnComponentFactory::TXnComponentFactoryResponse MXnComponentFactory::CreateXnComponentL(class CXnNodePluginIf &, class CXnComponent * &)
+	?RefreshMenuL@TXnUiEngineAppIf@@QAEXXZ @ 180 NONAME ; void TXnUiEngineAppIf::RefreshMenuL(void)
+	?PaddingRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 181 NONAME ; class TRect CXnNodePluginIf::PaddingRect(void)
+	?MeasureAdaptiveContentL@CXnControlAdapter@@UAE?AVTSize@@ABV2@@Z @ 182 NONAME ; class TSize CXnControlAdapter::MeasureAdaptiveContentL(class TSize const &)
+	?NewL@CXnProperty@@SAPAV1@ABVTDesC8@@0W4TPrimitiveValueType@CXnDomPropertyValue@@AAVCXnDomStringPool@@@Z @ 183 NONAME ; class CXnProperty * CXnProperty::NewL(class TDesC8 const &, class TDesC8 const &, enum CXnDomPropertyValue::TPrimitiveValueType, class CXnDomStringPool &)
+	?GetPropertyL@CXnNodePluginIf@@QBEPAVCXnProperty@@AAV2@@Z @ 184 NONAME ; class CXnProperty * CXnNodePluginIf::GetPropertyL(class CXnProperty &) const
+	?MarginRect@CXnNodeAppIf@@QAE?AVTRect@@XZ @ 185 NONAME ; class TRect CXnNodeAppIf::MarginRect(void)
+	?EditMode@TXnUiEnginePluginIf@@QAEHXZ @ 186 NONAME ; int TXnUiEnginePluginIf::EditMode(void)
+	?FindNodeByIdL@TXnUiEnginePluginIf@@QAEPAVCXnNodePluginIf@@ABVTDesC8@@0@Z @ 187 NONAME ; class CXnNodePluginIf * TXnUiEnginePluginIf::FindNodeByIdL(class TDesC8 const &, class TDesC8 const &)
+	?MakeInterfaceL@CXnComponent@@UAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 188 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnComponent::MakeInterfaceL(class TDesC8 const &)
+	?EnableRenderUi@CXnUiEngineImpl@@CAXPAX@Z @ 189 NONAME ; void CXnUiEngineImpl::EnableRenderUi(void *)
+	?IsMenuDisplaying@TXnUiEnginePluginIf@@QAEHXZ @ 190 NONAME ; int TXnUiEnginePluginIf::IsMenuDisplaying(void)
+	?IsMenuDisplaying@TXnUiEngineAppIf@@QAEHXZ @ 191 NONAME ; int TXnUiEngineAppIf::IsMenuDisplaying(void)
+	?NewL@CXnProperty@@SAPAV1@PAVCXnDomProperty@@@Z @ 192 NONAME ; class CXnProperty * CXnProperty::NewL(class CXnDomProperty *)
+	?ConstructL@CXnComponentNodeImpl@@IAEXPAVCXnType@@@Z @ 193 NONAME ; void CXnComponentNodeImpl::ConstructL(class CXnType *)
+	?ChildrenL@CXnNodeAppIf@@QAE?AV?$RPointerArray@VCXnNodeAppIf@@@@XZ @ 194 NONAME ; class RPointerArray<class CXnNodeAppIf> CXnNodeAppIf::ChildrenL(void)
+	?ConvertHslToRgb@CXnUtils@@SA?AVTRgb@@HHH@Z @ 195 NONAME ; class TRgb CXnUtils::ConvertHslToRgb(int, int, int)
+	?LoadBitmap@CXnControlAdapter@@QAEPAVCFbsBitmap@@ABVTDesC16@@@Z @ 196 NONAME ; class CFbsBitmap * CXnControlAdapter::LoadBitmap(class TDesC16 const &)
+	??0MXnComponentFactory@@IAE@XZ @ 197 NONAME ; MXnComponentFactory::MXnComponentFactory(void)
+	?SetComponent@CXnViewsNodeImpl@@QAEXPAVCXnComponent@@@Z @ 198 NONAME ; void CXnViewsNodeImpl::SetComponent(class CXnComponent *)
+	?BorderRect@CXnNodePluginIf@@QAE?AVTRect@@XZ @ 199 NONAME ; class TRect CXnNodePluginIf::BorderRect(void)
+	?CreateDocumentL@CXnApplication@@MAEPAVCApaDocument@@XZ @ 200 NONAME ; class CApaDocument * CXnApplication::CreateDocumentL(void)
+	?HandleUiReadyEventL@CXnAppUiAdapter@@UAEXXZ @ 201 NONAME ; void CXnAppUiAdapter::HandleUiReadyEventL(void)
+	?CreateFontL@CXnUtils@@SAXABVTDesC16@@HVTFontStyle@@AAPAVCFont@@AAH@Z @ 202 NONAME ; void CXnUtils::CreateFontL(class TDesC16 const &, int, class TFontStyle, class CFont * &, int &)
+	?GetPluginNodeArrayL@TXnUiEngineAppIf@@QAEHAAV?$RPointerArray@VCXnNodeAppIf@@@@@Z @ 203 NONAME ; int TXnUiEngineAppIf::GetPluginNodeArrayL(class RPointerArray<class CXnNodeAppIf> &)
+	?MakeXnControlAdapterL@MXnComponentFactory@@EAEPAVCXnControlAdapter@@AAVCXnNodePluginIf@@PAV2@@Z @ 204 NONAME ; class CXnControlAdapter * MXnComponentFactory::MakeXnControlAdapterL(class CXnNodePluginIf &, class CXnControlAdapter *)
+	?IsDrawingAllowed@CXnNodePluginIf@@QBEHXZ @ 205 NONAME ; int CXnNodePluginIf::IsDrawingAllowed(void) const
+	?MakeInterfaceL@CXnNodeAppIf@@QAEPAVMXnComponentInterface@XnComponentInterface@@ABVTDesC8@@@Z @ 206 NONAME ; class XnComponentInterface::MXnComponentInterface * CXnNodeAppIf::MakeInterfaceL(class TDesC8 const &)
+	?VerticalTwipValueL@TXnUiEnginePluginIf@@QAEHPAVCXnProperty@@H@Z @ 207 NONAME ; int TXnUiEnginePluginIf::VerticalTwipValueL(class CXnProperty *, int)
+	?Component@CXnControlAdapter@@QAEPAVCXnComponent@@XZ @ 208 NONAME ; class CXnComponent * CXnControlAdapter::Component(void)
+	?FloatValueL@CXnProperty@@QAENXZ @ 209 NONAME ; double CXnProperty::FloatValueL(void)
+	?SetUiEngine@TXnUiEngineAppIf@@QAEXPAVCXnUiEngine@@@Z @ 210 NONAME ; void TXnUiEngineAppIf::SetUiEngine(class CXnUiEngine *)
+	?FindNodeByIdL@TXnUiEngineAppIf@@QAEPAVCXnNodeAppIf@@ABVTDesC16@@0@Z @ 211 NONAME ; class CXnNodeAppIf * TXnUiEngineAppIf::FindNodeByIdL(class TDesC16 const &, class TDesC16 const &)
+	?IsEditMode@TXnUiEngineAppIf@@QAEHXZ @ 212 NONAME ; int TXnUiEngineAppIf::IsEditMode(void)
+	?ResolveSkinItemIDL@CXnUtils@@SAHABVTDesC16@@AAVTAknsItemID@@AAH@Z @ 213 NONAME ; int CXnUtils::ResolveSkinItemIDL(class TDesC16 const &, class TAknsItemID &, int &)
 	?RootNodeL@TXnUiEnginePluginIf@@QAEAAVCXnNodePluginIf@@XZ @ 214 NONAME ; class CXnNodePluginIf & TXnUiEnginePluginIf::RootNodeL(void)
 	?CreateAppUiL@CXnDocument@@UAEPAVCEikAppUi@@XZ @ 215 NONAME ; class CEikAppUi * CXnDocument::CreateAppUiL(void)
 	?PathL@CXnNodePluginIf@@QAEPAVCXnProperty@@XZ @ 216 NONAME ; class CXnProperty * CXnNodePluginIf::PathL(void)
--- a/idlehomescreen/xmluirendering/uiengine/eabi/xn3layoutengineu.def	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/eabi/xn3layoutengineu.def	Tue Sep 14 20:58:58 2010 +0300
@@ -76,129 +76,129 @@
 	_ZN15CXnNodePluginIf10BorderRectEv @ 75 NONAME
 	_ZN15CXnNodePluginIf10MarginRectEv @ 76 NONAME
 	_ZN15CXnNodePluginIf10SetPCDataLERK6TDesC8 @ 77 NONAME
-	_ZN15CXnNodePluginIf11PaddingRectEv @ 78 NONAME
-	_ZN15CXnNodePluginIf11UnsetStateLERK6TDesC8 @ 79 NONAME
-	_ZN15CXnNodePluginIf11VisibilityLEv @ 80 NONAME
-	_ZN15CXnNodePluginIf12SetPropertyLEP11CXnProperty @ 81 NONAME
-	_ZN15CXnNodePluginIf12ViewNodeImplEv @ 82 NONAME
-	_ZN15CXnNodePluginIf13SetBorderRectERK5TRect @ 83 NONAME
-	_ZN15CXnNodePluginIf13SetMarginRectERK5TRect @ 84 NONAME
-	_ZN15CXnNodePluginIf14IsFocusedStateEv @ 85 NONAME
-	_ZN15CXnNodePluginIf14MakeInterfaceLERK6TDesC8 @ 86 NONAME
-	_ZN15CXnNodePluginIf14SetPaddingRectERK5TRect @ 87 NONAME
-	_ZN15CXnNodePluginIf16SetHandleTooltipEi @ 88 NONAME
-	_ZN15CXnNodePluginIf16SetLayoutCapableEi @ 89 NONAME
-	_ZN15CXnNodePluginIf17ComponentNodeImplEv @ 90 NONAME
-	_ZN15CXnNodePluginIf19ReportTriggerEventLERK6TDesC8S2_S2_ @ 91 NONAME
-	_ZN15CXnNodePluginIf31SetPropertyWithoutNotificationLEP11CXnProperty @ 92 NONAME
-	_ZN15CXnNodePluginIf3IdLEv @ 93 NONAME
-	_ZN15CXnNodePluginIf4RectEv @ 94 NONAME
-	_ZN15CXnNodePluginIf4TypeEv @ 95 NONAME
-	_ZN15CXnNodePluginIf5PathLEv @ 96 NONAME
-	_ZN15CXnNodePluginIf6AppIfLEv @ 97 NONAME
-	_ZN15CXnNodePluginIf6LabelLEv @ 98 NONAME
-	_ZN15CXnNodePluginIf7SetRectERK5TRect @ 99 NONAME
-	_ZN15CXnNodePluginIf8DisplayLEv @ 100 NONAME
-	_ZN15CXnNodePluginIf9AddChildLEPS_ @ 101 NONAME
-	_ZN15CXnNodePluginIf9ChildrenLEv @ 102 NONAME
-	_ZN15CXnNodePluginIf9MaskPathLEv @ 103 NONAME
-	_ZN15CXnNodePluginIf9NamespaceEv @ 104 NONAME
-	_ZN15CXnNodePluginIf9SetDirtyLEv @ 105 NONAME
-	_ZN15CXnNodePluginIf9SetStateLERK6TDesC8 @ 106 NONAME
-	_ZN15CXnNodePluginIf9UiEngineLEv @ 107 NONAME
-	_ZN15CXnUiEngineImpl14EnableRenderUiEPv @ 108 NONAME
-	_ZN16CXnViewsNodeImpl10ConstructLEP7CXnType @ 109 NONAME
-	_ZN16CXnViewsNodeImpl12SetComponentEP12CXnComponent @ 110 NONAME
-	_ZN16CXnViewsNodeImpl4NewLEP7CXnType @ 111 NONAME
-	_ZN16CXnViewsNodeImpl9ComponentEv @ 112 NONAME
-	_ZN16CXnViewsNodeImplC1Ev @ 113 NONAME
-	_ZN16CXnViewsNodeImplC2Ev @ 114 NONAME
-	_ZN16CXnViewsNodeImplD0Ev @ 115 NONAME
-	_ZN16CXnViewsNodeImplD1Ev @ 116 NONAME
-	_ZN16CXnViewsNodeImplD2Ev @ 117 NONAME
-	_ZN16MXnNodePredicate5MatchER7CXnNode @ 118 NONAME
-	_ZN16MXnNodePredicateC1Ev @ 119 NONAME
-	_ZN16MXnNodePredicateC2Ev @ 120 NONAME
-	_ZN16MXnNodePredicateD0Ev @ 121 NONAME
-	_ZN16MXnNodePredicateD1Ev @ 122 NONAME
-	_ZN16MXnNodePredicateD2Ev @ 123 NONAME
-	_ZN16TXnUiEngineAppIf10ActiveViewEv @ 124 NONAME
-	_ZN16TXnUiEngineAppIf10IsEditModeEv @ 125 NONAME
-	_ZN16TXnUiEngineAppIf10StringPoolEv @ 126 NONAME
-	_ZN16TXnUiEngineAppIf11FocusedNodeEv @ 127 NONAME
-	_ZN16TXnUiEngineAppIf11SetUiEngineEP11CXnUiEngine @ 128 NONAME
-	_ZN16TXnUiEngineAppIf12RefreshMenuLEv @ 129 NONAME
-	_ZN16TXnUiEngineAppIf13FindNodeByIdLERK6TDesC8S2_ @ 130 NONAME
-	_ZN16TXnUiEngineAppIf13FindNodeByIdLERK7TDesC16S2_ @ 131 NONAME
-	_ZN16TXnUiEngineAppIf16FindNodeByClassLERK6TDesC8S2_ @ 132 NONAME
-	_ZN16TXnUiEngineAppIf16FindNodeByClassLERK7TDesC16S2_ @ 133 NONAME
-	_ZN16TXnUiEngineAppIf16GetThemeResourceERK7TDesC16R5RFile @ 134 NONAME
-	_ZN16TXnUiEngineAppIf16IsMenuDisplayingEv @ 135 NONAME
-	_ZN16TXnUiEngineAppIf19GetPluginNodeArrayLER13RPointerArrayI12CXnNodeAppIfE @ 136 NONAME
-	_ZN16TXnUiEngineAppIf23FindContentSourceNodesLERK6TDesC8 @ 137 NONAME
-	_ZN16TXnUiEngineAppIf9RenderUILEP12CXnNodeAppIf @ 138 NONAME
-	_ZN16TXnUiEngineAppIf9RootNodeLEv @ 139 NONAME
-	_ZN17CXnControlAdapter10ConstructLER15CXnNodePluginIf @ 140 NONAME
-	_ZN17CXnControlAdapter10LoadBitmapERK7TDesC16 @ 141 NONAME
-	_ZN17CXnControlAdapter10SetVisibleEi @ 142 NONAME
-	_ZN17CXnControlAdapter11SizeChangedEv @ 143 NONAME
-	_ZN17CXnControlAdapter11SkinChangedEv @ 144 NONAME
-	_ZN17CXnControlAdapter12FocusChangedE8TDrawNow @ 145 NONAME
-	_ZN17CXnControlAdapter12SetComponentEP12CXnComponent @ 146 NONAME
-	_ZN17CXnControlAdapter14ContentBitmapsERP10CFbsBitmapS2_ @ 147 NONAME
-	_ZN17CXnControlAdapter14OfferKeyEventLERK9TKeyEvent10TEventCode @ 148 NONAME
-	_ZN17CXnControlAdapter15SetLocalUiZoomLE10TAknUiZoom @ 149 NONAME
-	_ZN17CXnControlAdapter16GetBitmapAndMaskERK7TDesC16S2_RP10CFbsBitmapS5_ @ 150 NONAME
-	_ZN17CXnControlAdapter17SetContentBitmapsEP10CFbsBitmapS1_ @ 151 NONAME
-	_ZN17CXnControlAdapter17SetContentBitmapsERK7TDesC16S2_ @ 152 NONAME
-	_ZN17CXnControlAdapter18ExitPowerSaveModeLENS_10TModeEventE @ 153 NONAME
-	_ZN17CXnControlAdapter18ResetStylusCounterEv @ 154 NONAME
-	_ZN17CXnControlAdapter19EnterPowerSaveModeLENS_10TModeEventE @ 155 NONAME
-	_ZN17CXnControlAdapter19HandleControlEventLEP11CCoeControlN19MCoeControlObserver9TCoeEventE @ 156 NONAME
-	_ZN17CXnControlAdapter19HandleLongTapEventLERK6TPointS2_ @ 157 NONAME
-	_ZN17CXnControlAdapter19HandlePointerEventLERK13TPointerEvent @ 158 NONAME
-	_ZN17CXnControlAdapter20DoExitPowerSaveModeLENS_10TModeEventE @ 159 NONAME
-	_ZN17CXnControlAdapter21DoEnterPowerSaveModeLENS_10TModeEventE @ 160 NONAME
-	_ZN17CXnControlAdapter21HandlePropertyChangeLEP11CXnProperty @ 161 NONAME
-	_ZN17CXnControlAdapter22EnableLongTapAnimationEi @ 162 NONAME
-	_ZN17CXnControlAdapter23DoHandlePropertyChangeLEP11CXnProperty @ 163 NONAME
-	_ZN17CXnControlAdapter23MeasureAdaptiveContentLERK5TSize @ 164 NONAME
-	_ZN17CXnControlAdapter26HandleScreenDeviceChangedLEv @ 165 NONAME
-	_ZN17CXnControlAdapter4NewLER15CXnNodePluginIf @ 166 NONAME
-	_ZN17CXnControlAdapter8SetBlankEi @ 167 NONAME
-	_ZN17CXnControlAdapter8SetDataLERK6TDesC8RK7TDesC16i @ 168 NONAME
-	_ZN17CXnControlAdapter9ComponentEv @ 169 NONAME
-	_ZN17CXnControlAdapterC1Ev @ 170 NONAME
-	_ZN17CXnControlAdapterC2Ev @ 171 NONAME
-	_ZN17CXnControlAdapterD0Ev @ 172 NONAME
-	_ZN17CXnControlAdapterD1Ev @ 173 NONAME
-	_ZN17CXnControlAdapterD2Ev @ 174 NONAME
-	_ZN19MXnComponentFactory16MakeXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 175 NONAME
-	_ZN19MXnComponentFactory18CreateXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 176 NONAME
-	_ZN19MXnComponentFactory21MakeXnControlAdapterLER15CXnNodePluginIfP17CXnControlAdapter @ 177 NONAME
-	_ZN19MXnComponentFactory26DoesNodeNeedComponentImplLERK6TDesC8 @ 178 NONAME
-	_ZN19MXnComponentFactoryC2Ev @ 179 NONAME
-	_ZN19MXnComponentFactoryD0Ev @ 180 NONAME
-	_ZN19MXnComponentFactoryD1Ev @ 181 NONAME
-	_ZN19MXnComponentFactoryD2Ev @ 182 NONAME
-	_ZN19TXnUiEnginePluginIf10StringPoolEv @ 183 NONAME
-	_ZN19TXnUiEnginePluginIf11PluginNodeLEP15CXnNodePluginIf @ 184 NONAME
-	_ZN19TXnUiEnginePluginIf12FocusedNodeLEv @ 185 NONAME
-	_ZN19TXnUiEnginePluginIf13AddDirtyNodeLER15CXnNodePluginIf @ 186 NONAME
-	_ZN19TXnUiEnginePluginIf13FindNodeByIdLERK6TDesC8S2_ @ 187 NONAME
-	_ZN19TXnUiEnginePluginIf13FindNodeByIdLERK7TDesC16S2_ @ 188 NONAME
-	_ZN19TXnUiEnginePluginIf14SetFocusedNodeEP15CXnNodePluginIf @ 189 NONAME
-	_ZN19TXnUiEnginePluginIf16FindNodeByClassLERK7TDesC16 @ 190 NONAME
-	_ZN19TXnUiEnginePluginIf16IsMenuDisplayingEv @ 191 NONAME
-	_ZN19TXnUiEnginePluginIf16ScreenDeviceSizeEv @ 192 NONAME
-	_ZN19TXnUiEnginePluginIf17DisableRenderUiLCEv @ 193 NONAME
-	_ZN19TXnUiEnginePluginIf18IsDialogDisplayingEv @ 194 NONAME
-	_ZN19TXnUiEnginePluginIf18IsTextEditorActiveEv @ 195 NONAME
-	_ZN19TXnUiEnginePluginIf18VerticalTwipValueLEP11CXnPropertyi @ 196 NONAME
-	_ZN19TXnUiEnginePluginIf19VerticalPixelValueLEP11CXnPropertyi @ 197 NONAME
-	_ZN19TXnUiEnginePluginIf20HorizontalTwipValueLEP11CXnPropertyi @ 198 NONAME
-	_ZN19TXnUiEnginePluginIf21HorizontalPixelValueLEP11CXnPropertyi @ 199 NONAME
-	_ZN19TXnUiEnginePluginIf23EnablePartialTouchInputER15CXnNodePluginIfi @ 200 NONAME
+	_ZN15CXnNodePluginIf11IsEditStateEv @ 78 NONAME
+	_ZN15CXnNodePluginIf11PaddingRectEv @ 79 NONAME
+	_ZN15CXnNodePluginIf11UnsetStateLERK6TDesC8 @ 80 NONAME
+	_ZN15CXnNodePluginIf11VisibilityLEv @ 81 NONAME
+	_ZN15CXnNodePluginIf12SetPropertyLEP11CXnProperty @ 82 NONAME
+	_ZN15CXnNodePluginIf12ViewNodeImplEv @ 83 NONAME
+	_ZN15CXnNodePluginIf13SetBorderRectERK5TRect @ 84 NONAME
+	_ZN15CXnNodePluginIf13SetMarginRectERK5TRect @ 85 NONAME
+	_ZN15CXnNodePluginIf14IsFocusedStateEv @ 86 NONAME
+	_ZN15CXnNodePluginIf14MakeInterfaceLERK6TDesC8 @ 87 NONAME
+	_ZN15CXnNodePluginIf14SetPaddingRectERK5TRect @ 88 NONAME
+	_ZN15CXnNodePluginIf16SetHandleTooltipEi @ 89 NONAME
+	_ZN15CXnNodePluginIf16SetLayoutCapableEi @ 90 NONAME
+	_ZN15CXnNodePluginIf17ComponentNodeImplEv @ 91 NONAME
+	_ZN15CXnNodePluginIf19ReportTriggerEventLERK6TDesC8S2_S2_ @ 92 NONAME
+	_ZN15CXnNodePluginIf31SetPropertyWithoutNotificationLEP11CXnProperty @ 93 NONAME
+	_ZN15CXnNodePluginIf3IdLEv @ 94 NONAME
+	_ZN15CXnNodePluginIf4RectEv @ 95 NONAME
+	_ZN15CXnNodePluginIf4TypeEv @ 96 NONAME
+	_ZN15CXnNodePluginIf5PathLEv @ 97 NONAME
+	_ZN15CXnNodePluginIf6AppIfLEv @ 98 NONAME
+	_ZN15CXnNodePluginIf6LabelLEv @ 99 NONAME
+	_ZN15CXnNodePluginIf7SetRectERK5TRect @ 100 NONAME
+	_ZN15CXnNodePluginIf8DisplayLEv @ 101 NONAME
+	_ZN15CXnNodePluginIf9AddChildLEPS_ @ 102 NONAME
+	_ZN15CXnNodePluginIf9ChildrenLEv @ 103 NONAME
+	_ZN15CXnNodePluginIf9MaskPathLEv @ 104 NONAME
+	_ZN15CXnNodePluginIf9NamespaceEv @ 105 NONAME
+	_ZN15CXnNodePluginIf9SetDirtyLEv @ 106 NONAME
+	_ZN15CXnNodePluginIf9SetStateLERK6TDesC8 @ 107 NONAME
+	_ZN15CXnNodePluginIf9UiEngineLEv @ 108 NONAME
+	_ZN15CXnUiEngineImpl14EnableRenderUiEPv @ 109 NONAME
+	_ZN16CXnViewsNodeImpl10ConstructLEP7CXnType @ 110 NONAME
+	_ZN16CXnViewsNodeImpl12SetComponentEP12CXnComponent @ 111 NONAME
+	_ZN16CXnViewsNodeImpl4NewLEP7CXnType @ 112 NONAME
+	_ZN16CXnViewsNodeImpl9ComponentEv @ 113 NONAME
+	_ZN16CXnViewsNodeImplC1Ev @ 114 NONAME
+	_ZN16CXnViewsNodeImplC2Ev @ 115 NONAME
+	_ZN16CXnViewsNodeImplD0Ev @ 116 NONAME
+	_ZN16CXnViewsNodeImplD1Ev @ 117 NONAME
+	_ZN16CXnViewsNodeImplD2Ev @ 118 NONAME
+	_ZN16MXnNodePredicate5MatchER7CXnNode @ 119 NONAME
+	_ZN16MXnNodePredicateC1Ev @ 120 NONAME
+	_ZN16MXnNodePredicateC2Ev @ 121 NONAME
+	_ZN16MXnNodePredicateD0Ev @ 122 NONAME
+	_ZN16MXnNodePredicateD1Ev @ 123 NONAME
+	_ZN16MXnNodePredicateD2Ev @ 124 NONAME
+	_ZN16TXnUiEngineAppIf10ActiveViewEv @ 125 NONAME
+	_ZN16TXnUiEngineAppIf10IsEditModeEv @ 126 NONAME
+	_ZN16TXnUiEngineAppIf10StringPoolEv @ 127 NONAME
+	_ZN16TXnUiEngineAppIf11FocusedNodeEv @ 128 NONAME
+	_ZN16TXnUiEngineAppIf11SetUiEngineEP11CXnUiEngine @ 129 NONAME
+	_ZN16TXnUiEngineAppIf12RefreshMenuLEv @ 130 NONAME
+	_ZN16TXnUiEngineAppIf13FindNodeByIdLERK6TDesC8S2_ @ 131 NONAME
+	_ZN16TXnUiEngineAppIf13FindNodeByIdLERK7TDesC16S2_ @ 132 NONAME
+	_ZN16TXnUiEngineAppIf16FindNodeByClassLERK6TDesC8S2_ @ 133 NONAME
+	_ZN16TXnUiEngineAppIf16FindNodeByClassLERK7TDesC16S2_ @ 134 NONAME
+	_ZN16TXnUiEngineAppIf16GetThemeResourceERK7TDesC16R5RFile @ 135 NONAME
+	_ZN16TXnUiEngineAppIf16IsMenuDisplayingEv @ 136 NONAME
+	_ZN16TXnUiEngineAppIf19GetPluginNodeArrayLER13RPointerArrayI12CXnNodeAppIfE @ 137 NONAME
+	_ZN16TXnUiEngineAppIf23FindContentSourceNodesLERK6TDesC8 @ 138 NONAME
+	_ZN16TXnUiEngineAppIf9RenderUILEP12CXnNodeAppIf @ 139 NONAME
+	_ZN16TXnUiEngineAppIf9RootNodeLEv @ 140 NONAME
+	_ZN17CXnControlAdapter10ConstructLER15CXnNodePluginIf @ 141 NONAME
+	_ZN17CXnControlAdapter10LoadBitmapERK7TDesC16 @ 142 NONAME
+	_ZN17CXnControlAdapter10SetVisibleEi @ 143 NONAME
+	_ZN17CXnControlAdapter11SizeChangedEv @ 144 NONAME
+	_ZN17CXnControlAdapter11SkinChangedEv @ 145 NONAME
+	_ZN17CXnControlAdapter12FocusChangedE8TDrawNow @ 146 NONAME
+	_ZN17CXnControlAdapter12SetComponentEP12CXnComponent @ 147 NONAME
+	_ZN17CXnControlAdapter14ContentBitmapsERP10CFbsBitmapS2_ @ 148 NONAME
+	_ZN17CXnControlAdapter14OfferKeyEventLERK9TKeyEvent10TEventCode @ 149 NONAME
+	_ZN17CXnControlAdapter15SetLocalUiZoomLE10TAknUiZoom @ 150 NONAME
+	_ZN17CXnControlAdapter16GetBitmapAndMaskERK7TDesC16S2_RP10CFbsBitmapS5_ @ 151 NONAME
+	_ZN17CXnControlAdapter17SetContentBitmapsEP10CFbsBitmapS1_ @ 152 NONAME
+	_ZN17CXnControlAdapter17SetContentBitmapsERK7TDesC16S2_ @ 153 NONAME
+	_ZN17CXnControlAdapter18ExitPowerSaveModeLENS_10TModeEventE @ 154 NONAME
+	_ZN17CXnControlAdapter18ResetStylusCounterEv @ 155 NONAME
+	_ZN17CXnControlAdapter19EnterPowerSaveModeLENS_10TModeEventE @ 156 NONAME
+	_ZN17CXnControlAdapter19HandleControlEventLEP11CCoeControlN19MCoeControlObserver9TCoeEventE @ 157 NONAME
+	_ZN17CXnControlAdapter19HandleLongTapEventLERK6TPointS2_ @ 158 NONAME
+	_ZN17CXnControlAdapter19HandlePointerEventLERK13TPointerEvent @ 159 NONAME
+	_ZN17CXnControlAdapter20DoExitPowerSaveModeLENS_10TModeEventE @ 160 NONAME
+	_ZN17CXnControlAdapter21DoEnterPowerSaveModeLENS_10TModeEventE @ 161 NONAME
+	_ZN17CXnControlAdapter21HandlePropertyChangeLEP11CXnProperty @ 162 NONAME
+	_ZN17CXnControlAdapter22EnableLongTapAnimationEi @ 163 NONAME
+	_ZN17CXnControlAdapter23DoHandlePropertyChangeLEP11CXnProperty @ 164 NONAME
+	_ZN17CXnControlAdapter23MeasureAdaptiveContentLERK5TSize @ 165 NONAME
+	_ZN17CXnControlAdapter26HandleScreenDeviceChangedLEv @ 166 NONAME
+	_ZN17CXnControlAdapter4NewLER15CXnNodePluginIf @ 167 NONAME
+	_ZN17CXnControlAdapter8SetBlankEi @ 168 NONAME
+	_ZN17CXnControlAdapter8SetDataLERK6TDesC8RK7TDesC16i @ 169 NONAME
+	_ZN17CXnControlAdapter9ComponentEv @ 170 NONAME
+	_ZN17CXnControlAdapterC1Ev @ 171 NONAME
+	_ZN17CXnControlAdapterC2Ev @ 172 NONAME
+	_ZN17CXnControlAdapterD0Ev @ 173 NONAME
+	_ZN17CXnControlAdapterD1Ev @ 174 NONAME
+	_ZN17CXnControlAdapterD2Ev @ 175 NONAME
+	_ZN19MXnComponentFactory16MakeXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 176 NONAME
+	_ZN19MXnComponentFactory18CreateXnComponentLER15CXnNodePluginIfRP12CXnComponent @ 177 NONAME
+	_ZN19MXnComponentFactory21MakeXnControlAdapterLER15CXnNodePluginIfP17CXnControlAdapter @ 178 NONAME
+	_ZN19MXnComponentFactory26DoesNodeNeedComponentImplLERK6TDesC8 @ 179 NONAME
+	_ZN19MXnComponentFactoryC2Ev @ 180 NONAME
+	_ZN19MXnComponentFactoryD0Ev @ 181 NONAME
+	_ZN19MXnComponentFactoryD1Ev @ 182 NONAME
+	_ZN19MXnComponentFactoryD2Ev @ 183 NONAME
+	_ZN19TXnUiEnginePluginIf10StringPoolEv @ 184 NONAME
+	_ZN19TXnUiEnginePluginIf11PluginNodeLEP15CXnNodePluginIf @ 185 NONAME
+	_ZN19TXnUiEnginePluginIf12FocusedNodeLEv @ 186 NONAME
+	_ZN19TXnUiEnginePluginIf13AddDirtyNodeLER15CXnNodePluginIf @ 187 NONAME
+	_ZN19TXnUiEnginePluginIf13FindNodeByIdLERK6TDesC8S2_ @ 188 NONAME
+	_ZN19TXnUiEnginePluginIf13FindNodeByIdLERK7TDesC16S2_ @ 189 NONAME
+	_ZN19TXnUiEnginePluginIf14SetFocusedNodeEP15CXnNodePluginIf @ 190 NONAME
+	_ZN19TXnUiEnginePluginIf16FindNodeByClassLERK7TDesC16 @ 191 NONAME
+	_ZN19TXnUiEnginePluginIf16IsMenuDisplayingEv @ 192 NONAME
+	_ZN19TXnUiEnginePluginIf16ScreenDeviceSizeEv @ 193 NONAME
+	_ZN19TXnUiEnginePluginIf17DisableRenderUiLCEv @ 194 NONAME
+	_ZN19TXnUiEnginePluginIf18IsDialogDisplayingEv @ 195 NONAME
+	_ZN19TXnUiEnginePluginIf18IsTextEditorActiveEv @ 196 NONAME
+	_ZN19TXnUiEnginePluginIf18VerticalTwipValueLEP11CXnPropertyi @ 197 NONAME
+	_ZN19TXnUiEnginePluginIf19VerticalPixelValueLEP11CXnPropertyi @ 198 NONAME
+	_ZN19TXnUiEnginePluginIf20HorizontalTwipValueLEP11CXnPropertyi @ 199 NONAME
+	_ZN19TXnUiEnginePluginIf21HorizontalPixelValueLEP11CXnPropertyi @ 200 NONAME
 	_ZN19TXnUiEnginePluginIf8EditModeEv @ 201 NONAME
 	_ZN19TXnUiEnginePluginIf9LayoutUILEP15CXnNodePluginIf @ 202 NONAME
 	_ZN19TXnUiEnginePluginIf9RenderUILEP15CXnNodePluginIf @ 203 NONAME
--- a/idlehomescreen/xmluirendering/uiengine/group/xnlayoutengine.mmp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/group/xnlayoutengine.mmp	Tue Sep 14 20:58:58 2010 +0300
@@ -85,6 +85,7 @@
 SOURCE    xnwaitdialog.cpp
 SOURCE    xnpublisherdata.cpp
 SOURCE    xnitemactivator.cpp
+SOURCE    xnviewswitcher.cpp
 
 START RESOURCE  xnuiengine.rss
 HEADER
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnbackgroundmanager.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnbackgroundmanager.h	Tue Sep 14 20:58:58 2010 +0300
@@ -326,6 +326,23 @@
      * to be stored to AknsWallpaperUtils
      */
     TBool iStoreWallpaper;
+    
+    /** 
+     * Pointer to wallpaper image. 
+     * Usually wallpaper is read from active view data, but in case of 
+     * finger follow swipe, wallpaper is changed during the page switch. 
+     * Therefore this is used only during finger follow. 
+     * 
+     * Not own. 
+     */   
+    mutable CFbsBitmap* iWallpaper;
+
+    /*
+     * Flag to indicate to use bitmap stored in iWallpaper 
+     * instead of reading it from CXnViewData. 
+     * This is used when page is being changed with finger follow swipe.
+     */
+    mutable TBool iImageChanged;
     };
 
 #endif      // CXNBACKGROUNDMANAGER_H
--- a/idlehomescreen/xmluirendering/uiengine/inc/xncontroladapterimpl.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xncontroladapterimpl.h	Tue Sep 14 20:58:58 2010 +0300
@@ -451,6 +451,13 @@
      */
     RPointerArray< CXnControlAdapter >& ChildAdapters();
 
+    /*
+     * Checks if widget is Gesture destination node.
+     * 
+     * @return ETrue if widget is Gesture destination. 
+     */
+    TBool IsWidgetGestureDest();
+
 private: // from MAknTouchGestureFwObserver
     /**
      * Implements gesture handling
--- a/idlehomescreen/xmluirendering/uiengine/inc/xneditor.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xneditor.h	Tue Sep 14 20:58:58 2010 +0300
@@ -332,6 +332,8 @@
     
     void NotifyViewActivatedL( const CXnViewData& aViewData );
 
+    void NotifyViewLoadedL( const CXnViewData& aViewData );
+
     void NotifyViewDeactivatedL( const CXnViewData& /*aViewData*/ );
 
     void NotifyConfigureWidgetL( const CHsContentInfo& aContentInfo,
@@ -341,9 +343,9 @@
     
     void NotifyWidgetRemovalL( const CXnPluginData& aPluginData );
 
-    void NotifyViewAdditionL( const CXnPluginData& /*aPluginData*/ );
+    void NotifyViewAdditionL( const CXnViewData& /*aViewData*/ );
     
-    void NotifyViewRemovalL( const CXnPluginData& /*aPluginData*/ );
+    void NotifyViewRemovalL( const CXnViewData& /*aViewData*/ );
     
     void NotifyAllViewsLoadedL();
 
--- a/idlehomescreen/xmluirendering/uiengine/inc/xneffectmanager.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xneffectmanager.h	Tue Sep 14 20:58:58 2010 +0300
@@ -139,6 +139,7 @@
      * @param aThis Active view
      * @param aOther View to activate
      * @param aEffect Effect uid 
+     * @param aBgEffectOnly Show only background effect without view animation 
      * @return ETrue of effect is started, EFalse otherwise
      */    
     TBool BeginActivateViewEffect( const CXnViewData& aThis, 
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnfocuscontrol.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnfocuscontrol.h	Tue Sep 14 20:58:58 2010 +0300
@@ -106,8 +106,6 @@
     CXnAppUiAdapter& iAppUiAdapter;
     /** Flag to indicate whether it is allowed to show focus */
     TBool iVisible;
-    /** Flag to indicate refusal */
-    TBool iRefused;
     };
 
 #endif // _XNFOCUSCONTROL_H
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnkeyeventdispatcher.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnkeyeventdispatcher.h	Tue Sep 14 20:58:58 2010 +0300
@@ -26,6 +26,7 @@
 
 // Uder includes
 #include "xnviewmanager.h"
+#include "xnuistatelistener.h"
 
 // Forward declarations
 class CXnNode;
@@ -45,6 +46,7 @@
  */
 NONSHARABLE_CLASS( CXnKeyEventDispatcher ) : public CCoeControl,   
     public MCoeMessageMonitorObserver,
+    public MXnUiResourceChangeObserver,
     public MXnViewObserver
     {
 public:
@@ -77,6 +79,19 @@
     */
     void MonitorWsMessage( const TWsEvent& aEvent );
         
+private:
+    // from MXnUiResourceChangeObserver
+    
+    /**
+     * @see MXnUiResourceChangeObserver
+     */
+    void NotifyStatusPaneSizeChanged();
+
+    /**
+     * @see MXnUiResourceChangeObserver
+     */
+    void NotifyResourceChanged( TInt aType );    
+    
 public:
     // New functions
    
@@ -174,7 +189,24 @@
      * @return Last pointer event
      */
     const TPointerEvent& PointerEvent() const;
-            
+       
+    /**
+     * Sets activate text editor
+     * 
+     * @since S60 5.2
+     * @param aNode Editor Node
+     * @param TBool True if text editor should be activated
+     */          
+    void SetTextEditorActive( CXnNode* aNode, TBool aActivate );
+    
+    /**
+     * Queries whether a text editor is active
+     * 
+     * @since S60 5.2
+     * @return ETrue if text editor is active, EFalse otherwise
+     */
+    TBool IsTextEditorActive() const;
+    
 private:
     // new functions
     
@@ -200,6 +232,7 @@
     // from MXnViewObserver
     
     void NotifyViewActivatedL( const CXnViewData& aViewData );
+    void NotifyViewLoadedL( const CXnViewData& /*aViewData*/ ) {};
 
     void NotifyViewDeactivatedL( const CXnViewData& aViewData );
 
@@ -208,8 +241,8 @@
 
     void NotifyWidgetAdditionL( const CXnPluginData& aPluginData );
     void NotifyWidgetRemovalL( const CXnPluginData& aPluginData );
-    void NotifyViewAdditionL( const CXnPluginData& /*aPluginData*/ ){};
-    void NotifyViewRemovalL( const CXnPluginData& /*aPluginData*/ ){};
+    void NotifyViewAdditionL( const CXnViewData& /*aViewData*/ ){};
+    void NotifyViewRemovalL( const CXnViewData& /*aViewData*/ ){};
     void NotifyAllViewsLoadedL(){};
     void NotifyContainerActivatedL( const CXnViewData& /*aViewData*/ ){};
 
@@ -240,6 +273,8 @@
     RPointerArray< CXnNode > iPassiveFocusedNodes;
     /** Last pointer event */
     TPointerEvent iPointerEvent;
+    /** Active text editor node, not owned */
+    CXnNode* iActiveTextEditor;
     };
 
 #endif //__XNKEYEVENTDISPATCHER_H__
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.h	Tue Sep 14 20:58:58 2010 +0300
@@ -58,7 +58,8 @@
         EIsEmpty,
         EIsRemovable,
         EIsActive,             
-        EIsInitial        
+        EIsInitial,
+        EIsEditable
         };
         
 public:    
@@ -373,6 +374,13 @@
     inline TBool Removable() const;
     
     /*
+     * Checks whether editable
+     * 
+     * @return ETrue when editable EFalse when not
+     */      
+    inline TBool Editable() const;
+    
+    /*
      * Queries whether this plugin is holding "empty" widget
      * 
      * @return ETrue if empty, EFalse otherwise     
@@ -440,9 +448,9 @@
     void ShowOutOfMemError();
     
     /**
-     * Sets locking_status attribute (locked/none) 
+     * Sets locking_status attribute (none/locked/permanent) 
      * 
-     * @param aStatus "locked" / "none"
+     * @param aStatus "none" / "locked" / "permanent"
      */
     void SetLockingStatus( const TDesC8& aStatus );    
         
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.inl	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.inl	Tue Sep 14 20:58:58 2010 +0300
@@ -171,6 +171,15 @@
     };
 
 // ---------------------------------------------------------------------------
+// Returns editable
+// ---------------------------------------------------------------------------
+//
+inline TBool CXnPluginData::Editable() const
+    {
+    return( iFlags.IsSet( EIsEditable ) ? ETrue : EFalse );
+    }
+
+// ---------------------------------------------------------------------------
 // Returns list of plugindata
 // ---------------------------------------------------------------------------
 //
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnrootdata.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnrootdata.h	Tue Sep 14 20:58:58 2010 +0300
@@ -93,7 +93,7 @@
     /**
      * Loads remaining application views
      */    
-    void LoadRemainingViews();
+    void LoadRemainingViewsL();
 
     /**
      * Cancels load remaining application views
@@ -169,7 +169,21 @@
      * @return number of pages allowed
      */
     TInt32 MaxPages();
-
+    
+    /**
+     * Returns template view's uid
+     * 
+     * @return Returns template view's uid, or if not set qhd default
+     */
+    const TDesC8& TemplateViewUid() const;
+    
+    /**
+     * Sets template view's uid
+     * 
+     * @param Template view's uid
+     */
+    void SetTemplateViewUidL( const TDesC8& aTemplateViewUid );
+    
     /**
      * Returns ETrue, if all views are loaded
      */
@@ -206,6 +220,8 @@
     TBool iLoadForward;
     /** Maximum of views allowed */
     TInt32 iMaxPages;
+    /** Template view uid is uid of the view when user selects New view */
+    HBufC8* iTemplateViewUid;
     /** Load error code */
     TInt iLoadError;
     };
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnuiengineimpl.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnuiengineimpl.h	Tue Sep 14 20:58:58 2010 +0300
@@ -147,6 +147,18 @@
     void LayoutUIL( CXnNode* aNode = NULL );
 
     /**
+     * Lays out the UI
+     * 
+     * This generates full re-layout starting from the given node, 
+     * regardless of the current dirty set or the active view.
+     * I.e. this can be used to layout an inactive view.
+     * 
+     * @since Series 60 5.2
+     * @param aNode Starting point of the layout
+     */
+    void LayoutFromNodeL( CXnNode& aNode );
+
+    /**
      * Creates UI implementations for the UI, adjusts control coordinates 
      * according to the layout
      * 
@@ -154,6 +166,19 @@
      * @param aNode Starting point
      */
     void RenderUIL( CXnNode* aNode = NULL );
+
+    /**
+     * Creates UI implementations for the UI, adjusts control coordinates 
+     * according to the layout
+     * 
+     * This generates full re-layout starting from the given node, 
+     * regardless of the current dirty set or the active view.
+     * I.e. this can be used to layout an inactive view.
+     * 
+     * @since Series 60 5.2
+     * @param aNode Starting point
+     */
+    void RenderFromNodeL( CXnNode& aNode );
     
     /**
      * Gets the root node of the UI
@@ -506,10 +531,10 @@
      * Enables partial touch input
      * 
      * @since Series 60 5.2
-     * @param aNode Editor Node
+     * @param aNode Editor Node, can be NULL when disabling partial input
      * @param TBool Partial input is enabled      
      */      
-    void EnablePartialTouchInput( CXnNode& aNode, TBool aEnable );
+    void EnablePartialTouchInput( CXnNode* aNode, TBool aEnable );
 
     /**
      * Is partial input active
@@ -548,6 +573,7 @@
      * @since Series 60 3.2
      */
     void PrepareRunLayoutL();
+    void PrepareRunLayoutL( CXnNode& aNode );
 
     /**
      * Runs the layout algorithm        
@@ -555,6 +581,7 @@
      * @since Series 60 3.2
      */
     TInt RunLayoutL( CXnNode* aNode );
+    TInt RunLayoutFromNodeL( CXnNode& aNode );
 
     /**
      * Checks if layout is currently disabled
@@ -591,7 +618,7 @@
       * @since Series 60 5.2
       * @param TInt aType 
       */ 
-    void HandlePartialTouchInputL( CXnNode& aNode, TBool aEnable );
+    void HandlePartialTouchInputL( CXnNode* aNode, TBool aEnable );
 
     /**
       * Set node visible
@@ -635,6 +662,11 @@
     void NotifyViewActivatedL( const CXnViewData& aViewData );
 
     /** 
+     * from MXnViewObserver 
+     */
+    void NotifyViewLoadedL( const CXnViewData& aViewData );
+
+    /** 
      * from MXnViewObserver
      */
     void NotifyViewDeactivatedL( const CXnViewData& /*aViewData*/ );
@@ -658,12 +690,12 @@
     /** 
      * from MXnViewObserver 
      */
-    void NotifyViewAdditionL( const CXnPluginData& /*aPluginData*/ ){};
+    void NotifyViewAdditionL( const CXnViewData& aViewData );
 
     /** 
      * from MXnViewObserver
      */
-    void NotifyViewRemovalL( const CXnPluginData& /*aPluginData*/ ){};
+    void NotifyViewRemovalL( const CXnViewData& /*aViewData*/ ){};
 
     /** 
      * from MXnViewObserver
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnviewadapter.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnviewadapter.h	Tue Sep 14 20:58:58 2010 +0300
@@ -177,10 +177,21 @@
      * @param aContainer Container to activate
      * @param aEnterEditState ETrue if activated container should be set to edit state.
      * @param aEffect Effect uid, default no effect
+     * @param aUpdateBg Whether to update wallpaper or not. 
      */
     void ActivateContainerL( CXnViewData& aContainer, 
-        TBool aEnterEditState = EFalse, TUid aEffect = TUid::Null() );
-    
+        TBool aEnterEditState = EFalse, TUid aEffect = TUid::Null(), 
+        TBool aUpdateBg = ETrue );
+
+    /**
+     * 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 );
+
 private:
     // new functions
     
@@ -200,15 +211,6 @@
      * @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.
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnviewcontroladapter.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnviewcontroladapter.h	Tue Sep 14 20:58:58 2010 +0300
@@ -38,7 +38,8 @@
 NONSHARABLE_CLASS( CXnViewControlAdapter ) : public CXnControlAdapter,
     public MXnUiStateObserver
    {
-public: 
+
+public:
     // Constructors and destructor
     
     /**
@@ -103,7 +104,7 @@
     /**
      * C++ default constructor
      */    
-    CXnViewControlAdapter( CXnNodePluginIf& aNode );
+    CXnViewControlAdapter();
     
     /**
      * 2nd phase constructor
@@ -112,14 +113,14 @@
     
 private: 
     // data
-
-    /** Node */
-    CXnNodePluginIf& iNode;
     /** AppUi */
     CXnAppUiAdapter& iAppUi;
+
     /** HS foreground status*/
     MXnUiStateObserver::TForegroundStatus iForegroundStatus;
-    };
+
+    //friend class CXnViewSwitcher;
+   };
     
 #endif // _XNVIEWCONTROLADAPTER_H
             
--- a/idlehomescreen/xmluirendering/uiengine/src/xnappuiadapter.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnappuiadapter.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -30,6 +30,7 @@
 #include "hscontentcontrolfactory.h"
 #include "xnviewadapter.h"
 #include "xnnode.h"
+#include "xnviewswitcher.h"
 
 #include "xuikon_builds_cfg.hrh"
 #include "debug.h"
@@ -87,7 +88,9 @@
     
     iImpl = CXnAppUiAdapterImpl::NewL( iApplicationUid, *this );
     iImpl->ConstructL();
-     
+
+    iViewSwitcher = CXnViewSwitcher::NewL(); 
+    
     __TIME_ENDMARK( "CXnAppUiAdapter::ConstructL, done", time );
     }
 
@@ -98,6 +101,8 @@
 //
 EXPORT_C CXnAppUiAdapter::~CXnAppUiAdapter()
     {       
+    delete iViewSwitcher;
+
     delete iUiEngineAppIf;
     
     delete iImpl;    
@@ -471,4 +476,14 @@
     return iImpl->ViewAdapter().FocusControl().MakeVisible( ETrue );
     }
 
+// -----------------------------------------------------------------------------
+// CXnAppUiAdapter::ViewSwitcher
+//
+// -----------------------------------------------------------------------------
+//
+CXnViewSwitcher* CXnAppUiAdapter::ViewSwitcher()
+    {
+    return iViewSwitcher;
+    }
+
 // End of file
--- a/idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnbackgroundmanager.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -83,10 +83,14 @@
 void HandleErrorL( TInt aErr )
     {
     TInt resourceId( NULL );
-    if ( aErr == KErrTooBig || aErr == KErrNoMemory )
+    if ( aErr == KErrTooBig )
         {
         resourceId = R_QTN_HS_TOO_BIG_IMAGE_NOTE;
         }
+    else if( aErr == KErrNoMemory )
+        {
+        resourceId = R_QTN_HS_WALLPAPER_OUT_OF_RAM;
+        }
     else if ( aErr == KErrCancel || aErr == KErrCouldNotConnect || 
         aErr == KErrCANoRights )
         {
@@ -139,7 +143,8 @@
 CXnBackgroundManager::CXnBackgroundManager( CXnViewManager& aViewManager, CHspsWrapper& aWrapper )
     : iViewManager( aViewManager ), 
       iHspsWrapper( aWrapper ),
-      iStoreWallpaper( ETrue )
+      iStoreWallpaper( ETrue ),
+      iImageChanged( EFalse )
     {
     }
 
@@ -226,7 +231,13 @@
     {
     CFbsBitmap* wallpaper( NULL );
     
-    if( iType == EPageSpecific )
+    if( iImageChanged )
+        {
+        iImageChanged = EFalse;
+        wallpaper = iWallpaper;
+        iWallpaper = NULL;
+        }
+    else if( iType == EPageSpecific )
         {
         CXnViewData& viewData( iViewManager.ActiveViewData() );
         wallpaper = viewData.WallpaperImage();
@@ -332,22 +343,15 @@
 void CXnBackgroundManager::HandleNotifyDisk( TInt /*aError*/, 
     const TDiskEvent& aEvent )              
     {
-    if( aEvent.iType == MDiskNotifyHandlerCallback::EDiskStatusChanged || 
-        aEvent.iType == MDiskNotifyHandlerCallback::EDiskAdded  ||  
-        aEvent.iType == MDiskNotifyHandlerCallback::EDiskRemoved )
+    if( aEvent.iType == MDiskNotifyHandlerCallback::EDiskStatusChanged )
         {
-        if( !( aEvent.iInfo.iDriveAtt & KDriveAttInternal ) ) 
-            {        
-            TBool diskRemoved( aEvent.iInfo.iType == EMediaNotPresent );
-            
-            if( diskRemoved )
-                {
-                TRAP_IGNORE( RemovableDiskRemovedL() );        
-                }
-            else
-                {
-                TRAP_IGNORE( RemovableDiskInsertedL() );        
-                }
+        if( aEvent.iInfo.iType == EMediaHardDisk )
+            {
+            TRAP_IGNORE( RemovableDiskInsertedL() ); 
+            }
+        else if( aEvent.iInfo.iType == EMediaNotPresent )
+            {
+            TRAP_IGNORE( RemovableDiskRemovedL() ); 
             }
         }
     }
@@ -409,7 +413,7 @@
         else
             {
             // Potentially not enough memory
-            iViewManager.OomSysHandler().HandlePotentialOomL();        
+            HandleErrorL( KErrNoMemory );        
             }
         }        
     }
@@ -484,7 +488,8 @@
         if ( oldwp.Compare( newwp ) ) 
             {
             iStoreWallpaper = ETrue;                    
-            
+            iImageChanged = ETrue;                    
+            iWallpaper = aNewView.WallpaperImage();
             if ( aDrawNow )
                 {
                 DrawNow();
@@ -780,9 +785,9 @@
             CFbsBitmap* bitmap = viewData->WallpaperImage();
             if( path != KNullDesC && bitmap )
                 {
-                if ( !BaflUtils::FileExists( fs, path ) )
+                if ( !BaflUtils::FileExists( fs, path ) && path.Compare( KNullDesC ) != KErrNone )
                     {
-                    RemoveWallpaperFromCache( path, viewData );
+                    iSkinSrv.RemoveWallpaper( path ); 
                     viewData->SetWallpaperImage( NULL );
                     if( viewData == &iViewManager.ActiveViewData() )
                         {
@@ -796,9 +801,9 @@
         {
         if( iBgImagePath && iBgImage )
             {
-            if ( !BaflUtils::FileExists( fs, *iBgImagePath ) )
+            if ( !BaflUtils::FileExists( fs, *iBgImagePath ) && iBgImagePath->Compare( KNullDesC ) != KErrNone )
                 {
-                RemoveWallpaperFromCache( *iBgImagePath );
+                iSkinSrv.RemoveWallpaper( *iBgImagePath );
                 delete iBgImage;
                 iBgImage = NULL;
                 drawingNeeded = ETrue;
@@ -925,14 +930,23 @@
 
     if(  aFileName == KNullDesC )
         {
-        err = AknsWallpaperUtils::SetIdleWallpaper( aFileName, NULL );
+        if( viewData.WallpaperImagePath() == KNullDesC )
+            {
+            // Default already set as background.
+            err = KErrCancel;
+            }
+        else
+            {
+            err = AknsWallpaperUtils::SetIdleWallpaper( aFileName, NULL );
+            }
         }
     else
         {
         // Wallpaper is also added into the cache if it is not there already.
-        err = AknsWallpaperUtils::SetIdleWallpaper( aFileName, CCoeEnv::Static(),
-            R_QTN_HS_PROCESSING_NOTE, R_CHANGE_WALLPAPER_WAIT_DIALOG );    
+        err = AknsWallpaperUtils::SetIdleWallpaper( aFileName, CCoeEnv::Static()/*,
+            R_QTN_HS_PROCESSING_NOTE, R_CHANGE_WALLPAPER_WAIT_DIALOG */ );    
         }
+    
     if( err == KErrNone )
         {
         // Remove old wallpaper from the cache
--- a/idlehomescreen/xmluirendering/uiengine/src/xncomposer.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xncomposer.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -52,6 +52,9 @@
 _LIT( KCDrive, "C:" );
 _LIT8( KTagXuikon, "xuikon" );
 
+_LIT8( KTemplateViewSetting, "templateView" );
+_LIT8( KViewUidSetting, "uid" );
+
 using namespace hspswrapper;
 
 // ======== LOCAL FUNCTIONS ========
@@ -512,6 +515,25 @@
         return NULL;        
         }
 
+    RPointerArray<CItemMap>& settings( configuration->Settings() );
+    
+    for ( TInt i = 0; i < settings.Count(); i++ )
+        {
+        CItemMap* setting( settings[i] );
+        if ( (setting != NULL) && setting->ItemId() == KTemplateViewSetting )
+            {
+            RPointerArray<CPropertyMap>& properties = setting->Properties(); 
+            for ( TInt j = 0; j < properties.Count(); j++ )
+                {
+                CPropertyMap* property( properties[i] );
+                if ( (property != NULL) && property->Name() == KViewUidSetting )
+                    {
+                    aRootData.SetTemplateViewUidL( property->Value() );
+                    }
+                }
+            }
+        }
+
     CPluginInfo& info( configuration->PluginInfo() );
 
     aRootData.SetOwner( root );
--- a/idlehomescreen/xmluirendering/uiengine/src/xncontroladapter.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xncontroladapter.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -615,3 +615,14 @@
     {
     
     }
+
+// -----------------------------------------------------------------------------
+// CXnControlAdapter::IsWidgetGestureDest
+// -----------------------------------------------------------------------------
+//
+TBool CXnControlAdapter::IsWidgetGestureDest()
+    {
+    return iImpl->IsWidgetGestureDest();
+    }
+
+// End of file
--- a/idlehomescreen/xmluirendering/uiengine/src/xncontroladapterimpl.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xncontroladapterimpl.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -61,6 +61,7 @@
 #include "xnscrollablecontroladapter.h"
 #include "xnfocuscontrol.h"
 #include "xneditmode.h"
+#include "xnviewswitcher.h"
 
 _LIT8(KScrollableBoxNodeName, "scrollablebox");
 _LIT8( KView, "view" );
@@ -207,7 +208,6 @@
     CXnResource& aResource, RFile& aFile, RFs& aFsSession );
 static void DrawFocusAppearance( CXnNode& aNode, CWindowGc& aGc );
 static CXnDomNode* HasHoldTrigger( CXnDomNode* aNode );
-static void CancelFocusRefusalL( CXnUiEngine& aUiEngine );
     
 // ============================= LOCAL FUNCTIONS ===============================
 // -----------------------------------------------------------------------------
@@ -3414,30 +3414,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// CancelFocusRefusalL
-// Cancels focus refusal
-// -----------------------------------------------------------------------------
-//
-static void CancelFocusRefusalL( CXnUiEngine& aUiEngine )
-    {
-    CXnNode* focused( aUiEngine.FocusedNode() );
-    
-    if ( focused )
-        {
-        CXnControlAdapter* control( focused->Control() );
-        
-        if ( control && control->RefusesFocusLoss() )
-            {
-            focused->HideTooltipsL();
-            
-            // It is now time to give up holding focus
-            focused->UnsetStateL( 
-                XnPropertyNames::style::common::KFocus );
-            }
-        }    
-    }
-
-// -----------------------------------------------------------------------------
 // Calculates scaled bitmap size (rect)
 // -----------------------------------------------------------------------------
 //
@@ -3690,20 +3666,7 @@
         if ( aType == EEventKeyDown )
             {            
             iLongtap = EFalse;
-            
-            if ( aKeyEvent.iScanCode == EStdKeyDevice3 ||
-                 aKeyEvent.iCode == EKeyEnter )
-                {
-                if ( node->IsStateSet( XnPropertyNames::style::common::KFocus ) )
-                    {
-                    // Set "pressed down"
-                    node->SetStateL( 
-                        XnPropertyNames::style::common::KPressedDown );
-                    
-                    node->UiEngine()->RenderUIL();
-                    }                
-                }
-            
+                        
             _LIT8( KDown, "3" ); // EEventKeyDown == 3
             
             CXnNode* keydown( BuildTriggerNodeL( *engine,                
@@ -3765,17 +3728,7 @@
                     CleanupStack::PopAndDestroy( keyup );                    
                     }
                 }
-            
-            if ( aKeyEvent.iScanCode == EStdKeyDevice3 ||
-                 aKeyEvent.iCode == EKeyEnter )
-                {
-                // Reset "pressed down"
-                node->UnsetStateL( 
-                    XnPropertyNames::style::common::KPressedDown );
-                
-                node->UiEngine()->RenderUIL();
-                }                                    
-            
+                        
             iLongtap = EFalse;
             }
         }
@@ -3823,9 +3776,9 @@
         if ( prop && prop->StringValue() == XnPropertyNames::KTrue )
             {                        
             CXnUiEngine* engine( node->UiEngine() );
-            CXnAppUiAdapter& appui( engine->AppUiAdapter() );
-
-            CancelFocusRefusalL( *engine );
+            CXnAppUiAdapter& appui( engine->AppUiAdapter() );           
+            
+            appui.ViewAdapter().CloseAllPopupsL();
             
             appui.HideFocus();
 
@@ -3887,7 +3840,7 @@
 //
 TBool CXnControlAdapterImpl::HandlePointerEventL(
     const TPointerEvent& aPointerEvent )
-    {    
+    {
     const TPointerEvent& event( aPointerEvent );
     
     CXnNode* node( &iNode.Node() );
@@ -3970,11 +3923,6 @@
         
         if ( !menuBar )
             {
-            CancelFocusRefusalL( *engine );
-            }
-                        
-        if ( !menuBar && !engine->FocusedNode() )
-            {
             // save starting point
             iButtonDownStartPoint = event.iPosition;
             // Require focus to be shown
@@ -4043,21 +3991,41 @@
 //
 void CXnControlAdapterImpl::DoDrawL( const TRect& aRect, CWindowGc& aGc ) const
     {
+    if( !iComponent )
+        {
+        return;
+        }
     CXnNode& node = iComponent->Node()->Node();
         
     DrawBordersL( aRect, node, aGc );
 
     const_cast< CXnControlAdapterImpl* >( this )->DrawBackgroundDataL( aRect, node, aGc );
     
-    if ( iAdapter->IsFocused() )
-        {
-        DrawFocusAppearance( node, aGc );
+    if ( node.IsStateSet( XnPropertyNames::style::common::KFocus ) )
+        {
+        CXnProperty* prop( node.GetPropertyL( 
+            XnPropertyNames::common::KFocusAppearance ) );
+                                        
+        if ( prop && prop->StringValue() == XnPropertyNames::KNone )
+            {
+            // Current element refuses to draw focus appearance            
+            }
+        else
+            {
+            DrawFocusAppearance( node, aGc );        
+            }
         }
     
     // Draw plus sign for empty plugins in edit mode.
     if( node.UiEngine()->EditMode()->EditState() )
         {
-        const_cast< CXnControlAdapterImpl* >( this )->DrawPlusSign( node, aGc );
+        CXnControlAdapterImpl* adapter = const_cast< CXnControlAdapterImpl* >( this );    
+        TBool editstate = iNode.IsEditState();
+
+        if( editstate )
+            {
+            adapter->DrawPlusSign( node, aGc );
+            }
         }
     
     if ( iAnimation )
@@ -4302,9 +4270,18 @@
 	                TRect paddingRect = aRect;
                     TRect shrunkRect = paddingRect;
 
-                    shrunkRect.Shrink(
-                        KSkinGfxInnerRectShrink,
-                        KSkinGfxInnerRectShrink );
+                    if ( itemID == KAknsIIDQsnFrPopupSub )
+                        {
+                        shrunkRect.Shrink(
+                            KSkinGfxInnerRectShrink + 2,
+                            KSkinGfxInnerRectShrink + 2 );                    
+                        }
+                    else
+                        {
+                        shrunkRect.Shrink(
+                            KSkinGfxInnerRectShrink,
+                            KSkinGfxInnerRectShrink );                    
+                        }
 
                     CAknsFrameBackgroundControlContext* frameContext =
                         CAknsFrameBackgroundControlContext::NewL(
@@ -4334,7 +4311,7 @@
 // -----------------------------------------------------------------------------
 //
 void CXnControlAdapterImpl::DrawBackgroundImageL(
-    const TRect& aRect,
+    const TRect& /*aRect*/,
     CXnNode& aNode,
     CWindowGc& aGc,
     CFbsBitmap* aBitmap,
@@ -4425,7 +4402,7 @@
             TPoint(
                 rect.iTl.iX + imageRect.Width(),
                 rect.iTl.iY + imageRect.Height() ) );
-        aGc.SetClippingRect( aRect );
+        //aGc.SetClippingRect( aRect );
 
         if ( aMask )
             {           
@@ -4442,7 +4419,7 @@
                 TPoint(
                     rect.iTl.iX + imageRect.Width(),
                     rect.iTl.iY + imageRect.Height() ) );
-            aGc.SetClippingRect( aRect );
+            //aGc.SetClippingRect( aRect );
 
             aGc.DrawBitmap( newRect, aBitmap, bitmapRect );
             }
@@ -5746,22 +5723,26 @@
             {
             swipe = &XnPropertyNames::action::trigger::name::swipe::direction::KRight;
             }
-
+        
         if ( swipe && iGestureDestination )
             {
             CXnUiEngine* engine = iNode.Node().UiEngine();
-            if ( iGestureDestination == &iNode.Node() )
-                {
-                CancelFocusRefusalL( *engine );
-                }
             
             // Remove focus
             engine->AppUiAdapter().HideFocus();
 
-            CXnNode* trigger( BuildSwipeTriggerNodeLC( *engine, *swipe ) );
-            iGestureDestination->ReportXuikonEventL( *trigger );
-            CleanupStack::PopAndDestroy( trigger );
-            
+            if ( ( engine->AppUiAdapter().ViewSwitcher() != NULL ) &&
+                ( engine->AppUiAdapter().ViewSwitcher()->FingerFollowSupported() ) && 
+                ( !iGestureDestination || iGestureDestination == &iNode.Node() ) )
+                {
+                engine->AppUiAdapter().ViewSwitcher()->TouchGesture( type );
+                }
+            else if ( iGestureDestination )
+                {
+                CXnNode* trigger( BuildSwipeTriggerNodeLC( *engine, *swipe ) );
+                iGestureDestination->ReportXuikonEventL( *trigger );
+                CleanupStack::PopAndDestroy( trigger );
+                }
             CXnAppUiAdapter& appui( engine->AppUiAdapter() );
             CXnViewData& data( appui.ViewManager().ActiveViewData() );
             
@@ -5773,6 +5754,13 @@
         }
     }
 
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+TBool CXnControlAdapterImpl::IsWidgetGestureDest()
+    {
+    return ( !iGestureDestination || iGestureDestination != &iNode.Node() );
+    }
 
 // ============================= TIconProvider ===============================
 
--- a/idlehomescreen/xmluirendering/uiengine/src/xneditmode.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xneditmode.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -504,6 +504,7 @@
             CXnPluginData* plugin( iUiEngine.ViewManager()->
                     ActiveViewData().Plugin( node ) );
             
+
             if ( plugin && plugin->Occupied() )
                 {
                 StartDragL( *plugin );
--- a/idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xneditor.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -235,7 +235,7 @@
 
         CXnPluginData* plugin( viewData.Plugin( node ) );
 
-        if ( plugin && !plugin->Occupied() )
+        if ( plugin && !plugin->Occupied() && plugin->Editable() )
             {
             return plugin;
             }
@@ -1087,6 +1087,14 @@
         }                           
     }
 
+// -----------------------------------------------------------------------------
+// CXnEditor::NotifyViewLoadedL
+// -----------------------------------------------------------------------------
+//
+void CXnEditor::NotifyViewLoadedL( const CXnViewData& /*aViewData*/ )
+    {
+    }
+
 // ---------------------------------------------------------------------------
 // CXnEditor::NotifyConfigureWidgetL
 // ---------------------------------------------------------------------------
@@ -1339,7 +1347,7 @@
 // CXnEditor::NotifyViewAdditionL
 // ---------------------------------------------------------------------------
 //
-void CXnEditor::NotifyViewAdditionL( const CXnPluginData& /*aPluginData*/ )
+void CXnEditor::NotifyViewAdditionL( const CXnViewData& /*aViewData*/ )
     {
     NotifyViewListChanged();
     }
@@ -1348,7 +1356,7 @@
 // CXnEditor::NotifyViewRemovalL
 // ---------------------------------------------------------------------------
 //
-void CXnEditor::NotifyViewRemovalL( const CXnPluginData& /*aPluginData*/ )
+void CXnEditor::NotifyViewRemovalL( const CXnViewData& /*aViewData*/ )
     {
     NotifyViewListChanged();
     }
@@ -1422,7 +1430,6 @@
         KNotifyWidgetListChangedDelay,
         KNotifyWidgetListChangedDelay,
         TCallBack( WidgetListChangedCallBack, this ) );
-
     }
 
 // ---------------------------------------------------------------------------
@@ -1928,12 +1935,23 @@
     const TDesC8& type( aInfo.Type() );
     
     if ( ( type != KKeyWidget && type != KKeyTemplate ) ||
-         aInfo.Uid() == KNullDesC8  || !aInfo.CanBeAdded() )
+         aInfo.Uid() == KNullDesC8 )
         {
         // malformed content info
         return KErrArgument;
         }
 
+    // the widget can not be added. Return proper error code
+    if ( IsCurrentViewFull() )
+        {
+        return KHsErrorViewFull;
+        }
+    else if ( !aInfo.CanBeAdded() )
+        {
+        return KHsErrorMaxInstanceCountExceeded;
+        }
+
+
     CXnPluginData* plugin( NULL );
     
     if( iTargetPlugin )
@@ -1947,27 +1965,9 @@
     
     iTargetPlugin = NULL;
     
-    // the widget can not be added. Return proper error code
-    if ( IsCurrentViewFull() || !plugin )
-        {
-        return KHsErrorViewFull;
-        }
-    else
+    if ( !plugin )
         {
-        TInt result;
-        if ( aInfo.Type() != KKeyTemplate() )
-            { 
-            result = NonTemplateWidgetCanBeAddedRemovedL( aInfo ); 
-            }
-        else
-            {
-            result = TemplateWidgetCanBeAddedRemovedL( aInfo );
-            } 
-        
-        if ( !( result & ECanBeAdded ) )
-            {
-            return KHsErrorMaxInstanceCountExceeded;
-            } 
+        return KErrGeneral;
         }
     
     ret = iViewManager.LoadWidgetToPluginL( aInfo, *plugin );
@@ -2193,7 +2193,7 @@
         {
         CXnPluginData* plugin = plugins[ i ];
 
-        if ( !plugin->Occupied() )
+        if ( plugin && !plugin->Occupied() && plugin->Editable() )
             {
             isFull = EFalse;
             break;
--- a/idlehomescreen/xmluirendering/uiengine/src/xneffectmanager.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xneffectmanager.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -366,17 +366,17 @@
         
         iBgEffect = ETrue;
         }
-    
+
     // because of changes in nga end has to call here. Effects below are
     // grouped and those will be triggered when calling GfxTransEffect::EndGroup
     if ( iLandscape )
         {
         GfxTransEffect::Begin( thisView, KGfxControlActionDisappearLsc );
         GfxTransEffect::Begin( otherView, KGfxControlActionAppearLsc );
-        
+    
         GfxTransEffect::SetDemarcation( otherView, otherView->Position() );
         GfxTransEffect::End( otherView );
-            
+        
         GfxTransEffect::SetDemarcation( thisView, thisView->Position() );
         GfxTransEffect::End( thisView );
         }
@@ -387,11 +387,11 @@
         
         GfxTransEffect::SetDemarcation( otherView, otherView->Position() );
         GfxTransEffect::End( otherView );
-            
+        
         GfxTransEffect::SetDemarcation( thisView, thisView->Position() );
         GfxTransEffect::End( thisView );
-        }    
-    
+        }
+
     return ETrue;
     }
 
@@ -452,8 +452,7 @@
 void CXnEffectManager::CleanupControlEffect()
     {
     iBgEffect = EFalse;
-    iGroupId = -1;       
-    
+    iGroupId = -1;
     iControls.Reset();        
     }
 
--- a/idlehomescreen/xmluirendering/uiengine/src/xnfocuscontrol.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnfocuscontrol.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -109,43 +109,20 @@
     {
     if ( aVisible != iVisible )
         {
+        iVisible = aVisible;
+        
         if ( !aVisible )
             {
-            iVisible = aVisible;
-            
-            iRefused = EFalse;
-            
             CXnNode* node( iAppUiAdapter.UiEngine().FocusedNode() ); 
                                    
             if ( node )
                 {
-                node->HideTooltipsL();
-                                    
-                CXnControlAdapter* control( node->Control() );
-                
-                if  ( control && control->RefusesFocusLoss() )
-                    {
-                    // Need to keep drawing focus appearance
-                    iRefused = ETrue;
-                    
-                    node->UnsetStateL( 
-                        XnPropertyNames::style::common::KPressedDown );
-                    }
-                else
-                    {
-                    node->UnsetStateL(  
-                        XnPropertyNames::style::common::KFocus );                    
-                    }
+                node->UnsetStateL(  
+                    XnPropertyNames::style::common::KFocus );                    
                                 
                 iAppUiAdapter.UiEngine().RenderUIL();                
-                }    
+                }
             }
-        else
-            {
-            iRefused = EFalse;
-            
-            iVisible = aVisible;
-            }              
         }        
     }
 
@@ -174,42 +151,17 @@
         return;
         }
     
-    if ( IsVisible() || iRefused ) 
+    if ( IsVisible() ) 
         {                                       
-        CXnNode* node( iAppUiAdapter.UiEngine().FocusedNode() );
+        TRect innerRect( aRect );            
         
-        if ( node )
-            {            
-            CXnProperty* prop( NULL );
-            
-            TRAP_IGNORE( prop = node->GetPropertyL( 
-                XnPropertyNames::common::KFocusAppearance ) );
-                                            
-            if ( prop && prop->StringValue() == XnPropertyNames::KNone )
-                {
-                // Current element refuses to draw focus appearance
-                return;
-                }
-            
-            TRect innerRect( aRect );            
-            
-            innerRect.Shrink( 
-                KSkinGfxInnerRectShrink, KSkinGfxInnerRectShrink );
-            
-            MAknsSkinInstance* skin( AknsUtils::SkinInstance() );
-                 
-            if ( node->IsStateSet( XnPropertyNames::style::common::KPressedDown ) )
-                {
-                AknsDrawUtils::DrawFrame( skin, aGc, aRect, innerRect,
-                    KAknsIIDQsnFrHomePressed, KAknsIIDDefault );                
-                }            
-            
-            if ( node->IsStateSet( XnPropertyNames::style::common::KFocus ) )
-                {
-                AknsDrawUtils::DrawFrame( skin, aGc, aRect, innerRect, 
-                    KAknsIIDQsnFrHome, KAknsIIDDefault );                
-                }            
-            }       
+        innerRect.Shrink( 
+            KSkinGfxInnerRectShrink, KSkinGfxInnerRectShrink );
+        
+        MAknsSkinInstance* skin( AknsUtils::SkinInstance() );
+                     
+        AknsDrawUtils::DrawFrame( skin, aGc, aRect, innerRect, 
+            KAknsIIDQsnFrHome, KAknsIIDDefault );                
         }
     }
 
--- a/idlehomescreen/xmluirendering/uiengine/src/xnkeyeventdispatcher.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnkeyeventdispatcher.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -17,9 +17,11 @@
 
 // System includes
 #include <AknUtils.h>
+#include <AknPriv.hrh>
 
 // User includes
 #include "xnappuiadapter.h"
+#include "xnviewadapter.h"
 #include "xnfocuscontrol.h"
 #include "xnkeyeventdispatcher.h"
 #include "xntype.h"
@@ -40,7 +42,11 @@
     ( k == EStdKeyLeftArrow || k == EStdKeyRightArrow || \
       k == EStdKeyUpArrow || k == EStdKeyDownArrow ) 
 
-const TInt KOneView = 1;
+// Constants
+const TInt KOneView( 1 );
+
+_LIT8( KEnablePartialInput, "splitinputenabled" );
+_LIT8( KTextEditor, "texteditor" );
 
 // -----------------------------------------------------------------------------
 // SetInitialFocusL
@@ -145,7 +151,11 @@
     {
     iCoeEnv->RemoveMessageMonitorObserver( *this );
     
-    iUiEngine.ViewManager()->RemoveObserver( *this );
+    CXnAppUiAdapter& appui( iUiEngine.AppUiAdapter() );
+    
+    appui.ViewManager().RemoveObserver( *this );
+    
+    appui.UiStateListener().RemoveObserver( *this );
     
     delete iLoseFocus;
     delete iGainFocus;
@@ -171,7 +181,11 @@
     {
     MakeVisible( EFalse );
 
-    iUiEngine.ViewManager()->AddObserver( *this );
+    CXnAppUiAdapter& appui( iUiEngine.AppUiAdapter() );
+    
+    appui.UiStateListener().AddObserver( *this );
+    
+    appui.ViewManager().AddObserver( *this );
            
     iCoeEnv->AddMessageMonitorObserverL( *this );    
     }
@@ -228,6 +242,44 @@
     }
 
 // -----------------------------------------------------------------------------
+// CXnKeyEventDispatcher::NotifyStatusPaneSizeChanged()
+//
+// -----------------------------------------------------------------------------
+//
+void CXnKeyEventDispatcher::NotifyStatusPaneSizeChanged()
+    {
+    // No implementation required
+    }
+
+// -----------------------------------------------------------------------------
+// CXnKeyEventDispatcher::NotifyResourceChanged()
+//
+// -----------------------------------------------------------------------------
+//
+void CXnKeyEventDispatcher::NotifyResourceChanged( TInt aType )
+    {
+    if ( aType == KAknSplitInputEnabled )
+        {
+        if ( iActiveTextEditor )
+            {   
+            CXnProperty* prop( NULL );
+            
+            TRAP_IGNORE( prop = 
+                iActiveTextEditor->GetPropertyL( KEnablePartialInput ) );
+                       
+            if ( prop && prop->StringValue() == XnPropertyNames::KTrue ) 
+                {
+                iUiEngine.EnablePartialTouchInput( iActiveTextEditor, ETrue );
+                }
+            }
+        }
+    else if ( aType == KAknSplitInputDisabled )
+        {
+        iUiEngine.EnablePartialTouchInput( NULL, EFalse );             
+        }    
+    }
+
+// -----------------------------------------------------------------------------
 // CXnKeyEventDispatcher::PointerEvent()
 //
 // -----------------------------------------------------------------------------
@@ -238,6 +290,43 @@
     }
 
 // -----------------------------------------------------------------------------
+// CXnKeyEventDispatcher::SetTextEditorActive()
+//
+// -----------------------------------------------------------------------------
+//
+void CXnKeyEventDispatcher::SetTextEditorActive( CXnNode* aNode, 
+    TBool aActivate )
+    {
+    if ( iActiveTextEditor && iActiveTextEditor != aNode )
+        {
+        CXnNode* activeTextEditor( iActiveTextEditor );
+        iActiveTextEditor = NULL;
+        
+        // Run lose focus to text editor node
+        TRAP_IGNORE( SetNodeL( activeTextEditor, NULL, ETrue ) );                    
+        }           
+
+    if ( aActivate && aNode && aNode->Type()->Type() == KTextEditor )
+        {
+        iActiveTextEditor = aNode;
+        }    
+    else
+        {
+        iActiveTextEditor = NULL;
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CXnKeyEventDispatcher::IsTextEditorActive
+// 
+// -----------------------------------------------------------------------------
+//
+TBool CXnKeyEventDispatcher::IsTextEditorActive() const
+    {
+    return iActiveTextEditor ? ETrue : EFalse;
+    }
+
+// -----------------------------------------------------------------------------
 // CXnKeyEventDispatcher::OfferKeyEventL
 // Handles key events.
 // -----------------------------------------------------------------------------
@@ -269,6 +358,11 @@
         {
         keyYesNoApps = ETrue;
         
+        if ( aKeyEvent.iScanCode == EStdKeyNo && aType == EEventKey )
+            {
+            iUiEngine.AppUiAdapter().ViewAdapter().CloseAllPopupsL();
+            }        
+        
         iFocusChanged = EFalse;
         
         // AppsKey, YesKey, NoKey events must be always handled, and if we don't
@@ -281,38 +375,45 @@
         
         if ( IS_ARROW_KEY( aKeyEvent.iScanCode ) && aType == EEventKey )
             {
-            if ( !appui.FocusShown() )
+            if ( !appui.FocusShown() || !iNode )
                 {
                 appui.ShowFocus();
                 
                 if ( !iNode )
                     {
-                    // Find initial location for focus
-                    ResolveAndSetFocusL();
-                    
-                    // If focus is still not set, we are in normal mode and the view is empty.
-                    // left and right arrows lead to next/previous view. When other arrows
-                    // are pressed, the focus is hidden.
-                    if( !iNode )
+                    if ( iActiveTextEditor )
+                        {
+                        iNode = iActiveTextEditor;
+                        }
+                    else
                         {
-                        if( iUiEngine.ViewManager()->ViewAmount() != KOneView &&
-                            aKeyEvent.iScanCode == EStdKeyRightArrow )
+                        // Find initial location for focus
+                        ResolveAndSetFocusL();
+                        
+                        // If focus is still not set, we are in normal mode and the view is empty.
+                        // left and right arrows lead to next/previous view. When other arrows
+                        // are pressed, the focus is hidden.
+                        if( !iNode )
                             {
-                            iUiEngine.ViewManager()->ActivateNextViewL();
+                            if( iUiEngine.ViewManager()->ViewAmount() != KOneView &&
+                                aKeyEvent.iScanCode == EStdKeyRightArrow )
+                                {
+                                iUiEngine.ViewManager()->ActivateNextViewL();
+                                }
+                            else if( iUiEngine.ViewManager()->ViewAmount() != KOneView &&
+                                     aKeyEvent.iScanCode == EStdKeyLeftArrow )
+                                {
+                                iUiEngine.ViewManager()->ActivatePreviousViewL();
+                                }
+                            else
+                                {
+                                // hide focus if view is not switched
+                                appui.HideFocus();
+                                }
                             }
-                        else if( iUiEngine.ViewManager()->ViewAmount() != KOneView &&
-                                 aKeyEvent.iScanCode == EStdKeyLeftArrow )
-                            {
-                            iUiEngine.ViewManager()->ActivatePreviousViewL();
-                            }
-                        else
-                            {
-                            // hide focus if view is not switched
-                            appui.HideFocus();
-                            }
+    
+                        return EKeyWasConsumed;                    
                         }
-
-                    return EKeyWasConsumed;
                     }
                 }
             }
@@ -431,6 +532,14 @@
     {
     if ( aToLose )
         {
+        CXnControlAdapter* adapter( aToLose->Control() );
+    
+        // Don't change control focus when <texteditor> element is focused
+        if ( adapter && !iActiveTextEditor )
+            {
+            adapter->SetFocus( EFalse );
+            }
+    
         aToLose->SetDirtyL( XnDirtyLevel::ERender );
 
         aToLose->UnsetStateL( XnPropertyNames::style::common::KFocus );
@@ -444,20 +553,34 @@
                 iLoseFocus = BuildTriggerNodeL( iUiEngine,
                     XnPropertyNames::action::trigger::name::KLoseFocus );
                 }
-
-            aToLose->ReportXuikonEventL( *iLoseFocus );
-            }
-
-        CXnControlAdapter* adapter( aToLose->Control() );
-
-        if ( adapter )
-            {
-            adapter->SetFocus( EFalse );
+            
+            if ( iActiveTextEditor != aToLose )
+                {
+                aToLose->ReportXuikonEventL( *iLoseFocus );
+                }
             }
         }
 
     if ( aToGain )
         {
+        TBool isTextEditor( aToGain->Type()->Type() == KTextEditor );
+        
+        if ( iActiveTextEditor && ( ( aSource != XnEventSource::EStylus && !isTextEditor ) || 
+            ( iActiveTextEditor->Namespace() != aToGain->Namespace() ) ||  
+            ( isTextEditor && iActiveTextEditor != aToGain ) ) )
+            {            
+            // Remove focus from active <texteditor> element
+            SetTextEditorActive( NULL, EFalse );            
+            }
+
+        CXnControlAdapter* adapter( aToGain->Control() );
+    
+        // Don't change control focus when <texteditor> element is focused
+        if ( adapter && !iActiveTextEditor )
+            {
+            adapter->SetFocus( ETrue );
+            }
+    
         aToGain->SetDirtyL( XnDirtyLevel::ERender );
 
         if ( aNotify )
@@ -468,15 +591,17 @@
                         XnPropertyNames::action::trigger::name::KGainFocus );
                 }
 
-            aToGain->ReportXuikonEventL( *iGainFocus, aSource );
+            if ( iActiveTextEditor != aToGain )
+                {
+                aToGain->ReportXuikonEventL( *iGainFocus, aSource );
+                }            
             }
-
-        CXnControlAdapter* adapter( aToGain->Control() );
-
-        if ( adapter )
+        
+        if ( isTextEditor )
             {
-            adapter->SetFocus( ETrue );
-            }
+            // Set active <texteditor> element
+            SetTextEditorActive( aToGain, ETrue );            
+            }               
         }
     }
 
@@ -641,6 +766,9 @@
     const CXnViewData& /*aViewData*/ )
     {    
     iMenuNode = NULL;
+    
+    SetTextEditorActive( NULL, EFalse );
+    
     ClearPassiveFocusedNodesL();
     ClearStateL();
     
@@ -667,11 +795,11 @@
         {
         ClearPassiveFocusedNodesL();
 
+        CXnViewData& activeViewData(
+            iUiEngine.ViewManager()->ActiveViewData() );
+
         if ( iNode )
             {                              
-            CXnViewData& activeViewData(
-                iUiEngine.ViewManager()->ActiveViewData() );
-    
             const CXnPluginData* pluginData(
                 activeViewData.Plugin( iNode ) );
     
@@ -681,6 +809,17 @@
                 ClearStateL();
                 }
             }
+        
+        if ( iActiveTextEditor )
+            {
+            const CXnPluginData* pluginData(
+                activeViewData.Plugin( iActiveTextEditor ) );
+            
+            if ( pluginData == &aPluginData )
+                {
+                SetTextEditorActive( NULL, EFalse );
+                }        
+            }
         }    
     }
 
--- a/idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnnodeimpl.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -27,6 +27,7 @@
 #include "xnproperty.h"
 #include "xnuiengine.h"
 #include "xnappuiadapter.h"
+#include "xnkeyeventdispatcher.h"
 #include "xncontroladapter.h"
 #include "xnpopupcontroladapter.h"
 #include "xnmenuadapter.h"
@@ -51,7 +52,6 @@
 #include "xneffectmanager.h"
 #include "xnviewadapter.h"
 #include "xnbackgroundmanager.h"
-#include "xntexteditor.h"
 #include "xnitemactivator.h"
 
 // Local constants
@@ -337,10 +337,11 @@
 static CXnNode* FindNextNodeFromLeftL(
     RPointerArray< CXnNode >& aArray, CXnNode& aNode, TBool stayInNamespace = EFalse, CXnUiEngine* aEngine = NULL );
 static CXnNode* FindNextNodeFromBelowL(
-    RPointerArray< CXnNode >& aArray, CXnNode& aNode, TBool stayInNamespace = EFalse );
+    RPointerArray< CXnNode >& aArray, CXnNode& aNode, TBool stayInNamespace = EFalse, CXnUiEngine* aEngine = NULL );
 static CXnNode* FindNextNodeFromAboveL(
-    RPointerArray< CXnNode >& aArray, CXnNode& aNode, TBool stayInNamespace = EFalse );
+    RPointerArray< CXnNode >& aArray, CXnNode& aNode, TBool stayInNamespace = EFalse, CXnUiEngine* aEngine = NULL );
 static CXnNode* FindPluginNode( CXnNode& aNode );
+static TBool IsPluginNode( CXnNode& aNode );
 static TBool DoInternalFocusChangeL(
     CXnUiEngine& aEngine, CXnNode& aNode, const TKeyEvent& aKeyEvent,
     TEventCode aType );
@@ -2935,22 +2936,22 @@
         editorNode = &aLayoutNode;
         }
     
-    if( editorNode )
-        {
-        XnTextEditorInterface::MXnTextEditorInterface* editorControl = NULL;
+    if ( editorNode )
+        {             
+        CXnKeyEventDispatcher* eventDispatcher( 
+            aEngine.AppUiAdapter().ViewAdapter().EventDispatcher() );
         
-        XnComponentInterface::MakeInterfaceL( editorControl, editorNode->AppIfL() );
-        if( editorControl )
-            {
-            if( aActivate )
-                {
-                editorControl->HandleEditorEvent(CXnTextEditor::KActivateTextEditor);
+        if ( eventDispatcher )
+            {
+            if ( aActivate )
+                {
+                eventDispatcher->SetTextEditorActive( editorNode, ETrue );        
                 }
             else
                 {
-                editorControl->HandleEditorEvent(CXnTextEditor::KDeactivateTextEditor);
-                }
-            }    
+                eventDispatcher->SetTextEditorActive( NULL, EFalse );
+                }        
+            }        
         }
     }
 
@@ -3056,17 +3057,21 @@
     
     for ( TInt i = 0; i < plugins.Count(); i++ )
         {
-        CXnNode* node( plugins[i]->Owner()->LayoutNode() );
+        CXnNode* node( plugins[i]->Owner()->LayoutNode() );       
+        TBool editable = plugins[i]->Editable();
+
+        if( editable )
+            {
+            node->SetStateL( XnPropertyNames::style::common::KEdit );
+            }
         
-        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 );        
@@ -3734,7 +3739,7 @@
                 }
             }
         
-        plugins.Append( &viewData );
+        plugins.AppendL( &viewData );
             
         RPointerArray< CXnNode > list;
         CleanupClosePushL( list );
@@ -4780,7 +4785,6 @@
     TBool stayInNamespace,
     CXnUiEngine* aEngine )
     {
-    
     CXnNode* nextNode = NULL;
     TRect rect = aNode.PaddingRect();
 
@@ -4800,6 +4804,14 @@
             // do not shift focus to another view
             continue;
             }
+        if( aEngine->IsEditMode() )
+            {
+            if( !IsPluginNode( *tmpNode ) )
+                {
+                // move only between "plugin" nodes in edit mode
+                continue;
+                }
+            }
         
         const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace();
         const TDesC8& nodeNamespace = aNode.Impl()->Namespace();
@@ -4923,6 +4935,14 @@
                 // do not shift focus to another view
                 continue;
                 }
+            if( aEngine->IsEditMode() )
+                {
+                if( !IsPluginNode( *tmpNode ) )
+                    {
+                    // move only between "plugin" nodes in edit mode
+                    continue;
+                    }
+                }          
             
             const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace();
             const TDesC8& nodeNamespace = aNode.Impl()->Namespace();
@@ -5037,6 +5057,7 @@
         for ( TInt i = 0; i < aArray.Count(); ++i )
             {
             CXnNode* tmpNode = aArray[i];
+            
             if ( !IsNodeNavigableL( *tmpNode ) )
                 {
                 continue;
@@ -5046,6 +5067,14 @@
                 // do not shift focus to another view
                 continue;
                 }
+            if( aEngine->IsEditMode() )
+                {
+                if( !IsPluginNode( *tmpNode ) )
+                    {
+                    // move only between "plugin" nodes in edit mode
+                    continue;
+                    }
+                }            
             
             const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace();
             const TDesC8& nodeNamespace = aNode.Impl()->Namespace();
@@ -5231,6 +5260,14 @@
             // do not shift focus to another view
             continue;
             }
+        if( aEngine->IsEditMode() )
+            {
+            if( !IsPluginNode( *tmpNode ) )
+                {
+                // move only between "plugin" nodes in edit mode
+                continue;
+                }
+            }
         
         const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace();
         const TDesC8& nodeNamespace = aNode.Impl()->Namespace();
@@ -5353,6 +5390,14 @@
                 // do not shift focus to another view
                 continue;
                 }
+            if( aEngine->IsEditMode() )
+                {
+                if( !IsPluginNode( *tmpNode ) )
+                    {
+                    // move only between "plugin" nodes in edit mode
+                    continue;
+                    }
+                }
             
             const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace();
             const TDesC8& nodeNamespace = aNode.Impl()->Namespace();       
@@ -5470,12 +5515,7 @@
         for ( TInt i = 0; i < aArray.Count(); ++i )
             {
             CXnNode* tmpNode = aArray[i];
-            /*
-            if ( tmpNode == &aNode )
-                {
-                continue;
-                }
-            */
+
             if ( !IsNodeNavigableL( *tmpNode ) )
                 {
                 continue;
@@ -5485,6 +5525,14 @@
                 // do not shift focus to another view
                 continue;
                 }
+            if( aEngine->IsEditMode() )
+                {
+                if( !IsPluginNode( *tmpNode ) )
+                    {
+                    // move only between "plugin" nodes in edit mode
+                    continue;
+                    }
+                }            
             
             const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace();
             const TDesC8& nodeNamespace = aNode.Impl()->Namespace();
@@ -5649,7 +5697,8 @@
 //
 static CXnNode* FindNextNodeFromBelowL(
     RPointerArray< CXnNode >& aArray,
-    CXnNode& aNode, TBool stayInNamespace )
+    CXnNode& aNode, TBool stayInNamespace,
+    CXnUiEngine* aEngine )
     {
     CXnNode* nextNode = NULL;
     TRect rect = aNode.PaddingRect();
@@ -5669,6 +5718,14 @@
             {
             // do not shift focus to another view
             continue;
+            }
+        if( aEngine->IsEditMode() )
+            {
+            if( !IsPluginNode( *tmpNode ) )
+                {
+                // move only between "plugin" nodes in edit mode
+                continue;
+                }
             }        
         
         const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace();
@@ -5754,6 +5811,14 @@
                 // do not shift focus to another view
                 continue;
                 }
+            if( aEngine->IsEditMode() )
+                {
+                if( !IsPluginNode( *tmpNode ) )
+                    {
+                    // move only between "plugin" nodes in edit mode
+                    continue;
+                    }
+                }            
             
             const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace();
             const TDesC8& nodeNamespace = aNode.Impl()->Namespace();
@@ -5825,7 +5890,8 @@
 //
 static CXnNode* FindNextNodeFromAboveL(
     RPointerArray< CXnNode >& aArray,
-    CXnNode& aNode, TBool stayInNamespace )
+    CXnNode& aNode, TBool stayInNamespace,
+    CXnUiEngine* aEngine )
     {
     CXnNode* nextNode = NULL;
     TRect rect = aNode.PaddingRect();
@@ -5846,6 +5912,14 @@
             // do not shift focus to another view
             continue;
             }
+        if( aEngine->IsEditMode() )
+            {
+            if( !IsPluginNode( *tmpNode ) )
+                {
+                // move only between "plugin" nodes in edit mode
+                continue;
+                }
+            }        
         
         const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace();
         const TDesC8& nodeNamespace = aNode.Impl()->Namespace();       
@@ -5929,6 +6003,14 @@
                 // do not shift focus to another view
                 continue;
                 }
+            if( aEngine->IsEditMode() )
+                {
+                if( !IsPluginNode( *tmpNode ) )
+                    {
+                    // move only between "plugin" nodes in edit mode
+                    continue;
+                    }
+                }            
             
             const TDesC8& tmpNamespace = tmpNode->Impl()->Namespace();
             const TDesC8& nodeNamespace = aNode.Impl()->Namespace();       
@@ -6019,6 +6101,23 @@
     }
 
 // -----------------------------------------------------------------------------
+// IsPluginNode
+// -----------------------------------------------------------------------------
+//
+static TBool IsPluginNode( CXnNode& aNode )
+    {
+    TBool ret = EFalse;
+    
+    const TDesC8& nodeType = aNode.DomNode()->Name();
+    if( nodeType == KPlugin )
+        {
+        ret = ETrue;
+        }
+    
+    return ret;
+    }
+
+// -----------------------------------------------------------------------------
 // DoInternalFocusChangeL
 // -----------------------------------------------------------------------------
 //
@@ -6050,12 +6149,11 @@
     // "nav-index: appearance"...
     CXnProperty* navind = aNode.NavIndexL();
     if ( navind && navind->StringValue() == XnPropertyNames::style::common::KAppearance )
-        {
+        {        
+        CXnAppUiAdapter& appui( aEngine.AppUiAdapter() );
         
-        CXnAppUiAdapter& appui = static_cast< CXnAppUiAdapter& >( *iAvkonAppUi );
-        CXnPluginData* plugin( 
-                    appui.ViewManager().ActiveViewData().Plugin( &aNode ) );
-        
+        CXnPluginData* plugin( appui.ViewManager().ActiveViewData().Plugin( &aNode ) ); 
+                    
         // find if node is in a widget that contatins some opened popup window       
         TBool containsPopUp = ( plugin ? plugin->IsDisplayingPopup() : EFalse );
 
@@ -6063,11 +6161,11 @@
         RPointerArray< CXnNode >& array = aEngine.ViewManager()->AppearanceNodes();
         if ( aKeyEvent.iScanCode == EStdKeyDownArrow )
             {
-            nextNode = FindNextNodeFromBelowL( array, aNode, containsPopUp );
+            nextNode = FindNextNodeFromBelowL( array, aNode, containsPopUp, &aEngine );
             }
         else if ( aKeyEvent.iScanCode == EStdKeyUpArrow )
             {
-            nextNode = FindNextNodeFromAboveL( array, aNode, containsPopUp );
+            nextNode = FindNextNodeFromAboveL( array, aNode, containsPopUp, &aEngine );
             }
         else if ( aKeyEvent.iScanCode == EStdKeyRightArrow )
             {
@@ -6078,24 +6176,12 @@
             nextNode = FindNextNodeFromLeftL( array, aNode, containsPopUp, &aEngine );
             }
         if ( nextNode )
-            {
-            // focus plugin node if in edit mode
-            if( aEngine.IsEditMode() )
-                {
-                if( nextNode->Type()->Type() != KPlugin )
-                    {
-                    CXnNode* pluginNode = FindPluginNode( *nextNode );
-                    if( pluginNode )
-                        {
-                        nextNode = pluginNode;
-                        }
-                    }
-                }
-
+            {   
             if( nextNode && nextNode->ScrollableControl() )
                 {
                 nextNode->ScrollableControl()->ShowItem( *nextNode );
                 }
+            
             nextNode->SetStateL( XnPropertyNames::style::common::KFocus );
             return ETrue;
             }
@@ -7956,18 +8042,15 @@
 // -----------------------------------------------------------------------------
 //
 void CXnNodeImpl::SetLaidOutL()
-    {
-    if ( !iLayoutCapable )
-        {
-        return;
-        }
-
-    if ( iDropped || !IsNodeDisplayedL( *iNode ) )
-        {
-        return;
-        }
-
-    iLaidOut = ETrue;
+    {       
+    if ( !iLayoutCapable || iDropped || !IsNodeDisplayedL( *iNode ) )
+        {
+        iLaidOut = EFalse;
+        }
+    else
+        {
+        iLaidOut = ETrue;
+        }
 
     for ( TInt i = 0; i < iChildren.Count(); i++ )
         {
@@ -9134,6 +9217,7 @@
     CleanupStack::PopAndDestroy( 2 ); // lockedNodes, lockedNodeIndex
     }
 
+/*
 // -----------------------------------------------------------------------------
 // CXnNodeImpl::FindNextNodeL
 // -----------------------------------------------------------------------------
@@ -9162,6 +9246,7 @@
         }
     return node;
     }
+*/    
 
 // -----------------------------------------------------------------------------
 // CXnNodeImpl::Namespace
--- a/idlehomescreen/xmluirendering/uiengine/src/xnnodepluginif.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnnodepluginif.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -26,6 +26,9 @@
 #include "xndomdocument.h"
 #include "xnodt.h"
 
+_LIT8( KFocus, "focus" );
+_LIT8( KEdit, "edit" );
+
 // ============================ MEMBER FUNCTIONS ===============================
 
 // -----------------------------------------------------------------------------
@@ -207,7 +210,16 @@
 //
 EXPORT_C TBool CXnNodePluginIf::IsFocusedState()
     {
-    return iNode->IsStateSet( _L8( "focus" ) );
+    return iNode->IsStateSet( KFocus );
+    }
+
+// -----------------------------------------------------------------------------
+// CXnNodePluginIf::IsEditState
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CXnNodePluginIf::IsEditState()
+    {
+    return iNode->IsStateSet( KEdit );
     }
 
 // -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnodtparser.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnodtparser.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -88,6 +88,14 @@
 _LIT8( KWidgetNodeName, "widget" );
 _LIT8( KSliderNodeName, "slider" );
 _LIT8( KClockNodeName, "clock" );
+_LIT8( KClockAnalog, "analog" );
+_LIT8( KClockDigital, "digital" );
+_LIT8( KClockFace, "face" );
+_LIT8( KClockFace12, "face12" );
+_LIT8( KClockFace24, "face24" );
+_LIT8( KClockDate, "date" );
+_LIT8( KClockAmpm, "ampm" );
+_LIT8( KClockDay, "day" );
 _LIT8( KSoftkeyNodeName,"softkey" );
 _LIT8( KConditionalTrigger,"conditional" );
 _LIT8( KCondtionalOn, "true" );
@@ -511,6 +519,14 @@
               name == KNewstickerNodeName ||
               name == KSliderNodeName ||
               name == KClockNodeName ||
+              name == KClockAnalog ||
+              name == KClockDigital ||
+              name == KClockFace ||
+              name == KClockFace12 ||
+              name == KClockFace24 ||
+              name == KClockDate ||
+              name == KClockAmpm ||
+              name == KClockDay ||
               name == KStylusPopupNodeName ||
               name == KPopUpNodeName ||
               name == KWidgetExtensionNodeName ||
--- a/idlehomescreen/xmluirendering/uiengine/src/xnplugindata.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnplugindata.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -37,6 +37,7 @@
 
 // Constants
 _LIT8( KLockingStatusLocked, "locked" );
+_LIT8( KLockingStatusPermanent, "permanent" );
 
 // ============================ LOCAL FUNCTIONS ================================
 
@@ -497,12 +498,22 @@
 void CXnPluginData::Flush()
     {
     // Don't touch to iOwner, because this plugin might be reused later
-           
+    
+    // clear all flags, except editable and removable
+    TBool removable = iFlags.IsSet( EIsRemovable );
+    TBool editable = iFlags.IsSet( EIsEditable );
+    
     iFlags.ClearAll();
     
-    // This is default
-    iFlags.Set( EIsRemovable );    
-           
+    if( removable )
+        {
+        iFlags.Set( EIsRemovable );
+        }
+    if( editable )
+        {
+        iFlags.Set( EIsEditable );
+        }    
+
     iNode = NULL;
     
     delete iConfigurationId;
@@ -551,7 +562,7 @@
     }
 
 // -----------------------------------------------------------------------------
-// CXnPluginData::SetEmpty()
+// CXnPluginData::SetEmptyL()
 // 
 // -----------------------------------------------------------------------------
 //
@@ -624,13 +635,20 @@
 //
 void CXnPluginData::SetLockingStatus( const TDesC8& aStatus )
     {
-    if ( aStatus.CompareF( KLockingStatusLocked ) == 0 )
+    if( aStatus.CompareF( KLockingStatusPermanent ) == 0 )
         {
         iFlags.Clear( EIsRemovable );
+        iFlags.Clear( EIsEditable );
+        }
+    else if( aStatus.CompareF( KLockingStatusLocked ) == 0 )
+        {
+        iFlags.Clear( EIsRemovable );
+        iFlags.Set( EIsEditable );
         }
     else
         {
         iFlags.Set( EIsRemovable );
+        iFlags.Set( EIsEditable );               
         }
     }
 
--- a/idlehomescreen/xmluirendering/uiengine/src/xnrootdata.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnrootdata.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -45,6 +45,7 @@
 
 // Constants
 const TInt KScheduleInterval( 2000000 );
+_LIT8( KTemplateViewUID, "0x20026f50" );
 
 // ============================ LOCAL FUNCTIONS ================================
 
@@ -94,6 +95,9 @@
 //
 CXnRootData::~CXnRootData()
     {
+    delete iTemplateViewUid;
+    iTemplateViewUid = NULL;
+    
     if ( iLoadTimer )
         {
         iLoadTimer->Cancel();
@@ -250,7 +254,7 @@
 // 
 // -----------------------------------------------------------------------------
 //
-void CXnRootData::LoadRemainingViews()
+void CXnRootData::LoadRemainingViewsL()
     {
     if ( iFlags.IsClear( EIsDispose ) )
         {
@@ -434,10 +438,9 @@
         {
         iPluginsData.Remove( index );
                 
-        if ( iViewsToDestroy.Find( aViewData ) == KErrNotFound )
+        if ( iViewsToDestroy.Find( aViewData ) == KErrNotFound && 
+           iViewsToDestroy.Append( aViewData ) == KErrNone )
             {
-            iViewsToDestroy.Append( aViewData );
-            
             iDestroyTimer->Cancel();
             
             iDestroyTimer->Start( TTimeIntervalMicroSeconds32( 0 ),
@@ -600,6 +603,28 @@
     return iMaxPages;
     }
 
+// ---------------------------------------------------------------------------
+// Returns TemplateViewUid
+// ---------------------------------------------------------------------------
+//
+const TDesC8& CXnRootData::TemplateViewUid() const
+    {
+    const TDesC8& templateViewUid = KTemplateViewUID;
+    return iTemplateViewUid ? *iTemplateViewUid : templateViewUid; // qhd uid
+    };
+
+// ---------------------------------------------------------------------------
+// Sets TemplateViewUid
+// ---------------------------------------------------------------------------
+//
+void CXnRootData::SetTemplateViewUidL( const TDesC8& aTemplateViewUid )
+    {
+    delete iTemplateViewUid;
+    iTemplateViewUid = NULL;
+
+    iTemplateViewUid = aTemplateViewUid.AllocL();
+    };
+
 // -----------------------------------------------------------------------------
 // CXnRootData::RunDestroyL()
 // 
--- a/idlehomescreen/xmluirendering/uiengine/src/xnscrollablecontroladapter.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnscrollablecontroladapter.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -156,8 +156,7 @@
                     {
                     // Remove pressed down
                     focused->UnsetStateL( 
-                        XnPropertyNames::style::common::KPressedDown );
-                    focused->HideTooltipsL();                                
+                        XnPropertyNames::style::common::KFocus );                                                   
                     }
                 }
             
@@ -274,41 +273,47 @@
     {
     TRect rect( aNode.MarginRect() );
     
-    if( !iViewPort.Contains( rect.iTl ) || !iViewPort.Contains( rect.iBr ) )
+    if ( !iViewPort.Contains( rect.iTl ) || !iViewPort.Contains( rect.iBr ) )
         {
         if ( iDirection == EVertical )
             {                            
             TInt delta( 0 );
 
-            if( rect.iTl.iY < iViewPort.iTl.iY )
+            if ( rect.iTl.iY < iViewPort.iTl.iY )
                 {
                 delta = rect.iTl.iY - iViewPort.iTl.iY;
                 }
-            else if( rect.iBr.iY > iViewPort.iBr.iY )
+            else if ( rect.iBr.iY > iViewPort.iBr.iY )
                 {
                 delta = rect.iBr.iY - iViewPort.iBr.iY;
                 }
             
-            TPoint newPosition( iPreviousPosition + TPoint( 0, delta ) );
-            
-            ViewPositionChanged( newPosition, ETrue, 0 );
+            if ( delta != 0 )
+                {
+                TPoint newPosition( iPreviousPosition + TPoint( 0, delta ) );
+                
+                ViewPositionChanged( newPosition, ETrue, 0 );            
+                }
             }
         else
             {
             TInt delta( 0 );
             
-            if( rect.iTl.iX < iViewPort.iTl.iX )
+            if ( rect.iTl.iX < iViewPort.iTl.iX )
                 {
                 delta = rect.iTl.iX - iViewPort.iTl.iX;
                 }
-            else if( rect.iBr.iX > iViewPort.iBr.iX )
+            else if ( rect.iBr.iX > iViewPort.iBr.iX )
                 {
                 delta = rect.iBr.iX - iViewPort.iBr.iX;
                 }
             
-            TPoint newPosition( iPreviousPosition + TPoint( delta, 0 ) );
-            
-            ViewPositionChanged( newPosition, ETrue, 0 );            
+            if ( delta != 0 )
+                {
+                TPoint newPosition( iPreviousPosition + TPoint( delta, 0 ) );
+                
+                ViewPositionChanged( newPosition, ETrue, 0 );                        
+                }
             }
         }
     }
--- a/idlehomescreen/xmluirendering/uiengine/src/xnuiengine.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnuiengine.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -160,6 +160,16 @@
     }
 
 // -----------------------------------------------------------------------------
+// CXnUiEngine::RenderFromNodeL
+// Forwards the call to the ui engine implementation
+// -----------------------------------------------------------------------------
+void CXnUiEngine::RenderFromNodeL( CXnNode& aNode )
+    {
+    iUiEngineImpl->LayoutFromNodeL( aNode );
+    iUiEngineImpl->RenderFromNodeL( aNode );
+    }
+
+// -----------------------------------------------------------------------------
 // CXnUiEngine::LayoutUIL
 // Forwards the call to the ui engine implementation
 // -----------------------------------------------------------------------------
@@ -170,6 +180,16 @@
     }
 
 // -----------------------------------------------------------------------------
+// CXnUiEngine::LayoutFromNodeL
+// Forwards the call to the ui engine implementation
+// -----------------------------------------------------------------------------
+//
+void CXnUiEngine::LayoutFromNodeL( CXnNode& aNode )
+    {
+    iUiEngineImpl->LayoutFromNodeL( aNode );
+    }
+
+// -----------------------------------------------------------------------------
 // CXnUiEngine::Resources
 // Forwards the call to the ui engine implementation
 // -----------------------------------------------------------------------------
@@ -526,7 +546,7 @@
 // CXnUiEngine::EnablePartialTouchInput()
 // -----------------------------------------------------------------------------
 //               
-void CXnUiEngine::EnablePartialTouchInput( CXnNode& aNode, TBool aEnable )
+void CXnUiEngine::EnablePartialTouchInput( CXnNode* aNode, TBool aEnable )
     {
     iUiEngineImpl->EnablePartialTouchInput(aNode, aEnable);
     }
--- a/idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnuiengineimpl.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -58,6 +58,7 @@
 #include "xnbackgroundmanager.h"
 #include "xntexteditor.h"
 #include "xnrootdata.h"
+#include "xnviewswitcher.h"
 
 #ifdef _XN_PERFORMANCE_TEST_
 #include "xntimemon.h"
@@ -77,15 +78,17 @@
 
 _LIT8( KBoxNodeName, "box" );
 _LIT8( KButtonNodeName, "button" );
-_LIT8( KWidgetNodeName, "widget" );
 _LIT8( KWidgetExtensionNodeName, "widgetextension" );
 _LIT8( KScrollableBoxNodeName, "scrollablebox" );
 _LIT8( KMenuBar, "menubar" );
 _LIT8( KPopUpNodeName, "popup" );
-_LIT8( KEditorNodeName, "texteditor" );
 
 _LIT8( KPlugin, "plugin" );
 
+_LIT8( KSplitScreenEnabledTrigger , "splitscreenenabled" );
+_LIT8( KSplitScreenDisabledTrigger, "splitscreendisabled" );
+
+
 // LOCAL CONSTANTS AND MACROS
 static const TReal KIntConversionConstant = 0.5;
 static const TReal KIntPercentageConstant =
@@ -288,23 +291,6 @@
 // ============================= LOCAL FUNCTIONS ===============================
 
 // -----------------------------------------------------------------------------
-// -----------------------------------------------------------------------------
-//
-CXnNode* FindPlugin( CXnNode& aNode )
-    {
-    CXnNode* pluginNode( NULL );
-    for( CXnNode* node = &aNode; node; node = node->Parent() )
-        {
-        if( node->DomNode()->Name() == KPlugin )
-            {
-            pluginNode = node;
-            break;
-            }
-        }
-    return pluginNode;
-    }
-
-// -----------------------------------------------------------------------------
 // GrowIfNeeded()
 // When a plugin is focused, the focus is a bit bigger than its control 
 // (this is a hack fix to get focus visible with WRT widgets).
@@ -3183,18 +3169,18 @@
                     {
                     TInt width =
                         aNode.BorderRect().Width() + marginLeft + marginRight;
-                    if ( aColumnMargin < marginLeft )
+                    if ( aColumnMargin < marginRight )
                         {
                         width -= aColumnMargin;
                         }
                     else
                         {
-                        width -= marginLeft;
+                        width -= marginRight;
                         }
                     if ( width + aColumnWidth <= aParentRect.Width() )
                         {
                         offsety = aParentRect.iTl.iY + marginTop;
-                        if ( aColumnMargin < marginLeft )
+                        if ( aColumnMargin < marginRight )
                             {
                             offsetx = aParentRect.iBr.iX - aColumnWidth +
                                 aColumnMargin - marginRight -
@@ -3280,7 +3266,7 @@
                         {
                         offsety = aParentRect.iBr.iY - marginBottom -
                             aNode.BorderRect().Height();
-                        if ( aColumnMargin < marginLeft )
+                        if ( aColumnMargin < marginRight )
                             {
                             offsetx = aParentRect.iBr.iX - aColumnWidth +
                                 aColumnMargin - marginRight -
@@ -6030,19 +6016,21 @@
     TRect parentRect;
 
 #ifdef _XN3_DEBUG_
-    RDebug::Print( _L("Xuikon: Layout:") );
-    TBuf8< 256 > debug;
+    RDebug::Print( _L("*** XML UI place areas, layout phase=%d"), aLayoutPhase );
+    
+    TBuf8< 256 > debug;       
 #endif
 
     // Place areas according their parents and positioning
     for( CXnNode* node = iterator->Value(); node; node = iterator->NextL() )
         {
 #ifdef _XN3_DEBUG_
-        debug = node->Type()->Type();
+        debug = _L8( "* layouting node: " );
+        debug.Append( node->Type()->Type() );
         CXnProperty* id( node->IdL() );
         if ( id )
             {
-            debug.Append( _L8( ", id: " ) );
+            debug.Append( _L8( " id=" ) );
             debug.Append( id->StringValue() );
             }
 #endif
@@ -7098,71 +7086,71 @@
     if ( IsPropertyAutoL( *top ) )
         {
         TPtrC8 propertyName = top->Property()->Name();
-        autoArray.Append( propertyName );
+        autoArray.AppendL( propertyName );
         }
     CXnProperty* bottom = aNode.BottomL();
     if ( IsPropertyAutoL( *bottom ) )
         {
         TPtrC8 propertyName = bottom->Property()->Name();
-        autoArray.Append( propertyName );
+        autoArray.AppendL( propertyName );
         }
     CXnProperty* left = aNode.LeftL();
     if ( IsPropertyAutoL( *left ) )
         {
         TPtrC8 propertyName = left->Property()->Name();
-        autoArray.Append( propertyName );
+        autoArray.AppendL( propertyName );
         }
     CXnProperty* right = aNode.RightL();
     if ( IsPropertyAutoL( *right ) )
         {
         TPtrC8 propertyName = right->Property()->Name();
-        autoArray.Append( propertyName );
+        autoArray.AppendL( propertyName );
         }
     CXnProperty* width = aNode.WidthL();
     if ( IsPropertyAutoL( *width ) )
         {
         TPtrC8 propertyName = width->Property()->Name();
-        autoArray.Append( propertyName );
+        autoArray.AppendL( propertyName );
         }
     if ( !width )
         {
         TPtrC8 propertyName = XnPropertyNames::style::common::KWidth();
-        autoArray.Append( propertyName );
+        autoArray.AppendL( propertyName );
         }
     CXnProperty* height = aNode.HeightL();
     if ( IsPropertyAutoL( *height ) )
         {
         TPtrC8 propertyName = height->Property()->Name();
-        autoArray.Append( propertyName );
+        autoArray.AppendL( propertyName );
         }
     if ( !height )
         {
         TPtrC8 propertyName = XnPropertyNames::style::common::KHeight();
-        autoArray.Append( propertyName );
+        autoArray.AppendL( propertyName );
         }
     CXnProperty* marginTop = aNode.MarginTopL();
     if ( IsPropertyAutoL( *marginTop ) )
         {
         TPtrC8 propertyName = marginTop->Property()->Name();
-        autoArray.Append( propertyName );
+        autoArray.AppendL( propertyName );
         }
     CXnProperty* marginBottom = aNode.MarginBottomL();
     if ( IsPropertyAutoL( *marginBottom ) )
         {
         TPtrC8 propertyName = marginBottom->Property()->Name();
-        autoArray.Append( propertyName );
+        autoArray.AppendL( propertyName );
         }
     CXnProperty* marginLeft = aNode.MarginLeftL();
     if ( IsPropertyAutoL( *marginLeft ) )
         {
         TPtrC8 propertyName = marginLeft->Property()->Name();
-        autoArray.Append( propertyName );
+        autoArray.AppendL( propertyName );
         }
     CXnProperty* marginRight = aNode.MarginRightL();
     if ( IsPropertyAutoL( *marginRight ) )
         {
         TPtrC8 propertyName = marginRight->Property()->Name();
-        autoArray.Append( propertyName );
+        autoArray.AppendL( propertyName );
         }
 
     if ( aParentDirection == XnPropertyNames::style::common::direction::KLTR )
@@ -7626,10 +7614,63 @@
     if ( count == 0 )
         {
         TRect parentRect( parent->Rect() );
+        
         if( parent->Control() && parent->Control()->OwnsWindow() )
             {
             parentRect = TRect( parentRect.iTl - parent->MarginRect().iTl, parentRect.Size() );
             }
+                
+        RPointerArray< CXnNode >& siblings( parent->Children() );
+        
+        for ( TInt i = 0; i < siblings.Count(); i++ )
+            {
+            CXnNode* sibling( siblings[i] );
+            
+            if ( sibling == &aNode )
+                {
+                break;
+                }
+            
+            if ( IsNodeDisplayedL( *sibling ) && !sibling->IsDropped() &&
+                 !IsAbsoluteL( *sibling ) && !IsNodeTooltip( *sibling ) )
+                {
+                TRect marginRect( sibling->MarginRect() );
+            
+                TInt availableWidth( parentRect.Width() );
+                TInt availableHeight( parentRect.Height() );    
+                
+                if ( aParentBlockProgression ==
+                     XnPropertyNames::style::common::block_progression::KTB ||
+                     aParentBlockProgression ==
+                     XnPropertyNames::style::common::block_progression::KBT )
+                    {
+                    availableHeight -= marginRect.Height();
+                    
+                    if ( availableHeight < 0 )
+                        {
+                        parentRect.SetHeight( 0 );                        
+                        }
+                    else
+                        {
+                        parentRect.SetHeight( availableHeight );
+                        }
+                    }
+                else // LR / RL
+                    {
+                    availableWidth -= marginRect.Width();
+                    
+                    if ( availableWidth < 0 )
+                        {
+                        parentRect.SetWidth( 0 );
+                        }
+                    else
+                        {
+                        parentRect.SetWidth( availableWidth );
+                        }
+                    }                 
+                }
+            }
+        
         // I don't have any displayed childrens, fix my own size
         size = CalculateTotalDimensionsL( aNode, ETrue, EFalse,
             parentRect, aGraphicsDevice, aHorizontalUnitInPixels,
@@ -7928,6 +7969,37 @@
     }
 
 // -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+static void ReportScreenDeviceChangedL( const CXnPluginData& aPluginData )
+    {    
+    CXnNode* node( NULL );
+    
+    if ( aPluginData.Node() )
+        {
+        node = aPluginData.Node()->LayoutNode();
+        }
+    
+    if ( !node )
+        {
+        return;        
+        }
+    
+    CXnNode* trigger( BuildScreenDeviceChangeTriggerNodeLC( *node->UiEngine() ) );
+
+    node->ReportXuikonEventL( *trigger );
+    
+    CleanupStack::PopAndDestroy( trigger );
+    
+    RPointerArray< CXnPluginData >& plugins( aPluginData.PluginData() );
+    
+    for( TInt i = 0; i < plugins.Count(); i++ )
+        {
+        ReportScreenDeviceChangedL( *plugins[i] );
+        }     
+    }
+
+// -----------------------------------------------------------------------------
 // FillFocusCandidatesL
 // -----------------------------------------------------------------------------
 //
@@ -7985,23 +8057,16 @@
             CXnDepthFirstTreeIterator< CXnNode >::NewL( *aRootNode );
     CleanupStack::PushL( iterator );
 
-    RDebug::Print( _L("Xuikon: UI tree:") );
-
-    TBuf8< 256 > debug;
+    RDebug::Print( _L("*** XML UI layout:") );
+
+    TBuf8< 512 > debug;
 
     TInt level( 0 );
 
     for( CXnNode* node = iterator->Value(); node;
         node = iterator->NextL() )
         {
-        debug = _L8( "Xuikon: " );
-
-        level = iterator->Level();
-
-        for ( TInt i = 0; i < level; i++ )
-            {
-            debug.Append( '  ' );
-            }
+        debug = _L8( "* " );
 
         debug.Append( node->Type()->Type() );
 
@@ -8009,12 +8074,12 @@
 
         if ( id )
             {
-            debug.Append( _L8( ", id: " ) );
+            debug.Append( _L8( " id=" ) );
             debug.Append( id->StringValue() );
             }
                             
-        debug.AppendFormat( _L8( ", laidout: %d" ), node->IsLaidOut() );
-        debug.AppendFormat( _L8( ", displayed: %d" ),
+        debug.AppendFormat( _L8( " laidout=%d" ), node->IsLaidOut() );
+        debug.AppendFormat( _L8( " displayed=%d" ),
             IsNodeDisplayedL( *node ) );
 
         CCoeControl* control( node->Control() );
@@ -8022,12 +8087,55 @@
         if ( control )
             {
             TBool visible( control->IsVisible() );
-            TRect rect( control->Rect() );
-            TPoint tl( rect.iTl );
-            TPoint br( rect.iBr );
-            debug.AppendFormat( _L8( ", visible %d:" ), visible );
+            debug.AppendFormat( _L8( " visible=%d" ), visible );
+
+            TRect rect;
+            TPoint tl;
+            TPoint br;
+            
+            rect = node->MarginRect();
+            tl = rect.iTl;
+            br = rect.iBr;
+            
+            debug.Append( _L8( "; Margin " ) );
+            debug.AppendFormat(
+                _L8( "tl(%d,%d) br(%d,%d)" ), tl.iX, tl.iY, br.iX, br.iY );
+
+            rect = node->BorderRect();
+            tl = rect.iTl;
+            br = rect.iBr;
+            
+            debug.Append( _L8( "; Border " ) );
             debug.AppendFormat(
-                _L8( ", Tl: %d %d, Br: %d %d" ), tl.iX, tl.iY, br.iX, br.iY );
+                _L8( "tl(%d,%d) br(%d,%d)" ), tl.iX, tl.iY, br.iX, br.iY );
+
+            rect = node->PaddingRect();
+            tl = rect.iTl;
+            br = rect.iBr;
+            
+            debug.Append( _L8( "; Padding " ) );
+            debug.AppendFormat(
+                _L8( "tl(%d,%d) br(%d,%d)" ), tl.iX, tl.iY, br.iX, br.iY );
+
+            rect = node->Rect();
+            tl = rect.iTl;
+            br = rect.iBr;
+            
+            debug.Append( _L8( "; Content " ) );
+            debug.AppendFormat(
+                _L8( "tl(%d,%d) br(%d,%d)" ), tl.iX, tl.iY, br.iX, br.iY );
+            
+            if ( control->Rect() != node->BorderRect() )
+                {
+                debug.Append( _L8( "; control rect != rect set by layout algorithm " ) );
+
+                rect = control->Rect();
+                tl = rect.iTl;
+                br = rect.iBr;
+                                
+                debug.AppendFormat(
+                    _L8( "tl(%d,%d) br(%d,%d)" ), tl.iX, tl.iY, br.iX, br.iY );                
+                }
             }
         else
             {
@@ -8188,6 +8296,22 @@
     }
 
 // -----------------------------------------------------------------------------
+// CXnUiEngineImpl::LayoutFromNodeL()
+// -----------------------------------------------------------------------------
+//
+void CXnUiEngineImpl::LayoutFromNodeL( CXnNode& aNode )
+    {
+    PrepareRunLayoutL( aNode );
+
+    // Run layout until it is fully calculated
+    do
+        {
+        iLayoutPhase = RunLayoutFromNodeL( aNode );
+        }
+    while ( iLayoutPhase != XnLayoutPhase::ENone );
+    }
+
+// -----------------------------------------------------------------------------
 // PrepareRunLayoutL()
 // Set dropped flags of all nodes in the tree to ENone.
 // -----------------------------------------------------------------------------
@@ -8215,6 +8339,31 @@
     }
 
 // -----------------------------------------------------------------------------
+// PrepareRunLayoutL()
+// Set dropped flags of all nodes in the tree to ENone.
+// -----------------------------------------------------------------------------
+//
+void CXnUiEngineImpl::PrepareRunLayoutL( CXnNode& aNode )
+    {
+    if ( iLayoutPhase == XnLayoutPhase::ENone )
+        {
+        iLayoutPhase = XnLayoutPhase::ELayout;
+
+        CXnNode* dirty( &aNode );
+        dirty->ClearRenderedAndLaidOut();
+        
+        // Clear dropped flags recursively
+        SetNodeDroppedL( *dirty, XnNodeLayout::ENone );
+
+        if ( SetAdaptivesL( *dirty ) )
+            {
+            // Adaptive node causes measure phase
+            iLayoutPhase = XnLayoutPhase::EMeasure;
+            }
+        }
+    }
+
+// -----------------------------------------------------------------------------
 // CXnUiEngineImpl::RunLayoutL()
 // -----------------------------------------------------------------------------
 //
@@ -8315,6 +8464,87 @@
     }
 
 // -----------------------------------------------------------------------------
+// CXnUiEngineImpl::RunLayoutL()
+// -----------------------------------------------------------------------------
+//
+TInt CXnUiEngineImpl::RunLayoutFromNodeL( CXnNode& aNode )
+    {
+    TRect clientRect( ClientRect() );
+    // Move it to 0, 0
+    clientRect.Move( -clientRect.iTl.iX, -clientRect.iTl.iY );
+
+    RPointerArray< CXnNode > laidOutList;
+    CleanupClosePushL( laidOutList );
+
+    if ( IsNodeDisplayedL( aNode ) )
+        {
+        if ( aNode.ViewNodeImpl() && !aNode.IsLaidOut() )
+            {
+            aNode.SetMarginRect( clientRect );
+            aNode.SetBorderRect( clientRect );
+            aNode.SetNormalFlowBorderRect( clientRect );
+            aNode.SetPaddingRect( clientRect );
+            aNode.SetRect( clientRect );
+            }
+
+        // Put areas to place
+        PlaceAreasL( aNode, laidOutList, iLayoutPhase,
+            *iCurrentGraphicsDevice, iHorizontalUnitInPixels,
+            iVerticalUnitInPixels );
+        }
+
+    TInt nextPhase;
+
+    switch ( iLayoutPhase )
+        {
+        case XnLayoutPhase::EMeasure:
+            nextPhase = XnLayoutPhase::ELayout;
+            break;
+        case XnLayoutPhase::ELayout:
+            // Layout is now calculated
+            aNode.SetLaidOutL();
+
+            // Check nodes which dimensions are changed
+            for ( TInt i = 0; i < laidOutList.Count(); i++ )
+                {
+                CXnNode* node( laidOutList[i] );
+                if( IsSrollableBox( *node ) && node->ScrollableControl() )
+                    {
+                    node->ScrollableControl()->LayoutChangedL();
+                    }
+                if ( !node->IsLaidOut() )
+                    {
+                    continue;
+                    }
+                CXnControlAdapter* adapter( node->Control() );
+                if ( adapter )
+                    {
+                    TRect rect;
+                    
+                    if ( node->ViewNodeImpl() )
+                        {
+                        rect = ClientRect();
+                        }
+                    else
+                        {
+                        rect = node->BorderRect();
+                        }
+                    if ( adapter->Rect() != rect )
+                        {
+                        adapter->SetRect( rect );
+                        }
+                    }
+                }
+            /* flow through */
+        default:
+            nextPhase = XnLayoutPhase::ENone;
+            break;
+        }
+    CleanupStack::PopAndDestroy( &laidOutList );
+    return nextPhase;
+    }
+
+// -----------------------------------------------------------------------------
 // CXnUiEngineImpl::RenderUIL()
 // -----------------------------------------------------------------------------
 //
@@ -8406,6 +8636,19 @@
     }
 
 // -----------------------------------------------------------------------------
+// CXnUiEngineImpl::RenderFromNodeL()
+// -----------------------------------------------------------------------------
+//
+void CXnUiEngineImpl::RenderFromNodeL( CXnNode& aNode )
+    {
+#ifdef _XN3_DEBUG_
+    TraceTreeL( &aNode );
+#endif 
+    CCoeControl* control = WindowOwningControl( aNode );
+    control->DrawNow();                                              
+    }
+
+// -----------------------------------------------------------------------------
 // CXnUiEngineImpl::RootNode()
 // -----------------------------------------------------------------------------
 //
@@ -8713,8 +8956,6 @@
             }
         }
 
-    ReportScreenDeviceChangeL();
-            
     SetClientRectL( iAppUiAdapter.ClientRect(), EFalse );
     
     RootNode()->SetDirtyL();
@@ -8725,14 +8966,33 @@
     }
 
 // -----------------------------------------------------------------------------
+// CXnUiEngineImpl::NotifyViewLoadedL()
+// -----------------------------------------------------------------------------
+// 
+void CXnUiEngineImpl::NotifyViewLoadedL( const CXnViewData& aViewData )
+    {
+    ReportScreenDeviceChangedL( aViewData );
+    }
+
+// -----------------------------------------------------------------------------
 // CXnUiEngineImpl::NotifyWidgetAdditionL()
 // -----------------------------------------------------------------------------
 //
 void CXnUiEngineImpl::NotifyWidgetAdditionL(
-    const CXnPluginData& /*aPluginData*/ )
-    {
-    }
-
+    const CXnPluginData& aPluginData )
+    {
+    ReportScreenDeviceChangedL( aPluginData );
+    }
+
+// -----------------------------------------------------------------------------
+// CXnUiEngineImpl::NotifyViewAdditionL()
+// -----------------------------------------------------------------------------
+// 
+void CXnUiEngineImpl::NotifyViewAdditionL( const CXnViewData& aViewData )
+    {
+    ReportScreenDeviceChangedL( aViewData );
+    }
+    
 // -----------------------------------------------------------------------------
 // CXnUiEngineImpl::DynInitMenuItemL()
 // -----------------------------------------------------------------------------
@@ -9034,10 +9294,6 @@
         {
         HandleSkinChangeL();
         }
-    else if( iCurrentViewControlAdapter )
-        {
-        iCurrentViewControlAdapter->HandleResourceChange( aType );
-        }
     }
 
 // -----------------------------------------------------------------------------
@@ -9560,7 +9816,13 @@
             iClientRect );
         
         iEditMode->SetClientRect( aRect );
-
+		
+        CXnViewSwitcher* viewSwitcher( iAppUiAdapter.ViewSwitcher() );
+        if( viewSwitcher )
+            {
+            viewSwitcher->SizeChanged( aRect );
+            }
+    
         if ( aDrawNow )
             {
             RootNode()->SetDirtyL();
@@ -9848,58 +10110,50 @@
         }
     }
 
-
 // -----------------------------------------------------------------------------
 // -----------------------------------------------------------------------------
 //
 void CXnUiEngineImpl::ReportScreenDeviceChangeL()
-    {
-    CXnNode* trigger( BuildScreenDeviceChangeTriggerNodeLC( *iUiEngine ) );
-    
-    // Notify current orientation to iCurrentView
-    iCurrentView->ReportXuikonEventL( *trigger );
-
-    // Notify also plugins
-    RPointerArray<CXnNode> plugins = *Plugins();
-    for( TInt i=0; i<plugins.Count(); i++ )
-        {
-        CXnNode* pluginNode = plugins[i];
-        RPointerArray<CXnNode> pluginChildren = pluginNode->Children();
-        for( TInt ii=0; ii<pluginChildren.Count(); ii++ )
-            {
-            CXnDomNode* widgetNode = pluginChildren[ii]->DomNode();
-            if( widgetNode && widgetNode->Name() == KWidgetNodeName )
-                {
-                pluginChildren[ii]->ReportXuikonEventL( *trigger );
-                }                    
-            }
-        }
-    
-    CleanupStack::PopAndDestroy(); // trigger    
+    {    
+    // Notify current orientation to all views    
+    RPointerArray< CXnPluginData >& plugins( 
+        iViewManager.ActiveAppData().PluginData() );
+
+    for( TInt i = 0; i < plugins.Count(); i++ )
+        {        
+        ReportScreenDeviceChangedL( *plugins[i] );
+        }
     }
 
 // -----------------------------------------------------------------------------
 // CXnUiEngineImpl::HandlePartialTouchInputL()
 // -----------------------------------------------------------------------------
-void CXnUiEngineImpl::HandlePartialTouchInputL( CXnNode& aNode, TBool aEnable )
-    {
-    CXnNode* editorplugin = FindPlugin( aNode );
-    if ( !editorplugin )
-        {
-        User::Leave( KErrNotFound );
-        }
+void CXnUiEngineImpl::HandlePartialTouchInputL( CXnNode* aNode, TBool aEnable )
+    {    
+    CXnViewData& view( iViewManager.ActiveViewData() );
+
+    CXnNode* editor( aEnable ? aNode : iSplitScreenState.iPartialScreenEditorNode ); 
+		      
+    CXnPluginData* plugin( view.Plugin( editor ) );
+            
+    if ( !plugin || !editor )
+        {
+        return;
+        }
+		
+    CXnNode* editorplugin( plugin->Owner()->LayoutNode() );    
     
     DisableRenderUiLC();
 
     if ( aEnable )    
         {        
         iSplitScreenState.iPartialScreenOpen = ETrue;           
-        iSplitScreenState.iPartialScreenEditorNode = &aNode;           
+        iSplitScreenState.iPartialScreenEditorNode = editor;           
 
         // make sure that we always get up event
-        CXnViewControlAdapter* control = static_cast< CXnViewControlAdapter* >(  
-            iViewManager.ActiveViewData().ViewNode()->Control() );            
-                   
+        CXnViewControlAdapter* control = 
+            static_cast< CXnViewControlAdapter* >( view.ViewNode()->Control() );  
+                                           
         control->ResetGrabbing();  
          
         // Block progression must be bottom-to-top when partial screen is open
@@ -9966,6 +10220,17 @@
     RootNode()->SetDirtyL();
     ForceRenderUIL();
     CleanupStack::PopAndDestroy();
+    
+    if ( aEnable )
+        {    
+        editor->PluginIfL().ReportTriggerEventL( 
+            KSplitScreenEnabledTrigger, KNullDesC8, KNullDesC8 );             
+        }
+    else
+        {
+        editor->PluginIfL().ReportTriggerEventL( 
+            KSplitScreenDisabledTrigger, KNullDesC8, KNullDesC8 );                                  
+        }
     }
 
 // -----------------------------------------------------------------------------
@@ -10063,7 +10328,7 @@
 // -----------------------------------------------------------------------------
 // EnablePartialTouchInput 
 // -----------------------------------------------------------------------------
-void CXnUiEngineImpl::EnablePartialTouchInput( CXnNode& aNode, TBool aEnable )
+void CXnUiEngineImpl::EnablePartialTouchInput( CXnNode* aNode, TBool aEnable )
     {
     if( aEnable && !iSplitScreenState.iPartialScreenOpen ||
         !aEnable && iSplitScreenState.iPartialScreenOpen )
@@ -10139,18 +10404,11 @@
 //               
 TBool CXnUiEngineImpl::IsTextEditorActive()
     {
-    if( iSplitScreenState.iPartialScreenOpen )
-        {
-        return ETrue;
-        }
-    CXnNode* focusedNode = FocusedNode();
-    if( focusedNode )
-        {
-        if( focusedNode->Type()->Type() == KEditorNodeName )
-            {
-            return ETrue;
-            }
-        }
+    if( iKeyEventDispatcher )         
+        {
+        return iKeyEventDispatcher->IsTextEditorActive();         
+        }
+    
     return EFalse;
     }
 
--- a/idlehomescreen/xmluirendering/uiengine/src/xnuienginepluginif.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnuienginepluginif.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -173,11 +173,15 @@
         node = &( aFocusedNode->Node() );
         }
 
-    TRAP_IGNORE
-        (               
-        node->SetStateWithoutNotificationL(
-            XnPropertyNames::style::common::KFocus );        
-        );
+    if ( node )
+        {
+        TRAP_IGNORE( node->SetStateWithoutNotificationL(
+            XnPropertyNames::style::common::KFocus ) );         
+        }
+    else
+        {
+        TRAP_IGNORE( iUiEngine->SetFocusedNodeL( NULL ) );
+        }
     }
 
 // -----------------------------------------------------------------------------
@@ -356,17 +360,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// TXnUiEnginePluginIf::EnablePartialTouchInput
-// 
-// -----------------------------------------------------------------------------
-//               
-EXPORT_C void TXnUiEnginePluginIf::EnablePartialTouchInput( 
-    CXnNodePluginIf& aNode, TBool aEnable )
-    {
-    iUiEngine->EnablePartialTouchInput(aNode.Node(), aEnable);
-    }
-
-// -----------------------------------------------------------------------------
 // TXnUiEnginePluginIf::IsTextEditorActive
 // 
 // -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewadapter.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -557,7 +557,7 @@
 // -----------------------------------------------------------------------------
 //
 void CXnViewAdapter::ActivateContainerL( CXnViewData& aContainer, 
-    TBool aEnterEditState, TUid aEffect )
+    TBool aEnterEditState, TUid aEffect, TBool aUpdateBg  )
     {
     // Returns if the container remains the same and activation is not forced
     // Otherwise the old container is deactivated and the new is activated
@@ -574,13 +574,15 @@
         }
  
     const CXnViewData& active( iAppUiAdapter.ViewManager().ActiveViewData() );
-    
+  
+    TBool started = EFalse;
     CXnEffectManager* mgr( iAppUiAdapter.EffectManager() );
-    
     CleanupStack::PushL( TCleanupItem( CleanupEffect, mgr ) );
     
-    TBool started(
-        mgr->BeginActivateViewEffect( active, aContainer, aEffect ) );
+    if( aEffect != TUid::Null() )
+        {    
+        started = mgr->BeginActivateViewEffect( active, aContainer, aEffect );
+        }    
     
     DeactivateContainerL( EFalse );
         
@@ -634,14 +636,20 @@
     adapter->MakeVisible( ETrue );
            
     iAppUiAdapter.ViewManager().NotifyContainerChangedL( aContainer );
-    
-    iBgManager->ChangeWallpaper( active, aContainer, !started );
+
+    if( aUpdateBg )
+        {
+        iBgManager->ChangeWallpaper( active, aContainer, !started );
+        }
     
     iAppUiAdapter.UiEngine().RenderUIL();
     
     CleanupStack::PopAndDestroy(); // DisableRenderUiLC
-    
-    mgr->EndActivateViewEffect( active, aContainer, aEffect );
+
+    if( aEffect != TUid::Null() )
+        {
+        mgr->EndActivateViewEffect( active, aContainer, aEffect );
+        }
     
     CleanupStack::PopAndDestroy(); // cleanupitem
     
@@ -679,6 +687,8 @@
         // Deactivate container even though it hasn't changed to close all 
         // popups and other windows
         ActivateContainerL( *viewData, aEnterEditState );
+        
+        CloseAllPopupsL();
         }
     }
 
@@ -1023,6 +1033,8 @@
         }
         
     CleanupStack::PopAndDestroy( &popups );
+    
+    iEventDispatcher->SetTextEditorActive( NULL, EFalse );
     }
 
 
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewcontroladapter.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewcontroladapter.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -23,9 +23,9 @@
 #include "xnnodepluginif.h"
 #include "xnnode.h"
 
-#include "xndomdocument.h"
 #include "xndomnode.h"
 #include "xnproperty.h"
+#include "xnviewswitcher.h"
 
 #include "xnviewcontroladapter.h"
 
@@ -73,7 +73,7 @@
 //
 CXnViewControlAdapter* CXnViewControlAdapter::NewL( CXnNodePluginIf& aNode )
     {
-	CXnViewControlAdapter* self = new( ELeave ) CXnViewControlAdapter( aNode );
+	CXnViewControlAdapter* self = new( ELeave ) CXnViewControlAdapter();
 
     CleanupStack::PushL( self );
     self->ConstructL( aNode );
@@ -126,8 +126,8 @@
 // C++ default constructor
 // -----------------------------------------------------------------------------
 //
-CXnViewControlAdapter::CXnViewControlAdapter( CXnNodePluginIf& aNode ) 
-    : iNode( aNode ), iAppUi( static_cast< CXnAppUiAdapter& >( *iAvkonAppUi ) )    
+CXnViewControlAdapter::CXnViewControlAdapter() : 
+    iAppUi( static_cast< CXnAppUiAdapter& >( *iAvkonAppUi ) )    
     {    
     }
 
@@ -187,8 +187,12 @@
 //
 void CXnViewControlAdapter::HandlePointerEventL( 
     const TPointerEvent& aPointerEvent )
-    {    
-    if ( iForegroundStatus != EBackground )
+    {
+    if ( iForegroundStatus != EBackground && 
+        ( iAppUi.UiEngine().IsPartialInputActive() || // no swipe if partial input active 
+        IsWidgetGestureDest() ||  // no swipe if widget handles it 
+        iAppUi.ViewSwitcher() == NULL || // no swipe if VS not available
+        !iAppUi.ViewSwitcher()->ProcessPointerEventL( aPointerEvent ) ) ) // no swipe if event not handled by VS
         {
         iAppUi.UiEngine().DisableRenderUiLC();
             
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewdata.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewdata.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -33,14 +33,11 @@
 #include "ainativeuiplugins.h"
 #include "xnpanic.h"
 
-
 #include "debug.h"
 
 // Constants
 _LIT8( KNs, "namespace" );
         
-// ============================ LOCAL FUNCTIONS ================================
-
 // ============================ MEMBER FUNCTIONS ===============================
 // -----------------------------------------------------------------------------
 // CXnViewData::NewL()
@@ -211,6 +208,11 @@
     
     iLoadError = err;
                 
+    if( !iLoadError )
+        {
+        TRAP_IGNORE( iManager.NotifyViewLoadedL( *this ) );
+        }
+
     return iLoadError;
     }
 
@@ -319,7 +321,11 @@
 //
 CXnNode* CXnViewData::ViewNode() const
     {
-    return iNode->LayoutNode();
+    if( iNode )
+        {
+        return iNode->LayoutNode();
+        }
+    return NULL;
     }
 
 // -----------------------------------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewmanager.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -60,7 +60,6 @@
 
 // Constants
 _LIT8( KEmptyWidgetUid, "0x2001f47f" );
-_LIT8( KTemplateViewUID, "0x20026f50" );
 
 const TInt KPSCategoryUid( 0x200286E3 );
 const TInt KPSCrashCountKey( 1 );     
@@ -892,27 +891,10 @@
 // Activates the next view
 // -----------------------------------------------------------------------------
 //
-void CXnViewManager::ActivateNextViewL( TInt /*aEffectId*/ )
+void CXnViewManager::ActivateNextViewL()
     { 
     CXnViewData& next( NextViewData() );
-    
-    if ( !next.Occupied() )
-        {    
-        TInt err( next.Load() );
-        
-        if ( err )
-            {
-            HandleErrorNotes( err );            
-            return;            
-            }
-        }
-        
-    // Activate view
-    if ( next.Occupied() && !next.Active() )
-        {
-        iAppUiAdapter.ViewAdapter().ActivateContainerL( 
-            next, EFalse, KGfxContextActivateNextView );                        
-        }
+    ActivateViewL( next, KGfxContextActivateNextView );
     }
 
 // -----------------------------------------------------------------------------
@@ -920,13 +902,23 @@
 // Activates the previous view
 // -----------------------------------------------------------------------------
 //
-void CXnViewManager::ActivatePreviousViewL( TInt /*aEffectId*/ )
+void CXnViewManager::ActivatePreviousViewL()
     {    
     CXnViewData& prev( PreviousViewData() );
+    ActivateViewL( prev, KGfxContextActivatePrevView );
+    }
 
-    if ( !prev.Occupied() )
+// -----------------------------------------------------------------------------
+// CXnViewManager::ActivatePreviousViewL()
+// Activates the previous view
+// -----------------------------------------------------------------------------
+//
+void CXnViewManager::ActivateViewL( CXnViewData& aViewData, TUid aEffect, 
+    TBool aUpdateBg )
+    {    
+    if ( !aViewData.Occupied() )
         {
-        TInt err( prev.Load() );
+        TInt err( aViewData.Load() );
         
         if ( err )
             {
@@ -936,10 +928,10 @@
         }
         
     // Activate view
-    if ( prev.Occupied() && !prev.Active() )
+    if ( aViewData.Occupied() && !aViewData.Active() )
         {
         iAppUiAdapter.ViewAdapter().ActivateContainerL( 
-            prev, EFalse, KGfxContextActivatePrevView );                                
+            aViewData, EFalse, aEffect, aUpdateBg );
         }
     }
 
@@ -954,11 +946,14 @@
         {
         return KErrGeneral;
         }
-
+    
+    // If phone layout is mirrored new view needs to be added to left. Other right.
+    TInt mirror = AknLayoutUtils::LayoutMirrored() ? 0 : 1;
+    
     // Add new view (template view) to hsps
     CAddPluginResult* result = iHspsWrapper->AddPluginL( 
         iRootData->ConfigurationId(), aInfo.Uid(),
-        ViewIndex() + 1 ); 
+        ViewIndex() + mirror ); 
     CleanupStack::PushL( result );
 
     TInt retval( result->Status() );
@@ -987,7 +982,7 @@
             
             TInt index( views.Find( &ActiveViewData() ) );
             
-            views.InsertL( newView, index + 1 );
+            views.InsertL( newView, index + mirror );
             
             // Root data owns the new view now
             CleanupStack::Pop( newView );            
@@ -1030,11 +1025,14 @@
         
         return;        
         }
-
+    
+    // If phone layout is mirrored new view needs to be added to left. Other right.
+    TInt mirror = AknLayoutUtils::LayoutMirrored() ? 0 : 1;
+    
     // Add new view (template view) to hsps
     CAddPluginResult* result = iHspsWrapper->AddPluginL( 
-        iRootData->ConfigurationId(), KTemplateViewUID,
-        ViewIndex() + 1 ); 
+        iRootData->ConfigurationId(), iRootData->TemplateViewUid(),
+        ViewIndex() + mirror ); 
     CleanupStack::PushL( result );
         
     TInt status( result->Status() );
@@ -1070,16 +1068,16 @@
             
             TInt index( views.Find( &ActiveViewData() ) );
             
-            views.InsertL( newView, index + 1 );
+            views.InsertL( newView, index + mirror );
             
             // Root data owns the new view now
             CleanupStack::Pop( newView );
             
-            // Activate view
-            iAppUiAdapter.ViewAdapter().ActivateContainerL( *newView, ETrue );
-            
             // Inform observers about added view
             NotifyViewAdditionL( *newView );
+
+            // Activate view
+            iAppUiAdapter.ViewAdapter().ActivateContainerL( *newView, ETrue );            
             }
         else
             {                      
@@ -1411,7 +1409,7 @@
         UpdateCachesL();
         
         // Schedule remaining views loading
-        iRootData->LoadRemainingViews();
+        iRootData->LoadRemainingViewsL();
         }
     
     HandleErrorNotes( err );         
@@ -1485,7 +1483,7 @@
         
     TRAP_IGNORE( bg.StoreWallpaperL() );
 
-    self->NotifyContainerActivatedL( active );
+    TRAP_IGNORE( self->NotifyContainerActivatedL( active ) );
     
     return KErrNone;
     }
@@ -1507,6 +1505,19 @@
     }
 
 // -----------------------------------------------------------------------------
+// CXnViewManager::NotifyViewLoadedL()
+// Notifies view is activated
+// -----------------------------------------------------------------------------
+//
+void CXnViewManager::NotifyViewLoadedL( const CXnViewData& aViewData )
+    {
+    for ( TInt i = 0; i < iObservers.Count(); i++ )
+        {
+        iObservers[i]->NotifyViewLoadedL( aViewData );
+        }
+    }
+
+// -----------------------------------------------------------------------------
 // CXnViewManager::NotifyViewDeactivatedL()
 // Notifies view is deactivated
 // -----------------------------------------------------------------------------
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnviewswitcher.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,986 @@
+/*
+ * Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:  Implementation for wrapper for a box
+ *
+ */
+
+// System includes
+#include <akntouchgesturefwevents.h>
+#include <centralrepository.h>
+
+#include <activeidle2domaincrkeys.h>
+#include <gfxtranseffect/gfxtranseffect.h>  
+
+#ifdef RD_TACTILE_FEEDBACK
+#include <touchfeedback.h>
+#endif // RD_TACTILE_FEEDBACK
+
+// User includes
+#include "xnappuiadapter.h"
+#include "xnuiengine.h"
+#include "xnproperty.h"
+#include "xnviewmanager.h"
+#include "xnviewdata.h"
+#include "xndomnode.h"
+#include "xnnode.h"
+#include "xnviewcontroladapter.h"
+#include "xneffectmanager.h"
+#include "xnrootdata.h"
+#include "xnviewadapter.h"
+#include "xnbackgroundmanager.h"
+
+#include "xnviewswitcher.h"
+
+// Constants
+const TInt KDrawDelay( 25000 ); // 16100 = 62 fps
+const TInt KDragTreshold( 30 );
+const TInt KMaxScrollSpeed( 150 );
+const TInt KMinScrollSpeed( 20 );
+const TInt KAnimationDuration( 500000 );
+const TInt KDragOffsetForBackground( 100 );
+const TInt KDragOffsetForPageSwitch( 50 );
+
+enum TViewPosition
+    {
+    KCurrentView, KNextView, KPreviousView
+    };
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void HideAdapter( CXnControlAdapter* aAdapter )
+    {
+    if( aAdapter )
+        {
+        aAdapter->Window().SetOrdinalPosition( -1 );
+        }    
+    }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void ShowAdapter( CXnControlAdapter* aAdapter )
+    {
+    if( aAdapter )
+        {
+        aAdapter->Window().SetOrdinalPosition( 1 );
+        }    
+    }
+
+// -----------------------------------------------------------------------------
+// Changes window position
+// -----------------------------------------------------------------------------
+//
+void SetWindowPosition( CXnControlAdapter* aAdapter, const TPoint& aPos )
+    {
+    if( aAdapter )
+        {
+        aAdapter->Window().SetPosition( aPos );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// Hide/Show control
+// -----------------------------------------------------------------------------
+//
+void SetVisible( CCoeControl* aControl, TBool aVisible )
+    {
+    if( aControl )
+        {
+        aControl->MakeVisible( aVisible );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// ShowNodes
+// -----------------------------------------------------------------------------
+//
+void ShowNodesL( CXnNode& aNode, TBool aShow )
+    {    
+    CXnDomStringPool* sp( aNode.DomNode()->StringPool() );
+    
+    CXnProperty* prop( NULL );
+    if( aShow )
+        {
+        prop = CXnProperty::NewL(
+            XnPropertyNames::style::common::KDisplay, 
+            XnPropertyNames::style::common::display::KBlock,
+            CXnDomPropertyValue::EString, *sp );    
+        } 
+    else
+        {
+        prop = CXnProperty::NewL(
+            XnPropertyNames::style::common::KDisplay, 
+            XnPropertyNames::style::common::display::KNone,
+            CXnDomPropertyValue::EString, *sp );
+        }
+    CleanupStack::PushL( prop );    
+    
+    aNode.SetPropertyWithoutNotificationL( prop );
+    CleanupStack::Pop( prop );
+    }
+
+// -----------------------------------------------------------------------------
+// IsNodeVisible
+// -----------------------------------------------------------------------------
+//
+TBool IsNodeVisibleL( CXnNode& aNode )
+    {
+    CXnProperty* displayProp( aNode.DisplayL() );
+
+    if ( displayProp )
+        {
+        const TDesC8& display( displayProp->StringValue() );
+
+        if ( display == XnPropertyNames::style::common::display::KBlock )
+            {
+            return ETrue;
+            }
+        }
+    return EFalse;
+    }
+    
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CXnViewSwitcher::NewL
+// Symbian static 1st phase constructor
+// -----------------------------------------------------------------------------
+//
+CXnViewSwitcher* CXnViewSwitcher::NewL()
+    {
+    CXnViewSwitcher* self = new (ELeave) CXnViewSwitcher();
+
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// CXnViewSwitcher::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CXnViewSwitcher::ConstructL()
+    {
+    iFingerFollowSupported = IsFingerFollowSupportedL();
+    iTimer = CPeriodic::NewL( CActive::EPriorityUserInput );
+    iViewSwitchState = KViewSwitchIdle;
+    }
+
+// -----------------------------------------------------------------------------
+// CXnViewSwitcher::CXnViewSwitcher
+// C++ default constructor
+// -----------------------------------------------------------------------------
+//
+CXnViewSwitcher::CXnViewSwitcher() :
+    iAppUi(static_cast<CXnAppUiAdapter&> (*iAvkonAppUi))
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CXnViewSwitcher::~CXnViewSwitcher
+// C++ destructor
+// -----------------------------------------------------------------------------
+//
+CXnViewSwitcher::~CXnViewSwitcher()
+    {    
+    if (iTimer->IsActive())
+        {
+        iTimer->Cancel();
+        }
+    delete iTimer;
+    }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+TBool CXnViewSwitcher::FingerFollowSupported() const
+    {
+    return iFingerFollowSupported;
+    }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+TBool CXnViewSwitcher::ProcessPointerEventL(const TPointerEvent& aPointerEvent )
+    {
+    TBool consumed(EFalse);
+    
+    if ( FingerFollowSupported() )
+        {
+        TPoint parentPos = aPointerEvent.iParentPosition;
+
+        switch (aPointerEvent.iType)
+            {
+            case TPointerEvent::EButton1Down:
+                {
+                if ( iViewSwitchState == KViewSwitchBegin || iViewSwitchState
+                        == KViewSwitchIdle )
+                    {
+                    if (iTimer->IsActive())
+                        {
+                        iTimer->Cancel();
+                        }
+                    if( SetupViewsL() )
+                        {
+                        iViewSwitchState = KViewSwitchBegin;
+                        iStartPosition = parentPos;
+                        iScrollSpeed = KMaxScrollSpeed;
+                        iTickAmount = 0;
+                        iDirection = KCurrentView;
+                        iScrollDistance = 0;
+                        iScrollDirectionDistance = 0;
+                        }
+                    }
+                else if( iViewSwitchState == KViewSwitchDragOngoing )
+                    {
+                    consumed = ETrue;
+                    }
+                else if( iViewSwitchState == KViewSwitchScroll )
+                    {
+                    consumed = ETrue;
+
+                    if( iActivateView == KCurrentView )
+                        {
+                        if (iTimer->IsActive())
+                            {
+                            iTimer->Cancel();
+                            }                    
+
+                        iViewSwitchState = KViewSwitchDragOngoing;
+                        consumed = ETrue;    
+                        iViewStartPosition = iViewPosition;
+                        iScrollDistance = 0;
+                        iScrollDirectionDistance = 0;
+                        iStartPosition = parentPos;
+
+                        iTimer->Start( 0, KDrawDelay, TCallBack(
+                                TimerCallback, this ) );
+                        }
+                    else if( iActivateView == KNextView )
+                        {
+                        if( iCurrentView.iAdapter && iNextView.iAdapter && 
+                            iPreviousView.iAdapter )
+                            {
+                            if (iTimer->IsActive())
+                                {
+                                iTimer->Cancel();
+                                }
+                            
+                            iViewSwitchState = KViewSwitchDragOngoing;
+                            iActivateView = KCurrentView;
+                            
+                            if( iPreviousView.iAdapter == iNextView.iAdapter )
+                                {
+                                iPreviousView = iCurrentView;
+                                iCurrentView = iNextView;
+                                iNextView = iPreviousView;
+                                }
+                            else
+                                {
+                                iPreviousView = iCurrentView;
+    
+                                iCurrentView = iNextView;
+                                
+                                iNextView.iReadyToDraw = EFalse;
+                                CXnViewData* nextViewData( 
+                                    ViewData( *iCurrentView.iViewData, KNextView ) );
+                                CXnNode* nextViewNode( nextViewData->ViewNode() );
+                                if( nextViewNode )
+                                    {
+                                    iNextView.iAdapter = nextViewNode->Control();
+                                    iNextView.iViewData = nextViewData;
+                                    iNextView.iBgDrawn = EFalse;
+                                    }                            
+                                }
+                            
+                            iViewStartPosition = iCurrentView.iAdapter->Window().Position();
+                            iScrollDistance = 0;
+                            iScrollDirectionDistance = 0;
+                            iStartPosition = parentPos;
+                        
+                            iScrollSpeed = KMaxScrollSpeed;
+                            iTickAmount = 0;
+                            iTimer->Start( 0, KDrawDelay, TCallBack(
+                                    TimerCallback, this ) );
+                            }
+                        consumed = ETrue;
+                        }
+                    else if( iActivateView == KPreviousView )
+                        {
+                        if( iCurrentView.iAdapter && iNextView.iAdapter && 
+                            iPreviousView.iAdapter )
+                            {
+                            if (iTimer->IsActive())
+                                {
+                                iTimer->Cancel();
+                                }
+                            
+                            iViewSwitchState = KViewSwitchDragOngoing;
+                            iActivateView = KCurrentView;
+
+                            if( iPreviousView.iAdapter == iNextView.iAdapter )
+                                {
+                                iNextView = iCurrentView;
+                                iCurrentView = iPreviousView;
+                                iPreviousView = iNextView;
+                                }
+                            else
+                                {
+                                iNextView = iCurrentView;
+    
+                                iCurrentView = iPreviousView;
+                                
+                                iPreviousView.iReadyToDraw = EFalse;
+                                CXnViewData* prevViewData( 
+                                    ViewData( *iCurrentView.iViewData, KPreviousView ) );
+                                CXnNode* prevViewNode( prevViewData->ViewNode() );
+                                if( prevViewNode )
+                                    {
+                                    iPreviousView.iAdapter = prevViewNode->Control();
+                                    iPreviousView.iViewData = prevViewData;
+                                    iPreviousView.iBgDrawn = EFalse;
+                                    }                            
+                                }
+
+                            iViewStartPosition = iCurrentView.iAdapter->Window().Position();
+                            iScrollDistance = 0;
+                            iScrollDirectionDistance = 0;
+                            iStartPosition = parentPos;
+                        
+                            iScrollSpeed = KMaxScrollSpeed;
+                            iTickAmount = 0;
+                            iTimer->Start( 0, KDrawDelay, TCallBack(
+                                TimerCallback, this ) );
+                            }
+                        consumed = ETrue;
+                        }
+                    }
+                }
+                break;
+            case TPointerEvent::EDrag:
+                {
+                if( iViewSwitchState == KViewSwitchIdle )
+                    {
+                    consumed = EFalse;
+                    }
+                else if( iViewSwitchState == KViewSwitchBegin )
+                    {
+                    TPoint delta = parentPos - iStartPosition;
+
+                    if( Abs(delta.iX) > KDragTreshold || Abs(delta.iY) > KDragTreshold )
+                        {
+#ifdef RD_TACTILE_FEEDBACK            
+                        MTouchFeedback* feedback( MTouchFeedback::Instance() );
+                        
+                        if ( feedback )
+                            {
+                            feedback->InstantFeedback( ETouchFeedbackBasic );
+                            }
+#endif                           
+
+                        iViewSwitchState = KViewSwitchDragOngoing;
+                        iActivateView = KCurrentView;
+                        iViewPosition.iY = iCurrentView.iAdapter->Position().iY;
+                        iViewPosition.iX = 0;
+                        iStartPosition = parentPos;
+
+                        StartViewDraggingL();
+
+                        iTimer->Start( 0, KDrawDelay, TCallBack(
+                                TimerCallback, this ) );
+                        }
+                    consumed = ETrue;
+                    }
+                else if( iViewSwitchState == KViewSwitchDragOngoing )
+                    {
+                    iScrollDistance = parentPos.iX - iStartPosition.iX;
+                    consumed = ETrue;
+                    }
+                else
+                    {
+                    consumed = EFalse;                
+                    }
+                }
+                break;
+            case TPointerEvent::EButton1Up:
+                {
+                if( iViewSwitchState == KViewSwitchBegin )
+                    {
+                    iViewSwitchState = KViewSwitchIdle;
+                    }
+                else if( iViewSwitchState == KViewSwitchDragOngoing )
+                    {
+                    if (iTimer->IsActive())
+                        {
+                        iTimer->Cancel();
+                        }                    
+
+#ifdef RD_TACTILE_FEEDBACK            
+/*
+                    MTouchFeedback* feedback( MTouchFeedback::Instance() );
+                    
+                    if ( feedback )
+                        {
+                        feedback->InstantFeedback( ETouchFeedbackBasic );
+                        }
+*/
+#endif                           
+
+                    consumed = ETrue;
+                    
+                    StartViewScrolling();
+                    iViewSwitchState = KViewSwitchScroll;
+                    }
+                else if( iViewSwitchState == KViewSwitchScroll )
+                    {
+                    consumed = ETrue;
+                    }
+                }
+                break;
+            default:
+                break;
+            }
+        }
+
+    return consumed;
+    }
+    
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CXnViewSwitcher::TouchGesture( TAknTouchGestureFwType& /*aTouchGesture*/ )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CXnViewSwitcher::SizeChanged
+// -----------------------------------------------------------------------------
+// 
+void CXnViewSwitcher::SizeChanged( TRect aRect )
+    {
+    iRect = aRect;
+    }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+TBool CXnViewSwitcher::SetupViewsL()
+    {
+    TBool ret = EFalse;
+    
+    CXnViewManager& wManager = iAppUi.ViewManager();
+    iCurrentView.iViewData = &wManager.ActiveViewData();
+    iCurrentView.iAdapter = iCurrentView.iViewData->ViewNode()->Control();
+    iCurrentView.iReadyToDraw = ETrue;
+    iCurrentView.iBgDrawn = ETrue;
+
+    iViewStartPosition = TPoint( 0, iCurrentView.iAdapter->Window().Position().iY );
+
+    if ( wManager.ViewAmount() > 1 )
+        {
+        ret = ETrue;
+        
+        CXnNode* nextViewNode( wManager.NextViewData().ViewNode() );
+        if( nextViewNode )
+            {
+            iNextView.iAdapter = nextViewNode->Control();
+            iNextView.iViewData = &wManager.NextViewData();
+            }
+
+        CXnNode* prevViewNode( wManager.PreviousViewData().ViewNode() );
+        if( prevViewNode && prevViewNode == nextViewNode )
+            {
+            // Only 2 views in Homesceern -> previous = next
+            iPreviousView = iNextView;
+            }
+        else if( prevViewNode )
+            {
+            iPreviousView.iAdapter = prevViewNode->Control();
+            iPreviousView.iViewData = &wManager.PreviousViewData();
+            }
+        }
+    return ret;
+    }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CXnViewSwitcher::PrepareViewL( CXnViewSwitcher::TViewInformation& aView )
+    {
+    if( !aView.iAdapter || !aView.iViewData )
+        {
+        return;
+        }
+    
+    CXnControlAdapter& adapter = *aView.iAdapter;
+    RWindow& win( adapter.Window() );
+    win.SetOrdinalPosition( -1 );
+    adapter.MakeVisible( ETrue );
+
+    CXnNode* viewNode( aView.iViewData->ViewNode() );
+    TBool nodesVisible( IsNodeVisibleL( *viewNode ) );
+    if( !nodesVisible )
+        {
+        // Set visible temporarily
+        ShowNodesL( *viewNode, ETrue );
+        }
+    
+    iAppUi.ViewAdapter().EnterEditStateL( *aView.iViewData, EFalse );
+        
+    viewNode->UiEngine()->RenderFromNodeL( *viewNode );
+    aView.iReadyToDraw = ETrue;
+    }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CXnViewSwitcher::StartViewDraggingL()
+    {
+    // Remove focused node, in order to prevent activate triggers
+    CXnNode* currentViewNode =
+            iAppUi.ViewManager().ActiveViewData(). Node()->LayoutNode();
+    CXnUiEngine* engine(currentViewNode->UiEngine());
+
+    CXnNode* focusedNode = engine->FocusedNode();
+    if (focusedNode)
+        {
+        focusedNode->UnsetStateL(XnPropertyNames::style::common::KPressedDown);
+        focusedNode->UnsetStateL(XnPropertyNames::style::common::KFocus);
+        }
+
+    // Send button up to prevent long tapping 
+    TPointerEvent pointerEvent;
+    pointerEvent.iType = TPointerEvent::EButton1Up;
+    if ( iCurrentView.iAdapter )
+        {
+        iCurrentView.iAdapter->CXnControlAdapter::HandlePointerEventL(
+                pointerEvent);
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CXnViewSwitcher::StartViewScrolling()
+    {
+    TInt screenWidth = iCurrentView.iAdapter->Window().Size().iWidth;
+
+    UpdateViewToBeActivated( KDragOffsetForPageSwitch );
+
+    switch (iActivateView)
+        {
+        case KPreviousView:
+            {
+            iScrollDistance = screenWidth - iViewPosition.iX;
+            }
+            break;
+        case KNextView:
+            {
+            iScrollDistance = -screenWidth - iViewPosition.iX;
+            }
+            break;
+        default: // KCurrentView
+            {
+            iScrollDistance = -iViewPosition.iX;
+            }
+            break;
+        }
+
+    TInt minSpeed = Abs( iScrollDistance / ( KAnimationDuration / KDrawDelay ) );
+    iScrollSpeed = Abs( iScrollSpeed );
+    if( iScrollSpeed < minSpeed )
+        {
+        iScrollSpeed = minSpeed;
+        }
+    if( iScrollSpeed < KMinScrollSpeed )
+        {
+        iScrollSpeed = KMinScrollSpeed;
+        }
+    if (iTimer->IsActive())
+        {
+        iTimer->Cancel();
+        }
+    
+    iTimer->Start(KDrawDelay, KDrawDelay, TCallBack(
+            TimerCallback, this));
+    }
+
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CXnViewSwitcher::ViewSwitchEndedL()
+    {
+    iViewSwitchState = KViewSwitchIdle;
+
+    if (iTimer->IsActive())
+        {
+        iTimer->Cancel();
+        }
+
+    iViewPosition.iX = 0;
+
+    if ( iCurrentView.iAdapter )
+        {
+        CXnViewManager& wManager( iAppUi.ViewManager() );
+        CXnViewData* activeViewData( &wManager.ActiveViewData() ); 
+        
+        switch( iActivateView )
+            {
+            case KCurrentView:
+                SetVisible( iNextView.iAdapter, EFalse );
+                SetVisible( iPreviousView.iAdapter, EFalse );    
+                
+                if( iCurrentView.iViewData && activeViewData != iCurrentView.iViewData )
+                    {
+                    wManager.ActivateViewL( *iCurrentView.iViewData, TUid::Null(), EFalse );            
+                    }
+                break;
+            case KPreviousView:
+                if ( iPreviousView.iAdapter )
+                    {
+                    SetVisible( iCurrentView.iAdapter, EFalse );
+                    if( iPreviousView.iAdapter != iNextView.iAdapter )
+                        {
+                        SetVisible( iNextView.iAdapter, EFalse );
+                        }
+
+                    CXnViewData* prevViewData( ViewData( *iCurrentView.iViewData, KPreviousView ) );
+                    if( prevViewData && activeViewData != prevViewData )
+                        {
+                        wManager.ActivateViewL( *prevViewData, TUid::Null(), EFalse );            
+                        }
+                    }
+                break;
+            case KNextView:
+                if ( iNextView.iAdapter )
+                    {
+                    SetVisible( iCurrentView.iAdapter, EFalse );
+                    if( iPreviousView.iAdapter != iNextView.iAdapter )
+                        {
+                        SetVisible( iPreviousView.iAdapter, EFalse );                
+                        }
+
+                    CXnViewData* nextViewData( ViewData( *iCurrentView.iViewData, KNextView ) );
+                    if( nextViewData && activeViewData != nextViewData )
+                        {
+                        wManager.ActivateViewL( *nextViewData, TUid::Null(), EFalse );            
+                        }                    
+                    }
+                break;
+            }
+
+        ClearViews();
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CXnViewSwitcher::Scroll()
+    {
+    TInt scrollStep = iScrollDistance / 1.5;
+
+    if( Abs( scrollStep ) > Abs( iScrollSpeed ) )
+        {
+        scrollStep = ( scrollStep > 0 ) ? iScrollSpeed : -iScrollSpeed;
+        }
+
+    iViewPosition.iX += scrollStep;
+    iScrollDistance -= scrollStep;
+    }
+        
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CXnViewSwitcher::DoScroll()
+    {
+    SetWindowPosition( iCurrentView.iAdapter, iViewPosition );
+
+    if( iViewPosition.iX < 0 && iNextView.iAdapter )
+        {
+        // next view shown
+        if( !iNextView.iReadyToDraw )
+            {
+            TRAP_IGNORE( PrepareViewL( iNextView ) );
+            if( iPreviousView.iAdapter == iNextView.iAdapter )
+                {
+                iPreviousView.iReadyToDraw = ETrue;          
+                }
+            }
+        
+        ShowAdapter( iNextView.iAdapter );
+        if( iPreviousView.iAdapter != iNextView.iAdapter )
+            {
+            HideAdapter( iPreviousView.iAdapter );
+            }
+        
+        TPoint pos( TPoint( iViewPosition.iX + iRect.Width(), iViewPosition.iY ) );
+        SetWindowPosition( iNextView.iAdapter, pos );
+        }
+
+    else if( iViewPosition.iX > 0 && iPreviousView.iAdapter )
+        {
+        // previous view shown
+        if( !iPreviousView.iReadyToDraw )
+            {
+            TRAP_IGNORE( PrepareViewL( iPreviousView ) );
+            }
+
+        ShowAdapter( iPreviousView.iAdapter );
+        if( iPreviousView.iAdapter != iNextView.iAdapter )
+            {
+            HideAdapter( iNextView.iAdapter );
+            }
+        TPoint pos( TPoint( iViewPosition.iX - iRect.Width(), iViewPosition.iY ) );
+        SetWindowPosition( iPreviousView.iAdapter, pos );
+        }
+    
+    else
+        {
+        HideAdapter( iPreviousView.iAdapter );
+        HideAdapter( iNextView.iAdapter );
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+TInt CXnViewSwitcher::TimerCallback(TAny *aPtr)
+    {
+    CXnViewSwitcher* self = reinterpret_cast<CXnViewSwitcher*> (aPtr);
+
+    if( self->iViewSwitchState == KViewSwitchDragOngoing )
+        {
+        TInt prevViewPos( self->iViewPosition.iX );
+        self->iViewPosition.iX = self->iViewStartPosition.iX + self->iScrollDistance;
+        self->DoScroll();
+        
+        self->UpdateViewToBeActivated( KDragOffsetForBackground );
+        
+        // Hack for informing NGA to draw. 
+        self->iAppUi.ViewAdapter().BgManager().DrawNow(TRect(0,0,1,1));
+        
+        // Scroll speed is average drag delta between timer callbacks.
+        self->iTickAmount++;
+
+        TInt scrollDistance = self->iViewPosition.iX - prevViewPos;
+        
+        if( ( scrollDistance < 0 && self->iScrollDirectionDistance > 0 ) || 
+            ( scrollDistance > 0 && self->iScrollDirectionDistance < 0 ) )
+            {
+            // Scroll direction has been changed
+            self->iScrollDirectionDistance = scrollDistance;
+            self->iScrollSpeed = scrollDistance;
+            self->iTickAmount = 1;            
+            }
+        else
+            {
+            self->iScrollDirectionDistance += scrollDistance;
+            self->iScrollSpeed = self->iScrollDistance / self->iTickAmount;    
+            }
+        
+        if( scrollDistance < 0 )
+            {
+            self->iDirection = KNextView;
+            }
+        else if( scrollDistance > 0 )
+            {
+            self->iDirection = KPreviousView;
+            }
+
+        return 0;
+        }
+
+    if ( Abs( self->iScrollDistance ) <= 2 )
+        {
+        TRAP_IGNORE( self->ViewSwitchEndedL() );
+        }
+    else
+        {
+        self->Scroll();
+        self->DoScroll();
+        
+        // Hack for inforing NGA to draw. 
+        self->iAppUi.ViewAdapter().BgManager().DrawNow(TRect(0,0,1,1));
+        }
+    return 0;
+    }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+TBool CXnViewSwitcher::IsFingerFollowSupportedL() const
+    {    
+    CRepository* repository =
+            CRepository::NewL(TUid::Uid(KCRUidActiveIdleLV));
+    TBool value(EFalse);
+    TInt err(repository->Get(KAIFingerFollowSupport, value));
+    delete repository;
+
+    return value && (KErrNone == err);
+    }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+CXnViewData* CXnViewSwitcher::ViewData( CXnViewData& aCurrentViewData, 
+    TInt aView )
+    {
+    CXnRootData& rootData = iAppUi.ViewManager().ActiveAppData();
+    RPointerArray<CXnPluginData>& rootDataArr = rootData.PluginData();
+
+    CXnViewData* ret( NULL );
+    
+    TInt viewAmount( rootDataArr.Count() );
+    for( TInt i = 0; i < viewAmount; i++ )
+        {
+        CXnViewData* viewData = static_cast<CXnViewData*>( rootDataArr[i] );
+        if( &aCurrentViewData == viewData )
+            {
+            if( aView == KNextView )
+                {
+                if( i < viewAmount - 1 )
+                    {
+                    ret = static_cast<CXnViewData*>( rootDataArr[i + 1] );
+                    }
+                else
+                    {
+                    ret = static_cast<CXnViewData*>( rootDataArr[0] );            
+                    }
+                break;
+                }
+            else if( aView == KPreviousView )
+                {
+                if( i == 0 )
+                    {
+                    ret = static_cast<CXnViewData*>( rootDataArr[viewAmount - 1] );
+                    }
+                else
+                    {
+                    ret = static_cast<CXnViewData*>( rootDataArr[i - 1] );            
+                    }            
+                break;
+                }
+            }
+        }
+    
+    return ret;
+    }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CXnViewSwitcher::ClearViews()
+    {
+    TPoint p( 0, iCurrentView.iAdapter->Window().Position().iY );
+    SetWindowPosition( iCurrentView.iAdapter, p );
+    SetWindowPosition( iPreviousView.iAdapter, p );
+    SetWindowPosition( iNextView.iAdapter, p );
+    ShowAdapter( iPreviousView.iAdapter );
+    ShowAdapter( iNextView.iAdapter );
+    ShowAdapter( iCurrentView.iAdapter );
+    iCurrentView.iAdapter = NULL;
+    iCurrentView.iViewData = NULL;
+    iCurrentView.iReadyToDraw = EFalse;
+    iCurrentView.iBgDrawn = EFalse;
+    iNextView.iAdapter = NULL;
+    iNextView.iViewData = NULL;
+    iNextView.iReadyToDraw = EFalse;
+    iNextView.iBgDrawn = EFalse;
+    iPreviousView.iAdapter = NULL;
+    iPreviousView.iViewData = NULL;
+    iPreviousView.iReadyToDraw = EFalse;
+    iPreviousView.iBgDrawn = EFalse;
+    }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CXnViewSwitcher::UpdateViewToBeActivated( TInt aOffset )
+    {
+    if ( iViewPosition.iX > aOffset && iDirection == KPreviousView && 
+        iScrollDirectionDistance > aOffset / 2)
+        {
+        if( iActivateView != KPreviousView &&
+            iPreviousView.iViewData && iCurrentView.iViewData )
+            {
+            iActivateView = KPreviousView;
+            if( !iPreviousView.iBgDrawn )
+                {
+                ChangeBackground( *iCurrentView.iViewData, 
+                    *iPreviousView.iViewData );
+                iPreviousView.iBgDrawn = ETrue; 
+                iNextView.iBgDrawn = EFalse;
+                iCurrentView.iBgDrawn = EFalse;
+                }
+            }
+        }
+    else if ( iViewPosition.iX < -aOffset && iDirection == KNextView && 
+        iScrollDirectionDistance < -aOffset / 2 )
+        {
+        if( iActivateView != KNextView && 
+            iNextView.iViewData && iCurrentView.iViewData )
+            {
+            iActivateView = KNextView;
+            if( !iNextView.iBgDrawn )
+                {
+                ChangeBackground( *iCurrentView.iViewData, 
+                    *iNextView.iViewData );
+                iPreviousView.iBgDrawn = EFalse; 
+                iNextView.iBgDrawn = ETrue;
+                iCurrentView.iBgDrawn = EFalse;                            
+                }
+            }
+        }
+    else if( iActivateView != KCurrentView && 
+        iPreviousView.iViewData && iNextView.iViewData && iCurrentView.iViewData )
+        {
+        if( Abs( iScrollDirectionDistance ) > aOffset / 2 )
+            {
+            iActivateView = KCurrentView;
+            if( !iCurrentView.iBgDrawn )
+                {    
+                ChangeBackground( ( iPreviousView.iBgDrawn ) ? *iPreviousView.iViewData :
+                    *iNextView.iViewData, *iCurrentView.iViewData );                                
+                iPreviousView.iBgDrawn = EFalse; 
+                iNextView.iBgDrawn = EFalse;
+                iCurrentView.iBgDrawn = ETrue;                            
+                }        
+            }
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
+//
+void CXnViewSwitcher::ChangeBackground( CXnViewData& aCurrent, CXnViewData& aNext )
+    {
+    CXnBackgroundManager& bg( iAppUi.ViewAdapter().BgManager() );
+
+    GfxTransEffect::Begin( &bg, KGfxControlActionBgImgToImgAppear );
+    
+    bg.ChangeWallpaper( aCurrent, aNext, EFalse );
+
+    GfxTransEffect::SetDemarcation( &bg, bg.Position() );
+    GfxTransEffect::End( &bg ); 
+    }
+            
+// End of file
--- a/idlehomescreen/xmluirendering/uiengine/src/xnwallpaperview.rss	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnwallpaperview.rss	Tue Sep 14 20:58:58 2010 +0300
@@ -66,6 +66,16 @@
     }
 
 // ----------------------------------------------------
+// r_qtn_hs_wallpaper_out_of_ram
+//
+// ----------------------------------------------------
+//
+RESOURCE TBUF r_qtn_hs_wallpaper_out_of_ram 
+    {
+    buf = qtn_memlo_ram_out_of_mem;
+    }
+
+// ----------------------------------------------------
 // r_qtn_hs_drm_protected_image_note
 //
 // ----------------------------------------------------
--- a/idlehomescreen/xmluirendering/uiengine/src/xnwidgetextensionadapter.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/idlehomescreen/xmluirendering/uiengine/src/xnwidgetextensionadapter.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -98,12 +98,12 @@
 // 
 void CXnWidgetExtensionAdapter::HandleScreenDeviceChangedL()
 	{
-    if( IsVisible() )
+    if( iPopup )
 		{
-	    CCoeControl::MakeVisible( EFalse );
+        HidePopupL();	    
 		}
-	CXnControlAdapter::HandleScreenDeviceChangedL();
-	
+    
+	CXnControlAdapter::HandleScreenDeviceChangedL();	
 	}
 
 // -----------------------------------------------------------------------------
@@ -178,7 +178,7 @@
         }
     
     CXnPluginData* plugin( 
-            iAppUiAdapter->ViewManager().ActiveViewData().Plugin( &iNode.Node() ) );
+        iAppUiAdapter->ViewManager().ActiveViewData().Plugin( &iNode.Node() ) );
 
     if ( !plugin )
         {
@@ -186,6 +186,7 @@
         }
 
     SetPointerCapture( aVisible );
+    Window().SetPointerGrab( aVisible );
 
     plugin->SetIsDisplayingPopup( aVisible, &iNode.Node() );
     
@@ -231,6 +232,11 @@
         effectStarted = ETrue;
         }
 
+    if ( aVisible && OwnsWindow() )
+        {
+        Window().SetOrdinalPosition( 0 );
+        }
+
     CCoeControl::MakeVisible( aVisible );
 
     if ( effectStarted )
@@ -247,8 +253,7 @@
 //    
 void CXnWidgetExtensionAdapter::HandlePointerEventL( 
     const TPointerEvent& aPointerEvent )
-    {
-    
+    {    
     // 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
--- a/menufw/hierarchynavigator/hnengine/src/hnengine.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/hierarchynavigator/hnengine/src/hnengine.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -192,7 +192,7 @@
     if( !( aSuiteName.Compare( KRoot8 ) ) )
         {
         CLiwGenericParamList* uriParams =
-			UriQueryToLiwListLC( aUriQuery, aUriFragment, aSuiteName );
+      UriQueryToLiwListLC( aUriQuery, aUriFragment, aSuiteName );
         CLiwGenericParamList* params = CLiwGenericParamList::NewLC();
         params->AppendL( iMetaDataModel->GetSuiteParameters( 0 ) );
         params->AppendL( *uriParams );
@@ -205,7 +205,7 @@
     else
         {
         CLiwGenericParamList* params =
-			UriQueryToLiwListLC( aUriQuery, aUriFragment, aSuiteName );
+      UriQueryToLiwListLC( aUriQuery, aUriFragment, aSuiteName );
 
         HBufC* suiteName = HnConvUtils::Str8ToStrLC( aSuiteName );
         params->AppendL( TLiwGenericParam( KNewSuiteParamNameEn,
@@ -267,27 +267,27 @@
 // ---------------------------------------------------------------------------
 //
 EXPORT_C void CHnEngine::LoadSuitesFromUriL( const TDesC8& aUri )
-	{
-	DEBUG(("_MM_:CHnEngine::LoadSuitesFromUriL IN"));
-	DEBUG8(("_MM_:\tURI: %S",&aUri));
+  {
+  DEBUG(("_MM_:CHnEngine::LoadSuitesFromUriL IN"));
+  DEBUG8(("_MM_:\tURI: %S",&aUri));
 
-	TBool consumed(EFalse);
+  TBool consumed(EFalse);
 
     if ( aUri.Find( KSetFocusWithPref ) != KErrNotFound )
-	    {
-	    LoadFromCrL( aUri );
-	    consumed = ETrue;
-	    }
+      {
+      LoadFromCrL( aUri );
+      consumed = ETrue;
+      }
 
     if ( !consumed )
-    	{
-    	consumed = HandleActionL( aUri );
-    	}
+      {
+      consumed = HandleActionL( aUri );
+      }
 
     if ( !consumed )
-    	{
-    	LoadSuitesL( aUri );
-    	}
+      {
+      LoadSuitesL( aUri );
+      }
 
     DEBUG(("_MM_:CHnEngine::LoadSuitesFromUriL OUT"));
     }
@@ -353,19 +353,19 @@
         ret = HandleSetFocusEventL( aParams );
         }
     else if (aEventName == KAppGainForeground )
-    	{
-    	//force matrix gain foreground
+      {
+      //force matrix gain foreground
         DEBUG(("_MM_:CHnEngine::HandleModelEventL EForegroundGain"));
         iControllerInterface.NotifyUiRefreshL( EForegroundGain );
         ret = KErrNone;
-    	}
+      }
     else if (aEventName == KAppGainBackground )
-    	{
-    	//force matrix gain background
+      {
+      //force matrix gain background
         DEBUG(("_MM_:CHnEngine::HandleModelEventL EBackgroundGain"));
         iControllerInterface.NotifyUiRefreshL( EBackgroundGain );
         ret = KErrNone;
-    	}
+      }
 
     return ret;
     }
@@ -602,41 +602,41 @@
 
     TInt posSuite( 0 );
     TInt posItem( 0 );
-	TInt64 suiteCustomId( KErrNotFound );
-	TInt64 itemCustomId( KErrNotFound );
+  TInt64 suiteCustomId( KErrNotFound );
+  TInt64 itemCustomId( KErrNotFound );
 
-	// Get suite's and item's custom ids.
-	const TLiwGenericParam* paramSuiteId = aParams.FindFirst( posSuite,  KSuiteCustomId8 );
-	const TLiwGenericParam* paramItemId = aParams.FindFirst( posItem,  KItemCustomId8 );
+  // Get suite's and item's custom ids.
+  const TLiwGenericParam* paramSuiteId = aParams.FindFirst( posSuite,  KSuiteCustomId8 );
+  const TLiwGenericParam* paramItemId = aParams.FindFirst( posItem,  KItemCustomId8 );
 
 
-	if ( posSuite >= 0 && posItem >= 0 )
-    	{
-    	suiteCustomId = paramSuiteId->Value().AsTInt64();
-    	itemCustomId = paramItemId->Value().AsTInt64();
+  if ( posSuite >= 0 && posItem >= 0 )
+      {
+      suiteCustomId = paramSuiteId->Value().AsTInt64();
+      itemCustomId = paramItemId->Value().AsTInt64();
 
-    	// Get matching suite.
-    	CHnSuiteModel* suiteModel = iSuiteContainer->GetMatchingSuiteModel( suiteCustomId );
+      // Get matching suite.
+      CHnSuiteModel* suiteModel = iSuiteContainer->GetMatchingSuiteModel( suiteCustomId );
 
-    	if ( suiteModel )
-    		{
-    		// If suite is not null, then find matching item model.
-    		TInt index( KErrNotFound );
-    		CHnItemModel* itemModel = suiteModel->GetMatchingItemModelL( itemCustomId, index );
+      if ( suiteModel )
+        {
+        // If suite is not null, then find matching item model.
+        TInt index( KErrNotFound );
+        CHnItemModel* itemModel = suiteModel->GetMatchingItemModelL( itemCustomId, index );
 
-    		if ( itemModel )
-    			{
-    			// If itemModel is not null then set highlight and set highligh
-    			// on matching item.
-    			suiteModel->SetSuiteHighlightL( index );
-        		iControllerInterface.HandleSuiteEventL( ESuiteHighlightChanged, suiteModel );
-    			}
-    		else
-    			{
-    			suiteModel->QueueFocus( itemCustomId );
-    			}
-    		}
-    	}
+        if ( itemModel )
+          {
+          // If itemModel is not null then set highlight and set highligh
+          // on matching item.
+          suiteModel->SetSuiteHighlightL( index );
+            iControllerInterface.HandleSuiteEventL( ESuiteHighlightChanged, suiteModel );
+          }
+        else
+          {
+          suiteModel->QueueFocus( itemCustomId );
+          }
+        }
+      }
 
     DEBUG(("_MM_:CHnEngine::HandleSetFocusEventL OUT"));
     return KErrNone;
@@ -895,11 +895,40 @@
             {
             TInt length = tmpSource.Find( aSeparator );
 
+            if( aSeparator == HnLogicalRelations::KParamUid8
+                    && length != KErrNotFound )
+                {
+                TInt ampPos( KErrNotFound );
+                TInt eqPos( KErrNotFound );
+                do
+                    {
+                    ampPos = tmpSource.Mid(
+                            length + HnLogicalRelations::KParamUid8().Length() ).
+                                Find( HnLogicalRelations::KLogicalAnd8 );
+                    if( ampPos >= 0 )
+                        {
+                        length += (ampPos + HnLogicalRelations::KParamUid8().Length());
+                        ampPos = 0;
+                        }
+                    else if( (length + HnLogicalRelations::KParamUid8().Length())
+                                == tmpSource.Length())
+                        {    
+                        length = KErrNotFound;
+                        }
+                    }while( !ampPos );
+                }
+
             if ( length >= 0 )
                 {
                 token.Set( tmpSource.Mid( 0, length ) );
                 tokens.AppendL( token.AllocL() );
                 tmpSource.Set( tmpSource.Mid( length + 1 ) );
+                if( aSeparator == HnLogicalRelations::KLogicalEqual8 )
+                    {
+                    token.Set( tmpSource );
+                    tokens.AppendL( token.AllocL() );
+                    break;
+                    }
                 }
             else
                 {
@@ -993,16 +1022,16 @@
 // ---------------------------------------------------------------------------
 //
 void CHnEngine::LoadFromCrL( const TDesC8& aUri )
-	{
-	HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() );
-	uriBuf->Des().Copy( aUri );
+    {
+    HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() );
+    uriBuf->Des().Copy( aUri );
 
-	TUriParser8 parser;
-	parser.Parse( *uriBuf );
-	User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound );
+    TUriParser8 parser;
+    parser.Parse( *uriBuf );
+    User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound );
 
-	const TDesC8& query = parser.Extract( EUriQuery );
-    RPointerArray< HBufC8 > params = SplitL( query, HnLogicalRelations::KLogicalAnd8);
+    const TDesC8& query = parser.Extract( EUriQuery );
+    RPointerArray< HBufC8 > params = SplitL( query, HnLogicalRelations::KParamUid8);
 
     TBuf8<KApaMaxAppGroupName + KTimeStampBufferLength + KUidStringLength + 2> item;
 
@@ -1020,34 +1049,34 @@
         	    appgrname.Append( *paramValue[1] );
         	    }
 
-        	//get current time
-        	TTime currentTime;
-        	currentTime.HomeTime();
-        	TDateTime date(currentTime.DateTime());
-        	item.Format(KCRepTimeFormat, &appgrname , date.Year(), date.Month(),
-        		date.Day(), date.Hour(), date.Minute(), date.Second(), date.MicroSecond());
-        	}
+          //get current time
+          TTime currentTime;
+          currentTime.HomeTime();
+          TDateTime date(currentTime.DateTime());
+          item.Format(KCRepTimeFormat, &appgrname , date.Year(), date.Month(),
+            date.Day(), date.Hour(), date.Minute(), date.Second(), date.MicroSecond());
+          }
         else if ( !paramValue[0]->Compare( KKeyTypeUid ) )
-        	{
-        	item.Append( KComma8 );
+          {
+          item.Append( KComma8 );
             if( paramValue[1]->Length()<=KUidStringLength )
                 {
                 item.Append( *paramValue[1] );
                 }
-        	}
+          }
         CleanupStack::PopAndDestroy( &paramValue );
         }
 
     TBuf<KApaMaxAppGroupName + KTimeStampBufferLength + KUidStringLength + 2> item1;
     item1.Copy(item);
-	CRepository *cenRep = CRepository::NewLC( KCRUidMenu );
-	cenRep->Set(KMenuShowFolder, item1);
-	CleanupStack::PopAndDestroy( cenRep );
+    CRepository *cenRep = CRepository::NewLC( KCRUidMenu );
+    cenRep->Set(KMenuShowFolder, item1);
+    CleanupStack::PopAndDestroy( cenRep );
 
     params.ResetAndDestroy();
     CleanupStack::PopAndDestroy( uriBuf );
 
-	}
+  }
 // ---------------------------------------------------------------------------
 //
 // ---------------------------------------------------------------------------
@@ -1081,96 +1110,96 @@
 // ---------------------------------------------------------------------------
 //
 TBool CHnEngine::HandleActionL( const TDesC8& aUri )
-	{
-	TBool exitActionConsumed(EFalse);
+  {
+  TBool exitActionConsumed(EFalse);
 
-	HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() );
-	uriBuf->Des().Copy( aUri );
+  HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() );
+  uriBuf->Des().Copy( aUri );
 
-	TUriParser8 parser;
+  TUriParser8 parser;
     parser.Parse( *uriBuf );
     User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound );
 
     const TDesC8& host8 = parser.Extract( EUriHost );
     const TDesC8& query = parser.Extract( EUriQuery );
 
-	RBuf action;
+  RBuf action;
     CleanupClosePushL( action );
     CLiwGenericParamList* paramsUri = UriQueryToLiwListLC( query, KNullDesC8, KNullDesC8 );
     HnLiwUtils::GetStringL( *paramsUri, KActionParams, action );
 
     if ( !action.Compare( KActionExit ) )
-    	{
-    	RBuf host;
-		host.CreateL( host8.Length() );
-		CleanupClosePushL( host );
-		host.Copy(host8);
-    	CHnSuiteModel* suiteModel = iSuiteContainer->GetSuiteModel( host );
-    	TBool exitHideHostNotFound( ETrue  );
-    	if( suiteModel  && suiteModel->ExitMode() == EExitModeHide )
-    	    {
-    	    exitHideHostNotFound = EFalse;
-    	    }
+      {
+      RBuf host;
+    host.CreateL( host8.Length() );
+    CleanupClosePushL( host );
+    host.Copy(host8);
+      CHnSuiteModel* suiteModel = iSuiteContainer->GetSuiteModel( host );
+      TBool exitHideHostNotFound( ETrue  );
+      if( suiteModel  && suiteModel->ExitMode() == EExitModeHide )
+          {
+          exitHideHostNotFound = EFalse;
+          }
 
-		if ( exitHideHostNotFound )
-			{
-			//send to foreground
-			CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
-			CleanupStack::PushL( pl );
-			HandleModelEventL( KAppGainForeground, *pl );
-			CleanupStack::PopAndDestroy( pl );
-			}
-		else
-			{
-			//send to background
-			CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
-			CleanupStack::PushL( pl );
-			HandleModelEventL( KAppGainBackground, *pl );
-			CleanupStack::PopAndDestroy( pl );
-			}
+    if ( exitHideHostNotFound )
+      {
+      //send to foreground
+      CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
+      CleanupStack::PushL( pl );
+      HandleModelEventL( KAppGainForeground, *pl );
+      CleanupStack::PopAndDestroy( pl );
+      }
+    else
+      {
+      //send to background
+      CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
+      CleanupStack::PushL( pl );
+      HandleModelEventL( KAppGainBackground, *pl );
+      CleanupStack::PopAndDestroy( pl );
+      }
 
-    	if ( exitHideHostNotFound && iSuiteContainer->GetLastSuiteModel() == suiteModel  )
-    		{
+      if ( exitHideHostNotFound && iSuiteContainer->GetLastSuiteModel() == suiteModel  )
+        {
             HandleBackEventL( host,  1 );
-    		}
-    	else
-    		{
-        	//reset to root
+        }
+      else
+        {
+          //reset to root
             CLiwGenericParamList* params = CLiwGenericParamList::NewLC();
             params->AppendL( iMetaDataModel->GetSuiteParameters( 0 ) );
-        	ResetModelsL();
+          ResetModelsL();
             InitializeL( *params );
             CleanupStack::PopAndDestroy( params );
-    		}
+        }
 
-    	CleanupStack::PopAndDestroy( &host );
-    	exitActionConsumed = ETrue;
-    	}
+      CleanupStack::PopAndDestroy( &host );
+      exitActionConsumed = ETrue;
+      }
 
     CleanupStack::PopAndDestroy( paramsUri );
     CleanupStack::PopAndDestroy( &action );
     CleanupStack::PopAndDestroy( uriBuf );
     return exitActionConsumed;
-	}
+  }
 
 // ---------------------------------------------------------------------------
 //
 // ---------------------------------------------------------------------------
 //
 void CHnEngine::LoadSuitesL( const TDesC8& aUri )
-	{
-	TBool sendToForeground(EFalse);
-	HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() );
-	uriBuf->Des().Copy( aUri );
+  {
+  TBool sendToForeground(EFalse);
+  HBufC8* uriBuf = HBufC8::NewLC( aUri.Length() );
+  uriBuf->Des().Copy( aUri );
 
-	TUriParser8 parser;
-	parser.Parse( *uriBuf );
-	User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound );
+  TUriParser8 parser;
+  parser.Parse( *uriBuf );
+  User::LeaveIfError( parser.IsSchemeValid() ? KErrNone : KErrPathNotFound );
 
-	CDesC8ArrayFlat* suiteNameArray = new( ELeave ) CDesC8ArrayFlat( KDefaultGranularity ) ;
-	CleanupStack::PushL( suiteNameArray );
+  CDesC8ArrayFlat* suiteNameArray = new( ELeave ) CDesC8ArrayFlat( KDefaultGranularity ) ;
+  CleanupStack::PushL( suiteNameArray );
 
-	const TDesC8& host = parser.Extract( EUriHost );
+  const TDesC8& host = parser.Extract( EUriHost );
     RBuf8 host8;
     CleanupClosePushL( host8 );
     if (host.Compare( KNullDesC8 ))
@@ -1181,19 +1210,19 @@
         DEBUG8(( "_MM_:\tURI host part: %S", &host8 ));
         }
 
-	const TDesC8& path = parser.Extract( EUriPath );
-	if (path.Compare( KNullDesC8 ))
-		{
-		HBufC8* path8 = HBufC8::NewLC( path.Length() );
-		path8->Des().Copy( path );
-		path8->Des().LowerCase();
-		ParseSuiteUriPathL( *path8, *suiteNameArray );
-		CleanupStack::PopAndDestroy( path8 );
-		}
+  const TDesC8& path = parser.Extract( EUriPath );
+  if (path.Compare( KNullDesC8 ))
+    {
+    HBufC8* path8 = HBufC8::NewLC( path.Length() );
+    path8->Des().Copy( path );
+    path8->Des().LowerCase();
+    ParseSuiteUriPathL( *path8, *suiteNameArray );
+    CleanupStack::PopAndDestroy( path8 );
+    }
 
-	TBool suiteExists( EFalse );
-	iMetaDataModel->IgnoreEvaluations( ETrue );
-	iMetaDataModel->QueueForeground( CHnMdModel::EWhenAnySuiteIsEvaluated );
+  TBool suiteExists( EFalse );
+  iMetaDataModel->IgnoreEvaluations( ETrue );
+  iMetaDataModel->QueueForeground( CHnMdModel::EWhenAnySuiteIsEvaluated );
 
     if( host8.Length() == 0 || ( host8.Length() > 0 &&
             !iMetaDataModel->SuiteModelExistsL( host8 ) ) )
@@ -1202,101 +1231,101 @@
         suiteNameArray->AppendL( KRoot8 );
         }
 
-	for( TInt i = 0; i < suiteNameArray->Count(); ++i )
-		{
-		suiteExists = iMetaDataModel->SuiteModelExistsL(
-			( *suiteNameArray )[i] );
-		TBool nextExists = i < suiteNameArray->Count() - 1 &&
-			iMetaDataModel->SuiteModelExistsL( ( *suiteNameArray )[i + 1] );
-		TBool isLast = ( i == ( suiteNameArray->Count() - 1 ) );
+  for( TInt i = 0; i < suiteNameArray->Count(); ++i )
+    {
+    suiteExists = iMetaDataModel->SuiteModelExistsL(
+      ( *suiteNameArray )[i] );
+    TBool nextExists = i < suiteNameArray->Count() - 1 &&
+      iMetaDataModel->SuiteModelExistsL( ( *suiteNameArray )[i + 1] );
+    TBool isLast = ( i == ( suiteNameArray->Count() - 1 ) );
 
-		TBool turnOnEvaluation = ( suiteExists && ( !nextExists || isLast ) );
-		if( turnOnEvaluation || !suiteExists )
-			{
-			iMetaDataModel->IgnoreEvaluations( EFalse );
-			}
+    TBool turnOnEvaluation = ( suiteExists && ( !nextExists || isLast ) );
+    if( turnOnEvaluation || !suiteExists )
+      {
+      iMetaDataModel->IgnoreEvaluations( EFalse );
+      }
 
-		TInt err( KErrNone );
+    TInt err( KErrNone );
 
-		// Ignore loading new suite if the last suite in model is the same
-		// as first one in the uri.
-		if ( i == 0 )
-			{
-			if ( SuitesAreTheSameL( iMetaDataModel->GetLastSuite()->SuiteName(), (*suiteNameArray)[i] ) )
-				{
-				HandleTheSameSuitesL( nextExists, parser.Extract( EUriQuery ) );
-				sendToForeground = ETrue;
-				continue;
-				}
-			}
+    // Ignore loading new suite if the last suite in model is the same
+    // as first one in the uri.
+    if ( i == 0 )
+      {
+      if ( SuitesAreTheSameL( iMetaDataModel->GetLastSuite()->SuiteName(), (*suiteNameArray)[i] ) )
+        {
+        HandleTheSameSuitesL( nextExists, parser.Extract( EUriQuery ) );
+        sendToForeground = ETrue;
+        continue;
+        }
+      }
 
-		if( suiteExists )
-			{
-			if (!nextExists)
-			    {
-			    // Tricky: queue foreground so that if the suite is evaluated synchronously
-			    // the foreground will be gained.
-			    iMetaDataModel->QueueForeground( CHnMdModel::EWhenAnySuiteIsEvaluated );
-			    }
-			err = LoadSuiteFromUriL(
-				( *suiteNameArray )[i], parser.Extract( EUriQuery ), parser.Extract( EUriFragment ) );
-			if ( KErrNone == err && !nextExists && iMetaDataModel->IsForegroundQueued() )
-			    {
-			    // Tricky: if foreground is still queued it means that the suite is evaluated
-			    // asynchronously. Override the previos foreground queue setting with one
-			    // that will be effective only if the last loaded suite is evaluated.
-			    iMetaDataModel->QueueForeground( CHnMdModel::EWhenCurrentTopSuiteIsEvaluated );
-			    }
-			if ( err != KErrNone )
-				{
-				sendToForeground = ETrue;
-				}
-			}
+    if( suiteExists )
+      {
+      if (!nextExists)
+          {
+          // Tricky: queue foreground so that if the suite is evaluated synchronously
+          // the foreground will be gained.
+          iMetaDataModel->QueueForeground( CHnMdModel::EWhenAnySuiteIsEvaluated );
+          }
+      err = LoadSuiteFromUriL(
+        ( *suiteNameArray )[i], parser.Extract( EUriQuery ), parser.Extract( EUriFragment ) );
+      if ( KErrNone == err && !nextExists && iMetaDataModel->IsForegroundQueued() )
+          {
+          // Tricky: if foreground is still queued it means that the suite is evaluated
+          // asynchronously. Override the previos foreground queue setting with one
+          // that will be effective only if the last loaded suite is evaluated.
+          iMetaDataModel->QueueForeground( CHnMdModel::EWhenCurrentTopSuiteIsEvaluated );
+          }
+      if ( err != KErrNone )
+        {
+        sendToForeground = ETrue;
+        }
+      }
 
-		if( !suiteExists || err != KErrNone || !nextExists )
-			{
-			CHnFilter* filter = CHnFilter::NewLC();
+    if( !suiteExists || err != KErrNone || !nextExists )
+      {
+      CHnFilter* filter = CHnFilter::NewLC();
 
-			filter->SetSuiteId(
-				iSuiteContainer->GetLastSuiteModel()->CustomId() );
+      filter->SetSuiteId(
+        iSuiteContainer->GetLastSuiteModel()->CustomId() );
 
-			filter->SetEvaluateSuiteL( ETrue );
-			iMetaDataModel->IgnoreEvaluations( EFalse );
+      filter->SetEvaluateSuiteL( ETrue );
+      iMetaDataModel->IgnoreEvaluations( EFalse );
 
-			TRAPD( err, iMetaDataModel->EvaluateL( *filter ) );
+      TRAPD( err, iMetaDataModel->EvaluateL( *filter ) );
 
-			CleanupStack::PopAndDestroy( filter );
-			if( err )
-				{
-				iMetaDataModel->DeleteLastSuite();
-				iSuiteContainer->PopSuiteModelL(
-					 HnConvUtils::Str8ToStr( ( *suiteNameArray )[i] )->Des() );
-				sendToForeground = ETrue;
-				}
-			break;
-			}
-		}
+      CleanupStack::PopAndDestroy( filter );
+      if( err )
+        {
+        iMetaDataModel->DeleteLastSuite();
+        iSuiteContainer->PopSuiteModelL(
+           HnConvUtils::Str8ToStr( ( *suiteNameArray )[i] )->Des() );
+        sendToForeground = ETrue;
+        }
+      break;
+      }
+    }
 
-	// set highlight only when path is valid!
-	if( suiteExists )
-		{
-		HighlightPlacementFromUriL( parser.Extract( EUriFragment ) );
-		}
+  // set highlight only when path is valid!
+  if( suiteExists )
+    {
+    HighlightPlacementFromUriL( parser.Extract( EUriFragment ) );
+    }
 
     CleanupStack::PopAndDestroy( &host8 );
-	CleanupStack::PopAndDestroy( suiteNameArray );
-	CleanupStack::PopAndDestroy( uriBuf );
+  CleanupStack::PopAndDestroy( suiteNameArray );
+  CleanupStack::PopAndDestroy( uriBuf );
 
 //    send to foreground
-	if ( sendToForeground )
-		{
-		CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
-		CleanupStack::PushL( pl );
-		HandleModelEventL( KAppGainForeground, *pl );
-		CleanupStack::PopAndDestroy( pl );
-		iMetaDataModel->QueueForeground( CHnMdModel::ENever );
-		}
+  if ( sendToForeground )
+    {
+    CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
+    CleanupStack::PushL( pl );
+    HandleModelEventL( KAppGainForeground, *pl );
+    CleanupStack::PopAndDestroy( pl );
+    iMetaDataModel->QueueForeground( CHnMdModel::ENever );
+    }
 
-	}
+  }
 
 // End of file
--- a/menufw/hierarchynavigator/hnmetadatamodel/inc/hnglobals.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/hierarchynavigator/hnmetadatamodel/inc/hnglobals.h	Tue Sep 14 20:58:58 2010 +0300
@@ -110,7 +110,12 @@
     /**
      * Has not.
      */
-	_LIT8( KLogicalHasNot8,         "HASNOT" );
+    _LIT8( KLogicalHasNot8,         "HASNOT" );
+
+    /**
+     * Uid param for uri.
+     */
+    _LIT8( KParamUid8,              "&uid=" );
     }
 
 /**
@@ -427,11 +432,11 @@
 
 // info notes for notifying lack of configuration files
 _LIT( KDebugNoteDirNotFound,
-	"Directory containing suite configuration not found!" );
+  "Directory containing suite configuration not found!" );
 _LIT( KDebugNoteFileNotFound,
-	"File containing suite configuration not found!" );
+  "File containing suite configuration not found!" );
 _LIT( KDebugNoteOtherError,
-	"Loading suite configuration returned error: %d" );
+  "Loading suite configuration returned error: %d" );
 
 _LIT8( KStar8, "*" );
 
@@ -518,9 +523,9 @@
  * Order in which drives are searched for suites.
  */
 const TInt KDriveSearchOrder[] = { EDriveY, EDriveX, EDriveW, EDriveV, EDriveU,
-		EDriveT, EDriveS, EDriveR, EDriveQ, EDriveP, EDriveO, EDriveN, EDriveM,
-		EDriveL, EDriveK, EDriveJ, EDriveI, EDriveH, EDriveG, EDriveF, EDriveE,
-		EDriveD, EDriveC, EDriveB, EDriveA,	EDriveZ	};
+    EDriveT, EDriveS, EDriveR, EDriveQ, EDriveP, EDriveO, EDriveN, EDriveM,
+    EDriveL, EDriveK, EDriveJ, EDriveI, EDriveH, EDriveG, EDriveF, EDriveE,
+    EDriveD, EDriveC, EDriveB, EDriveA,	EDriveZ	};
 
 /**
  * Type of the widget which displays Suite data
@@ -562,10 +567,10 @@
  * Custom item ids.
  */
 enum TCustomId
-	{
-	ECustomIdFirstItem = -2,
-	ECustomIdLastItem = -3
-	};
+  {
+  ECustomIdFirstItem = -2,
+  ECustomIdLastItem = -3
+  };
 
 /**
  * Suite's exit mode
@@ -580,8 +585,8 @@
  * Type of change in items number
  */
 enum TItemsChangeType {
-	EItemsAdded = 0,
-	EItemsRemoved
+  EItemsAdded = 0,
+  EItemsRemoved
 };
 
 _LIT8( KExitModeParams,  "params:exit" );
--- a/menufw/hierarchynavigator/hnmetadatamodel/inc/hnrepositoryobserver.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/hierarchynavigator/hnmetadatamodel/inc/hnrepositoryobserver.h	Tue Sep 14 20:58:58 2010 +0300
@@ -39,7 +39,7 @@
 NONSHARABLE_CLASS( CHnRepositoryObserver ):
     public CBase,
     public MCenRepNotifyHandlerCallback
-	{
+  {
 public:
 
     /**
@@ -98,7 +98,7 @@
      */
     CCenRepNotifyHandler* iNotifyHandler;
 
-	};
+  };
 
 /**
  * Widget Type Repository Observer.
@@ -110,7 +110,7 @@
  * @ingroup group_hnmetadatamodel
  */
 NONSHARABLE_CLASS( CHnRepositoryWidgetTypeObserver ): public CHnRepositoryObserver
-	{
+  {
 public:
 
     /**
@@ -164,7 +164,7 @@
      * @param aCmnPtrs Common pointers.
      * @since S60 v5.0
      */
-	CHnRepositoryWidgetTypeObserver( THnMdCommonPointers* aCmnPtrs );
+  CHnRepositoryWidgetTypeObserver( THnMdCommonPointers* aCmnPtrs );
 
 private:
 
@@ -173,24 +173,23 @@
      *
      * @since S60 v5.0
      */
-	void ConstructL( const TUid aRepositoryUid );
+  void ConstructL( const TUid aRepositoryUid );
 
 private:
 
-	/**
-	 * Array holding ids of widgets being switched.
-	 * It is used to eliminate double refresh for such suites.
-	 */
-	RArray<TUint32> iWidgetSwitches;
+  /**
+   * Array holding ids of widgets being switched.
+   * It is used to eliminate double refresh for such suites.
+   */
+  RArray<TUint32> iWidgetSwitches;
 
-	};
+  };
 
 
 
 NONSHARABLE_CLASS( CHnRepositoryShowFolderObserver ): 	public CHnRepositoryObserver,
-														public MLiwNotifyCallback,
-														public MHnSuiteObserver
-	{
+                            public MLiwNotifyCallback
+  {
 public:
 
     /**
@@ -201,26 +200,26 @@
     virtual ~CHnRepositoryShowFolderObserver();
 
     /**
-	 * Factory function.
-	 *
-	 * @param aCmnPtrs Common pointers.
-	 * @return Repository Observer.
-	 * @since S60 v5.0
-	 */
-	static CHnRepositoryShowFolderObserver* NewL(
-			THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid,
-			const TUint32 aId);
+   * Factory function.
+   *
+   * @param aCmnPtrs Common pointers.
+   * @return Repository Observer.
+   * @since S60 v5.0
+   */
+  static CHnRepositoryShowFolderObserver* NewL(
+      THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid,
+      const TUint32 aId);
 
-	/**
-	 * Factory function.
-	 *
-	 * @param aCmnPtrs Common pointers.
-	 * @return Repository Observer.
-	 * @since S60 v5.0
-	 */
-	static CHnRepositoryShowFolderObserver* NewLC(
-			THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid,
-			const TUint32 aId);
+  /**
+   * Factory function.
+   *
+   * @param aCmnPtrs Common pointers.
+   * @return Repository Observer.
+   * @since S60 v5.0
+   */
+  static CHnRepositoryShowFolderObserver* NewLC(
+      THnMdCommonPointers* aCmnPtrs, const TUid aRepositoryUid,
+      const TUint32 aId);
 
     /**
      * Change handler method.
@@ -250,14 +249,6 @@
         CLiwGenericParamList& aEventParamList,
         const CLiwGenericParamList& aInParamList);
 
-    /**
-     * From MHnSuiteObserver
-     */
-    virtual void HandleSuiteEventL ( THnCustomSuiteEvent aCustomSuiteEvent,
-            CHnSuiteModel *aModel );
-
-
-
 private:
 
     /**
@@ -266,7 +257,7 @@
      * @param aCmnPtrs Common pointers.
      * @since S60 v5.0
      */
-	CHnRepositoryShowFolderObserver( THnMdCommonPointers* aCmnPtrs, TUint32 iId  );
+  CHnRepositoryShowFolderObserver( THnMdCommonPointers* aCmnPtrs, TUint32 iId  );
 
     /**
      * Extracts the folder name from the CR key.
@@ -274,14 +265,14 @@
      * @param aNewValue The CR key.
      * @since S60 v5.0
      */
-	void ExtractCRKeyShowFolderName( const TDesC& aNewValue );
+  void ExtractCRKeyShowFolderName( const TDesC& aNewValue );
 
-	/**
-	 * Request get list for parent folder of an application.
-	 *
-	 * @param aFolderId A parent folder id
-	 * @since S60 v5.0
-	 */
+  /**
+   * Request get list for parent folder of an application.
+   *
+   * @param aFolderId A parent folder id
+   * @since S60 v5.0
+   */
     void GetShowFolderL( TUint32 aFolderId );
 
     /**
@@ -308,21 +299,21 @@
      *
      * @since S60 v5.0
      */
-	void ConstructL( const TUid aRepositoryUid );
+  void ConstructL( const TUid aRepositoryUid );
 
 private:
 
-	/**
+  /**
      * Folder application group name.
      */
-	TBuf8<KApaMaxAppGroupName> iCRKeyFolderName;
+  TBuf8<KApaMaxAppGroupName> iCRKeyFolderName;
 
     /**
      * Mcs id for an application item in a folder with a given app group name.
      */
-	TBuf8<KUidStringLength> iCRKeyFolderItemUid;
+  TBuf8<KUidStringLength> iCRKeyFolderItemUid;
 
-	/**
+  /**
      * Own.
      * Intance of the service handler.
      */
@@ -332,7 +323,7 @@
        * Flag describing the type of notification.
      */
     TInt iNotifyType;
-	};
+  };
 
 #endif /*HNREPOSITORYOBSERVER_H_*/
 
--- a/menufw/hierarchynavigator/hnmetadatamodel/src/hnmdmodel.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/hierarchynavigator/hnmetadatamodel/src/hnmdmodel.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -247,9 +247,9 @@
 // ---------------------------------------------------------------------------
 //
 EXPORT_C TBool CHnMdModel::IsForegroundQueued() const
-	{
-	return iForegroundQueued;
-	}
+    {
+    return iForegroundQueued;
+    }
 
 // ---------------------------------------------------------------------------
 //
@@ -264,13 +264,13 @@
 
     if ( IsForegroundQueued() && ( !iForegroundTriggeringSuite ||
             iForegroundTriggeringSuite == aJustEvaluatedSuite ) )
-    	{
-    	CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
-    	CleanupStack::PushL( pl );
-    	iCmnPtrs.iModelEventObserver->HandleModelEventL( KAppGainForeground, *pl );
-    	CleanupStack::PopAndDestroy( pl );
-    	QueueForeground( ENever );
-    	}
+        {
+        CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
+        CleanupStack::PushL( pl );
+        iCmnPtrs.iModelEventObserver->HandleModelEventL( KAppGainForeground, *pl );
+        CleanupStack::PopAndDestroy( pl );
+        QueueForeground( ENever );
+        }
     }
 
 // ---------------------------------------------------------------------------
@@ -316,11 +316,11 @@
     {
     TInt err( KErrNone );
 
-	RXmlEngDocument xmlDoc;
-	// Xml model provider takes ownership of xmlDoc.
-	TRAP( err, iXmlModelProvider->GetModelL( aGenre, xmlDoc ) );
+    RXmlEngDocument xmlDoc;
+    // Xml model provider takes ownership of xmlDoc.
+    TRAP( err, iXmlModelProvider->GetModelL( aGenre, xmlDoc ) );
 
-	TXmlEngElement element;
+    TXmlEngElement element;
     if ( !err )
         {
         element = xmlDoc.DocumentElement().AsElement();
@@ -342,10 +342,10 @@
         TInt pos( 0 );
         newSuite->GetSuiteParameters().FindFirst( pos, KSuiteName8);
         if ( pos == KErrNotFound )
-        	{
-        	newSuite->GetSuiteParameters().AppendL(
-        			TLiwGenericParam(KSuiteName8, TLiwVariant( aGenre ) ) );
-        	}
+            {
+            newSuite->GetSuiteParameters().AppendL(
+                TLiwGenericParam(KSuiteName8, TLiwVariant( aGenre ) ) );
+            }
 
         iCmnPtrs.iContainer->PushNewSuiteModelL( newSuite->SuiteName() );
         iCmnPtrs.iContainer->GetLastSuiteModel()->GetItemsOrder()->
@@ -355,9 +355,9 @@
         iLoadedSuites.AppendL( newSuite );
         }
     else
-    	{
-    	MMPERF(("CHnMdModel::LoadSuiteL - Error TRAPPED!"));
-    	}
+        {
+        MMPERF(("CHnMdModel::LoadSuiteL - Error TRAPPED!"));
+        }
 
     return err;
     }
@@ -395,8 +395,8 @@
 // ---------------------------------------------------------------------------
 //
 TInt CHnMdModel::LoadedSuitesCount()
-	{
-	return iLoadedSuites.Count();
-	}
+    {
+    return iLoadedSuites.Count();
+    }
 
 
--- a/menufw/hierarchynavigator/hnmetadatamodel/src/hnrepositoryobserver.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/hierarchynavigator/hnmetadatamodel/src/hnrepositoryobserver.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -229,7 +229,7 @@
     TInt ret = iRepository->Create( iId, KBlank );
     iNotifyHandler = CCenRepNotifyHandler::NewL(
         *this, *iRepository,
-    	CCenRepNotifyHandler::EStringKey, iId );
+      CCenRepNotifyHandler::EStringKey, iId );
     iNotifyHandler->StartListeningL();
     }
 
@@ -273,23 +273,23 @@
 
     //++Show Folder
     if( aId == iId && aNewValue.Length())
-		{
+    {
         iNotifyType = 0;
-		ExtractCRKeyShowFolderName( aNewValue );
+    ExtractCRKeyShowFolderName( aNewValue );
 
-		// iCRKeyFolderItemUid can contain mcs id or uid
-		// in case of uid it will be replaced whith id in HandleNotifyL callback
-		if( iCRKeyFolderItemUid.Length()>0 )
-		    {
-		    if( iCRKeyFolderItemUid.FindF( KHexPrefix8 )==0 )
-		        {
-		        iNotifyType |= EAPP_UID;
-		        }
-		    else
-		        {
-		        iNotifyType |= EAPP_ID;
-		        }
-		    }
+    // iCRKeyFolderItemUid can contain mcs id or uid
+    // in case of uid it will be replaced whith id in HandleNotifyL callback
+    if( iCRKeyFolderItemUid.Length()>0 )
+        {
+        if( iCRKeyFolderItemUid.FindF( KHexPrefix8 )==0 )
+            {
+            iNotifyType |= EAPP_UID;
+            }
+        else
+            {
+            iNotifyType |= EAPP_ID;
+            }
+        }
 
         CHnMdBaseKey* inDataKey = HnMdKeyFactory::CreateL(
             KInData8, KKeyTypeMap, KDefaultParentId8 );
@@ -392,7 +392,7 @@
             CleanupStack::PopAndDestroy( id );
             }
         CleanupStack::PopAndDestroy( inDataKey );
-		}
+    }
 
     DEBUG(("_MM_:CHnRepositoryShowFolderObserver::HandleNotifyStringL OUT"));
 
@@ -403,91 +403,91 @@
 // ---------------------------------------------------------------------------
 //
 void CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName( const TDesC& aNewValue )
-	{
-	DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName IN" ));
-	iCRKeyFolderName.Copy( KBlank );
-	iCRKeyFolderItemUid.Copy( KBlank );
+  {
+  DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName IN" ));
+  iCRKeyFolderName.Copy( KBlank );
+  iCRKeyFolderItemUid.Copy( KBlank );
 
-	int keyValueLength = aNewValue.Length();
-	if( keyValueLength )
-		{
-			TApaAppGroupName folder;
-	        TBuf<KTimeStampBufferLength + KUidStringLength + 1> tempBuf;
-	        TBuf<KTimeStampBufferLength> timeStamp;
+  int keyValueLength = aNewValue.Length();
+  if( keyValueLength )
+    {
+      TApaAppGroupName folder;
+          TBuf<KTimeStampBufferLength + KUidStringLength + 1> tempBuf;
+          TBuf<KTimeStampBufferLength> timeStamp;
 
-	        TInt ret = aNewValue.Find( KComma );
-	        if( (ret == KErrNotFound )|| ( ret == ( keyValueLength-1 ) ) )
-	            {
-	            DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (bad CR key value input) OUT" ));
-	        	return;	//bad CR key value input
-	            }
-	        if( ret>KApaMaxAppGroupName )
-	            {
-	            return;
-	            }
-	        folder.Copy(aNewValue.Left(ret));
-	        if( aNewValue.Length()-ret > tempBuf.MaxLength() )
-	            {
-	            return;
-	            }
-	        tempBuf.Copy(aNewValue.Mid( ret + 1 ) );
+          TInt ret = aNewValue.Find( KComma );
+          if( (ret == KErrNotFound )|| ( ret == ( keyValueLength-1 ) ) )
+              {
+              DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (bad CR key value input) OUT" ));
+            return;	//bad CR key value input
+              }
+          if( ret>KApaMaxAppGroupName )
+              {
+              return;
+              }
+          folder.Copy(aNewValue.Left(ret));
+          if( aNewValue.Length()-ret > tempBuf.MaxLength() )
+              {
+              return;
+              }
+          tempBuf.Copy(aNewValue.Mid( ret + 1 ) );
 
-	        TInt posUid = tempBuf.Find( KComma );
-	        if ( KErrNotFound != posUid )
-	        	{
-	        	if( posUid>KTimeStampBufferLength )
-	        	    {
-	        	    return;
-	        	    }
-	        	timeStamp.Copy( tempBuf.Left(posUid) );
-	        	if( tempBuf.Length()-(posUid+1) > KUidStringLength )
-	        	    {
-	        	    return;
-	        	    }
-	        	iCRKeyFolderItemUid.Copy( tempBuf.Mid( posUid + 1 ) );
-	        	}
-	        else
-	        	{
+          TInt posUid = tempBuf.Find( KComma );
+          if ( KErrNotFound != posUid )
+            {
+            if( posUid>KTimeStampBufferLength )
+                {
+                return;
+                }
+            timeStamp.Copy( tempBuf.Left(posUid) );
+            if( tempBuf.Length()-(posUid+1) > KUidStringLength )
+                {
+                return;
+                }
+            iCRKeyFolderItemUid.Copy( tempBuf.Mid( posUid + 1 ) );
+            }
+          else
+            {
                 if( tempBuf.Length()>KTimeStampBufferLength )
                     {
                     return;
                     }
-	        	timeStamp.Copy( tempBuf );
-	        	}
+            timeStamp.Copy( tempBuf );
+            }
 
-	        TTime currentTime;
-	        currentTime.HomeTime();
-	        TTimeIntervalSeconds interval;
+          TTime currentTime;
+          currentTime.HomeTime();
+          TTimeIntervalSeconds interval;
 
-	        TTime timeStampTime;
-	        ret = timeStampTime.Set(timeStamp);
+          TTime timeStampTime;
+          ret = timeStampTime.Set(timeStamp);
 
-	        if(ret == KErrGeneral )
-	            {
-	            DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (bad timestamp) OUT" ));
-	        	return; // bad time stamp value
-	            }
+          if(ret == KErrGeneral )
+              {
+              DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (bad timestamp) OUT" ));
+            return; // bad time stamp value
+              }
 
-	        ret = currentTime.SecondsFrom( timeStampTime, interval );
+          ret = currentTime.SecondsFrom( timeStampTime, interval );
 
-	        if( interval.Int() < 0 )
-	            {//negative timestamp is set ahead of current time...!
-	            DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (negative interval) OUT" ));
-	        	return;
-	            }
+          if( interval.Int() < 0 )
+              {//negative timestamp is set ahead of current time...!
+              DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (negative interval) OUT" ));
+            return;
+              }
 
-	        if(( interval.Int()) > KTimeStampCutOff )
-	            {//positive timestamp but more than 5 seconds
-	            DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (more than 5 seconds) OUT" ));
-	        	return;
-	            }
-	        else
-        	    {
-	        	iCRKeyFolderName.Copy(folder);
-        	    }
-		}
-	DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName OUT" ));
-	}
+          if(( interval.Int()) > KTimeStampCutOff )
+              {//positive timestamp but more than 5 seconds
+              DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName (more than 5 seconds) OUT" ));
+            return;
+              }
+          else
+              {
+            iCRKeyFolderName.Copy(folder);
+              }
+    }
+  DEBUG(( "_MM_:CHnRepositoryShowFolderObserver::ExtractCRKeyShowFolderName OUT" ));
+  }
 
 // ---------------------------------------------------------------------------
 //
@@ -615,9 +615,9 @@
     TInt aEventId,
     CLiwGenericParamList& aEventParamList,
     const CLiwGenericParamList& /*aInParamList*/)
-	{
-	DEBUG(("_MM_:CHnRepositoryShowFolderObserver::HandleNotifyL IN"));
-	if( aEventId == KLiwEventCanceled )
+  {
+  DEBUG(("_MM_:CHnRepositoryShowFolderObserver::HandleNotifyL IN"));
+  if( aEventId == KLiwEventCanceled )
         {
         return KErrNotFound;
         }
@@ -732,7 +732,6 @@
             if ( iCmnPtrs->iContainer->GetLastSuiteModel()->CustomId() != varId.AsTInt64() )
                 {
                 iCmnPtrs->iModelEventObserver->HandleModelEventL( KNewSuiteLoadedMdEvent, *paramList );
-                iCmnPtrs->iContainer->GetLastSuiteModel()->RegisterSuiteObserverL( this );
                 iCmnPtrs->iModel->QueueForeground( CHnMdModel::EWhenCurrentTopSuiteIsEvaluated );
                 }
             else
@@ -769,37 +768,8 @@
             CleanupStack::PopAndDestroy( &varId );
         }
 
-	DEBUG(("_MM_:CHnRepositoryShowFolderObserver::HandleNotifyL OUT"));
-	return KErrNone;
-	}
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CHnRepositoryShowFolderObserver::HandleSuiteEventL ( THnCustomSuiteEvent aCustomSuiteEvent,
-        CHnSuiteModel *aModel )
-	{
-
-	if ( aCustomSuiteEvent == ESuiteModelInitialized && iCRKeyFolderItemUid.Length() > 0 )
-		{
-	      if (iCRKeyFolderItemUid.Length() > 0 )
-            {
-            TLex8 lex( iCRKeyFolderItemUid );
-            TInt64 id (0);
-            TInt err = lex.Val( id );
-            TInt focus( KErrNotFound );
-            // If suite is not null, then find matching item model.
-            CHnItemModel* itemModel = aModel->GetMatchingItemModelL( id, focus );
-            aModel->SetSuiteHighlightL( focus );
-            }
-		iCRKeyFolderItemUid.Copy( KBlank );
-		aModel->UnregisterSuiteObserver( this );
-		CLiwGenericParamList* pl = CLiwGenericParamList::NewL();
-		CleanupStack::PushL( pl );
-		iCmnPtrs->iModelEventObserver->HandleModelEventL( KAppGainForeground, *pl );
-		CleanupStack::PopAndDestroy( pl );
-		}
-	}
+  DEBUG(("_MM_:CHnRepositoryShowFolderObserver::HandleNotifyL OUT"));
+  return KErrNone;
+  }
 
 // End of File
Binary file menufw/menufwui/matrixmenu/help/data/xhtml.zip has changed
--- a/menufw/menufwui/matrixmenu/inc/mmappui.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/matrixmenu/inc/mmappui.h	Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:  Application UI class
-*  Version     : %version: MM_83.1.2.1.23.1.21 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: MM_83.1.2.1.23.1.24 % << Don't touch! Updated by Synergy at check-out.
 *
 */
 
@@ -372,7 +372,8 @@
     enum TExitKeyType
         {
         EExitKeyApplication,
-        EExitKeyRed
+        EExitKeyRed,
+        ECommingFromBackground
         };
 
     /**
@@ -1011,10 +1012,10 @@
      */
     TBool iHasFocus;
 
-  /**
+    /**
      * ETrue if Matrix is hidden from TS which is used on startup.
      */
-  TBool isHiddenFromFS;
+    TBool isHiddenFromFS;
 
     /**
      * Own.
--- a/menufw/menufwui/matrixmenu/src/mmappui.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/matrixmenu/src/mmappui.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -12,8 +12,8 @@
 * Contributors:
 *
 * Description:  Application UI class
-*  Version     : %version: MM_176.1.28.1.83 % << Don't touch! Updated by Synergy at check-out.
-*  Version     : %version: MM_176.1.28.1.83 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: MM_176.1.28.1.87 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: MM_176.1.28.1.87 % << Don't touch! Updated by Synergy at check-out.
 *
 */
 
@@ -106,8 +106,8 @@
     iIsKastorEffectStarted = EFalse;
     StartLayoutSwitchFullScreen( AknTransEffect::EApplicationStart );
 
-    RefreshUiPanesL( ETrue );
     Cba()->MakeVisible( EFalse );
+    StatusPane()->MakeVisible( EFalse );
     StatusPane()->SwitchLayoutL( R_AVKON_STATUS_PANE_LAYOUT_USUAL );
 
     iDummyTemplateLib = CMmTemplateLibrary::NewL();
@@ -340,7 +340,7 @@
                 iCurrentContainer->MakeVisible( EFalse );
                 iDummyContainer->DrawNow();
                 }
-            CleanupForExitL( EExitKeyApplication );
+            CleanupForExitL( ECommingFromBackground );
             User::LeaveIfError( iCoeEnv->WsSession().SetWindowGroupOrdinalPosition(
             CEikonEnv::Static()->RootWin().Identifier(), 0 ) );
             iAppkeyHandler->StartL();
@@ -494,11 +494,6 @@
     MMPERF(("CMmAppUi::HandleBackCommandL - START"));
     DEBUG16(("\t_Mm_:current genre: %S",&iCurrentSuiteModel->SuiteName()));
 
-    iDummyContainer->MakeVisible( ETrue );
-    RefreshUiPanesL( ETrue );
-    iCurrentContainer->MakeVisible( EFalse );
-    iDummyContainer->DrawNow();
-
     iHNInterface->HandleBackEventL( iCurrentSuiteModel->SuiteName() );
 
     MMPERF(("CMmAppUi::HandleBackCommandL - DONE"));
@@ -1023,7 +1018,6 @@
 
     if ( IsEditMode() )
         {
-
         TInt modelId = iCurrentSuiteModel->IdByIndex( aModelItemIndex );
         if (modelId != KErrNotFound)
             {
@@ -1823,6 +1817,11 @@
                 aWidgetContainer &&
                 iCurrentContainer->IsHighlightVisible() &&
                 iCurrentContainer->WidgetType() != aWidgetContainer->WidgetType();
+        
+        if( iCurrentContainer && !highlightVisibleBefore )
+            {
+            iCurrentContainer->SetHighlightVisibilityL( EFalse );
+            }
 
         HandleWidgetChangeRefreshL( aWidgetContainer );
 
@@ -2377,7 +2376,6 @@
 //
 void CMmAppUi::HandleSuiteModelInitializedL( CHnSuiteModel* aModel )
     {
-
     StatusPane()->MakeVisible( ETrue );
     Cba()->MakeVisible( ETrue );
     if ( aModel == iHNInterface->GetLastSuiteModelL() )
@@ -2496,27 +2494,47 @@
         iCurrentContainer->CancelDragL( EFalse );
         SetEditModeL( EFalse );
         }
-
+    
+    THnSuiteWidgetType widgetType = iCurrentContainer
+            ? iCurrentContainer->WidgetType() : EUnspecified;
+    
     // reset model - revert to root if current view is not a suite view
     CHnSuiteModel* model = iHNInterface->GetLastSuiteModelL();
-    if ( model && aExitKey == EExitKeyApplication )
+    
+    TBool commingFromBackground( aExitKey == ECommingFromBackground ); 
+    
+    if( model && ( aExitKey == EExitKeyApplication || commingFromBackground ) )
         {
         TBool topSuiteIsBeingEvaluated =
             !model->GetItemsOrder()->IsSuiteReadyToShow();
         TBool topSuiteChanged = ResetToRootL();
         model = NULL; // ResetToRootL might have deleted the model
         TBool presentationChangeExpected = topSuiteChanged || topSuiteIsBeingEvaluated;
+        
+       
+        TBool mustDrawImmediately = !presentationChangeExpected
+                || !iDummyContainer->IsVisible() || commingFromBackground;
 
-        TBool mustDrawImmediately =
-            !presentationChangeExpected || !iDummyContainer->IsVisible();
-
-        if ( iCurrentContainer && mustDrawImmediately )
+        if( iCurrentContainer )
             {
-            DEBUG(("\t_Mm_:Top item index reset"));
-            iCurrentContainer->ResetWidgetPosition();
-            iCurrentContainer->Widget()->UpdateScrollBarsL();
-            iCurrentContainer->MakeVisible( ETrue );
-            iCurrentContainer->DrawNow();
+            if( commingFromBackground )
+                {
+				//do not draw the widget if the previous widget type is diffenernt than the current one 
+                mustDrawImmediately &= ( widgetType
+                        == iCurrentContainer->WidgetType() );
+
+                iCurrentContainer->SetWidgetCommingFromBackground( ETrue );
+                }
+
+            if( mustDrawImmediately )
+                {
+                DEBUG(("\t_Mm_:Top item index reset"));
+                iCurrentContainer->ResetWidgetPosition();
+                iCurrentContainer->Widget()->UpdateScrollBarsL();
+                iCurrentContainer->MakeVisible( ETrue );
+                iCurrentContainer->DrawNow();
+                iCurrentContainer->SetWidgetCommingFromBackground( EFalse );
+                }
             }
         }
 
@@ -2603,6 +2621,7 @@
 
     if( !succeeded )
         {
+        StartLayoutSwitchFullScreen( AknTransEffect::EApplicationExit );
         ShowHomescreenL( EExitReally );
         }
     }
@@ -2804,7 +2823,11 @@
         ResetContainerMapToRootL();
         if( iCurrentContainer )
             {
+            const TInt FirstItemIndex = 0; 
+            iCurrentContainer->GetSuiteModelL()->SetSuiteHighlightL( FirstItemIndex );
+            iMakeHightlightedItemFullyVisible = ETrue;
             iCurrentContainer->ResetWidgetPosition();
+            iCurrentContainer->SetEditModeL( EFalse );
             AddToStackL( iCurrentContainer );
             }
         RefreshUiPanesL( ETrue );
@@ -3035,23 +3058,22 @@
         isHiddenFromFS = EFalse;
         }
 
-  if (iCurrentContainer && iCurrentSuiteModel )
-    {
-    iCurrentContainer->HandleForegroundGainedL();
-    iDummyContainer->MakeVisible( EFalse );
-    iCurrentContainer->MakeVisible( ETrue );
-    RefreshUiPanesL();
+    if( iCurrentContainer && iCurrentSuiteModel )
+        {
+        iCurrentContainer->HandleForegroundGainedL();
+        iDummyContainer->MakeVisible( EFalse );
+        iCurrentContainer->MakeVisible( ETrue );
+        RefreshUiPanesL();
+        }
+    if( iSkinChangeNeeded && !iSkinChangeInProgress )
+        {
+        MAknsSkinInstance* skinInstance = AknsUtils::SkinInstance();
+        if( skinInstance && !skinInstance->IsUpdateInProgress() )
+            {
+            RefreshIconsL();
+            }
+        }
     }
-  if (iSkinChangeNeeded && !iSkinChangeInProgress)
-    {
-    MAknsSkinInstance* skinInstance = AknsUtils::SkinInstance();
-    if (skinInstance && !skinInstance->IsUpdateInProgress())
-      {
-      RefreshIconsL();
-
-      }
-    }
-  }
 
 // ---------------------------------------------------------------------------
 //
--- a/menufw/menufwui/mmwidgets/bwins/mmwidgetsu.def	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/bwins/mmwidgetsu.def	Tue Sep 14 20:58:58 2010 +0300
@@ -40,4 +40,5 @@
 	?AllowMove@CMmWidgetContainer@@QBEHXZ @ 39 NONAME ; int CMmWidgetContainer::AllowMove(void) const
 	?SetTriggerMoveItemL@CMmWidgetContainer@@QAEXHPAVCLiwGenericParamList@@@Z @ 40 NONAME ; void CMmWidgetContainer::SetTriggerMoveItemL(int, class CLiwGenericParamList *)
 	?SetExDialogOpened@CMmWidgetContainer@@QAEXH@Z @ 41 NONAME ; void CMmWidgetContainer::SetExDialogOpened(int)
+	?SetWidgetCommingFromBackground@CMmWidgetContainer@@UAEXH@Z @ 42 NONAME ; void CMmWidgetContainer::SetWidgetCommingFromBackground(int)
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/menufw/menufwui/mmwidgets/data/grid/lct/akn_logical_template_3_vga.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<dhuiml version="1.0" xmlns="http://www.series60.com/xml/dhuiml/1">
+
+<orientation id ="portrait" lct="uiaccel_main_aa_listscroll_pane" variety="0">
+  	
+	<element id="nohighlight">
+		<layout id="anchor" name="anchor" lct="cell_hc_apps_pane" variety="3" >
+			<textvisual id="mul_title" lct="cell_hc_apps_pane_t1" variety="0" >
+				<attributesetter name="text" targetvalue="mul_title" category="data" />
+			</textvisual>
+			<imagevisual id="mul_icon" lct="cell_hc_apps_pane_g1" variety="0" halign="center" >
+				<attributesetter name="imagepath" targetvalue="mul_icon" category="data" />
+			</imagevisual>
+			<imagevisual id="mul_indicator_1" lct="cell_hc_apps_pane_g2" variety="0" >
+				<attributesetter name="imagepath" targetvalue="mul_indicator_1" category="data" />
+			</imagevisual>
+			<imagevisual id="mul_indicator_2" lct="cell_hc_apps_pane_g3" variety="0" >
+				<attributesetter name="imagepath" targetvalue="mul_indicator_2" category="data" />
+			</imagevisual>
+		</layout>	
+ 	</element>
+	
+	<element id="highlight">
+	</element>
+</orientation>
+
+<orientation id ="landscape" lct="uiaccel_main_aa_listscroll_pane" variety="0" >
+
+	<element id="nohighlight">
+		<layout id="anchor" name="anchor" lct="cell_app_pane" variety="2" >
+			<textvisual id="mul_title" lct="cell_app_pane_t1"  variety="0" >
+				<attributesetter name="text" targetvalue="mul_title" category="data" />
+			</textvisual>
+			<imagevisual id="mul_icon" lct="cell_app_pane_g1" variety="0" halign="center" >
+				<attributesetter name="imagepath" targetvalue="mul_icon" category="data" />
+			</imagevisual>
+			<imagevisual id="mul_indicator_1" lct="cell_app_pane_g2" variety="0" >
+				<attributesetter name="imagepath" targetvalue="mul_indicator_1" category="data" />
+			</imagevisual>
+		</layout>
+	</element>	
+	
+	<element id ="highlight">	
+ 	</element>		  
+
+</orientation>
+</dhuiml>
--- a/menufw/menufwui/mmwidgets/eabi/mmwidgetsu.def	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/eabi/mmwidgetsu.def	Tue Sep 14 20:58:58 2010 +0300
@@ -41,4 +41,5 @@
 	_ZN18CMmWidgetContainer19SetTriggerMoveItemLEiP20CLiwGenericParamList @ 40 NONAME
 	_ZNK18CMmWidgetContainer9AllowMoveEv @ 41 NONAME
 	_ZN18CMmWidgetContainer17SetExDialogOpenedEi @ 42 NONAME
+	_ZN18CMmWidgetContainer30SetWidgetCommingFromBackgroundEi @ 43 NONAME
 
--- a/menufw/menufwui/mmwidgets/group/bld.inf	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/group/bld.inf	Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:  Build information file for project mmwidgets
-*  Version     : %version: 8.1.3.1.8 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: 8.1.3.1.9 % << Don't touch! Updated by Synergy at check-out.
 *
 */
 
@@ -26,78 +26,54 @@
 ../rom/mmwidgets.iby  CORE_APP_LAYER_IBY_EXPORT_PATH(mmwidgets.iby)
 
 // list exports
-../data/list/custom/akn_single_large_graphic_pane.xml Z:/resource/list/custom/akn_single_large_graphic_pane.xml
-
-../data/list/custom/akn_logical_template_1.xml Z:/resource/list/custom/akn_logical_template_1.xml
-
-../data/list/custom/akn_logical_template_2.xml Z:/resource/list/custom/akn_logical_template_2.xml
-
-../data/list/custom/akn_logical_template_3.xml Z:/resource/list/custom/akn_logical_template_3.xml
-
-../data/list/custom/akn_logical_template_4.xml Z:/resource/list/custom/akn_logical_template_4.xml
-
-../data/list/custom/akn_logical_template_5.xml Z:/resource/list/custom/akn_logical_template_5.xml
-
-../data/list/custom/akn_logical_template_6.xml Z:/resource/list/custom/akn_logical_template_6.xml
-
-../data/list/custom/akn_logical_template_7.xml Z:/resource/list/custom/akn_logical_template_7.xml
-
-../data/list/custom/akn_logical_template_8.xml Z:/resource/list/custom/akn_logical_template_8.xml
-
-../data/list/custom/akn_logical_template_10.xml Z:/resource/list/custom/akn_logical_template_10.xml
-
-../data/list/custom/akn_logical_template_11.xml Z:/resource/list/custom/akn_logical_template_11.xml
-
-../data/list/custom/akn_logical_template_12.xml Z:/resource/list/custom/akn_logical_template_12.xml
-
-../data/list/custom/akn_logical_template_13.xml Z:/resource/list/custom/akn_logical_template_13.xml
+../data/list/custom/akn_single_large_graphic_pane.xml   Z:/resource/list/custom/akn_single_large_graphic_pane.xml
+../data/list/custom/akn_logical_template_1.xml          Z:/resource/list/custom/akn_logical_template_1.xml
+../data/list/custom/akn_logical_template_2.xml          Z:/resource/list/custom/akn_logical_template_2.xml
+../data/list/custom/akn_logical_template_3.xml          Z:/resource/list/custom/akn_logical_template_3.xml
+../data/list/custom/akn_logical_template_4.xml          Z:/resource/list/custom/akn_logical_template_4.xml
+../data/list/custom/akn_logical_template_5.xml          Z:/resource/list/custom/akn_logical_template_5.xml
+../data/list/custom/akn_logical_template_6.xml          Z:/resource/list/custom/akn_logical_template_6.xml
+../data/list/custom/akn_logical_template_7.xml          Z:/resource/list/custom/akn_logical_template_7.xml
+../data/list/custom/akn_logical_template_8.xml          Z:/resource/list/custom/akn_logical_template_8.xml
+../data/list/custom/akn_logical_template_10.xml         Z:/resource/list/custom/akn_logical_template_10.xml
+../data/list/custom/akn_logical_template_11.xml         Z:/resource/list/custom/akn_logical_template_11.xml
+../data/list/custom/akn_logical_template_12.xml         Z:/resource/list/custom/akn_logical_template_12.xml
+../data/list/custom/akn_logical_template_13.xml         Z:/resource/list/custom/akn_logical_template_13.xml
 
 // grid exports
-../data/grid/custom/akn_single_large_graphic_pane.xml Z:/resource/grid/custom/akn_single_large_graphic_pane.xml
- 
-../data/grid/custom/akn_logical_template_1.xml Z:/resource/grid/custom/akn_logical_template_1.xml
-
-../data/grid/custom/akn_logical_template_2.xml Z:/resource/grid/custom/akn_logical_template_2.xml
-
-../data/grid/custom/akn_logical_template_3.xml Z:/resource/grid/custom/akn_logical_template_3.xml
-
-../data/grid/custom/akn_logical_template_4.xml Z:/resource/grid/custom/akn_logical_template_4.xml
-
-//lct exports
-../data/list/lct/akn_list_single_hc_apps_pane.xml Z:/resource/list/lct/akn_list_single_hc_apps_pane.xml
-
-../data/list/lct/akn_single_large_graphic_pane.xml Z:/resource/list/lct/akn_single_large_graphic_pane.xml
-
-../data/list/lct/akn_logical_template_1.xml Z:/resource/list/lct/akn_logical_template_1.xml
+../data/grid/custom/akn_single_large_graphic_pane.xml   Z:/resource/grid/custom/akn_single_large_graphic_pane.xml
+../data/grid/custom/akn_logical_template_1.xml          Z:/resource/grid/custom/akn_logical_template_1.xml
+../data/grid/custom/akn_logical_template_2.xml          Z:/resource/grid/custom/akn_logical_template_2.xml
+../data/grid/custom/akn_logical_template_3.xml          Z:/resource/grid/custom/akn_logical_template_3.xml
+../data/grid/custom/akn_logical_template_4.xml          Z:/resource/grid/custom/akn_logical_template_4.xml
 
-../data/list/lct/akn_logical_template_2.xml Z:/resource/list/lct/akn_logical_template_2.xml
-
-../data/list/lct/akn_logical_template_3.xml Z:/resource/list/lct/akn_logical_template_3.xml
-
-../data/list/lct/akn_logical_template_4.xml Z:/resource/list/lct/akn_logical_template_4.xml
-
-../data/list/lct/akn_logical_template_5.xml Z:/resource/list/lct/akn_logical_template_5.xml
-
-../data/list/lct/akn_logical_template_6.xml Z:/resource/list/lct/akn_logical_template_6.xml
+//lct list exports
+../data/list/lct/akn_list_single_hc_apps_pane.xml       Z:/resource/list/lct/akn_list_single_hc_apps_pane.xml
+../data/list/lct/akn_single_large_graphic_pane.xml      Z:/resource/list/lct/akn_single_large_graphic_pane.xml
+../data/list/lct/akn_logical_template_1.xml             Z:/resource/list/lct/akn_logical_template_1.xml
+../data/list/lct/akn_logical_template_2.xml             Z:/resource/list/lct/akn_logical_template_2.xml
+../data/list/lct/akn_logical_template_3.xml             Z:/resource/list/lct/akn_logical_template_3.xml
+../data/list/lct/akn_logical_template_4.xml             Z:/resource/list/lct/akn_logical_template_4.xml
+../data/list/lct/akn_logical_template_5.xml             Z:/resource/list/lct/akn_logical_template_5.xml
+../data/list/lct/akn_logical_template_6.xml             Z:/resource/list/lct/akn_logical_template_6.xml
+../data/list/lct/akn_logical_template_6a.xml            Z:/resource/list/lct/akn_logical_template_6a.xml
+../data/list/lct/akn_logical_template_7.xml             Z:/resource/list/lct/akn_logical_template_7.xml
+../data/list/lct/akn_logical_template_8.xml             Z:/resource/list/lct/akn_logical_template_8.xml
+../data/list/lct/akn_logical_template_12.xml            Z:/resource/list/lct/akn_logical_template_12.xml
 
-../data/list/lct/akn_logical_template_6a.xml Z:/resource/list/lct/akn_logical_template_6a.xml
-
-../data/list/lct/akn_logical_template_7.xml Z:/resource/list/lct/akn_logical_template_7.xml
+//lct grid exports
+../data/grid/lct/akn_logical_template_3_vga.xml         Z:/resource/grid/lct/akn_logical_template_3_vga.xml
+../data/grid/lct/akn_logical_template_3.xml             Z:/resource/grid/lct/akn_logical_template_3.xml
 
-../data/list/lct/akn_logical_template_8.xml Z:/resource/list/lct/akn_logical_template_8.xml
-
-../data/list/lct/akn_logical_template_12.xml Z:/resource/list/lct/akn_logical_template_12.xml
-
-../data/grid/lct/akn_logical_template_3.xml Z:/resource/grid/lct/akn_logical_template_3.xml
 
 ../inc/mmdraganddropobserver.h         |../../../inc/mmdraganddropobserver.h 
-../inc/mmlongtapobserver.h         |../../../inc/mmlongtapobserver.h 
+../inc/mmlongtapobserver.h             |../../../inc/mmlongtapobserver.h 
 ../inc/mmkeyeventobserver.h            |../../../inc/mmkeyeventobserver.h
 ../inc/mmwidgetobserver.h              |../../../inc/mmwidgetobserver.h 
 ../inc/mmwidgetcontainer.h             |../../../inc/mmwidgetcontainer.h 
 ../inc/mmvisibilityobserver.h          |../../../inc/mmvisibilityobserver.h 
 ../inc/mmtemplatelibrary.h             |../../../inc/mmtemplatelibrary.h
-../inc/mmwidgetsconstants.h             |../../../inc/mmwidgetsconstants.h
+../inc/mmwidgetsconstants.h            |../../../inc/mmwidgetsconstants.h
 
 PRJ_MMPFILES
 mmwidgets.mmp
--- a/menufw/menufwui/mmwidgets/inc/mmdraweranimator.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/inc/mmdraweranimator.h	Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:  CMmDrawerAnimator declaration
-*  Version     : %version: MM_17.1.10 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: MM_17.1.11 % << Don't touch! Updated by Synergy at check-out.
 *
 */
 
@@ -160,8 +160,8 @@
      * and end in the EDrag floating item position, when item had been start drag.
      *
      * @since S60 v5.0
-	 * @param aDraggedIndex Draged item index to be animated.
-	 * @param aPoint End position of animated item.
+     * @param aDraggedIndex Draged item index to be animated.
+     * @param aPoint End position of animated item.
      */
     void AnimateDragItemStartL( TInt aDraggedIndex, TPoint aPoint );
 
@@ -239,11 +239,6 @@
     TTimeIntervalMicroSeconds iDelay;
 
     /**
-     * Last redraw time
-     */
-    TTime iLastRedrawTime;
-
-    /**
      * Effects api.
      */
     MAknListBoxTfx *iTransTfx;
--- a/menufw/menufwui/mmwidgets/inc/mmgrid.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/inc/mmgrid.h	Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:  CMmGrid declaration
-*  Version     : %version: MM_32.1.25 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: MM_32.1.26 % << Don't touch! Updated by Synergy at check-out.
 *
 */
 
@@ -397,25 +397,6 @@
     void ProcessScrollEventL( CEikScrollBar* aScrollBar,
             TEikScrollEvent aEventType );
 
-    /**
-     * Handles periodic events from @c iRedrawTimer.
-     * Such events are generated at equal time intervals while
-     * the view is being scrolled using the scrollbar.
-     * This function typically calls @c ProcessScrollEventL,
-     * which actually scrolls the view and causes a redraw.
-     */
-    void HandleRedrawTimerEventL();
-
-private:
-    /**
-     * Callback function for @c iRedrawTimer.
-     * It simply calls @c HandleRedrawTimerEventL and returns 0.
-     *
-     * @param aPtr A pointer to CMmGrid object.
-     * @return 0 (always).
-     */
-    static TInt RedrawTimerCallback( TAny* aPtr );
-
 private:
     /**
      * Grid model.
@@ -472,26 +453,6 @@
      */
     TPoint iButton1DownPos;
 
-    /**
-     * ETrue if the view is being scrolled with the scrollbar.
-     */
-    TBool iScrollbarThumbIsBeingDragged;
-
-    /**
-     * Stores the number of scrollbar events that were ignored.
-     * It is only used while scrolling the view using scrollbar,
-     * in such situation the scroll events that this object receives
-     * are ignored, and actual scrolling is done only when
-     * iRedrawTimer completes.
-     */
-    TInt iSkippedScrollbarEventsCount;
-
-    /**
-     * A timer that initiates redraws at certain time intervals.
-     * It is used to refresh the view while scrolling with
-     * the scrollbar.
-     */
-    CPeriodic* iRedrawTimer;
     };
 
 #endif // C_MMGRID_H
--- a/menufw/menufwui/mmwidgets/inc/mmgridcontainer.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/inc/mmgridcontainer.h	Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:  CMmGridContainer declaration
-*  Version     : %version: MM_29.1.14 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: MM_29.1.15 % << Don't touch! Updated by Synergy at check-out.
 *
 */
 
@@ -212,6 +212,11 @@
      * @return ETrue if visible, EFalse otherwise.
      */
     TBool ItemIsVisible( TInt aItemIndex ) const;
+    
+    /**
+     * Sets a proper flag if the widget is brought to foreground.
+     */
+    virtual void SetWidgetCommingFromBackground( TBool /*aCommingFromBackground*/ );
 
 private:
     /**
--- a/menufw/menufwui/mmwidgets/inc/mmlistbox.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/inc/mmlistbox.h	Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:  CMmListBox
-*  Version     : %version: MM_22.1.17 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: MM_22.1.19 % << Don't touch! Updated by Synergy at check-out.
 *
 */
 
@@ -23,7 +23,7 @@
 #include <e32std.h>
 #include <e32base.h>
 #include <aknlists.h>
-#include <e32cmn.h> 
+#include <e32cmn.h>
 
 class CMmListBoxModel;
 class CMmListBoxItemDrawer;
@@ -41,47 +41,47 @@
  *  @ingroup group_mmwidgets
  */
 NONSHARABLE_CLASS( CMmListBox ) : public CEikFormattedCellListBoxTypedef
-	{
+  {
 public:
     /**
      * Two-phased constructor.
-     * 
+     *
      * @since S60 v3.0
      * @param aParent Parent control.
      * @param aFlags Flags.
-     * @param aTemplateLibrary Template library for drawer. 
+     * @param aTemplateLibrary Template library for drawer.
      * @return List box.
      */
     static CMmListBox* NewL( const CCoeControl* aParent, TInt aFlags,
         CMmTemplateLibrary* aTemplateLibrary );
-    
+
     /**
      * Two-phased constructor.
-     * 
+     *
      * @since S60 v3.0
      * @param aParent Parent control.
      * @param aFlags Flags.
-     * @param aTemplateLibrary Template library for drawer. 
+     * @param aTemplateLibrary Template library for drawer.
      * @return List box.
      */
     static CMmListBox* NewLC( const CCoeControl* aParent, TInt aFlags,
         CMmTemplateLibrary* aTemplateLibrary );
-	
+
     /**
-	 * Destructor.
-	 * 
-	 * @since S60 v3.0
-	 */
-	virtual ~CMmListBox();
-   
-	/**
+   * Destructor.
+   *
+   * @since S60 v3.0
+   */
+  virtual ~CMmListBox();
+
+  /**
      * Gets the listbox model.
      *
      * @since S60 v3.0
      * @return Listbox model.
      */
-    CMmListBoxModel * MmModel(); 
-    
+    CMmListBoxModel * MmModel();
+
     /**
      * Sets the listbox model.
      *
@@ -97,43 +97,43 @@
     * @return Listbox view.
     */
    CListBoxView* MakeViewClassInstanceL();
-   
-   /** 
+
+   /**
     * Creates the item drawer for listbox.
-    * 
-    * @param aTemplateLibrary Template library for drawer. 
+    *
+    * @param aTemplateLibrary Template library for drawer.
     * @since S60 v3.0
     */
    void CreateItemDrawerL( CMmTemplateLibrary* aTemplateLibrary );
-   
-   /** 
+
+   /**
     * Sets the flag.
-    * 
+    *
     * @since S60 v3.0
     * @param aFlag Avkon list flag
     */
    void SetListFlag( TInt aFlag );
-   
-   /** 
+
+   /**
     * Clears the flag.
-    * 
+    *
     * @since S60 v3.0
     * @param aFlag Avkon list flag
     */
    void ClearListFlag( TInt aFlag );
-      
+
 
 public: // from base class CCoeControl.
 
    /**
-    * From CCoeControl.     
+    * From CCoeControl.
     * Handles pointer events.
-    * 
+    *
     * @since S60 v3.0
     * @param aPointerEvent Pointer event.
     */
-   void HandlePointerEventL( const TPointerEvent& aPointerEvent ); 
-   
+   void HandlePointerEventL( const TPointerEvent& aPointerEvent );
+
    /**
     * From base class.
     *
@@ -141,9 +141,9 @@
     * @param aKeyEvent Key event.
     * @param aType Event code.
     */
-   TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, 
+   TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
            TEventCode aType );
-   
+
    /**
     * Adjusts the given rectangle.
     *
@@ -152,28 +152,28 @@
     * @return Error code.
     */
    TInt AdjustRectHeightToWholeNumberOfItems( TRect& aRect ) const;
-   
+
    /**
     * Sets item drawer and view background context.
     *
     * @since S60 v3.0
     * @param aBgContext Background context.
     */
-   void SetItemDrawerAndViewBgContext( 
+   void SetItemDrawerAndViewBgContext(
            CAknsBasicBackgroundControlContext * aBgContext );
- 
+
    /**
     * Updates scrollbar.
     *
     * @since S60 v3.0
     */
    void UpdateScrollBarsL();
-   
+
    /**
     * Special version of Update scrollbar that never calls DrawNow()
     */
    void UpdateScrollBarsNoRedrawL();
-   
+
    /**
     * Checks if all items fit in view rectangle.
     *
@@ -181,7 +181,7 @@
     * @return Do all items fit in view rectangle.
     */
    TBool AllItemsFitInViewRect();
-   
+
    /**
     * Handles scrollbar visibility change.
     *
@@ -189,7 +189,7 @@
     * @return Is redraw needed.
     */
    TBool HandleScrollbarVisibilityChangeL();
-   
+
    /**
     * Sets marquee adapter.
     *
@@ -197,7 +197,7 @@
     * @param aAdapter Marquee adapter.
     */
    void SetMarqueeAdapter( CMmMarqueeAdapter* aAdapter );
-   
+
    /**
     * Notifies that marquee is being drawn.
     *
@@ -205,76 +205,76 @@
     * @param aIsMarqueeBeingDrawn Is marquee being drawn.
     */
    void SetMarqueeDrawing( TBool aIsMarqueeBeingDrawn );
-   
+
    /**
     * Handles item removal. redraws view, updates scrollbar.
     *
     * @since S60 v3.0
     */
    void HandleItemRemovalL();
-   
+
    /**
     * Redraws items in view if it is necessary.
     *
     * @since S60 v3.0
     * @param aPreviousCurrent Previously current item index.
     * @param aCurrent Current item index.
-    * 
+    *
     * @return true if anything was drawn.
     */
-	TBool RedrawIfNecessary( TInt aPreviousCurrent, TInt aCurrent );
-	
-	/**
-	 * Overridden from base class to allow for drawing scrollbar
-	 * background in mirrored layout.
-	 * 
-	 * @param aRect clipping rect
-	 */
-	void Draw(const TRect& aRect) const;
-	
-	/**
+  TBool RedrawIfNecessary( TInt aPreviousCurrent, TInt aCurrent );
+
+  /**
+   * Overridden from base class to allow for drawing scrollbar
+   * background in mirrored layout.
+   *
+   * @param aRect clipping rect
+   */
+  void Draw(const TRect& aRect) const;
+
+  /**
      * Draws the listbox view.
      *
      * @since S60 v5.0
      */
-	void DrawView();
-    
+  void DrawView();
+
     /**
      * Set the vertical item offset;
      * @param aOffset The offset to set to the widget.
-     * 
+     *
      * @since S60 v5.0
      */
     void SetVerticalItemOffset( TInt aOffset );
 
     /**
      * Gets the current widget vertical item offset.
-     * 
+     *
      * @since S60 v5.0
      * @return The current widget vertical item offset.
      */
     TInt VerticalItemOffset() const;
-    
+
     /**
      * Simply sets the item height members in widget and view.
      */
     void SetItemHeight( TInt aItemHeight );
-    
+
     /**
      * Updates scrollbar thumbs.
      */
     void UpdateScrollBarThumbs();
-    
+
     /**
      * Counts the number of component controls which this component owns.
-     */ 
+     */
     TInt CountComponentControls() const;
-    
+
     /**
      * Disables/enables child component (scrollbar) drawing.
      */
     void SetDisableChildComponentDrawing( TBool aDisable );
-    
+
     /**
      * Handles scrolling event.
      *
@@ -282,51 +282,51 @@
      * @param aScrollBar Scrollbar being scrolled.
      * @param aEventType Type of scrollbar event.
      */
-    void HandleScrollEventL( CEikScrollBar* aScrollBar, 
+    void HandleScrollEventL( CEikScrollBar* aScrollBar,
             TEikScrollEvent aEventType );
-    
+
 private:
     /**
      * Default constructor.
-     * 
+     *
      * @since S60 v3.0
      */
-	CMmListBox();
-	
+  CMmListBox();
+
     /**
      * 2nd phase constructor.
-     * 
+     *
      * @since S60 v3.0
      * @param aParent Parent control.
      * @param aFlags Flags.
-     * @param aTemplateLibrary Template library for drawer. 
+     * @param aTemplateLibrary Template library for drawer.
      */
-	void ConstructL( const CCoeControl* aParent, TInt aFlags,
+  void ConstructL( const CCoeControl* aParent, TInt aFlags,
         CMmTemplateLibrary* aTemplateLibrary );
-    
+
     /**
      * Handles pointer events when edit mode is enabled.
-     * 
+     *
      * This method is only called during edit mode. It selectively passes
      * only some of the pointer events to CAknGrid::HandlePointerEventL
      * in order to disable flicking and panning.
-     * 
+     *
      * @param aPointerEvent pointer event
      */
     void HandlePointerEventInEditModeL( const TPointerEvent& aPointerEvent );
-    
+
     /**
      * Scrolls the view if pointer is close to the top/bottom edge.
-     * 
+     *
      * This method is used only when edit mode is active. In a way it
      * brings back the focus based scrolling behavior that was present
      * in CAknGrid before ODE scrolling was introduced.
      */
     void HandleScrollingInEditMode( const TPointerEvent& aPointerEvent );
-    
+
     /**
      * Checks if pointer position is within the scroll-triggering area.
-     * 
+     *
      * @param aPointerEvent pointer event
      * @return true if pointer above the top scrolling threshold.
      */
@@ -335,120 +335,88 @@
 
     /**
      * Checks if pointer position is within the scroll-triggering area.
-     * 
+     *
      * @param aPointerEvent pointer event
      * @return true if pointer below the bottom scrolling threshold.
      */
     TBool IsPointerInBottomScrollingThreshold(
             const TPointerEvent& aPointerEvent ) const;
-    
+
     /**
      * Scrolls the view if the pointer is near top/bottom edge of the screen.
-     * 
+     *
      * Assumes that current item index is the index of the item under the
      * pointer. The time value returned is based on the distance of the pointer
      * from the top/bottom edge of the grid view (this makes the scrolling speed
      * dependent of how close the pointer is to the edge).
      * If there is no need to continue scrolling because the beginning/end of
      * the list has already been reached, 0 is returned.
-     * 
+     *
      * @param aPointerEvent pointer event
      * @return time to wait before calling this method again (in microseconds)
      *         or 0 if already at the beginning/end of the list
      */
     TInt ScrollIfNeeded( const TPointerEvent& aPointerEvent );
-    
+
+    /**
+     * Minimal scrolling (setting top item index and vertical offset) with
+     * boundary checking and WITHOUT redrawing.
+     *
+     * @param aDistanceInPixels Distance to scroll.
+     */
+    void ScrollWithoutRedraw( TInt aDistanceInPixels );
+
     /**
      * Ensures that elements are drawn correctly when mirrored layout is
      * used and scrollbar is visible by shifting ViewRect to the right.
      */
     void FixViewForMirroredLayout();
-    
+
     /**
      * Redraws the background under the vertical scrollbar in mirrored layout.
-     * 
+     *
      * The reason such method is needed is that view rectangle is shifted
      * to the right in mirrored layout and does not cover the scrollbar
      * area. In normal (non-mirrored) mode this method does nothing.
      */
     void RedrawScrollbarBackground() const;
-    
+
     /**
      * Does actual handling of scroll events.
-     * 
+     *
      * @param aScrollBar Scrollbar being scrolled.
      * @param aEventType Type of scrollbar event.
      */
-    void ProcessScrollEventL( CEikScrollBar* aScrollBar, 
+    void ProcessScrollEventL( CEikScrollBar* aScrollBar,
             TEikScrollEvent aEventType );
-    
-    /**
-     * Handles periodic events from @c iRedrawTimer.
-     * Such events are generated at equal time intervals while
-     * the view is being scrolled using the scrollbar.
-     * This function typically calls @c ProcessScrollEventL,
-     * which actually scrolls the view and causes a redraw. 
-     */
-    void HandleRedrawTimerEventL();
-    
-private:
-    /**
-     * Callback function for @c iRedrawTimer.
-     * It simply calls @c HandleRedrawTimerEventL and returns 0.
-     * 
-     * @param aPtr A pointer to CMmListBox object.
-     * @return 0 (always).
-     */
-    static TInt RedrawTimerCallback( TAny* aPtr );
-    
+
 private: // Data
     /**
      * Item drawer.
      */
     CMmListBoxItemDrawer* iMmDrawer;
-    
+
     /**
      * Multimedia Menu model.
      */
-	CMmListBoxModel* iMmModel;
+    CMmListBoxModel* iMmModel;
 
     /**
      * marquee adapter.
      */
-	CMmMarqueeAdapter* iMarqueeAdapter;
+    CMmMarqueeAdapter* iMarqueeAdapter;
 
     /**
      * Blocks scrollbar drawing. When this flag is set scrollbars components
-     * are blocked in the CountComponentControls() method;   
+     * are blocked in the CountComponentControls() method;
      */
-	TBool iDisableChildComponentDrawing;
-	
-	/**
+    TBool iDisableChildComponentDrawing;
+
+    /**
      * This member is only used in edit mode to store the position of the pointer
      * during EButton1Down event.
      */
     TPoint iButton1DownPos;
-    
-    /**
-     * ETrue if the view is being scrolled with the scrollbar.
-     */
-    TBool iScrollbarThumbIsBeingDragged;
-    
-    /**
-     * Stores the number of scrollbar events that were ignored.
-     * It is only used while scrolling the view using scrollbar,
-     * in such situation the scroll events that this object receives
-     * are ignored, and actual scrolling is done only when
-     * iRedrawTimer completes.
-     */
-    TInt iSkippedScrollbarEventsCount;
-    
-    /**
-     * A timer that initiates redraws at certain time intervals.
-     * It is used to refresh the view while scrolling with
-     * the scrollbar.
-     */
-    CPeriodic* iRedrawTimer;
-	};
-	
+  };
+
 #endif // MMLISTBOX_H
--- a/menufw/menufwui/mmwidgets/inc/mmlistboxcontainer.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/inc/mmlistboxcontainer.h	Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:  CMmListBoxContainer
-*  Version     : %version: MM_21.1.10 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: MM_21.1.11 % << Don't touch! Updated by Synergy at check-out.
 *
 */
 
@@ -166,6 +166,13 @@
      */
     THnSuiteWidgetType WidgetType();
 
+    /**
+     * Sets a proper flag if the widget is brought to foreground.
+     * 
+     * @param  aCommingFromBackground indicates whether the widget is brought to foreground.
+     */
+    virtual void SetWidgetCommingFromBackground( TBool aCommingFromBackground );
+	
 public:
     /**
       * Draws the widget view.
@@ -189,7 +196,7 @@
      * @return The current widget vertical item offset.
      */
     virtual TInt VerticalItemOffset() const;
-    
+        
 protected: // from CMmWidgetContainer
     
     /**
--- a/menufw/menufwui/mmwidgets/inc/mmlistboxview.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/inc/mmlistboxview.h	Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:
-*  Version     : %version: MM_12.1.9 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: MM_12.1.10 % << Don't touch! Updated by Synergy at check-out.
 *
 */
 
@@ -187,6 +187,13 @@
      * @return
      */
     TInt ModelItemsCount();
+    
+    /**
+     * Sets a proper flag if the list is brought to foreground.
+     *
+     *  @param aCommingFromBackground indicates whether the list is brought to foreground.
+     */
+    void SetListCommingFromBackground(TBool aCommingFromBackground);
 
 private:
 
@@ -223,7 +230,14 @@
    * @since S60 v3.0
    * @param aIndex Current Item index.
    */
-    void SetPreviouslyDrawnCurrentItemIndex( TBool aIndex );
+   void SetPreviouslyDrawnCurrentItemIndex( TBool aIndex );
+    
+   /**
+    * Gets the flag indicating if the list is being brought to foreground.
+    * @return Last item index.
+    */
+   TBool GetListCommingFromBackground() const;
+    
 
 private:
 
@@ -236,6 +250,11 @@
    * When ETrue, disables ScrollToMakeItemVisible method.
    */
   TBool iScrollToItemDisabled;
+  
+  /**
+   * When ETrue the list is being brought from background
+   */
+  TBool iListCommingFromBackground;
     };
 
 #endif // MMLISTBOXVIEW_H
--- a/menufw/menufwui/mmwidgets/inc/mmwidgetcontainer.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/inc/mmwidgetcontainer.h	Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:
-*  Version     : %version: MM_48.1.43 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: MM_48.1.46 % << Don't touch! Updated by Synergy at check-out.
 *
 */
 
@@ -697,6 +697,11 @@
      * Widget position cache.
      */
     TMmWidgetPosition WidgetPositionCache() const;
+    
+    /**
+     * Sets a proper flag if the widget is brought to foreground.
+     */
+    IMPORT_C virtual void SetWidgetCommingFromBackground( TBool /*aCommingFromBackground*/ );
 
 public: // from MMmVisibilityObserver
 
@@ -1076,6 +1081,10 @@
      */
     TBool iHighlightVisibleBeforeLongTap;
 
+    /**
+     * ETrue if widget highlight must be reset. 
+     */
+    TBool iResetHighlight;
   };
 
 #endif // MMMWIDGETCONTAINER_H
--- a/menufw/menufwui/mmwidgets/inc/mmwidgetsconstants.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/inc/mmwidgetsconstants.h	Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:  Constants for the matrixmenu
-*  Version     : %version: 33.1.14 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: 33.1.16 % << Don't touch! Updated by Synergy at check-out.
 *
 */
 
@@ -27,121 +27,138 @@
  * Grid constants' namespace.
  */
 namespace MmGrid
-  {
-  /**
-   * X component of the 4x3 layout.
-   */
-  const TInt K4By3LayoutX = 4;
+    {
+    /**
+     * X component of the 4x3 layout.
+     */
+    const TInt K4By3LayoutX = 4;
 
-  /**
-   * Y component of the 4x3 layout.
-   */
-  const TInt K4By3LayoutY = 3;
+    /**
+     * Y component of the 4x3 layout.
+     */
+    const TInt K4By3LayoutY = 3;
 
-  /**
-   * X component of the 3x4 layout.
-   */
+    /**
+     * X component of the 3x4 layout.
+     */
 
-  const TInt K3By4LayoutX = 3;
+    const TInt K3By4LayoutX = 3;
 
-  /**
-   * Y component of the 3x4 layout.
-   */
-  const TInt K3By4LayoutY = 4;
+    /**
+     * Y component of the 3x4 layout.
+     */
+    const TInt K3By4LayoutY = 4;
 
-  /**
-   * X component of the 4x5 layout.
-   */
-  const TInt K4By5LayoutX = 4;
+    /**
+     * X component of the 4x5 layout.
+     */
+    const TInt K4By5LayoutX = 4;
 
-  /**
-   * Y component of the 5x4 layout.
-   */
-  const TInt K4By5LayoutY = 5;
+    /**
+     * Y component of the 5x4 layout.
+     */
+    const TInt K4By5LayoutY = 5;
 
-  /**
-   * X component of the 5x4 layout.
-   */
-  const TInt K5By4LayoutX = 5;
+    /**
+     * X component of the 5x4 layout.
+     */
+    const TInt K5By4LayoutX = 5;
 
-  /**
-   * Y component of the 5x4 layout.
-   */
-  const TInt K5By4LayoutY = 4;
+    /**
+     * Y component of the 5x4 layout.
+     */
+    const TInt K5By4LayoutY = 4;
 
-  /**
-   * Below this value, default highlight in 3x4 grid
-   * is set up on the first item. Otherwize, on the default
-   * highlight.
-   */
-  const TInt K3By4Threshold(5);
+    /**
+     * Below this value, default highlight in 3x4 grid
+     * is set up on the first item. Otherwize, on the default
+     * highlight.
+     */
+    const TInt K3By4Threshold( 5 );
 
-  /**
-   * Below this value, default highlight in 4x3 grid
-   * is set up on the first item. Otherwize, on the default
-   * highlight.
-   */
-  const TInt K4By3Threshold(6);
+    /**
+     * Below this value, default highlight in 4x3 grid
+     * is set up on the first item. Otherwize, on the default
+     * highlight.
+     */
+    const TInt K4By3Threshold( 6 );
 
-  /**
-   * Below this value, default highlight in 5x4 grid
-   * is set up on the first item. Otherwize, on the default
-   * highlight.
-   */
-  const TInt K5By4Threshold(8);
+    /**
+     * Below this value, default highlight in 5x4 grid
+     * is set up on the first item. Otherwize, on the default
+     * highlight.
+     */
+    const TInt K5By4Threshold( 8 );
 
-  /**
-   * Below this value, default highlight in 4x5 grid
-   * is set up on the first item. Otherwize, on the default
-   * highlight.
-   */
-  const TInt K4By5Threshold(10);
+    /**
+     * Below this value, default highlight in 4x5 grid
+     * is set up on the first item. Otherwize, on the default
+     * highlight.
+     */
+    const TInt K4By5Threshold( 10 );
 
-  /**
-   * Default highlight in 3x4 grid.
-   */
-  const TInt K3By4DefaultHighlight(4);
+    /**
+     * Default highlight in 3x4 grid.
+     */
+    const TInt K3By4DefaultHighlight( 4 );
 
-  /**
-   * Default highlight in 4x3 grid.
-   */
-  const TInt K4By3DefaultHighlight(5);
+    /**
+     * Default highlight in 4x3 grid.
+     */
+    const TInt K4By3DefaultHighlight( 5 );
 
-  /**
-   * Default highlight in 5x4 grid.
-   */
-  const TInt K5By4DefaultHighlight(7);
+    /**
+     * Default highlight in 5x4 grid.
+     */
+    const TInt K5By4DefaultHighlight( 7 );
 
-  /**
-   * Default highlight in 4x5 grid.
-   */
-  const TInt K4By5DefaultHighlight(8);
+    /**
+     * Default highlight in 4x5 grid.
+     */
+    const TInt K4By5DefaultHighlight( 8 );
 
-  /**
-   * Number of rows in portrait/non-zoom mode;
-   */
-  const TInt KRowsPortraitZoomNormal(4);
+    /**
+     * Number of rows in portrait/non-zoom mode;
+     */
+    const TInt KRowsPortraitZoomNormal( 4 );
 
-  /**
-   * Number of columns in landscape/non-zoom mode;
-   */
-  const TInt KColsPortraitZoomNormal(3);
+    /**
+     * Number of columns in landscape/non-zoom mode;
+     */
+    const TInt KColsPortraitZoomNormal( 3 );
 
-  /**
-   * Number of rows in portrait/non-zoom mode;
-   */
-  const TInt KRowsLandscapeZoomNormal(3);
+    /**
+     * Number of rows in portrait/non-zoom mode;
+     */
+    const TInt KRowsLandscapeZoomNormal( 3 );
 
-  /**
-   * Number of columns in landscape/non-zoom mode;
-   */
-  const TInt KColsLandscapeZoomNormal(4);
+    /**
+     * Number of columns in landscape/non-zoom mode;
+     */
+    const TInt KColsLandscapeZoomNormal( 4 );
 
     /**
      * Focus based scrolling item threshold for grid.
      */
     const TReal KFocusScrollingThreshold( 0.27 );
-  }
+
+    /**
+     * Scrolling step (in pixels) for grid.
+     */
+    const TInt KScrollingStep( 10 );
+
+    /**
+     * Determines the speed of focus-based scrolling in edit mode.
+     * Minimal delay of scrolling in the grid layout.
+     */
+    const TInt KEditModeScrollingGridMinDelay( 2000 );
+
+    /**
+     * Determines the speed of focus-based scrolling in edit mode.
+     * Maximal delay of scrolling in the grid layout.
+     */
+    const TInt KEditModeScrollingGridMaxDelay( 30000 );
+    }
 
 /**
  * Listbox constants' namespace.
@@ -163,13 +180,30 @@
      * Focus based scrolling item threshold for list.
      */
     const TReal KFocusScrollingThreshold( 0.55 );
+    
+    /**
+     * Scrolling step (in pixels) for listbox.
+     */
+    const TInt KScrollingStep( 10 );
+    
+    /**
+     * Determines the speed of focus-based scrolling in edit mode.
+     * Minimal delay of scrolling in the listbox layout.
+     */
+    const TInt KEditModeScrollingListBoxMinDelay( 4000 );
+
+    /**
+     * Determines the speed of focus-based scrolling in edit mode.
+     * Maximal delay of scrolling in the listbox layout.
+     */
+    const TInt KEditModeScrollingListBoxMaxDelay( 30000 );
     }
 
 /**
  * Drag and drop related constants.
  */
 namespace MmEffects
-  {
+    {
     /**
      * Threshold for items shift.
      */
@@ -219,33 +253,27 @@
      * Time between two butto repeat events.
      */
     const TInt KDragRepeatRespawn( 2 );
-
-    /**
-     * Determines the speed of focus-based scrolling in edit mode.
-     */
-    const TInt KEditModeScrollingDelayFactor = 4000;
     }
 
 /**
  * Templates' related constants.
  */
 namespace MmTemplateContants
-  {
-  /**
-   * If a custom (non LCT) template is used, this is
-   * its default scrollbar width.
-   */
-  const TInt KCustomTemplateScrolbarWidth (25);
+    {
+    /**
+     * If a custom (non LCT) template is used, this is
+     * its default scrollbar width.
+     */
+    const TInt KCustomTemplateScrolbarWidth( 25 );
 
-  const TInt KTemplateChildTextLength (64);
+    const TInt KTemplateChildTextLength( 64 );
 
-  const TInt KSubCellsCount (6);
+    const TInt KSubCellsCount( 6 );
 
-  const TInt KItemSubCellsText (300);
+    const TInt KItemSubCellsText( 300 );
 
-  const TInt KMoveIndicatorStartingPos ( 32 );
-
-  }
+    const TInt KMoveIndicatorStartingPos( 32 );
+    }
 
 /**
  * Shortcut constants.
@@ -270,13 +298,13 @@
   }
 
 namespace MmMarqueeConstants
-  {
-  const TInt KTextTrimmingThreshold (80);
-  const TInt KClippingBufLength (80);
-  const TInt KLoops (1);
-  const TInt KScrollAmount (6);
-  const TInt KScrollDelay (1000000);
-  }
+    {
+    const TInt KTextTrimmingThreshold( 80 );
+    const TInt KClippingBufLength( 80 );
+    const TInt KLoops( 1 );
+    const TInt KScrollAmount( 6 );
+    const TInt KScrollDelay( 1000000 );
+    }
 /**
  * Matrix Template Library panic notice.
  */
@@ -448,10 +476,4 @@
  */
 const TInt KDragTreshold = 18;
 
-/**
- * The interval between redraws when scrolling using the scrollbar.
- * This will give us nice ~30 fps.
- */
-const TInt KScrollingRedrawInterval = 33333;
-
 #endif // MMWIDGETSCONSTANTS_H
--- a/menufw/menufwui/mmwidgets/rom/mmwidgets.iby	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/rom/mmwidgets.iby	Tue Sep 14 20:58:58 2010 +0300
@@ -21,45 +21,51 @@
 
 #include <data_caging_paths_for_iby.hrh>
 
-file=ABI_DIR\BUILD_DIR\mmwidgets.dll	                                 SHARED_LIB_DIR\mmwidgets.dll
+file=ABI_DIR\BUILD_DIR\mmwidgets.dll                                         SHARED_LIB_DIR\mmwidgets.dll
 
-data=\epoc32\data\z\resource\list\custom\akn_single_large_graphic_pane.xml      resource\list\custom\akn_single_large_graphic_pane.xml
-data=\epoc32\data\z\resource\list\custom\akn_logical_template_1.xml      	resource\list\custom\akn_logical_template_1.xml
-data=\epoc32\data\z\resource\list\custom\akn_logical_template_2.xml      	resource\list\custom\akn_logical_template_2.xml
-data=\epoc32\data\z\resource\list\custom\akn_logical_template_3.xml             resource\list\custom\akn_logical_template_3.xml
-data=\epoc32\data\z\resource\list\custom\akn_logical_template_4.xml      	resource\list\custom\akn_logical_template_4.xml
-data=\epoc32\data\z\resource\list\custom\akn_logical_template_5.xml      	 resource\list\custom\akn_logical_template_5.xml
-data=\epoc32\data\z\resource\list\custom\akn_logical_template_6.xml      	 resource\list\custom\akn_logical_template_6.xml
-data=\epoc32\data\z\resource\list\custom\akn_logical_template_7.xml      	 resource\list\custom\akn_logical_template_7.xml
-data=\epoc32\data\z\resource\list\custom\akn_logical_template_8.xml      	 resource\list\custom\akn_logical_template_8.xml
-data=\epoc32\data\z\resource\list\custom\akn_logical_template_10.xml      	 resource\list\custom\akn_logical_template_10.xml
-data=\epoc32\data\z\resource\list\custom\akn_logical_template_11.xml      	 resource\list\custom\akn_logical_template_11.xml
-data=\epoc32\data\z\resource\list\custom\akn_logical_template_12.xml      	 resource\list\custom\akn_logical_template_12.xml
-data=\epoc32\data\z\resource\list\custom\akn_logical_template_13.xml      	 resource\list\custom\akn_logical_template_13.xml
+data=\epoc32\data\z\resource\list\custom\akn_single_large_graphic_pane.xml   resource\list\custom\akn_single_large_graphic_pane.xml
+data=\epoc32\data\z\resource\list\custom\akn_logical_template_1.xml          resource\list\custom\akn_logical_template_1.xml
+data=\epoc32\data\z\resource\list\custom\akn_logical_template_2.xml          resource\list\custom\akn_logical_template_2.xml
+data=\epoc32\data\z\resource\list\custom\akn_logical_template_3.xml          resource\list\custom\akn_logical_template_3.xml
+data=\epoc32\data\z\resource\list\custom\akn_logical_template_4.xml          resource\list\custom\akn_logical_template_4.xml
+data=\epoc32\data\z\resource\list\custom\akn_logical_template_5.xml          resource\list\custom\akn_logical_template_5.xml
+data=\epoc32\data\z\resource\list\custom\akn_logical_template_6.xml          resource\list\custom\akn_logical_template_6.xml
+data=\epoc32\data\z\resource\list\custom\akn_logical_template_7.xml          resource\list\custom\akn_logical_template_7.xml
+data=\epoc32\data\z\resource\list\custom\akn_logical_template_8.xml          resource\list\custom\akn_logical_template_8.xml
+data=\epoc32\data\z\resource\list\custom\akn_logical_template_10.xml         resource\list\custom\akn_logical_template_10.xml
+data=\epoc32\data\z\resource\list\custom\akn_logical_template_11.xml         resource\list\custom\akn_logical_template_11.xml
+data=\epoc32\data\z\resource\list\custom\akn_logical_template_12.xml         resource\list\custom\akn_logical_template_12.xml
+data=\epoc32\data\z\resource\list\custom\akn_logical_template_13.xml         resource\list\custom\akn_logical_template_13.xml
 
 
-data=\epoc32\data\z\resource\grid\custom\akn_single_large_graphic_pane.xml      resource\grid\custom\akn_single_large_graphic_pane.xml
-data=\epoc32\data\z\resource\grid\custom\akn_logical_template_1.xml      	resource\grid\custom\akn_logical_template_1.xml
-data=\epoc32\data\z\resource\grid\custom\akn_logical_template_2.xml      	resource\grid\custom\akn_logical_template_2.xml
-data=\epoc32\data\z\resource\grid\custom\akn_logical_template_3.xml             resource\grid\custom\akn_logical_template_3.xml
-data=\epoc32\data\z\resource\grid\custom\akn_logical_template_4.xml      	resource\grid\custom\akn_logical_template_4.xml
+data=\epoc32\data\z\resource\grid\custom\akn_single_large_graphic_pane.xml   resource\grid\custom\akn_single_large_graphic_pane.xml
+data=\epoc32\data\z\resource\grid\custom\akn_logical_template_1.xml          resource\grid\custom\akn_logical_template_1.xml
+data=\epoc32\data\z\resource\grid\custom\akn_logical_template_2.xml          resource\grid\custom\akn_logical_template_2.xml
+data=\epoc32\data\z\resource\grid\custom\akn_logical_template_3.xml          resource\grid\custom\akn_logical_template_3.xml
+data=\epoc32\data\z\resource\grid\custom\akn_logical_template_4.xml          resource\grid\custom\akn_logical_template_4.xml
 
 
 //lct exports
 
-data=\epoc32\data\z\resource\list\lct\akn_list_single_hc_apps_pane.xml      	resource\list\lct\akn_list_single_hc_apps_pane.xml
-data=\epoc32\data\z\resource\list\lct\akn_single_large_graphic_pane.xml      	resource\list\lct\akn_single_large_graphic_pane.xml
-data=\epoc32\data\z\resource\list\lct\akn_logical_template_1.xml      	 	resource\list\lct\akn_logical_template_1.xml
-data=\epoc32\data\z\resource\list\lct\akn_logical_template_2.xml      	 	resource\list\lct\akn_logical_template_2.xml
-data=\epoc32\data\z\resource\list\lct\akn_logical_template_3.xml             	resource\list\lct\akn_logical_template_3.xml
-data=\epoc32\data\z\resource\list\lct\akn_logical_template_4.xml      	 	resource\list\lct\akn_logical_template_4.xml
-data=\epoc32\data\z\resource\list\lct\akn_logical_template_5.xml      	 	resource\list\lct\akn_logical_template_5.xml
-data=\epoc32\data\z\resource\list\lct\akn_logical_template_6.xml      	 	resource\list\lct\akn_logical_template_6.xml
-data=\epoc32\data\z\resource\list\lct\akn_logical_template_6a.xml      	 	resource\list\lct\akn_logical_template_6a.xml
-data=\epoc32\data\z\resource\list\lct\akn_logical_template_7.xml      	 	resource\list\lct\akn_logical_template_7.xml
-data=\epoc32\data\z\resource\list\lct\akn_logical_template_8.xml      	 	resource\list\lct\akn_logical_template_8.xml
-data=\epoc32\data\z\resource\list\lct\akn_logical_template_12.xml      	 	resource\list\lct\akn_logical_template_12.xml
+data=\epoc32\data\z\resource\list\lct\akn_list_single_hc_apps_pane.xml       resource\list\lct\akn_list_single_hc_apps_pane.xml
+data=\epoc32\data\z\resource\list\lct\akn_single_large_graphic_pane.xml      resource\list\lct\akn_single_large_graphic_pane.xml
+data=\epoc32\data\z\resource\list\lct\akn_logical_template_1.xml             resource\list\lct\akn_logical_template_1.xml
+data=\epoc32\data\z\resource\list\lct\akn_logical_template_2.xml             resource\list\lct\akn_logical_template_2.xml
+data=\epoc32\data\z\resource\list\lct\akn_logical_template_3.xml             resource\list\lct\akn_logical_template_3.xml
+data=\epoc32\data\z\resource\list\lct\akn_logical_template_4.xml             resource\list\lct\akn_logical_template_4.xml
+data=\epoc32\data\z\resource\list\lct\akn_logical_template_5.xml             resource\list\lct\akn_logical_template_5.xml
+data=\epoc32\data\z\resource\list\lct\akn_logical_template_6.xml             resource\list\lct\akn_logical_template_6.xml
+data=\epoc32\data\z\resource\list\lct\akn_logical_template_6a.xml            resource\list\lct\akn_logical_template_6a.xml
+data=\epoc32\data\z\resource\list\lct\akn_logical_template_7.xml             resource\list\lct\akn_logical_template_7.xml
+data=\epoc32\data\z\resource\list\lct\akn_logical_template_8.xml             resource\list\lct\akn_logical_template_8.xml
+data=\epoc32\data\z\resource\list\lct\akn_logical_template_12.xml            resource\list\lct\akn_logical_template_12.xml
 
-data=\epoc32\data\z\resource\grid\lct\akn_logical_template_3.xml      	 	resource\grid\lct\akn_logical_template_3.xml
+
+#if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4) 
+    data=\epoc32\data\z\resource\grid\lct\akn_logical_template_3_vga.xml     resource\grid\lct\akn_logical_template_3.xml
+#else
+    data=\epoc32\data\z\resource\grid\lct\akn_logical_template_3.xml         resource\grid\lct\akn_logical_template_3.xml
+#endif
+
 
 #endif // MATRIXWIDGETS_IBY
--- a/menufw/menufwui/mmwidgets/src/mmdraweranimator.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/src/mmdraweranimator.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
  * Contributors:
  *
  * Description:
- *  Version     : %version: MM_44 % << Don't touch! Updated by Synergy at check-out.
+ *  Version     : %version: MM_45 % << Don't touch! Updated by Synergy at check-out.
  *
  */
 
@@ -141,6 +141,10 @@
                 refreshRect.BoundingRect( beforeRect );
                 refreshRect.BoundingRect( afterRect );
                 }
+            if( current.GetFloatingItemType() == EPostDragRefreshItem )
+                {
+                iDrawer.RemoveFloatingItem( i-- );
+                }
             }
         const TInt highlightedItemIndex = iDrawer.Widget()->View()->CurrentItemIndex();
         if( iLastNotedHighlight != highlightedItemIndex )
--- a/menufw/menufwui/mmwidgets/src/mmgrid.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/src/mmgrid.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:
-*  Version     : %version: MM_106 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: MM_108 % << Don't touch! Updated by Synergy at check-out.
 *
 */
 
@@ -51,7 +51,6 @@
 //
 CMmGrid::~CMmGrid()
     {
-    delete iRedrawTimer;
     }
 
 // -----------------------------------------------------------------------------
@@ -216,35 +215,18 @@
 void CMmGrid::HandleScrollEventL( CEikScrollBar* aScrollBar,
         TEikScrollEvent aEventType )
     {
-    if ( aEventType == EEikScrollThumbDragVert && !iScrollbarThumbIsBeingDragged )
+    if ( aEventType == EEikScrollThumbDragVert )
         {
-        iScrollbarThumbIsBeingDragged = ETrue;
         static_cast<CMmListBoxItemDrawer*>(
                 View()->ItemDrawer() )->EnableCachedDataUse( ETrue );
-        iRedrawTimer->Start( KScrollingRedrawInterval, KScrollingRedrawInterval,
-                TCallBack( &CMmGrid::RedrawTimerCallback, static_cast<TAny*>( this ) ) );
         }
     else if ( aEventType == EEikScrollThumbReleaseVert )
         {
-        iScrollbarThumbIsBeingDragged = EFalse;
         static_cast<CMmListBoxItemDrawer*>(
                 View()->ItemDrawer() )->EnableCachedDataUse( EFalse );
-        // The view will be redrawn with cache disabled when ProcessScrollEventL
-        // calls the base class's HandleScrollEventL method -- no need to
-        // explicitly redraw the view.
-        iRedrawTimer->Cancel();
         }
-
-    if ( !iScrollbarThumbIsBeingDragged )
-        {
         ProcessScrollEventL( aScrollBar, aEventType );
         }
-    else
-        {
-        __ASSERT_DEBUG( aEventType == EEikScrollThumbDragVert, User::Invariant() );
-        ++iSkippedScrollbarEventsCount;
-        }
-    }
 
 // -----------------------------------------------------------------------------
 // Clearing ELeftDownInViewRect flag before invoking the base class
@@ -379,12 +361,12 @@
 //
 void CMmGrid::ScrollWithoutRedraw( TInt distanceInPixels )
     {
-    CAknGridView* view = static_cast<CAknGridView*>( iView );
+    CAknGridView* view = static_cast<CAknGridView*> ( iView );
     const TInt rowHeight = ItemHeight();
     const TInt numOfCols = view->NumberOfColsInView();
     const TInt itemCount = iModel->NumberOfItems();
     TInt totalNumberOfRows = itemCount / numOfCols;
-    if ( itemCount % numOfCols )
+    if( itemCount % numOfCols )
         {
         ++totalNumberOfRows;
         }
@@ -396,8 +378,8 @@
     desiredViewPosition += distanceInPixels;
 
     const TInt viewPositionMin = 0;
-    const TInt viewPositionMax =
-    Max( 0, ( totalNumberOfRows * rowHeight ) - view->ViewRect().Height() );
+    const TInt viewPositionMax = Max( 0, ( totalNumberOfRows * rowHeight )
+            - view->ViewRect().Height() );
 
     desiredViewPosition = Min( desiredViewPosition, viewPositionMax );
     desiredViewPosition = Max( desiredViewPosition, viewPositionMin );
@@ -416,47 +398,45 @@
 //
 TInt CMmGrid::ScrollIfNeeded( const TPointerEvent& aPointerEvent )
     {
-    CAknGridView* view = static_cast<CAknGridView*>( View() );
     TInt nextScrollDelay = 0;
 
     TBool readyForScrolling = iMmDrawer->GetAnimator()->IsReadyForNewAnimation()
-    && iMmDrawer->GetFloatingItemCount() != 0;
+            && iMmDrawer->GetFloatingItemCount() != 0;
 
-  if ( IsPointerInTopScrollingThreshold( aPointerEvent ) )
-    {
-    // scroll up by one row
-    TInt newCurrentItemIndex = CurrentItemIndex() - view->NumberOfColsInView();
-        if ( newCurrentItemIndex < 0 )
-            {
-            newCurrentItemIndex = CurrentItemIndex();
-            }
-
-       nextScrollDelay = MmEffects::KEditModeScrollingDelayFactor *
-       Max( 1, aPointerEvent.iPosition.iY - Rect().iTl.iY );
+    if( IsPointerInTopScrollingThreshold( aPointerEvent ) )
+        {
+        // scroll up
+        TInt startPos = MmGrid::KFocusScrollingThreshold * TReal(
+                View()->ItemSize().iHeight );
+        TInt diff = Max( 1, Min( aPointerEvent.iPosition.iY
+                - Rect().iTl.iY, startPos ) );
+        nextScrollDelay = ( (TReal) diff / (TReal) startPos )
+                * ( MmGrid::KEditModeScrollingGridMaxDelay
+                        - MmGrid::KEditModeScrollingGridMinDelay )
+                + MmGrid::KEditModeScrollingGridMinDelay;
 
-    if ( readyForScrolling )
-      {
-      ScrollWithoutRedraw( -iItemHeight );
-      View()->SetCurrentItemIndex( newCurrentItemIndex );
-      }
-    }
-  else if ( IsPointerInBottomScrollingThreshold( aPointerEvent) )
-    {
-    TInt newCurrentItemIndex = CurrentItemIndex() + view->NumberOfColsInView();
-    if ( newCurrentItemIndex > iModel->NumberOfItems() - 1 )
-      {
-      newCurrentItemIndex = CurrentItemIndex();
-      }
+        if( readyForScrolling )
+            {
+            ScrollWithoutRedraw( -MmGrid::KScrollingStep );
+            }
+        }
+    else if( IsPointerInBottomScrollingThreshold( aPointerEvent ) )
+        {
+        // scroll down
+        TInt startPos = MmGrid::KFocusScrollingThreshold * TReal(
+                View()->ItemSize().iHeight );
+        TInt diff = Max( 1, Min( Rect().iBr.iY
+                - aPointerEvent.iPosition.iY, startPos ) );
+        nextScrollDelay = ( (TReal) diff / (TReal) startPos )
+                * ( MmGrid::KEditModeScrollingGridMaxDelay
+                        - MmGrid::KEditModeScrollingGridMinDelay )
+                + MmGrid::KEditModeScrollingGridMinDelay;
 
-    nextScrollDelay = MmEffects::KEditModeScrollingDelayFactor *
-      Max( 1, Rect().iBr.iY - aPointerEvent.iPosition.iY );
-
-    if ( readyForScrolling )
-      {
-      ScrollWithoutRedraw( iItemHeight );
-      View()->SetCurrentItemIndex( newCurrentItemIndex );
-      }
-    }
+        if( readyForScrolling )
+            {
+            ScrollWithoutRedraw( MmGrid::KScrollingStep );
+            }
+        }
 
     return nextScrollDelay;
     }
@@ -601,7 +581,6 @@
         }
 
     DoSetupLayoutL();
-    iRedrawTimer = CPeriodic::NewL( EPriorityRealTime );
     }
 
 // -----------------------------------------------------------------------------
@@ -961,33 +940,6 @@
 //
 // -----------------------------------------------------------------------------
 //
-void CMmGrid::HandleRedrawTimerEventL()
-    {
-    if ( iSkippedScrollbarEventsCount )
-        {
-        ProcessScrollEventL( ScrollBarFrame()->VerticalScrollBar(),
-                EEikScrollThumbDragVert );
-        }
-    iSkippedScrollbarEventsCount = 0;
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TInt CMmGrid::RedrawTimerCallback( TAny* aPtr )
-    {
-    CMmGrid* self = static_cast<CMmGrid*>( aPtr );
-    TRAP_IGNORE( self->HandleRedrawTimerEventL() );
-    // Do not bother returning a meaningful error code, CPeriodic will ignore it
-    // anyway.
-    return 0;
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
 void CMmGrid::SetVerticalItemOffset(TInt aOffset)
   {
   static_cast<CMmGridView*> (View())->SetItemOffsetInPixels(aOffset);
--- a/menufw/menufwui/mmwidgets/src/mmgridcontainer.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/src/mmgridcontainer.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -12,8 +12,8 @@
 * Contributors:
 *
 * Description:
-*  Version     : %version: MM_76 % << Don't touch! Updated by Synergy at check-out.
-*  Version     : %version: MM_76 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: MM_77 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: MM_77 % << Don't touch! Updated by Synergy at check-out.
 *
 */
 
@@ -400,5 +400,14 @@
     return isVisible;
     }
 
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void CMmGridContainer::SetWidgetCommingFromBackground( TBool /*aCommingFromBackground*/)
+    {
+    }
+
 // End of File
 
+
--- a/menufw/menufwui/mmwidgets/src/mmlistbox.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/src/mmlistbox.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -58,7 +58,6 @@
 //
 CMmListBox::~CMmListBox()
   {
-  delete iRedrawTimer;
   }
 
 // -----------------------------------------------------------------------------
@@ -120,7 +119,6 @@
     iItemDrawer->SetDrawMark(EFalse);
     CEikListBox::ConstructL(aParent,aFlags);
     iMmDrawer->SetView( this );
-    iRedrawTimer = CPeriodic::NewL( EPriorityRealTime );
   }
 
 // -----------------------------------------------------------------------------
@@ -234,53 +232,68 @@
 //
 // -----------------------------------------------------------------------------
 //
+void CMmListBox::ScrollWithoutRedraw( TInt distanceInPixels )
+    {
+    // desired view position relative to the first item in list (always positive)
+    TInt desiredViewPosition = ItemHeight() * TopItemIndex() - VerticalItemOffset();
+    desiredViewPosition += distanceInPixels;
+
+    const TInt viewPositionMax = Max( 0, ( iModel->NumberOfItems()
+            * ItemHeight() ) - iView->ViewRect().Height() );
+
+    desiredViewPosition = Min( desiredViewPosition, viewPositionMax );
+    desiredViewPosition = Max( desiredViewPosition, 0 );
+
+    ASSERT( desiredViewPosition >= 0 );
+
+    SetTopItemIndex( desiredViewPosition / ItemHeight() );
+    SetVerticalItemOffset( -( desiredViewPosition % ItemHeight() ) );
+    }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
 TInt CMmListBox::ScrollIfNeeded( const TPointerEvent& aPointerEvent )
     {
     TInt nextScrollDelay = 0;
 
-  TBool readyForScrolling =
-      iMmDrawer->GetAnimator()->IsReadyForNewAnimation()
-          && iMmDrawer->GetFloatingItemCount() != 0;
-
-  if ( IsPointerInTopScrollingThreshold( aPointerEvent ) )
-    {
-    // scroll up by one row
-    TInt newCurrentItemIndex = CurrentItemIndex() - 1;
+    TBool readyForScrolling = iMmDrawer->GetAnimator()->IsReadyForNewAnimation()
+            && iMmDrawer->GetFloatingItemCount() != 0;
 
-    if ( newCurrentItemIndex >= 0 )
-      {
-      nextScrollDelay = MmEffects::KEditModeScrollingDelayFactor *
-        Max( 1, aPointerEvent.iPosition.iY - Rect().iTl.iY );
-      if (readyForScrolling)
+    if( IsPointerInTopScrollingThreshold( aPointerEvent ) )
         {
-        View()->VScrollTo( View()->CalcNewTopItemIndexSoItemIsVisible(
-                        newCurrentItemIndex ) );
-                View()->SetCurrentItemIndex( newCurrentItemIndex );
-                UpdateScrollBarThumbs();
+        // scroll up
+        TInt startPos = MmListBox::KFocusScrollingThreshold * TReal(
+                View()->ItemSize().iHeight );
+        TInt diff = Max( 1, Min( aPointerEvent.iPosition.iY
+                - Rect().iTl.iY, startPos ) );
+        nextScrollDelay = ( (TReal) diff / (TReal) startPos )
+                * ( MmListBox::KEditModeScrollingListBoxMaxDelay
+                        - MmListBox::KEditModeScrollingListBoxMinDelay )
+                + MmListBox::KEditModeScrollingListBoxMinDelay;
+        if( readyForScrolling )
+            {
+            ScrollWithoutRedraw( -MmListBox::KScrollingStep );
+            }
         }
-      }
-    }
-  else if ( IsPointerInBottomScrollingThreshold( aPointerEvent) )
-    {
-    // scroll down by one row
-    TInt lastItemIndex = iModel->NumberOfItems() - 1;
-    TInt newCurrentItemIndex = CurrentItemIndex() + 1;
-
+    else if( IsPointerInBottomScrollingThreshold( aPointerEvent ) )
+        {
+        // scroll down
+        TInt startPos = MmListBox::KFocusScrollingThreshold * TReal(
+                View()->ItemSize().iHeight );
+        TInt diff = Max( 1, Min( Rect().iBr.iY
+                - aPointerEvent.iPosition.iY, startPos ) );
+        nextScrollDelay = ( (TReal) diff / (TReal) startPos )
+                * ( MmListBox::KEditModeScrollingListBoxMaxDelay
+                        - MmListBox::KEditModeScrollingListBoxMinDelay )
+                + MmListBox::KEditModeScrollingListBoxMinDelay;
 
-    if ( newCurrentItemIndex <= lastItemIndex )
-      {
-      nextScrollDelay = MmEffects::KEditModeScrollingDelayFactor *
-        Max( 1, Rect().iBr.iY - aPointerEvent.iPosition.iY );
-
-      if (readyForScrolling)
-        {
-        View()->VScrollTo( View()->CalcNewTopItemIndexSoItemIsVisible(
-            newCurrentItemIndex ) );
-        View()->SetCurrentItemIndex( newCurrentItemIndex );
-                UpdateScrollBarThumbs();
+        if( readyForScrolling )
+            {
+            ScrollWithoutRedraw( MmListBox::KScrollingStep );
+            }
         }
-      }
-    }
 
     return nextScrollDelay;
     }
@@ -389,33 +402,6 @@
 //
 // -----------------------------------------------------------------------------
 //
-void CMmListBox::HandleRedrawTimerEventL()
-    {
-    if ( iSkippedScrollbarEventsCount )
-        {
-        ProcessScrollEventL( ScrollBarFrame()->VerticalScrollBar(),
-                EEikScrollThumbDragVert );
-        }
-    iSkippedScrollbarEventsCount = 0;
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TInt CMmListBox::RedrawTimerCallback( TAny* aPtr )
-    {
-    CMmListBox* self = static_cast<CMmListBox*>( aPtr );
-    TRAP_IGNORE( self->HandleRedrawTimerEventL() );
-    // Do not bother returning a meaningful error code, CPeriodic will ignore it
-    // anyway.
-    return 0;
-    }
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
 TKeyResponse CMmListBox::OfferKeyEventL(
         const TKeyEvent& aKeyEvent,TEventCode aType )
     {
@@ -956,34 +942,17 @@
 void CMmListBox::HandleScrollEventL( CEikScrollBar* aScrollBar,
             TEikScrollEvent aEventType )
     {
-    if ( aEventType == EEikScrollThumbDragVert && !iScrollbarThumbIsBeingDragged )
+    if ( aEventType == EEikScrollThumbDragVert )
         {
-        iScrollbarThumbIsBeingDragged = ETrue;
         static_cast<CMmListBoxItemDrawer*>(
                 View()->ItemDrawer() )->EnableCachedDataUse( ETrue );
-        iRedrawTimer->Start( KScrollingRedrawInterval, KScrollingRedrawInterval,
-                TCallBack( &CMmListBox::RedrawTimerCallback, static_cast<TAny*>( this ) ) );
         }
     else if ( aEventType == EEikScrollThumbReleaseVert )
         {
-        iScrollbarThumbIsBeingDragged = EFalse;
         static_cast<CMmListBoxItemDrawer*>(
                 View()->ItemDrawer() )->EnableCachedDataUse( EFalse );
-        // The view will be redrawn with cache disabled when ProcessScrollEventL
-        // calls the base class's HandleScrollEventL method -- no need to
-        // explicitly redraw the view.
-        iRedrawTimer->Cancel();
         }
-
-    if ( !iScrollbarThumbIsBeingDragged )
-        {
-        ProcessScrollEventL( aScrollBar, aEventType );
-        }
-    else
-        {
-        __ASSERT_DEBUG( aEventType == EEikScrollThumbDragVert, User::Invariant() );
-        ++iSkippedScrollbarEventsCount;
-        }
+    ProcessScrollEventL( aScrollBar, aEventType );
     }
 
 // End of file
--- a/menufw/menufwui/mmwidgets/src/mmlistboxcontainer.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/src/mmlistboxcontainer.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:   
-*  Version     : %version: MM_66 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: MM_67 % << Don't touch! Updated by Synergy at check-out.
 *
 */
 
@@ -35,6 +35,7 @@
 #include "mmtemplatelibrary.h"
 #include "mmpostevaluationprocessor.h"
 #include "mmdraweranimator.h"
+#include "mmlistboxview.h"
 
 
 // ============================ MEMBER FUNCTIONS ===============================
@@ -327,4 +328,16 @@
 	{
 	iListBox->UpdateScrollBarThumbs();
 	}
+
+//----------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+void CMmListBoxContainer::SetWidgetCommingFromBackground(
+        TBool aCommingFromBackground )
+    {         
+    CMmListBoxView* view = static_cast<CMmListBoxView*> ( Widget()->View() );
+    view->SetListCommingFromBackground( aCommingFromBackground );
+    }
+
 // End of File
--- a/menufw/menufwui/mmwidgets/src/mmlistboxitemdrawer.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/src/mmlistboxitemdrawer.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -342,7 +342,7 @@
                 iZoomIconIndex = tempZoomIconIndex;
                 }
             }
-        else
+        else if( type != EPostDragRefreshItem )
             {
             iFloatingItems.Remove( i );
             }
--- a/menufw/menufwui/mmwidgets/src/mmlistboxview.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/src/mmlistboxview.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:
- *  Version     : %version: MM_55 % << Don't touch! Updated by Synergy at check-out.
+ *  Version     : %version: MM_56 % << Don't touch! Updated by Synergy at check-out.
  *
 */
 
@@ -81,6 +81,7 @@
 void CMmListBoxView::ConstructL ()
   {
   iPreviouslyDrawnCurrentItemIndex = KErrNotFound;
+  iListCommingFromBackground = EFalse;
   }
 
 // -----------------------------------------------------------------------------
@@ -247,8 +248,9 @@
     view->UpdateAverageItemHeight ();
 
     CMmListBoxModel* model = static_cast< CMmListBoxModel* > ( iModel );
-    if ( model && model->GetSuiteModel()
-            && !model->GetSuiteModel()->GetItemsOrder()->IsSuiteReadyToShow() )
+    if( model && model->GetSuiteModel()
+            && !model->GetSuiteModel()->GetItemsOrder()->IsSuiteReadyToShow()
+            && !GetListCommingFromBackground() )
         {
         return;
         }
@@ -630,4 +632,23 @@
     iScrollToItemDisabled = aDisable;
     }
 
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+TBool CMmListBoxView::GetListCommingFromBackground() const
+    {
+    return iListCommingFromBackground;
+    }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void CMmListBoxView::SetListCommingFromBackground(
+        TBool aCommingFromBackground )
+    {
+    iListCommingFromBackground = aCommingFromBackground;
+    }
+
 // End of file
--- a/menufw/menufwui/mmwidgets/src/mmwidgetcontainer.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menufwui/mmwidgets/src/mmwidgetcontainer.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:
-*  Version     : %version: MM_71.1.17.1.70 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: MM_71.1.17.1.75 % << Don't touch! Updated by Synergy at check-out.
 *
 */
 
@@ -111,7 +111,8 @@
     , iRecipientId( KErrNotFound )
     , iEventParameters( NULL )
     , iDialogOpened( EFalse )
-    , iHighlightVisibleBeforeLongTap( EFalse )
+    , iHighlightVisibleBeforeLongTap( EFalse )    
+    , iResetHighlight( EFalse )
     {
     iWidgetPositionCache.iValid = EFalse;
     }
@@ -142,7 +143,7 @@
         // cancel longTap timer, avoid showing popupmenu
         if( !aEnable )
             {
-            TRAP_IGNORE( iLongTapDetector->PointerEventL( TPointerEvent() ) );
+            TRAP_IGNORE( iLongTapDetector->CancelAnimationL() );
             }
         }
     }
@@ -215,8 +216,8 @@
         {
         iDraggedIndex = KErrNotFound;
         }
-    iItemRelativeTapPoint = aPointerEvent.iPosition - iWidget->View()->ItemPos(
-        iDraggedIndex );
+    iItemRelativeTapPoint = aPointerEvent.iPosition
+            - iWidget->View()->ItemPos( iDraggedIndex );
     }
 
 // -----------------------------------------------------------------------------
@@ -313,7 +314,7 @@
         {
         iDragAndDropObserver->HandleDragOverL( GetHighlight() );
         }
-    
+
     TPoint centerPoint( aPointerEvent.iPosition );
     if( WidgetType() == EGridWidget )
         { // move item's TL corner by half width/height to center item horizontally.
@@ -326,7 +327,7 @@
         // move item's L of corner by half height to center item horizontally.
         centerPoint.iY -= ( iWidget->View()->ItemSize( highlight ).iHeight / 2 );
         }
-    
+
     if( !tooFast )
         {
         TSize itemSize = iWidget->View()->ItemSize( highlight );
@@ -677,6 +678,16 @@
         HandleButtonDownL( aPointerEvent );
         iDragAndDropObserver->HandleDragStartL( GetHighlight() );
         }
+    else if( IsNoItemDragged() && ( aPointerEvent.iType
+            == TPointerEvent::EButton1Up ) )
+        {
+        iWidget->View()->ItemDrawer()->SetFlags(
+                CListItemDrawer::ESingleClickDisabledHighlight );
+        TInt highlight = GetHighlight();
+        CListBoxView* view = Widget()->View();
+        Widget()->DrawNow( TRect( view->ItemPos( highlight ),
+                view->ItemSize( highlight ) ) );
+        }
     else if( ( aPointerEvent.iType == TPointerEvent::EDrag
             || aPointerEvent.iType == TPointerEvent::EButtonRepeat )
             && iDraggedIndex != KErrNotFound )
@@ -1143,9 +1154,9 @@
 
     if( resp == EKeyWasNotConsumed )
         {
-        resp = iWidget->OfferKeyEventL( aKeyEvent, aType );
+        resp = iWidget->OfferKeyEventL( aKeyEvent, aType );        
         }
-
+        
     if( iKeyEventObserver )
         {
         resp = iKeyEventObserver->HandleKeyPressedL( aKeyEvent, aType );
@@ -1165,7 +1176,7 @@
 
             SetHighlightVisibilityL( ETrue );
             SetDefaultHighlightL( ETrue );
-            HandleForegroundGainedL();
+            HandleForegroundGainedL();            
             }
         }
     return resp;
@@ -1733,7 +1744,9 @@
     iWidgetPositionCache.iValid = EFalse;
     iWidgetPositionCache.iHighlightedItemId = KErrNotFound;
     Widget()->SetTopItemIndex( 0 );
+    Widget()->View()->SetCurrentItemIndex( 0 );
     SetVerticalItemOffset( 0 );
+    iResetHighlight = ETrue;
     }
 
 // ---------------------------------------------------------------------------
@@ -1877,11 +1890,12 @@
 //
 EXPORT_C TBool CMmWidgetContainer::ScrollToItemL( TInt aIndex )
     {
-    TInt scrollConsumed( EFalse );
+    TBool scrollConsumed( EFalse );
     if( aIndex >= 0 && aIndex <= NumberOfItems() )
         {
         scrollConsumed = AlignBottomOfViewL();
-        if ( !scrollConsumed && Widget()->View()->ItemIsPartiallyVisible(aIndex))
+        if ( ( !scrollConsumed || iResetHighlight )
+                && Widget()->View()->ItemIsPartiallyVisible(aIndex) )
             {
             //			the case when the item is partially visible at top or
             //			bottom of screen. The view is scrolled the offset to
@@ -1897,7 +1911,6 @@
                 ScrollInPixelsL( offset );
                 scrollConsumed = ETrue;
                 }
-
             }
         else if( !Widget()->View()->ItemIsVisible( aIndex ) )
             {
@@ -1907,6 +1920,7 @@
             AlignBottomOfViewL();
             scrollConsumed = ETrue;
             }
+        iResetHighlight = EFalse;
         }
     return scrollConsumed;
     }
@@ -2069,4 +2083,14 @@
         iListBoxObserver->HandleListBoxEventL( aListBox, aEventType );
         }
     }
+                                  
+// ---------------------------------------------------------------------------
+//
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CMmWidgetContainer::SetWidgetCommingFromBackground( TBool /*aCommingFromBackground*/)
+    {
+    // this method must not be implemented. Change and implement only descended methods.    
+    }
+
 //End of file
--- a/menufw/menusuites/foldersuite/data/matrixmenudata.xml	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menusuites/foldersuite/data/matrixmenudata.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -160,22 +160,38 @@
                             mask_id="16405"
                             param="messaging:audiomsg"/>
          
-          <menu:shortcut    flags="hidden"
+            <menu:shortcut    flags="hidden"
                             uid="0x99999991"
                             long_name="&qtn_apps_undefined_list;"
                             icon_file="aimcsplugin.mif"
-                            icon_id="16388"
-                            mask_id="16389"
-                            icon_skin_minor_id="0x1af5"
+                            icon_id="16410"
+                            mask_id="16411"
+                            icon_skin_minor_id="0x24ba"
                             icon_skin_major_id="0x101F86E3"/>
-                            
-          <menu:shortcut    uid="0x99999989"
+
+            <menu:shortcut    uid="0x99999989"
                             long_name="&qtn_apps_dialledcalls_list;"
                             icon_file="aimcsplugin.mif"
                             icon_id="16398"
                             mask_id="16399"
                             param="logs:dialed"/>
 
+            <menu:shortcut    flags="hidden"
+                            uid="0x99999990"
+                            long_name="&qtn_apps_manage_list;"
+                            icon_file="aimcsplugin.mif"
+                            icon_id="16408"
+                            mask_id="16409"
+                            icon_skin_minor_id="0x25f0"
+                            icon_skin_major_id="0x101F86E3"/>
+
+            <menu:shortcut    uid="0x99999992"
+                            long_name="&qtn_apps_profiles_list;"
+                            icon_file="profileapp_aif.mif"
+                            icon_id="16384"
+                            mask_id="16385"
+                            param="profiles"/>
+
           <!-- Menu Application Launcher -->
           <menu:application uid="0x101F4CD2"/>
           <!-- Themes Application Launcher -->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/menufw/menusuites/foldersuite/data/matrixmenudata_vga.xml	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,431 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE xcfwml SYSTEM "matrixmenudata.dtd">
+<menu:data xmlns:menu="http:://www.s60.com/xml/applicationshell/1" version="5.0">
+    <menu:folder title_name="&qtn_fldr_root_level;" long_name="&qtn_fldr_root_level;" short_name="&qtn_fldr_root_level;">
+        <!--Calendar-->
+        <menu:application uid="0x10005901"/>
+        <!--Contacts application-->
+        <menu:application uid="0x101F4CCE"/>
+        <!--Music folder-->
+        <menu:folder title_name="&qtn_apps_music_title;"
+                    long_name="&qtn_apps_music_list;"
+                    short_name="&qtn_apps_music_grid;"
+                    applicationgroup_name="Music"
+                    icon_file="z:\resource\apps\matrixmenudata.mif"
+                    icon_id="16384"
+                    mask_id="16385"
+                    icon_skin_minor_id="0x2176"
+                    icon_skin_major_id="0x101F86E3">
+            <!-- Music Player (MusicPlayer)-->
+            <menu:application uid="0x102072C3"/>
+            <!-- Radio -->
+            <menu:application uid="0x10207A89"/>
+            <!-- Ovi Music -->
+            <menu:application uid="0x101FFB51"/>
+            <!--FM transmitter-->
+            <menu:application uid="0x10282BEF"/>
+        </menu:folder>
+        <!--Video & TV Folder-->
+        <menu:folder title_name="&qtn_apps_videotv_title;" 
+                    long_name="&qtn_apps_videotv_list;" 
+                    short_name="&qtn_apps_videotv_grid;" 
+                    applicationgroup_name="TV&Video"
+                    icon_file="z:\resource\apps\matrixmenudata.mif" 
+                    icon_id="16390" 
+                    mask_id="16391" 
+                    icon_skin_minor_id="0x217d" 
+                    icon_skin_major_id="0x101F86E3" >
+            <!-- Videos -->
+            <menu:application uid="0x200159B2"/> 
+            <!-- video services folder -->
+            <menu:folder title_name="&qtn_apps_video_list;" 
+                    long_name="&qtn_apps_video_list;" 
+                    short_name="&qtn_apps_video_grid;"
+                    applicationgroup_name="VideoServices"
+                    icon_file="z:\resource\apps\VideoServices_AIF.mif"
+                    icon_id="16384" 
+                    mask_id="16385">
+                <!-- Youtube-->
+                <menu:application uid="0x2000FBBA"/>
+            </menu:folder>
+            <!--web tv folder-->
+            <menu:folder title_name="&qtn_apps_webtv_widgets_title;" 
+                    long_name="&qtn_apps_webtv_wigdets_list;" 
+                    short_name="&qtn_apps_webtv_wigdets_grid;"
+                    applicationgroup_name="WebTv"
+                    icon_file="z:\resource\apps\vasco_icons.mif"
+                    icon_id="16384" 
+                    mask_id="16385">
+                <!--WebTV Demo-->
+                <menu:application uid="0x2000DDB6" predefined_widget="true"/>
+                <!--CNN Video-->
+                <menu:application uid="0x2000DD9D" predefined_widget="true"/>
+                <!--Nat Geo-->                   
+                <menu:application uid="0x2000DDA6" predefined_widget="true"/>
+                <!--E!-->                        
+                <menu:application uid="0x2000DDA0" predefined_widget="true"/>
+                <!--Movie Teasers-->             
+                <menu:application uid="0x2000dadb" predefined_widget="true"/>
+                <!--Get more link-->
+                <menu:url uid="0x99999988" short_name="&qtn_apps_get_more_grid;" long_name="&qtn_apps_get_more_list;" 
+                        title_name="&qtn_apps_get_more_list;" url="http://more.store.ovi.mobi/av_webtv" 
+                        lock_delete="1" icon_file="z:\resource\apps\vasco_icons.mif" icon_id="16388" mask_id="16389"/>
+                <menu:application uid="0x2000DDBD" predefined_widget="true"/> <!--Al Jazeera-->
+                <menu:application uid="0x2000DDBE" predefined_widget="true"/> <!--Terra TV LTA-->
+                <menu:application uid="0x2000DDBF" predefined_widget="true"/> <!--Terra TV Brazil-->
+                <menu:application uid="0x2000DD93" predefined_widget="true"/> <!--WebTV - ifeng	ifeng.wgz                     -->
+                <menu:application uid="0x2000DD94" predefined_widget="true"/> <!--WebTV - Bh TV Local	bhtv_local.wgz          -->
+                <menu:application uid="0x2000DD95" predefined_widget="true"/> <!--WebTV - Bh TV Live	bhtv_live.wgz           -->
+                <menu:application uid="0x2000DD96" predefined_widget="true"/> <!--WebTV - M1TV	m1tv.wgz                      -->
+                <menu:application uid="0x2000DD97" predefined_widget="true"/> <!--WebTV - imgo	imgo.wgz                      -->
+                <menu:application uid="0x2000DD98" predefined_widget="true"/> <!--WebTV - 8tv	8tv.wgz                         -->
+                <menu:application uid="0x2000DD99" predefined_widget="true"/> <!--WebTV - vesti_russia	vesti_russia.wgz      -->
+                <menu:application uid="0x2000DD9A" predefined_widget="true"/> <!--WebTV - aftonbladettv	aftonbladettv.wgz     -->
+                <menu:application uid="0x2000DD9B" predefined_widget="true"/> <!--WebTV - bbcatv	bbcatv_webtv.wgz            -->
+                <menu:application uid="0x2000DD9C" predefined_widget="true"/> <!--WebTV - channelnewsasia	channelnewsasia.wgz -->
+                <menu:application uid="0x2000DD9E" predefined_widget="true"/> <!--WebTV - digiturk	digiturk.wgz              -->
+                <menu:application uid="0x2000DD9F" predefined_widget="true"/> <!--WebTV - efe_videos	efe_videos.wgz          -->
+                <menu:application uid="0x2000DDA1" predefined_widget="true"/> <!--WebTV - eros_widget	eros_widget.wgz         -->
+                <menu:application uid="0x2000DDA2" predefined_widget="true"/> <!--WebTV - india_today	india_today.wgz         -->
+                <menu:application uid="0x2000DDA3" predefined_widget="true"/> <!--WebTV - iplayer	iplayer.wgz                 -->
+                <menu:application uid="0x2000DDA4" predefined_widget="true"/> <!--WebTV - makansutra	makansutra.wgz          -->
+                <menu:application uid="0x2000DDA5" predefined_widget="true"/> <!--WebTV - mtvs	mtvs.wgz                      -->
+                <menu:application uid="0x2000DDA7" predefined_widget="true"/> <!--WebTV - nokiaonyoutube	nokiaonyoutube.wgz  -->
+                <menu:application uid="0x2000DDA8" predefined_widget="true"/> <!--WebTV - nrk_mobiltv	nrk_mobiltv.wgz         -->
+                <menu:application uid="0x2000DDA9" predefined_widget="true"/> <!--WebTV - ontv	ontv.wgz                      -->
+                <menu:application uid="0x2000DDAA" predefined_widget="true"/> <!--WebTV - paramount	paramount.wgz             -->
+                <menu:application uid="0x2000DDAB" predefined_widget="true"/> <!--WebTV - sftvreader	sftvreader.wgz          -->
+                <menu:application uid="0x2000DDAC" predefined_widget="true"/> <!--WebTV - sina	WebTV-2.wgz                   -->
+                <menu:application uid="0x2000DDAD" predefined_widget="true"/> <!--WebTV - skynews	skynews.wgz                 -->
+                <menu:application uid="0x2000DDAE" predefined_widget="true"/> <!--WebTV - sohuwebtv	sohuwebtv.wgz             -->
+                <menu:application uid="0x2000DDAF" predefined_widget="true"/> <!--WebTV - tudou	tudou.wgz                     -->
+                <menu:application uid="0x2000DDB0" predefined_widget="true"/> <!--WebTV - tv2news	tv2news.wgz                 -->
+                <menu:application uid="0x2000DDB1" predefined_widget="true"/> <!--WebTV - tv2play	tv2play.wgz                 -->
+                <menu:application uid="0x2000DDB2" predefined_widget="true"/> <!--WebTV - tv3	tv3.wgz                         -->
+                <menu:application uid="0x2000DDB3" predefined_widget="true"/> <!--WebTV - viasat_no	viasat_no.wgz             -->
+                <menu:application uid="0x2000DDB4" predefined_widget="true"/> <!--WebTV - viasat_se	viasat_se.wgz             -->
+                <menu:application uid="0x2000DDB5" predefined_widget="true"/> <!--WebTV - virtualmalaysia	virtualmalaysia.wgz -->
+                <menu:application uid="0x2000DDB7" predefined_widget="true"/> <!--WebTV - yle	yle.wgz                         -->
+                <menu:application uid="0x2000DDB8" predefined_widget="true"/> <!--WebTV - youku	youku.wgz                     -->
+                <!--Extra WRT widget uid's-->     
+                <menu:application uid="0x2000DDBC" predefined_widget="true"/>
+                <menu:application uid="0x2000DDBB" predefined_widget="true"/>
+                <menu:application uid="0x2000DDBA" predefined_widget="true"/>
+                <menu:application uid="0x2000DD80" predefined_widget="true"/>	
+                <menu:application uid="0x2000DD81" predefined_widget="true"/> 
+                <menu:application uid="0x2000DD82" predefined_widget="true"/>
+                <menu:application uid="0x2000DD83" predefined_widget="true"/>
+                <menu:application uid="0x2000DD84" predefined_widget="true"/>
+                <menu:application uid="0x2000DD85" predefined_widget="true"/>
+                <menu:application uid="0x2000DD86" predefined_widget="true"/>
+                <menu:application uid="0x2000DD87" predefined_widget="true"/>
+                <menu:application uid="0x2000DD88" predefined_widget="true"/>
+                <menu:application uid="0x2000DD89" predefined_widget="true"/>
+                <menu:application uid="0x2000DD8A" predefined_widget="true"/>
+                <menu:application uid="0x2000DD8B" predefined_widget="true"/>
+                <menu:application uid="0x2000DD8C" predefined_widget="true"/>
+                <menu:application uid="0x2000DD8D" predefined_widget="true"/>
+                <menu:application uid="0x2000DD8E" predefined_widget="true"/>
+                <menu:application uid="0x2000DD8F" predefined_widget="true"/>
+                <menu:application uid="0x2000DD90" predefined_widget="true"/>
+                <menu:application uid="0x2000DD91" predefined_widget="true"/>
+                <menu:application uid="0x2000DD92" predefined_widget="true"/>                    
+            </menu:folder>
+        </menu:folder>
+        <!--Internet folder-->
+        <!--  now using qgnmenugroupweb available in skin -->
+        <!-- <menu:folder title_name="&qtn_apps_browserng_title;"
+                    long_name="&qtn_apps_internet_list;"
+                    short_name="&qtn_apps_internet_grid;"
+                    applicationgroup_name="internet"
+                    icon_file="z:\resource\apps\matrixmenudata.mif"
+                    icon_id="16386"
+                    mask_id="16387"
+                    icon_skin_minor_id="0x2005"
+                    icon_skin_major_id="0x101F86E3" > -->
+        <!--Browser-->
+        <menu:application uid="0x10008D39"/>
+            <!--Online Search-->
+            <!-- <menu:application uid="0x20000907"/> -->
+        <!-- </menu:folder> -->
+        <!--Messaging application-->
+        <menu:application uid="0x100058C5"/>
+        <!--Photos application-->
+        <menu:application uid="0x200009EE"/>
+        <!--Ovi Store application-->
+        <menu:application uid="0x20007803" />
+        <!--Settings/Control Panel-->
+        <menu:application uid="0x100058EC"/>
+        <!--Maps application-->
+        <menu:application uid="0x20001F63"/>
+        <!--Social Networks-->
+        <menu:folder title_name="&qtn_apps_social_networks_title;"
+                    long_name="&qtn_apps_social_networks_list;" 
+                    short_name="&qtn_apps_social_networks_grid;"
+                    applicationgroup_name="Social Networks"
+                    icon_file="z:\resource\apps\matrixmenudata.mif"
+                    icon_id="16394" 
+                    mask_id="16395" 
+                    icon_skin_minor_id="0x2618" 
+                    icon_skin_major_id="0x101F86E3">
+            <!--Communities-->
+            <menu:application uid="0x2000DD5A" predefined_widget="true"/>
+            <!--Facebook-->
+            <menu:application uid="0x2002699D"/>
+            <!--Twitter-->
+            <menu:application uid="0x200269A1"/>
+            <!--RenRen-->
+            <menu:application uid="0x2002F952"/>
+            <!-- Hi5 -->
+            <menu:application uid="0x2000DD56"/>
+            <!-- LinkedIn -->
+            
+        </menu:folder>
+        <!--Application folder-->
+        <menu:folder applicationgroup_name="applications"
+                    default="1"
+                    title_name="&qtn_apps_appsfolder_title;"
+                    long_name="&qtn_apps_applications_list;"
+                    short_name="&qtn_apps_applications_grid;"
+                    icon_file="z:\resource\apps\matrixmenudata.mif"
+                    icon_id="16392"
+                    mask_id="16393"
+                    icon_skin_minor_id="0x2174"
+                    icon_skin_major_id="0x101F86E3">
+            <!-- eMail application -->
+            <menu:application uid="0x2001E277"/>
+            <!--Clock-->
+            <menu:application uid="0x10005903"/>            
+            <!-- Log -->
+            <menu:application uid="0x101F4CD5"/>            
+            <!--Office folder-->
+            <menu:folder title_name="&qtn_apps_office_title;"
+                    long_name="&qtn_apps_office_list;"
+                    short_name="&qtn_apps_office_grid;"
+                    applicationgroup_name="Office"
+                    icon_file="z:\resource\apps\matrixmenudata.mif"
+                    icon_id="16398"
+                    mask_id="16399"
+                    icon_skin_minor_id="0x1ead"
+                    icon_skin_major_id="0x101F86E3">
+                <!--File Manager-->
+                <menu:application uid="0x101F84EB"/>  
+                <!--Ovi Files-->				 
+                <menu:application uid="0x2000DD58" predefined_widget="true"/>
+                <!--Dictionary-->
+                <menu:application uid="0x200159D0"/>
+                <!--Intranet-->
+                <menu:application uid="0x20002595"/>
+                <!--Notes-->
+                <menu:application uid="0x10005907"/>
+                <!--Quick office -->
+                <menu:application uid="0x200002C0"/>
+                <!--Zip-->
+                <menu:application uid="0x2000023D"/>
+                <!--Calculator-->
+                <menu:application uid="0x10005902"/>
+                <!--Podcasting-->            
+                <menu:application uid="0x100058CA"/>
+                <!--Voice recorder-->
+                <menu:application uid="0x10282411"/>         
+                <!--Adobe PDF-->
+                <menu:application uid="0x2000CD2B"/>
+                <!--F secure-->
+                <menu:application uid="0x20001c27"/>
+                <!--Message reader-->
+                <menu:application uid="0x10201B00"/>
+                <!--Multiscanner-->
+                <menu:application uid="0x2000F5BF"/>
+            </menu:folder>            
+            <!--Tools folder-->
+            <!-- Sushi -->
+            <!-- <menu:folder title_name="&qtn_apps_tools_title;" 
+                    long_name="&qtn_apps_tools_list;" 
+                    short_name="&qtn_apps_tools_grid;"
+                    applicationgroup_name="Tools" 
+                    icon_file="z:\resource\apps\att_icons.mif" 
+                    icon_id="16400" 
+                    mask_id="16401"> -->
+            <!-- Vasco -->        
+            <menu:folder title_name="&qtn_apps_tools_title;" 
+                    long_name="&qtn_apps_tools_list;" 
+                    short_name="&qtn_apps_tools_grid;"
+                    applicationgroup_name="Tools"
+                    icon_file="z:\resource\apps\vasco_icons.mif"
+                    icon_id="16386" 
+                    mask_id="16387">
+                <!--Phone setup-->
+                <menu:application uid="0x200122A4"/>
+                <!--Sw update-->
+                <menu:application uid="0x2001FE2F"/>
+                <!--Ovi sync-->
+                <menu:application uid="0x20016C02"/>
+                <!-- Settings wizard -->
+                <menu:application uid="0x10281C96"/>
+                <!--My Nokia-->
+                <menu:application uid="0x2000F8A6"/>
+                <!--Font Magnifier-->
+                <menu:application uid="0x2002DEFF"/>
+                <!--About-->
+                <menu:application uid="0x10005A22"/>
+            </menu:folder>            
+            <!--Search application-->
+            <menu:application uid="0x200044D5"/>
+            <!-- Downloaded (if possible) -->
+            <menu:folder title_name="&qtn_apps_my_apps_title;"
+                    long_name="&qtn_apps_my_apps_list;"
+                    short_name="&qtn_apps_my_apps_grid;"
+                    applicationgroup_name="Downloaded"
+                    icon_file="z:\resource\apps\taika_icons.mif"
+                    icon_id="16392"
+                    mask_id="16393"
+                    icon_skin_minor_id="0x2173"
+                    icon_skin_major_id="0x101F86E3">                    
+            </menu:folder>
+            <!-- User Guide -->
+            <menu:application uid="0x10005234"/>
+            <!-- Chat IM -->
+            <menu:application uid="0x2000DD59" predefined_widget="true"/>
+            <!--Camera-->
+            <menu:application uid="0x101F857A"/>            
+            <!--Photo Editor-->
+            <menu:application uid="0x20026F35"/>
+            <!--Video Editor-->
+            <menu:application uid="0x20026F2F"/>            
+            <!--Games folder-->
+            <menu:folder title_name="&qtn_apps_games_title;"
+                    long_name="&qtn_apps_games_list;"
+                    short_name="&qtn_apps_games_grid;"
+                    applicationgroup_name="Games"
+                    icon_file="z:\resource\apps\matrixmenudata.mif"
+                    icon_id="16396"
+                    mask_id="16397"
+                    icon_skin_minor_id="0x2184"
+                    icon_skin_major_id="0x101F86E3" >
+                <!--Games/N-Gage application-->
+                <!-- <menu:application uid="0x20007B39" /> -->
+                <!--Climate mission-->
+                <!--<menu:application uid="0x2002A09D"/> -->
+                <!--Maps OVI challenge-->
+                <!-- <menu:application uid="0x2002A08C"/> -->
+            </menu:folder>
+            <!--Here and Now-->
+            <menu:application uid="0x2000E557"/>
+            <!--Traveler-->
+            <menu:application uid="0x2001E1AE"/>
+            <!-- PinFree.me -->
+            
+            <!-- Operator menu -->
+            <menu:application uid="0x10008D5E"/>
+            <!-- Plus all widgets -->
+        </menu:folder>
+        <menu:folder flags="hidden" long_name="mcsplugin_folder">
+            <menu:application uid="0x100058EC"
+                            view="0x10207250"
+                            icon_file="aimcsplugin.mif"
+                            icon_id="16394"
+                            mask_id="16395"
+                            long_name="&qtn_apps_connectivity_list;"/>
+
+            <menu:application uid="0x100058EC"
+                            view="0x10283321"
+                            icon_file="aimcsplugin.mif"
+                            icon_id="16392"
+                            mask_id="16393"
+                            long_name="&qtn_apps_installations_list;"/>
+
+            <menu:shortcut    uid="0x99999999"
+                            long_name="&qtn_apps_newmessage_list;"
+                            icon_file="aimcsplugin.mif"
+                            icon_id="16406"
+                            mask_id="16407"
+                            icon_skin_minor_id="0x2056"
+                            icon_skin_major_id="0x101F86E3"
+                            param="messaging:msg"/>
+
+            <menu:shortcut    uid="0x99999998"
+                            long_name="&qtn_apps_msgtypeselection_list;"
+                            icon_file="aimcsplugin.mif"
+                            icon_id="16388"
+                            mask_id="16389"
+                            icon_skin_minor_id="0x2058"
+                            icon_skin_major_id="0x101F86E3"
+                            param="messaging:seltype"/>
+
+            <menu:shortcut    uid="0x99999997"
+                            long_name="&qtn_apps_newemail_list;"
+                            icon_file="aimcsplugin.mif"
+                            icon_id="16402"
+                            mask_id="16403"
+                            param="messaging:email"/>
+
+            <menu:shortcut    uid="0x99999996"
+                            long_name="&qtn_apps_newsyncml_list;"
+                            icon_file="aimcsplugin.mif"
+                            icon_id="16390"
+                            mask_id="16391"
+                            icon_skin_minor_id="0x205a"
+                            icon_skin_major_id="0x101F86E3"
+                            param="messaging:syncmlmail"/>
+
+            <menu:shortcut    uid="0x99999995"
+                            long_name="&qtn_apps_newpostcard_list;"
+                            icon_file="aimcsplugin.mif"
+                            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="&qtn_apps_newaudiomsg_list;"
+                            icon_file="aimcsplugin.mif"
+                            icon_id="16404"
+                            mask_id="16405"
+                            param="messaging:audiomsg"/>
+
+            <menu:shortcut    flags="hidden"
+                            uid="0x99999991"
+                            long_name="&qtn_apps_undefined_list;"
+                            icon_file="aimcsplugin.mif"
+                            icon_id="16410"
+                            mask_id="16411"
+                            icon_skin_minor_id="0x24ba"
+                            icon_skin_major_id="0x101F86E3"/>
+
+            <menu:shortcut    uid="0x99999989"
+                            long_name="&qtn_apps_dialledcalls_list;"
+                            icon_file="aimcsplugin.mif"
+                            icon_id="16398"
+                            mask_id="16399"
+                            param="logs:dialed"/>
+
+          <menu:shortcut    flags="hidden"
+                            uid="0x99999990"
+                            long_name="&qtn_apps_manage_list;"
+                            icon_file="aimcsplugin.mif"
+                            icon_id="16408"
+                            mask_id="16409"
+                            icon_skin_minor_id="0x25f0"
+                            icon_skin_major_id="0x101F86E3"/>
+
+            <menu:shortcut    uid="0x99999992"
+                            long_name="&qtn_apps_profiles_list;"
+                            icon_file="profileapp_aif.mif"
+                            icon_id="16384"
+                            mask_id="16385"
+                            param="profiles"/>
+                            			    
+            <!-- Menu Application Launcher -->
+            <menu:application uid="0x101F4CD2"/>
+            <!-- Themes Application Launcher -->
+            <menu:application uid="0x10005A32"/>
+            <!-- Photos Suite launcher -->
+            <menu:application uid="0x200104E4"/>
+            <!-- Video Suite launcher -->
+            <menu:application uid="0x200211FA"/>
+            <!-- Conversation application -->
+            <menu:application uid="0x2002A540"/>
+        </menu:folder>
+    </menu:folder>
+</menu:data>
--- a/menufw/menusuites/foldersuite/group/bld.inf	Wed Sep 01 12:32:46 2010 +0100
+++ b/menufw/menusuites/foldersuite/group/bld.inf	Tue Sep 14 20:58:58 2010 +0300
@@ -42,7 +42,11 @@
 #ifdef _MATRIX_MENU_INCLUDE_TEST_CONTENT
 ../data/matrixmenudatatestcontent.xml Z:/private/200113DD/content/matrixmenudata.xml
 #else
+// #if defined (FF_LAYOUT_480_640_VGA3) || defined (FF_LAYOUT_640_480_VGA3) || defined (FF_LAYOUT_480_640_TOUCH_VGA4) || defined (FF_LAYOUT_640_480_TOUCH_VGA4)
+// ../data/matrixmenudata_vga.xml Z:/private/200113DD/content/matrixmenudata.xml
+// #else
 ../data/matrixmenudata.xml Z:/private/200113DD/content/matrixmenudata.xml
+// #endif
 #endif
 ../data/matrixmenudata.dtd Z:/private/200113DD/content/01/matrixmenudata.dtd
 
Binary file menufw/menusuites/foldersuite/loc/matrixmenudata.loc has changed
--- a/taskswitcher/contextengine/tsfswpreviewprovider/inc/tspreviewobserver.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/contextengine/tsfswpreviewprovider/inc/tspreviewobserver.h	Tue Sep 14 20:58:58 2010 +0300
@@ -61,7 +61,7 @@
      * @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;
+    virtual void HandleFswPpApplicationBitmapRotation( TInt aWgId, TInt aFbsHandle, TBool aClockwise ) = 0;
     };
 
 #endif // TSPREVIEWOBSERVER_H
--- a/taskswitcher/contextengine/tsfswpreviewprovider/src/tspropertylistener.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/contextengine/tsfswpreviewprovider/src/tspropertylistener.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -71,12 +71,14 @@
             }
         case EOperationBitmapRotation90:
             {
-            iObs.HandleFswPpApplicationBitmapRotation( iWgId, ETrue );
+            iObs.HandleFswPpApplicationBitmapRotation( iWgId,
+                    iFbsBitmapId, ETrue );
             break;
             }
         case EOperationBitmapRotation270:
             {
-            iObs.HandleFswPpApplicationBitmapRotation( iWgId, EFalse );
+            iObs.HandleFswPpApplicationBitmapRotation( iWgId,
+                    iFbsBitmapId, EFalse );
             break;
             }
         default:
--- a/taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/inc/previewprovidercrp.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/inc/previewprovidercrp.h	Tue Sep 14 20:58:58 2010 +0300
@@ -117,7 +117,7 @@
     /*
      * Allocate resources and take screenshot
      */
-    void ScreenshotL();
+    void ScreenshotL( TBool aRotation );
     
     /**
      * Takes the screenshot.
@@ -144,7 +144,7 @@
     /**
      * Notifies the PreviewProviderClient when screenshot is ready for copying.
      */     
-    void ScaleCompleteL(const CFbsBitmap& aBitmap);
+    void ScaleCompleteL( const CFbsBitmap& aBitmap, TBool aRotation );
     
     /**
      * Notifies the PreviewProviderClient when an application has been exited.
@@ -152,11 +152,6 @@
     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. 
--- a/taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/src/previewprovidercrp.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/contextengine/tsfswpreviewprovider/wsplugin/src/previewprovidercrp.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -33,7 +33,7 @@
 
 // CONSTANTS
 const TInt KImpId( 0x20016BEC );
-const TInt KMinTimeForOrientationSwitch = 1; // 1 second
+const TInt64 KMinTimeForOrientationSwitch = 500000; // 0.5 second
 
 // --------------------------------------------------------------------------
 // CPreviewProviderCRP::CreateL
@@ -126,7 +126,7 @@
             iScreenshotMode = static_cast<TDisplayMode>( in.ReadInt32L() );
             break;
         case NPreviewMsg::ETakePreview:
-            ScreenshotL();
+            ScreenshotL( FALSE );
             break;
         case NPreviewMsg::EAckPreviewReady:
             RemoveScreenshot( in.ReadInt32L() );
@@ -172,21 +172,18 @@
             {
             TTime currTime;
             currTime.HomeTime();
-            TTimeIntervalSeconds secondsFrom;
-            TInt err = currTime.SecondsFrom( iScreenChangedTime, secondsFrom );
-            if ( err != KErrNone || secondsFrom.Int() > KMinTimeForOrientationSwitch )
+            TTimeIntervalMicroSeconds micSecondsFrom = currTime.MicroSecondsFrom( iScreenChangedTime );
+            if ( micSecondsFrom.Int64() > KMinTimeForOrientationSwitch )
                 {
                 if ( iLastWgIdRedraw )
                     {
-                    TRAP_IGNORE( ScreenshotL() );
+                    TRAP_IGNORE( ScreenshotL( FALSE ) );
                     }
                 }
             else
                 {
                 // Reset time to allow screenshot taking on next wg change
                 iScreenChangedTime = 0;
-                // Order screenshot rotation
-                BitmapRotationNeeded( iPrevId?iPrevId:iPrevReg, iClockwiseRot );
                 }
             iPrevReg = 0;
             }
@@ -198,7 +195,9 @@
         iScreenChangedTime.HomeTime();
         if ( iLastWgIdRedraw )
             {
-            TRAP_IGNORE( ScreenshotL() );
+            TRAP_IGNORE( 
+                ScreenshotL( TRUE ); 
+                );
             }
         }
     else if ( aEvent.Type() == TWservCrEvent::EScreenDrawing )
@@ -213,13 +212,22 @@
 // CPreviewProviderCRP::ScaleComplete
 // --------------------------------------------------------------------------
 //    
-void CPreviewProviderCRP::ScaleCompleteL( const CFbsBitmap& aBitmap )
+void CPreviewProviderCRP::ScaleCompleteL( const CFbsBitmap& aBitmap, 
+                    TBool aRotation )
     {
     TSLOG_CONTEXT( ScaleComplete, TSLOG_LOCAL );
     TSLOG_IN();
     
+    TInt msgType = NPreviewMsg::EPreviewReady;
+    if ( aRotation )
+        {
+        msgType = iClockwiseRot ? 
+                NPreviewMsg::EBitmapRotationNeeded90 : 
+                NPreviewMsg::EBitmapRotationNeeded270;
+        }
+    
     const TInt msg[] = {
-            NPreviewMsg::EPreviewReady,
+            msgType,
             iPrevId?iPrevId:iPrevReg,
             aBitmap.Handle()
             };
@@ -252,28 +260,6 @@
     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
 // --------------------------------------------------------------------------
@@ -313,12 +299,12 @@
 // CPreviewProviderCRP::ScreenShotL
 // --------------------------------------------------------------------------
 //
-void CPreviewProviderCRP::ScreenshotL()
+void CPreviewProviderCRP::ScreenshotL( TBool aRotation )
     {
     CFbsBitmap* screenshot = new (ELeave)CFbsBitmap();
     CleanupStack::PushL( screenshot );
     ScreenshotL( *screenshot );
-    ScaleCompleteL( *screenshot );
+    ScaleCompleteL( *screenshot, aRotation );
     iScreenshots.InsertL( screenshot, iScreenshots.Count() );
     CleanupStack::Pop( screenshot );
     CheckOverflow();
--- a/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswdatalist.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswdatalist.h	Tue Sep 14 20:58:58 2010 +0300
@@ -149,6 +149,11 @@
      */
     TInt FindMostTopParentWgId( TInt aWgId );
     
+    /**
+     * Remove all screenshots from hidden apps, they are not used.
+     */
+    void RemoveHiddenAppsScrenshotsL();
+    
 private:
     /**
      * Adds running apps to the list.
--- a/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswengine.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/contextengine/tsfswserver/engine/inc/tsfswengine.h	Tue Sep 14 20:58:58 2010 +0300
@@ -140,7 +140,8 @@
     // from MTsFastSwapPreviewObserver
     void HandleFswPpApplicationChange( TInt aWgId, TInt aFbsHandle );
     void HandleFswPpApplicationUnregistered( TInt aWgId );
-    void HandleFswPpApplicationBitmapRotation( TInt aWgId, TBool aClockwise );
+    void HandleFswPpApplicationBitmapRotation( TInt aWgId, 
+            TInt aFbsHandle, TBool aClockwise );
 
     void RotateL( CFbsBitmap& aBitmap, TInt aWgId, TBool aClockwise );
 
--- a/taskswitcher/contextengine/tsfswserver/engine/src/tsfswdatalist.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/contextengine/tsfswserver/engine/src/tsfswdatalist.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -737,6 +737,10 @@
         if ( (iData[i]->Widget() == aConsiderWidgets) &&
             !CheckIfExists(*iData[i], aListToFit) )
             {
+            if( aConsiderWidgets )
+                {
+                RemoveScreenshot( iData[i]->AppUid().iUid );
+                }
             delete iData[i];
             iData.Remove(i);
             changed = ETrue;
@@ -831,5 +835,29 @@
     return changed;
     }
 
+// --------------------------------------------------------------------------
+// CTsFswDataList::RemoveScreenshotFromParent
+// --------------------------------------------------------------------------
+//
+void CTsFswDataList::RemoveHiddenAppsScrenshotsL()
+    {
+    RArray<TInt> hiddenWgIds;
+    THashMapIter<TInt, CFbsBitmap*> iter( iScreenshots );
+    while ( const TInt* wgIdkey = iter.NextKey() )
+        {
+        TInt wgId = *wgIdkey;
+        TBool hidden = HiddenApps()->IsHiddenL( AppUidForWgIdL( wgId),
+                iWsSession, wgId );
+        if( hidden )
+            {
+            hiddenWgIds.Append( wgId );
+            }
+        }
+    for ( TInt i = 0; i < hiddenWgIds.Count(); i++)
+        {
+        RemoveScreenshot( hiddenWgIds[i] );
+        }
+    hiddenWgIds.Reset();
+    }
 
 // end of file
--- a/taskswitcher/contextengine/tsfswserver/engine/src/tsfswengine.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/contextengine/tsfswserver/engine/src/tsfswengine.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -364,6 +364,7 @@
 void CTsFswEngine::HiddenAppListUpdated()
     {
     UpdateTaskList();
+    TRAP_IGNORE( iDataList->RemoveHiddenAppsScrenshotsL(); )
     }
 
 // --------------------------------------------------------------------------
@@ -489,10 +490,15 @@
         wgId = aWgId;
         }
     TInt err = iDataList->AppUidForWgId( wgId, appUid );
-    if ( err || appUid == KTsCameraUid )
+    TBool hidden = EFalse;
+    TRAP_IGNORE( 
+    hidden = iDataList->HiddenApps()->IsHiddenL( appUid, iWsSession, aWgId) );
+    if ( err || 
+         KTsCameraUid == appUid ||
+         hidden )
         {
-        // Dont't assign screenshot to camera app
-        TSLOG0( TSLOG_LOCAL, "Screenshot for camera - ignore" );
+        // Dont't assign screenshot to camera app or hidden app
+        TSLOG0( TSLOG_LOCAL, "Screenshot for camera or hidden app - ignore" );
         iPreviewProvider->AckPreview(aFbsHandle);
         TSLOG_OUT();
         return;
@@ -529,11 +535,14 @@
 // Callback from CTsFastSwapPreviewProvider
 // --------------------------------------------------------------------------
 //
-void CTsFswEngine::HandleFswPpApplicationBitmapRotation( TInt aWgId, TBool aClockwise )
+void CTsFswEngine::HandleFswPpApplicationBitmapRotation( TInt aWgId,
+        TInt aFbsHandle, TBool aClockwise )
     {
     TSLOG_CONTEXT( HandleFswPpApplicationBitmapRotation, TSLOG_LOCAL );
     TSLOG1_IN( "aWgId = %d", aWgId );
     
+    HandleFswPpApplicationChange( aWgId, aFbsHandle );
+    
     CFbsBitmap** bmp = iDataList->FindScreenshot(aWgId);
             
     if ( bmp )
--- a/taskswitcher/taskswitcherui/taskswitcherapp/group/tsapp.mmp	Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/group/tsapp.mmp	Tue Sep 14 20:58:58 2010 +0300
@@ -20,7 +20,9 @@
 #include <platform_paths.hrh>
 #include "../inc/tsuid.hrh"
 
-EPOCHEAPSIZE    0x100000 0xa00000  // 1 Mb - 10 Mb
+#ifndef WINSCW
+    EPOCHEAPSIZE    0x100000 0xa00000  // 1 Mb - 10 Mb
+#endif
 EPOCSTACKSIZE   0x5000 // 20KB
 
 TARGET          taskswitcher.exe
@@ -37,6 +39,7 @@
 SOURCE          tstaskswitcher.cpp 
 SOURCE          tsappview.cpp
 SOURCE          tsfastswaparea.cpp
+SOURCE          tsfastswapareautils.cpp
 SOURCE          tsfastswapgrid.cpp
 SOURCE          tsdevicestate.cpp
 SOURCE          tseventcontroler.cpp
@@ -81,6 +84,7 @@
 LIBRARY         akntouchgesturefw.lib
 LIBRARY         aknphysics.lib
 LIBRARY         touchfeedback.lib
+LIBRARY         bitmaptransforms.lib
 
 DEBUGLIBRARY    flogger.lib
 
--- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappui.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsappui.h	Tue Sep 14 20:58:58 2010 +0300
@@ -45,9 +45,6 @@
 
 public:
     enum {
-    //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-    //TODO make maping to NGA transition id
-    //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     ENoneTransition = 0,
     EForegroundTransition = 3,
     EBackgroundTransition = 4,
@@ -214,6 +211,13 @@
      *          Currently it recognises only camera app as multimedia app.
      */
     TBool IsUnderlyingAppMultimediaL();
+    
+    /**
+     * Obtain aplication id by it's window group Id.
+     * 
+     * @return  TUid aplication id.
+     */
+    TUid GetAppIdL( TInt aWgId );
 
 private:
 
--- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswaparea.h	Tue Sep 14 20:58:58 2010 +0300
@@ -34,6 +34,8 @@
 class CTsEventControler;
 class MTsDataChangeObserver;
 class CAknLongTapAnimation;
+class CTsFastSwapAreaExtension;
+class CAknPointerEventSuppressor;
 
 /**
  * Taskswitcher Fast Swap area UI.
@@ -180,6 +182,13 @@
     void HandleListBoxEventL(CEikListBox* aListBox, TListBoxEvent aEventType);
     
 public:
+    
+    enum TsFastSwapAreaGridData {
+        EMaxItemsOnScreen = 1,
+        EGridItemWidth,
+        EGridItemGap
+    };
+    
     /**
      * Implements drag gesture handling
      * @see MTsEventControlerObserver
@@ -229,6 +238,21 @@
      */
     TBool WgOnTaskList( TInt aWgId );
     
+    /**
+     * Returns full grid view size.
+     */
+    TSize GridWorldSize();
+    
+    /**
+     * Retrieves number of items in grid
+     */
+    TInt GridItemCount();
+    
+    /**
+     * Returnes value of the requested grid data
+     */
+    TInt GetGridItemData( TsFastSwapAreaGridData aDataType );
+    
 public:    
     // from CCoeControl    
     TInt CountComponentControls() const;
@@ -262,23 +286,21 @@
      * Switches to another application.
      */
     void SwitchToApp( TInt aWgId, const TUid& aUid );
-    
-    /**
-     * Makes a copy of the given bitmap.
-     * Also scaled to the given size, but maintains aspect ratio,
-     * so the size of the returned bitmap may be less then aSize.
-     */
-    CFbsBitmap* CopyBitmapL( TInt aFbsHandle, TSize aSize );
 
     /**
-     * Called from HandleFswContentChanged.
+     * Update and prepare data for grid.
      */    
-    void HandleFswContentChangedL();
+    void GetContentForGrid();
     
     /**
-     * Shows the content from iArray on the screen.
+     * Obtain actual data from server.
+     */ 
+    void GetContentL();
+    
+    /**
+     * Prepare the content from iArray to be shown on the screen.
      */
-    void RenderContentL( TBool aSuppressAnimation = EFalse );
+    void RenderContentL( );
     
     /**
      * Creates the ganes grid control.
@@ -296,11 +318,6 @@
      * @param  aItemCount  number of items in grid
      */
     void LayoutGridViewL( TInt aItemCount );
-    
-    /**
-     * Returns rectangles for fast swap area controls
-     */
-    void GetFastSwapAreaRects( RArray<TAknLayoutRect>& aRects );
 
     /**
      * Creates a stylus popup instance (iPopup) if not yet done.
@@ -320,22 +337,6 @@
     void NotifyChange();
     
     /**
-     * Retrieves and returns size for image graphics.
-     */
-    TSize PreferredImageSize();
-    
-    /**
-     * Retrieves number of items in grid
-     */
-    TInt GridItemCount();
-    
-    /**
-     * Calculates the correct size if aspect ratio needs to be preserved.
-     */
-    TSize CalculateSizePreserveRatio(const TSize& aTargetAreaSize,
-            const TSize& aSourceSize);
-    
-    /**
      * Selects next item in grid
      */
     void SelectNextItem();
@@ -350,11 +351,6 @@
     void CenterItem( TInt aRedrawDelay);
     
     /**
-     * Returns full grid view size.
-     */
-    TSize GridWorldSize();
-    
-    /**
      * Updates grid, called for manual grid scroll update
      * 
      * @param  aForceRedraw    if set to ETrue - redraw will be forced
@@ -369,53 +365,12 @@
     TSize ViewSize();
     
     /**
-     * Returns the position of the given item inside grid world rect.
-     * Returns point in the middle of the view rectangle.
-     * 
-     * @param  aItemIdx  index of the item for which calculation will be done
-     */
-    TPoint ItemViewPosition( TInt aItemIdx );
-    
-    /**
-     * Returns index of the shown item, based on the logical
-     * position of the grids view. Item that is closest to the
-     * middle of screen is returned.
-     * 
-     * @param  aViewPos  grids view position. This must be point in
-     *                   the middle of the view rectangle
-     * @return  index of the item
-     */
-    TInt ViewToVisibleItem( const TPoint aViewPos );
-    
-    /**
-     * Launches increasing pop-up feedback.
-     */
-    void LaunchPopupFeedback();
-    
-    /**
      * Show highlight when disabled and 
      * consume EEventKeyUp that follows after event that swiched on the highlight.
      */
     TKeyResponse ShowHighlightOnKeyEvent(const TKeyEvent& aKeyEvent, TEventCode aType);
     
     /**
-     * Returns current screen orientation:
-     * 
-     * @return  1 if landscape, 0 if portait 
-     */
-    TInt GetCurrentScreenOrientation();
-    
-    /**
-     * Retrieves variety value, based on current screen resolution.
-     * 
-     * @param  aVariety  result of the function, 0 value means portrait
-     *                   value of 1 indicates landscape
-     * @return  ETrue if screen resolution differs from vale returned by
-     *          layout meta data functions.
-     */
-    TBool GetVariety( TInt& aVariety );
-    
-    /**
      * Cancels long tap animation.
      */
     void CancelLongTapAnimation( TBool aDisablePopup = ETrue );
@@ -434,6 +389,9 @@
     // parent control
     CCoeControl& iParent;
     
+    // utility helper class
+    CTsFastSwapAreaExtension* iFastSwapExt;
+    
     // device state
     // not own 
     CTsDeviceState& iDeviceState;
@@ -485,6 +443,8 @@
     // Key event handling
     TBool iConsumeEvent;
     TBool iKeyEvent;
+    CAknPointerEventSuppressor* iEventSupressor;
+    TBool iSupressDrag;
     
     // App closing handling
     RArray<TInt> iIsClosing;
@@ -495,6 +455,9 @@
     CAknLongTapAnimation* iLongTapAnimation;
     CTsFastSwapTimer* iLongTapAnimationTimer;
     TBool iLongTapAnimationRunning;
+    
+    // Screenshot handling
+    RArray<TInt> iPrevScreenshots;
     };
 
 #endif // TSFASTSWAPAREA_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapareautils.h	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,220 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Fast swap area utilities classes
+ *
+*/
+
+#ifndef TSFASTSWAPAREAUTILS_H_
+#define TSFASTSWAPAREAUTILS_H_
+
+#include <e32base.h>
+
+// Forwar class declarations
+class CEikonEnv;
+class TAknLayoutRect;
+class CTsFastSwapTimer;
+class CTsFastSwapArea;
+class CTsFastSwapGrid;
+class CTsFswEntry;
+class CBitmapScaler;
+class CTsFastSwapAreaExtension;
+
+
+/**
+ * Interface for observing timer class.
+ */
+class MTsFastSwapTimerObserver
+    {
+public:
+    /**
+     * Called when timer is completed
+     */
+    virtual void TimerCompletedL( CTsFastSwapTimer* aSource ) = 0;
+    };
+
+
+
+/**
+ * Timer class for handling timed events
+ */
+class CTsFastSwapTimer : public CTimer
+    {
+public:
+    // Constructor
+    CTsFastSwapTimer( MTsFastSwapTimerObserver& aObserver );
+    // Destructor
+    ~CTsFastSwapTimer();
+    // 2nd phase constructor
+    void ConstructL();
+    
+private: // From CTimer
+    void RunL();
+    
+private: // Data
+    MTsFastSwapTimerObserver* iObserver; // not own
+    };
+
+
+
+/**
+ * Asynchronous class for handling screenshots loading
+ * and rescaling to achieve better quality. 
+ */
+class CTsBitmapScaleTask : public CActive
+    {
+public:
+    CTsBitmapScaleTask( CTsFastSwapAreaExtension& aObserver );
+    ~CTsBitmapScaleTask();
+    void StartLD( CFbsBitmap* aSourceBitmap,
+                  CFbsBitmap* aTargetBitmap );
+private:
+    void RunL();
+    void DoCancel();
+private:
+    // Data
+    CTsFastSwapAreaExtension& iObserver;
+    CBitmapScaler* iScaler; // owned
+    CFbsBitmap* iSourceBmp; // owned
+    };
+
+
+
+/**
+ * Utility class containg methods for fast swap area handling.
+ */
+class CTsFastSwapAreaExtension: public CBase
+    {
+
+public:
+    
+    /**
+     * Two-phase constructor.
+     * 
+     * @param aRect Area where fast swap info & list should draw itself.
+     * @param aParent Parent CoeControl. 
+     */
+    static CTsFastSwapAreaExtension* NewL( CTsFastSwapArea& aFastSwapArea,
+                                       CEikonEnv& aEnv);
+
+    /**
+     * @copydoc NewL
+     */
+    static CTsFastSwapAreaExtension* NewLC( CTsFastSwapArea& aFastSwapArea,
+                                        CEikonEnv& aEnv );
+
+    /**
+     * Destructor.
+     */
+    ~CTsFastSwapAreaExtension();
+    
+private:
+
+    /**
+     * @copydoc NewL
+     */
+    void ConstructL();
+
+    /**
+     * C++ constructor.
+     */
+    CTsFastSwapAreaExtension( CTsFastSwapArea& aFastSwapArea,
+                          CEikonEnv& aEnv );
+    
+public:
+    
+    /**
+     * Returns current screen orientation:
+     * 
+     * @return  1 if landscape, 0 if portait 
+     */
+    TInt GetCurrentScreenOrientation();
+    
+    /**
+     * Retrieves variety value, based on current screen resolution.
+     * 
+     * @param  aVariety  result of the function, 0 value means portrait
+     *                   value of 1 indicates landscape
+     * @return  ETrue if screen resolution differs from vale returned by
+     *          layout meta data functions.
+     */
+    TBool GetVariety( TInt& aVariety );
+    
+    /**
+     * Returns rectangles for fast swap area controls
+     */
+    void GetFastSwapAreaRects( RArray<TAknLayoutRect>& aRects );
+    
+    /**
+     * Returns the position of the given item inside grid world rect.
+     * Returns point in the middle of the view rectangle.
+     * 
+     * @param  aItemIdx  index of the item for which calculation will be done
+     */
+    TPoint ItemViewPosition( TInt aItemIdx );
+    
+    /**
+     * Returns index of the shown item, based on the logical
+     * position of the grids view. Item that is closest to the
+     * middle of screen is returned.
+     * 
+     * @param  aViewPos  grids view position. This must be point in
+     *                   the middle of the view rectangle
+     * @return  index of the item
+     */
+    TInt ViewToVisibleItem( const TPoint aViewPos );
+    
+    /**
+     * Launches increasing pop-up feedback.
+     */
+    void LaunchPopupFeedback();
+    
+    /**
+     * Retrieves and returns size for image graphics.
+     */
+    TSize PreferredImageSize();
+    
+    /**
+     * Calculates the correct size if aspect ratio needs to be preserved.
+     */
+    TSize CalculateSizePreserveRatio(const TSize& aTargetAreaSize,
+            const TSize& aSourceSize);
+    
+    /**
+     * Makes a copy of the given bitmap.
+     * Also scaled to the given size, but maintains aspect ratio,
+     * so the size of the returned bitmap may be less then aSize.
+     */
+    CFbsBitmap* CopyBitmapL( TInt aFbsHandle, TSize aSize, TBool aIsScreenshot );
+    
+    /**
+     * Cancels ongoing scale tasks
+     */
+    void CancelScaleTasks();
+    
+    /**
+     * Callback for updating task list.
+     */
+    void ScaleFinished( CTsBitmapScaleTask* iFinishedTask );
+    
+private: // Data
+    
+    CTsFastSwapArea& iFastSwapArea;
+    
+    CEikonEnv& iEnv;
+    
+    RPointerArray<CTsBitmapScaleTask> iScaleTasks;
+    
+    };
+
+#endif /* TSFASTSWAPAREAUTILS_H_ */
--- a/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapgrid.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/inc/tsfastswapgrid.h	Tue Sep 14 20:58:58 2010 +0300
@@ -22,9 +22,9 @@
 #include <AknGrid.h>
 #include <aknconsts.h>
 #include "tsdevicestate.h"
+#include "tsfastswapareautils.h"
 
 class CAknsFrameBackgroundControlContext;
-class CTsFastSwapTimer;
 
 /**
  * Observer for handling fast swap grid events
@@ -42,16 +42,6 @@
     };
 
 
-class MTsFastSwapTimerObserver
-    {
-public:
-    /**
-     * Called when timer is completed
-     */
-    virtual void TimerCompletedL( CTsFastSwapTimer* aSource ) = 0;
-    };
-
-
 /**
  * Avkon grid implementing custom item drawer
  */
@@ -375,25 +365,4 @@
     };
 
 
-
-/**
- * Timer class for handling highlight bevaiour
- */
-class CTsFastSwapTimer : public CTimer
-    {
-public:
-    // Constructor
-    CTsFastSwapTimer( MTsFastSwapTimerObserver& aObserver );
-    // Destructor
-    ~CTsFastSwapTimer();
-    // 2nd phase constructor
-    void ConstructL();
-    
-private: // From CTimer
-    void RunL();
-    
-private: // Data
-    MTsFastSwapTimerObserver* iObserver; // not own
-    };
-
 #endif /* TSFASTSWAPGRID_H_ */
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappui.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -155,6 +155,7 @@
     iApplicationTask.SetWgId( iWg.Identifier() );
 
     // And finally, go to background.
+    iForeground = ETrue;
     MoveAppToBackground( ENoneTransition );
     
     iEikonEnv->RootWin().SetOrdinalPosition(-1, ECoeWinPriorityNeverAtFront);
@@ -167,11 +168,6 @@
     iUiStarted = EFalse;
     iDisableAppKeyHandling = EFalse;
     
-    // Set process priority to high to avoid being
-    // locked by heavy ui apps processing
-    iEikonEnv->WsSession().ComputeMode(RWsSession::EPriorityControlDisabled);
-    RProcess().SetPriority(EPriorityHigh);
-    
     iForegroundDelayed = EFalse;
     iDelayedForegroundInProgress = EFalse;
     
@@ -183,7 +179,7 @@
 // Perform the first phase of two phase construction
 // -----------------------------------------------------------------------------
 //
-CTsAppUi::CTsAppUi(): iForeground( ETrue ),
+CTsAppUi::CTsAppUi(): iForeground( EFalse ),
                                       iApplicationTask( iCoeEnv->WsSession() )
     {
     // no implementation required
@@ -196,7 +192,7 @@
 //
 CTsAppUi::~CTsAppUi()
     {
-    if( GfxTransEffect::IsRegistered( iAppView ) )
+    if( iAppView && GfxTransEffect::IsRegistered( iAppView ) )
         {
         GfxTransEffect::Deregister(iAppView);
         
@@ -270,6 +266,7 @@
                                 TUint aSubCom )
     {
     const TDesC8* ptr = reinterpret_cast<const TDesC8*>(iAppView);
+    GfxTransEffect::AbortFullScreen();
     GfxTransEffect::Abort(iAppView);
     GfxTransEffect::Begin( iAppView, aTranstionId );
     GfxTransEffect::SetDemarcation( iAppView, iAppView->Rect() );
@@ -301,6 +298,7 @@
         {
         // App start animation
         const TDesC8* ptr = reinterpret_cast<const TDesC8*>(iAppView);
+        GfxTransEffect::AbortFullScreen();
         GfxTransEffect::Abort(iAppView);
         TInt groupId = GfxTransEffect::BeginGroup();
         GfxTransEffect::BeginFullScreen(
@@ -538,6 +536,8 @@
 //
 TInt CTsAppUi::GoToBackgroundTimerCallback( TAny* aParam )
     {
+    TSLOG_STATIC_CONTEXT( GoToBackgroundTimerCallback, TSLOG_LOCAL, RThread().Id() );
+    TSLOG_IN();
     CTsAppUi* self = static_cast<CTsAppUi*>( aParam );
     if ( self->iGoToBackgroundTimer )
         {
@@ -550,7 +550,7 @@
 
     // Notify
     self->HandleSwitchToBackgroundEvent();
-
+    TSLOG_OUT();
     return 0;
     }
 
@@ -584,6 +584,10 @@
     TSLOG_CONTEXT( MoveAppToForeground, TSLOG_LOCAL );
     TSLOG_IN();
 
+    if ( !iUiStarted )
+        {
+        TRAP_IGNORE( iUnderAppWgId = WgIdOfUnderlyingAppL(EFalse) );
+        }
     iUiStarted = ETrue;
     
     // Request window server to bring our application
@@ -626,7 +630,8 @@
         {
         iForeground = EFalse;
         SetTaskswitcherStateProperty( KTaskswitcherBackgroundValue );
-
+        
+        iAppView->MakeVisible( EFalse );
         // notify view
         iAppView->HandleSwitchToBackgroundEvent();
         
@@ -743,7 +748,6 @@
             {
             SetOrientationL(EAppUiOrientationPortrait);
             }
-        RProcess().SetPriority(EPriorityForeground);
         SetFullScreenApp(EFalse);
         iEikonEnv->RootWin().SetOrdinalPosition(0, ECoeWinPriorityAlwaysAtFront);
         }
@@ -765,7 +769,6 @@
         iEikonEnv->RootWin().SetOrdinalPosition(-1, ECoeWinPriorityNeverAtFront);
         SetOrientationL(EAppUiOrientationAutomatic);
         SetFullScreenApp(EFalse);
-        RProcess().SetPriority(EPriorityHigh);
         }
     TSLOG_OUT();
     }
@@ -802,12 +805,16 @@
 void CTsAppUi::HandleWsEventL(const TWsEvent& aEvent,
         CCoeControl* aDestination)
     {
+    TSLOG_CONTEXT( CTsAppUi::HandleWsEventL, TSLOG_LOCAL );
     CAknAppUi::HandleWsEventL(aEvent, aDestination);
     TInt eventType = aEvent.Type();
     if ( eventType == EEventWindowGroupListChanged )
         {
         TInt wgId = WgIdOfUnderlyingAppL(EFalse); 
+        TSLOG2( TSLOG_INFO, "WgIdOfUnderlyingAppL: %d appId: %d",
+                wgId, GetAppIdL( wgId ).iUid );
         if ( iForeground &&
+             wgId &&
              wgId != iUnderAppWgId &&
              !iAppView->AppCloseInProgress(iUnderAppWgId) &&
              !iAppView->WgOnTaskList(wgId) )
@@ -820,6 +827,7 @@
             }
         iUnderAppWgId = wgId;
         }
+    TSLOG_OUT();
     }
 
 
@@ -829,12 +837,19 @@
 //
 TInt CTsAppUi::WgIdOfUnderlyingAppL( TBool aIgnoreParentChild )
     {
+    TSLOG_CONTEXT( CTsAppUi::WgIdOfUnderlyingAppL, TSLOG_LOCAL );
     TInt retVal(0);
     TInt underlyingWg = CheckForUnderlyingHiddenAppsL();
     if ( !underlyingWg )
         {
-        TApaTaskList taskList( iEikonEnv->WsSession() );
+        TApaTaskList taskList(iEikonEnv->WsSession());
         underlyingWg = taskList.FindByPos(0).WgId();
+        if ( !(GetAppIdL(underlyingWg).iUid) )
+            {
+            TSLOG1 (TSLOG_INFO, "Incorrect  underlying window group: %d.", underlyingWg );
+            TSLOG0 (TSLOG_INFO, "No association to appId, nor special handling for underlying hidden apps.Change return value into 0.");
+            underlyingWg = 0;
+            }
         }
     
     if ( aIgnoreParentChild )
@@ -846,6 +861,7 @@
         TInt parentWg = GetTopParentWg( underlyingWg );
         retVal = parentWg ? parentWg : underlyingWg;
         }
+    TSLOG_OUT();
     return retVal;
     }
 
@@ -916,10 +932,7 @@
     TInt underlyingWg(allWgIds[0].iId);
     CleanupStack::PopAndDestroy(&allWgIds);
     
-    CApaWindowGroupName* windowName =
-        CApaWindowGroupName::NewLC( iEikonEnv->WsSession(), underlyingWg );
-    TUid appUid = windowName->AppUid();
-    CleanupStack::PopAndDestroy( windowName );
+    TUid appUid = GetAppIdL( underlyingWg );
     if( appUid == KTsCameraUid ||
         appUid == KTsTelephoneUid )
         {
@@ -939,10 +952,7 @@
     TApaTaskList taskList( iEikonEnv->WsSession() );
     TInt underlyingWg = taskList.FindByPos(0).WgId();
     
-    CApaWindowGroupName* windowName =
-        CApaWindowGroupName::NewLC( iEikonEnv->WsSession(), underlyingWg );
-    TUid appUid = windowName->AppUid();
-    CleanupStack::PopAndDestroy( windowName );
+    TUid appUid = GetAppIdL( underlyingWg );
     if ( appUid == KTsCameraUid )
         {
         retVal = ETrue;
@@ -961,4 +971,18 @@
     return iDelayedForegroundInProgress;
     }
 
+// -----------------------------------------------------------------------------
+// CTsAppUi::GetAppIdL
+// -----------------------------------------------------------------------------
+//
+TUid CTsAppUi::GetAppIdL( TInt aWgId )
+    {
+    TUid retVal;
+    CApaWindowGroupName* windowName =
+        CApaWindowGroupName::NewLC( iEikonEnv->WsSession(), aWgId );
+    retVal = windowName->AppUid();
+    CleanupStack::PopAndDestroy( windowName );
+    return retVal;
+    }
+
 // End of file
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappview.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsappview.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -205,9 +205,18 @@
     bgTport.LayoutRect( iViewRect,
         AknLayoutScalable_Apps::bg_popup_window_pane_cp01( variety ) );
     iBgContextOuterRect = bgTport.Rect();
-    bgTport.LayoutRect( iBgContextOuterRect,
-        AknLayoutScalable_Avkon::aid_inside_area_window_primary( variety ) );
-    iBgContextInnerRect = bgTport.Rect();
+    if( iBgContextOuterRect == iViewRect )
+        {
+        //full screen
+        iBgContextInnerRect = iBgContextOuterRect;
+        }
+    else
+        {
+        bgTport.LayoutRect( iBgContextOuterRect,
+                AknLayoutScalable_Avkon::
+                aid_inside_area_window_primary( variety ) );
+        iBgContextInnerRect = bgTport.Rect();
+        }
     TSLOG4( TSLOG_INFO, "outer rect for popup = %d %d %d %d",
             iBgContextOuterRect.iTl.iX, iBgContextOuterRect.iTl.iY,
             iBgContextOuterRect.iBr.iX, iBgContextOuterRect.iBr.iY );
@@ -243,7 +252,6 @@
     iAppsHeading->ConstructL( KNullDesC() );
     iAppsHeading->SetLayout( CAknPopupHeadingPane::EListHeadingPane ); 
 
-    //TODO: check why we need to set rect (set already in contructL)
     iFastSwapArea->SetRect( rects[1] ); // cannot be before iAppsHeading constructL
     iAppsHeading->SetRect( rects[0] );
     
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswaparea.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -28,12 +28,11 @@
 #include <aknlayoutscalable_apps.cdl.h>
 #include <layoutmetadata.cdl.h>
 #include <aknlists.h>
-#include <touchfeedback.h>
-#include <akntransitionutils.h>
-#include <akntranseffect.h>
 #include <aknlongtapanimation.h>
+#include <aknpointereventsuppressor.h>
 
 #include "tsfastswaparea.h"
+#include "tsfastswapareautils.h"
 #include "tsapplogging.h"
 #include "tsfswclient.h"
 #include "tsappui.h"
@@ -58,6 +57,7 @@
 const TInt KAppKeyTypeLong = 2;
 
 const TInt KLayoutItemCount = 4;
+const TInt KLayoutItemGap = 0;
 
 const TInt KRedrawTime = 250000; // 0.25 sec
 const TInt KRedrawTimeForLayoutSwitch = 700000; // 0.7 sec
@@ -66,12 +66,17 @@
 const TInt KOrientationSwitchTime = 1000000; // 1 sec
 const TInt KLongTapAnimationInitTime = 150000; // 0.15 sec
 const TInt KLongTapAnimationTimeout = 1000000; // 1 sec
+const TInt KPointerEventSuppressorMaxTapDuration = 400000;	// 0.4 sec
+const TInt KPointerEventSuppressorMaxTapMoveWidth = 3;
+const TInt KPointerEventSuppressorMaxTapMoveHeight = 8;
 
 const TInt KMaxGranularity = 4;
 
 const TUid KTsMenuUid = { 0x101f4cd2 };
 const TUid KTsHomescreenUid = { 0x102750f0 };
 
+
+
 // -----------------------------------------------------------------------------
 // CTsFastSwapArea::NewL
 // -----------------------------------------------------------------------------
@@ -109,7 +114,9 @@
     CTsDeviceState& aDeviceState,
     CTsEventControler& aEventHandler) :
     iParent(aParent), iDeviceState(aDeviceState), iEvtHandler(aEventHandler),
-    iIgnoreLayoutSwitch(EFalse), iWidgetClosingCount(0), iLongTapAnimationRunning(EFalse)
+    iGridItemGap(KLayoutItemGap), iIgnoreLayoutSwitch(EFalse), 
+    iSupressDrag(EFalse),iWidgetClosingCount(0),
+    iLongTapAnimationRunning(EFalse)
     {
     // no implementation required
     }
@@ -131,6 +138,9 @@
     delete iOrientationSignalTimer;
     delete iLongTapAnimation;
     delete iLongTapAnimationTimer;
+    delete iFastSwapExt;
+    iPrevScreenshots.Close();
+    delete iEventSupressor;
     }
 
 // -----------------------------------------------------------------------------
@@ -143,6 +153,9 @@
 
     SetRect( aRect );
 
+    // Create utility class
+    iFastSwapExt = CTsFastSwapAreaExtension::NewL( *this, *iEikonEnv );
+    
     // setup grid
     ReCreateGridL();
 
@@ -175,6 +188,12 @@
     iActivateOnPointerRelease = TPoint();
     iHandlePointerCandidate = EFalse;
     
+    iEventSupressor = CAknPointerEventSuppressor::NewL();
+    TSize maxTapMove(KPointerEventSuppressorMaxTapMoveWidth, 
+                     KPointerEventSuppressorMaxTapMoveHeight );
+    iEventSupressor->SetMaxTapMove(maxTapMove);
+    iEventSupressor->SetMaxTapDuration(KPointerEventSuppressorMaxTapDuration);
+    
     ActivateL();
     }
 
@@ -241,25 +260,31 @@
 //
 void CTsFastSwapArea::LayoutGridL()
     {
+    TSLOG_CONTEXT( CTsFastSwapArea::LayoutGridL, TSLOG_LOCAL );
+    TSLOG_IN();
+    
     RArray<TAknLayoutRect> rects;
     CleanupClosePushL(rects);
     rects.ReserveL(KLayoutItemCount);
-    GetFastSwapAreaRects(rects);
+    iFastSwapExt->GetFastSwapAreaRects(rects);
     TAknLayoutRect gridAppPane = rects[0];
     TAknLayoutRect gridItem = rects[1];
     TAknLayoutRect gridImage = rects[2];
-    TAknLayoutRect gridNextItem = rects[3];
+
     CleanupStack::PopAndDestroy(&rects);
     
     iGrid->SetRect(gridAppPane.Rect());
     
+    CTsAppUi* appUi = static_cast<CTsAppUi*>(iEikonEnv->AppUi());
+    
     TInt variety;
-    TBool disable = GetVariety(variety);
+    TBool disable = iFastSwapExt->GetVariety(variety);
     if ( disable )
         {
-        TRAP_IGNORE(static_cast<CTsAppUi*>(iEikonEnv->AppUi())->RequestPopUpL());
+        TRAP_IGNORE(appUi->RequestPopUpL());
         }
     variety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0; // double check to avoid layout panic
+    TSLOG1( TSLOG_INFO, "variety %d", variety );
     
     TAknLayoutScalableParameterLimits gridParams = 
         AknLayoutScalable_Apps::cell_tport_appsw_pane_ParamLimits( variety );
@@ -290,14 +315,6 @@
     iGrid->ItemDrawer()->FormattedCellData()->SetSubCellColorsL(1, colors);
     iGrid->SetStrokeColors(textColor, highlightTextColor);
     
-    if ( AknLayoutUtils::LayoutMirrored() )
-        {
-        iGridItemGap = gridItem.Rect().iTl.iX - gridNextItem.Rect().iBr.iX;
-        }
-    else
-        {
-        iGridItemGap = gridNextItem.Rect().iTl.iX - gridItem.Rect().iBr.iX;
-        }
     iMaxItemsOnScreen = Rect().Width() / gridItem.Rect().Width();
     if ( iMaxItemsOnScreen > 1 )
         {
@@ -309,7 +326,6 @@
             }
         }
     iGridItemWidth = gridItem.Rect().Width();
-    
     // Update item drawer
     iGrid->UpdateItemDrawerLayoutDataL();
     
@@ -318,8 +334,10 @@
     
     if ( disable )
         {
-        TRAP_IGNORE(static_cast<CTsAppUi*>(iEikonEnv->AppUi())->DisablePopUpL());
+        TRAP_IGNORE(appUi->DisablePopUpL());
         }
+    
+    TSLOG_OUT();
     }
 
 
@@ -332,7 +350,7 @@
     RArray<TAknLayoutRect> rects;
     CleanupClosePushL(rects);
     rects.ReserveL(KLayoutItemCount);
-    GetFastSwapAreaRects(rects);
+    iFastSwapExt->GetFastSwapAreaRects(rects);
     TAknLayoutRect gridItem = rects[1];
     CleanupStack::PopAndDestroy(&rects);
     if ( aItemCount )
@@ -361,48 +379,6 @@
         }
     }
 
-
-// --------------------------------------------------------------------------
-// CTsFastSwapArea::GetFastSwapAreaRects
-// --------------------------------------------------------------------------
-//
-void CTsFastSwapArea::GetFastSwapAreaRects( RArray<TAknLayoutRect>& aRects )
-    {
-    TAknLayoutRect gridAppPane;
-    TAknLayoutRect gridItem;
-    TAknLayoutRect gridImage;
-    TAknLayoutRect gridNextItem;
-    
-    TInt variety;
-    TBool disable = GetVariety(variety);
-    if ( disable )
-        {
-        TRAP_IGNORE(static_cast<CTsAppUi*>(iEikonEnv->AppUi())->RequestPopUpL());
-        }
-    variety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0; // double check to avoid layout panic
-    
-    gridAppPane.LayoutRect( Rect(), 
-            AknLayoutScalable_Apps::tport_appsw_pane( variety ) );
-    aRects.Append(gridAppPane);
-    
-    gridItem.LayoutRect( gridAppPane.Rect(),
-            AknLayoutScalable_Apps::cell_tport_appsw_pane( variety, 0, 0 ) );
-    aRects.Append(gridItem);
-    
-    gridImage.LayoutRect( gridItem.Rect(),
-            AknLayoutScalable_Apps::cell_tport_appsw_pane_g1( variety ) ); 
-    aRects.Append(gridImage);
-    gridNextItem.LayoutRect( gridAppPane.Rect(),
-            AknLayoutScalable_Apps::cell_tport_appsw_pane_cp03( variety ) );
-    aRects.Append(gridNextItem);
-    
-    if ( disable )
-        {
-        TRAP_IGNORE(static_cast<CTsAppUi*>(iEikonEnv->AppUi())->DisablePopUpL());
-        }
-    }
-
-
 // --------------------------------------------------------------------------
 // CTsFastSwapArea::Setup
 // --------------------------------------------------------------------------
@@ -554,7 +530,7 @@
             }
         
         // Orientation update
-        iPrevScreenOrientation = GetCurrentScreenOrientation();
+        iPrevScreenOrientation = iFastSwapExt->GetCurrentScreenOrientation();
         iOrientationSignalTimer->Cancel();
         iOrientationSignalTimer->After(KOrientationSwitchTime);
         }
@@ -624,8 +600,31 @@
     {
     TSLOG_CONTEXT( HandleFswContentChanged, TSLOG_LOCAL );
     TSLOG_IN();
+    
+    //prepare grid with current content from fastswap server 
+    GetContentForGrid();
+    // draw
+    UpdateGrid( ETrue, ETrue );
+    // notify observer, if present
+    NotifyChange();
+    
+    TSLOG_OUT();
+    }
 
-    TRAPD( err, HandleFswContentChangedL() );
+// --------------------------------------------------------------------------
+// CTsFastSwapArea::GetContentForGrid
+// --------------------------------------------------------------------------
+//
+void CTsFastSwapArea::GetContentForGrid()
+    {
+    TSLOG_CONTEXT( GetContentForGrid, TSLOG_LOCAL );
+    TSLOG_IN();
+    TRAPD( err,
+        // get current content from fastswap server
+        GetContentL();
+        // prepare grid content
+        RenderContentL();
+    )
     if ( err != KErrNone )
         {
         TSLOG1( TSLOG_INFO, "leave occured: %d", err );
@@ -635,25 +634,23 @@
     }
 
 // --------------------------------------------------------------------------
-// CTsFastSwapArea::HandleFswContentChangedL
+// CTsFastSwapArea::GetContentL
 // --------------------------------------------------------------------------
 //
-void CTsFastSwapArea::HandleFswContentChangedL()
+void CTsFastSwapArea::GetContentL()
     {
-    TSLOG_CONTEXT( HandleFswContentChangedL, TSLOG_LOCAL );
+    TSLOG_CONTEXT( GetContentL, TSLOG_LOCAL );
     TSLOG_IN();
-
-    // get current content from fastswap server
     iFSClient->GetContentL( iArray );
-
-#ifdef _DEBUG
+    
+    #ifdef _DEBUG
     for ( TInt i = 0, ie = iArray.Count(); i != ie; ++i )
         {
         CTsFswEntry* e = iArray[i];
         const TDesC& name( e->AppName() );
         TSLOG4( TSLOG_INFO, "[%d]: %d %d %S", i, e->WgId(), e->AppUid(), &name );
         }
-#endif
+    #endif
     
     // Update closing widget count if necessary
     if ( iWidgetClosingCount )
@@ -668,13 +665,6 @@
             }
         iWidgetClosingCount = widgetCount;
         }
-
-    // draw
-    RenderContentL();
-
-    // notify observer, if present
-    NotifyChange();
-
     TSLOG_OUT();
     }
 
@@ -682,13 +672,16 @@
 // CTsFastSwapArea::RenderContentL
 // --------------------------------------------------------------------------
 //
-void CTsFastSwapArea::RenderContentL( TBool aSuppressAnimation )
+void CTsFastSwapArea::RenderContentL( )
     {
     TSLOG_CONTEXT( RenderContentL, TSLOG_LOCAL );
     TSLOG_IN();
 
     _LIT(KSeparator, "\t");
     
+    // Cancel ongoing scaling
+    iFastSwapExt->CancelScaleTasks();
+    
     CArrayPtr<CGulIcon>* iconArray = new ( ELeave ) CAknIconArray( KMaxGranularity );
     CleanupStack::PushL( iconArray );
     CDesCArrayFlat* textArray = new ( ELeave ) CDesCArrayFlat( KMaxGranularity );
@@ -697,10 +690,15 @@
     CleanupClosePushL(closeItemArray);
     RArray<TInt> strokeItemArray;
     CleanupClosePushL(strokeItemArray);
+    RArray<TInt> screenshotList;
+    CleanupClosePushL(screenshotList);
     
     // Update view based on number of items
     LayoutGridViewL( iArray.Count() );
     
+    CArrayPtr<CGulIcon>* oldIconArray =
+        iGrid->ItemDrawer()->FormattedCellData()->IconArray();
+    
     for ( TInt i = 0; i < iArray.Count(); ++i )
         {
         const TDesC& appName( iArray[i]->AppName() );
@@ -713,19 +711,21 @@
         formAppName.Append(appName);
         textArray->AppendL(formAppName);
         CleanupStack::PopAndDestroy(&formAppName);
-        TSize sz = PreferredImageSize();
-
+        TSize sz = iFastSwapExt->PreferredImageSize();
+        
         // take the screenshot or appicon+mask and make a copy and scale
         CFbsBitmap* bitmap = 0;
         TInt h = iArray[i]->ScreenshotHandle();
         TSLOG2( TSLOG_INFO, "'%S' screenshot handle %d", &appName, h );
         TInt maskh = 0;
         CFbsBitmap* mask = 0;
+        TBool isScreenshot( ETrue );
         if ( !h )
             {
             // No screenshot, take app icon
             h = iArray[i]->AppIconBitmapHandle();
             maskh = iArray[i]->AppIconMaskHandle();
+            isScreenshot = EFalse;
             TSLOG1( TSLOG_INFO, "using appicon, handle = %d", h );
             }
         else
@@ -734,11 +734,31 @@
             strokeItemArray.AppendL(i);
             }
         __ASSERT_DEBUG( h, User::Invariant() );
-        bitmap = CopyBitmapL( h, sz );
+        
+        // check screenshot - if it exists already, use it
+        // so there is no unnecessary scaling performed
+        screenshotList.AppendL( h );
+        TInt idx = iPrevScreenshots.Find( h );
+        if ( idx != KErrNotFound && oldIconArray && idx < oldIconArray->Count() )
+            {
+            CGulIcon* existingIcon = oldIconArray->At( idx );
+            if ( existingIcon->Bitmap() )
+                {
+                h = existingIcon->Bitmap()->Handle();
+                if ( existingIcon->Mask() )
+                    {
+                    maskh = existingIcon->Mask()->Handle();
+                    }
+                isScreenshot = EFalse;
+                }
+            }
+        
+        // create bitmap for grid item
+        bitmap = iFastSwapExt->CopyBitmapL( h, sz, isScreenshot );
         CleanupStack::PushL( bitmap );
         if ( maskh )
             {
-            mask = CopyBitmapL( maskh, sz );
+            mask = iFastSwapExt->CopyBitmapL( maskh, sz, EFalse );
             }
         CleanupStack::PushL( mask );
 
@@ -753,10 +773,16 @@
             closeItemArray.AppendL(i);
             }
         }
+    // Update screenshot list
+    iPrevScreenshots.Reset();
+    for ( TInt i = 0; i < screenshotList.Count(); i++ )
+        {
+        iPrevScreenshots.AppendL( screenshotList[i] );
+        }
+    CleanupStack::PopAndDestroy( &screenshotList );
+    
     // Setup grid
     iGrid->Model()->SetItemTextArray(textArray);
-    CArrayPtr<CGulIcon>* oldIconArray =
-        iGrid->ItemDrawer()->FormattedCellData()->IconArray();
     if(oldIconArray)
         {
         delete oldIconArray;
@@ -785,37 +811,9 @@
         {
         iGrid->SetCurrentDataIndex( GridItemCount() - 1 );
         }
-    UpdateGrid( ETrue, !aSuppressAnimation );
-    
     TSLOG_OUT();
     }
 
-// --------------------------------------------------------------------------
-// CTsFastSwapArea::CopyBitmapL
-// Copy and scale.
-// --------------------------------------------------------------------------
-//
-CFbsBitmap* CTsFastSwapArea::CopyBitmapL( TInt aFbsHandle, TSize aSize )
-    {
-    CFbsBitmap* ret = new (ELeave) CFbsBitmap();
-    CleanupStack::PushL( ret );
-
-    CFbsBitmap* bmp = new (ELeave) CFbsBitmap();
-    CleanupStack::PushL( bmp );
-    User::LeaveIfError( bmp->Duplicate( aFbsHandle ) );
-
-    // do not always use aSize, preserving the aspect ratio is quite
-    // important when showing app icons instead of screenshots
-    TSize sz = CalculateSizePreserveRatio( aSize, bmp->SizeInPixels() );
-    User::LeaveIfError( ret->Create( sz, bmp->DisplayMode() ) );
-
-    AknIconUtils::ScaleBitmapL( sz, ret, bmp );
-
-    CleanupStack::PopAndDestroy( bmp );
-    CleanupStack::Pop( ret );
-
-    return ret;
-    }
 
 // --------------------------------------------------------------------------
 // CTsFastSwapArea::CountComponentControls
@@ -891,19 +889,22 @@
         iGrid->ShowHighlight();
         }
     
-    // get the current task list
-    HandleFswContentChanged();
+    //prepare grid with current content from fastswap server
+    GetContentForGrid();    
+    //restore default selection
+    RestoreSelectedIndex();
+    // draw
+    UpdateGrid( ETrue, EFalse );
+    // notify observer, if present
+    NotifyChange();
     // and then start listening for changes
     iFSClient->Subscribe( *this );
     
-    RestoreSelectedIndex();
-    UpdateGrid(EFalse, EFalse);
-    
     iRedrawTimer->Cancel();
     iRedrawTimer->After(KRedrawTime);
     
     // give feedback
-    LaunchPopupFeedback();
+    iFastSwapExt->LaunchPopupFeedback();
     
     iPrevAppCount = iArray.Count();
     
@@ -1049,9 +1050,11 @@
 //
 void CTsFastSwapArea::HandlePointerEventL( const TPointerEvent& aPointerEvent )
     {
+    TBool supressed = iEventSupressor->SuppressPointerEvent( aPointerEvent );
     iKeyEvent = EFalse;
     if(aPointerEvent.iType == TPointerEvent::EButton1Down)
         {
+        iSupressDrag = EFalse;
         iHandlePointerCandidate = ETrue;
         iTapEvent = aPointerEvent;
         iGrid->EnableAknEventHandling(EFalse);
@@ -1064,10 +1067,15 @@
             iLongTapAnimationTimer->After(KLongTapAnimationInitTime);
             }
         }
+    else if( aPointerEvent.iType == TPointerEvent::EDrag )
+        {
+        iSupressDrag = supressed;
+        }
     else if ( aPointerEvent.iType == TPointerEvent::EButton1Up )
         {
         CancelLongTapAnimation( EFalse );
-        if( iActivateOnPointerRelease != TPoint() )
+        if( iActivateOnPointerRelease != TPoint() ||
+            iSupressDrag)
             {
             iHandlePointerCandidate = ETrue;
             TapL(iActivateOnPointerRelease);
@@ -1201,7 +1209,7 @@
         }
     else if ( aSource == iOrientationSignalTimer )
         {
-        TInt currentOrientation = GetCurrentScreenOrientation();
+        TInt currentOrientation = iFastSwapExt->GetCurrentScreenOrientation();
         if ( currentOrientation != iPrevScreenOrientation )
             {
             // Order layout change
@@ -1275,7 +1283,7 @@
         {
         static_cast<CTsAppUi*>(iEikonEnv->AppUi())->RequestPopUpL();
         // give feedback
-        LaunchPopupFeedback();
+        iFastSwapExt->LaunchPopupFeedback();
         // save index for later use & show popup
         iAppIndexForPopup = aIndex;
         iPopup->SetPosition( aPoint, CAknStylusPopUpMenu::EPositionTypeLeftBottom );
@@ -1317,24 +1325,6 @@
     }
     
 // -----------------------------------------------------------------------------
-// CTsFastSwapArea::PreferredImageSize
-// -----------------------------------------------------------------------------
-//
-TSize CTsFastSwapArea::PreferredImageSize()
-    {
-    TAknLayoutRect gridImage;
-    TRAP_IGNORE(
-        RArray<TAknLayoutRect> rects;
-        CleanupClosePushL(rects);
-        rects.ReserveL(KLayoutItemCount);
-        GetFastSwapAreaRects(rects);
-        gridImage = rects[2];
-        CleanupStack::PopAndDestroy(&rects);
-        );
-    return gridImage.Rect().Size();
-    }
-    
-// -----------------------------------------------------------------------------
 // CTsFastSwapArea::GridItemCount
 // -----------------------------------------------------------------------------
 //
@@ -1343,6 +1333,32 @@
     return iGrid->Model()->ItemTextArray()->MdcaCount();
     }
 
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapArea::GridItemCount
+// -----------------------------------------------------------------------------
+//
+TInt CTsFastSwapArea::GetGridItemData( TsFastSwapAreaGridData aDataType )
+    {
+    TInt retVal;
+    switch ( aDataType )
+        {
+        case EMaxItemsOnScreen:
+            retVal = iMaxItemsOnScreen;
+            break;
+        case EGridItemWidth:
+            retVal = iGridItemWidth;
+            break;
+        case EGridItemGap:
+            retVal = iGridItemGap;
+            break;
+        default:
+            retVal = KErrArgument;
+            break;
+        }
+    return retVal;
+    }
+
 // -----------------------------------------------------------------------------
 // CTsFastSwapArea::HandleListBoxEventL
 // -----------------------------------------------------------------------------
@@ -1371,25 +1387,6 @@
         }
     }
 
-// --------------------------------------------------------------------------
-// CTsFastSwapArea::CalculateSizePreserveRatio
-// --------------------------------------------------------------------------
-//
-TSize CTsFastSwapArea::CalculateSizePreserveRatio(
-        const TSize& aTargetAreaSize,
-        const TSize& aSourceSize )
-    {
-    const TReal 
-      resizedAspectRatio(aTargetAreaSize.iWidth/(TReal)aTargetAreaSize.iHeight);
-    const TReal 
-      orginalAspectRatio(aSourceSize.iWidth/(TReal)aSourceSize.iHeight);
-    //this condition avoid empty margins ( bigger output ). to realy fit area change it
-    const TReal scaleFactor = 
-        ( orginalAspectRatio > resizedAspectRatio ) ? 
-        (aTargetAreaSize.iHeight /(TReal)aSourceSize.iHeight) ://scale by height
-        (aTargetAreaSize.iWidth /(TReal)aSourceSize.iWidth) ;//scale by width
-    return TSize(aSourceSize.iWidth * scaleFactor, aSourceSize.iHeight * scaleFactor);
-    }
 
 // --------------------------------------------------------------------------
 // CTsFastSwapArea::SelectNextItem
@@ -1421,7 +1418,7 @@
     {
     if( iMaxItemsOnScreen < GridItemCount() )
         {
-        TInt visibleItem = ViewToVisibleItem( ViewPos() );
+        TInt visibleItem = iFastSwapExt->ViewToVisibleItem( ViewPos() );
         if(iKeyEvent)
             {
             visibleItem = SelectedIndex();
@@ -1462,7 +1459,7 @@
 //
 void CTsFastSwapArea::UpdateGrid( TBool aForceRedraw, TBool aAnimate )
     {
-    TPoint targetPoint = ItemViewPosition( SelectedIndex() );
+    TPoint targetPoint = iFastSwapExt->ItemViewPosition( SelectedIndex() );
     if ( aForceRedraw || targetPoint.iX != ViewPos().iX )
         {
         if ( aAnimate )
@@ -1646,7 +1643,7 @@
     }
 
 // -----------------------------------------------------------------------------
-// CTsFastSwapArea::ViewSize
+// CTsFastSwapArea::ViewPos
 // -----------------------------------------------------------------------------
 //
 TPoint CTsFastSwapArea::ViewPos() const
@@ -1664,211 +1661,6 @@
     return retVal;
     }
 
-// -----------------------------------------------------------------------------
-// CTsFastSwapArea::ItemPosition
-// -----------------------------------------------------------------------------
-//
-TPoint CTsFastSwapArea::ItemViewPosition( TInt aItemIdx )
-    {
-    TPoint retVal = Rect().iTl;
-    if ( aItemIdx < 0 )
-        {
-        // No items
-        retVal.iX = 0;
-        }
-    else if ( aItemIdx == 0 )
-        {
-        // First item
-        if( AknLayoutUtils::LayoutMirrored() )
-            {
-            if ( GridItemCount() > iMaxItemsOnScreen )
-                {
-                retVal.iX = GridWorldSize().iWidth - Rect().Width();
-                }
-            else
-                {
-                retVal.iX = 0;
-                }
-            }
-        else // normal layout
-            {
-            retVal.iX = 0;
-            }
-        }
-    else if ( aItemIdx == GridItemCount() - 1 )
-        {
-        // Last item selected
-        if( AknLayoutUtils::LayoutMirrored() )
-            {
-            retVal.iX = 0;
-            }
-        else // normal layout
-            {
-            if ( GridItemCount() > iMaxItemsOnScreen )
-                {
-                retVal.iX = GridWorldSize().iWidth - Rect().Width();
-                }
-            else
-                {
-                retVal.iX = 0;
-                }
-            }
-        }
-    else
-        {
-        // Middle item
-        TInt screenMiddleItemOffset = ( Rect().Width() - iGridItemWidth ) / 2;
-        if( AknLayoutUtils::LayoutMirrored() )
-            {
-            retVal.iX = iGridItemWidth * ( GridItemCount() - 1 - aItemIdx ) - screenMiddleItemOffset;
-            retVal.iX += ( GridItemCount() - 1 - aItemIdx ) * iGridItemGap;
-            }
-        else // normal layout
-            {
-            retVal.iX = iGridItemWidth * aItemIdx - screenMiddleItemOffset;
-            retVal.iX += iGridItemGap * aItemIdx;
-            }
-        if ( retVal.iX < 0 )
-            {
-            retVal.iX = 0;
-            }
-        else if ( retVal.iX + Rect().Width() > GridWorldSize().iWidth )
-            {
-            retVal.iX = GridWorldSize().iWidth - Rect().Width();
-            }
-        }
-    
-    // Return middle of the view rectangle
-    retVal.iX += Rect().Width() / 2;
-    
-    return retVal;
-    }
-
-// -----------------------------------------------------------------------------
-// CTsFastSwapArea::ViewToVisibleItem
-// -----------------------------------------------------------------------------
-//
-TInt CTsFastSwapArea::ViewToVisibleItem( const TPoint aViewPos )
-    {
-    TInt retVal(0);
-    TPoint absViewPos = aViewPos;
-    absViewPos.iX -= Rect().Width() / 2;
-    if ( absViewPos.iX < 0 )
-        {
-        if ( AknLayoutUtils::LayoutMirrored() )
-            {
-            // View crossed left border of grid world rect, last item selected
-            retVal = GridItemCount() - 1;
-            }
-        else // normal layout
-            {
-            // View crossed left border of grid world rect, first item selected
-            retVal = 0;
-            }
-        }
-    else if ( absViewPos.iX + Rect().Width() > GridWorldSize().iWidth )
-        {
-        if ( AknLayoutUtils::LayoutMirrored() )
-            {
-            // View crossed right border of grid world rect, first item selected
-            retVal = 0;
-            }
-        else // normal layout
-            {
-            // View crossed right border of grid world rect, last item selected
-            retVal = GridItemCount() - 1;
-            }
-        }
-    else
-        {
-        TInt retItemPosX(0);
-        TInt offsetCheck = GridWorldSize().iWidth;
-        // View inside of grid world rect
-        for ( TInt i = 0 ; i < GridItemCount(); i++ )
-            {
-            TInt itemPosX = ItemViewPosition( i ).iX;
-            TInt offset = aViewPos.iX - itemPosX;
-            if ( Abs( offset ) <= offsetCheck )
-                {
-                offsetCheck = Abs( offset );
-                retVal = i;
-                retItemPosX = itemPosX;
-                }
-            else
-                {
-                break;
-                }
-            }
-        // Check if item is fully visible. If not
-        // return next one if possible
-        if ( retItemPosX - iGridItemWidth / 2 < absViewPos.iX &&
-             retVal + 1 < GridItemCount() )
-            {
-            retVal++;
-            }
-        }
-    
-    return retVal;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CTsFastSwapArea::LaunchPopupFeedback
-// -----------------------------------------------------------------------------
-//
-void CTsFastSwapArea::LaunchPopupFeedback()
-    {
-    if ( AknLayoutUtils::PenEnabled() )
-        {
-        MTouchFeedback* feedback = MTouchFeedback::Instance();
-        if ( feedback )
-            {
-            TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
-            if ( CAknTransitionUtils::TransitionsEnabled(
-                 AknTransEffect::EComponentTransitionsOff ) )
-                {
-                fbLogicalType = ETouchFeedbackIncreasingPopUp;
-                }
-            feedback->InstantFeedback( this,
-                                       fbLogicalType,
-                                       ETouchFeedbackVibra,
-                                       TPointerEvent() );
-            }
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CTsFastSwapArea::GetCurrentScreenOrientation
-// -----------------------------------------------------------------------------
-//
-TInt CTsFastSwapArea::GetCurrentScreenOrientation()
-    {
-    TPixelsAndRotation availableRect;
-    iEikonEnv->ScreenDevice()->GetDefaultScreenSizeAndRotation(availableRect);
-    return availableRect.iPixelSize.iWidth > availableRect.iPixelSize.iHeight;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CTsFastSwapArea::GetVariety
-// -----------------------------------------------------------------------------
-//
-TBool CTsFastSwapArea::GetVariety( TInt& aVariety )
-    {
-    aVariety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0;
-    TBool foreground = static_cast<CTsAppUi*>(iEikonEnv->AppUi())->IsForeground();
-    if ( foreground )
-        {
-        TInt screenOrientation = GetCurrentScreenOrientation();
-        if ( aVariety != screenOrientation )
-            {
-            aVariety = screenOrientation;
-            return ETrue;
-            }
-        }
-    return EFalse;
-    }
 
 // -----------------------------------------------------------------------------
 // CTsFastSwapArea::IsAppClosing
@@ -1924,6 +1716,7 @@
         {
         retVal = ETrue;
         }
+    
     iPrevAppCount = appCount;
     return retVal;
     }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapareautils.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -0,0 +1,572 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Taskswitcher Fast Swap area UI
+ *
+*/
+
+#include <w32std.h>
+#include <eikenv.h>
+#include <layoutmetadata.cdl.h>
+#include <touchfeedback.h>
+#include <akntransitionutils.h>
+#include <akntranseffect.h>
+#include <aknlayoutscalable_apps.cdl.h>
+#include <bitmaptransforms.h>
+
+
+#include "tsfastswapareautils.h"
+#include "tsfastswaparea.h"
+#include "tsappui.h"
+#include "tsfswentry.h"
+
+
+const TInt KLayoutItemCount = 4;
+
+ /* ================================================================================
+  * CTsFastSwapTimer
+  * ================================================================================
+  */
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapTimer::CTsFastSwapTimer
+// -----------------------------------------------------------------------------
+//
+CTsFastSwapTimer::CTsFastSwapTimer( MTsFastSwapTimerObserver& aObserver )
+: CTimer( EPriorityStandard ),
+  iObserver( &aObserver )
+    {
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapTimer::CTsGridHighlightTimer
+// -----------------------------------------------------------------------------
+//
+CTsFastSwapTimer::~CTsFastSwapTimer()
+    {
+    Cancel();
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapTimer::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CTsFastSwapTimer::ConstructL()
+    {
+    CTimer::ConstructL();
+    CActiveScheduler::Add( this );
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapTimer::CTsGridHighlightTimer
+// -----------------------------------------------------------------------------
+//
+void CTsFastSwapTimer::RunL()
+    {
+    iObserver->TimerCompletedL(this);
+    }
+ 
+
+
+/* ================================================================================
+ * CTsBitmapScaleTask
+ * ================================================================================
+ */
+
+// -----------------------------------------------------------------------------
+// CTsBitmapScaleTask::
+// -----------------------------------------------------------------------------
+//
+CTsBitmapScaleTask::CTsBitmapScaleTask( CTsFastSwapAreaExtension& aObserver )
+: CActive(EPriorityStandard),
+  iObserver( aObserver )
+    {
+    CActiveScheduler::Add( this );
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTsBitmapScaleTask::
+// -----------------------------------------------------------------------------
+//
+CTsBitmapScaleTask::~CTsBitmapScaleTask()
+    {
+    Cancel();
+    delete iScaler;
+    delete iSourceBmp;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTsBitmapScaleTask::
+// -----------------------------------------------------------------------------
+//
+void CTsBitmapScaleTask::StartLD( CFbsBitmap* aSourceBitmap,
+                                  CFbsBitmap* aTargetBitmap )
+    {
+    if ( !iScaler )
+        {
+        iSourceBmp = aSourceBitmap;
+        iScaler = CBitmapScaler::NewL();
+        iScaler->Scale( &iStatus, *aSourceBitmap, *aTargetBitmap );
+        SetActive();
+        }
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTsBitmapScaleTask::
+// -----------------------------------------------------------------------------
+//
+void CTsBitmapScaleTask::RunL()
+    {
+    iObserver.ScaleFinished( this );
+    delete this;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTsBitmapScaleTask::
+// -----------------------------------------------------------------------------
+//
+void CTsBitmapScaleTask::DoCancel()
+    {
+    iScaler->Cancel();
+    }
+
+
+/* ================================================================================
+ * CTsFastSwapAreaExtension
+ * ================================================================================
+ */
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::NewL
+// -----------------------------------------------------------------------------
+//
+CTsFastSwapAreaExtension* CTsFastSwapAreaExtension::NewL( CTsFastSwapArea& aFastSwapArea,
+                                                  CEikonEnv& aEnv )
+    {
+    CTsFastSwapAreaExtension* self = CTsFastSwapAreaExtension::NewLC(
+            aFastSwapArea, aEnv );
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::NewLC
+// -----------------------------------------------------------------------------
+//
+CTsFastSwapAreaExtension* CTsFastSwapAreaExtension::NewLC( CTsFastSwapArea& aFastSwapArea,
+                                                   CEikonEnv& aEnv )
+    {
+    CTsFastSwapAreaExtension* self = new (ELeave) CTsFastSwapAreaExtension(
+            aFastSwapArea, aEnv );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    return self;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::~CTsFastSwapAreaExtension
+// -----------------------------------------------------------------------------
+//
+CTsFastSwapAreaExtension::~CTsFastSwapAreaExtension()
+    {
+    iScaleTasks.ResetAndDestroy();
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CTsFastSwapAreaExtension::ConstructL()
+    {
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::CTsFastSwapAreaExtension
+// -----------------------------------------------------------------------------
+//
+CTsFastSwapAreaExtension::CTsFastSwapAreaExtension( CTsFastSwapArea& aFastSwapArea,
+                                            CEikonEnv& aEnv )
+: iFastSwapArea( aFastSwapArea ),
+  iEnv( aEnv )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::GetCurrentScreenOrientation
+// -----------------------------------------------------------------------------
+//
+TInt CTsFastSwapAreaExtension::GetCurrentScreenOrientation()
+    {
+    TPixelsAndRotation availableRect;
+    iEnv.ScreenDevice()->GetDefaultScreenSizeAndRotation(availableRect);
+    return availableRect.iPixelSize.iWidth > availableRect.iPixelSize.iHeight;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::GetVariety
+// -----------------------------------------------------------------------------
+//
+TBool CTsFastSwapAreaExtension::GetVariety( TInt& aVariety )
+    {
+    aVariety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0;
+    TBool foreground = static_cast<CTsAppUi*>(iEnv.AppUi())->IsForeground();
+    if ( foreground )
+        {
+        TInt screenOrientation = GetCurrentScreenOrientation();
+        if ( aVariety != screenOrientation )
+            {
+            aVariety = screenOrientation;
+            return ETrue;
+            }
+        }
+    return EFalse;
+    }
+
+
+// --------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::GetFastSwapAreaRects
+// --------------------------------------------------------------------------
+//
+void CTsFastSwapAreaExtension::GetFastSwapAreaRects( RArray<TAknLayoutRect>& aRects )
+    {
+    TAknLayoutRect gridAppPane;
+    TAknLayoutRect gridItem;
+    TAknLayoutRect gridImage;
+    TInt variety;
+    TBool disable = GetVariety(variety);
+    if ( disable )
+        {
+        TRAP_IGNORE(static_cast<CTsAppUi*>(iEnv.AppUi())->RequestPopUpL());
+        }
+    variety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0; // double check to avoid layout panic
+    gridAppPane.LayoutRect( iFastSwapArea.Rect(), 
+            AknLayoutScalable_Apps::tport_appsw_pane_g1( variety ) );
+    aRects.Append(gridAppPane);
+    
+    gridItem.LayoutRect( gridAppPane.Rect(),
+            AknLayoutScalable_Apps::cell_tport_appsw_pane( variety, 0, 0 ) );
+    aRects.Append(gridItem);
+    
+    gridImage.LayoutRect( gridItem.Rect(),
+            AknLayoutScalable_Apps::cell_tport_appsw_pane_g1( variety ) ); 
+    aRects.Append(gridImage);
+    
+    if ( disable )
+        {
+        TRAP_IGNORE(static_cast<CTsAppUi*>(iEnv.AppUi())->DisablePopUpL());
+        }
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::ItemPosition
+// -----------------------------------------------------------------------------
+//
+TPoint CTsFastSwapAreaExtension::ItemViewPosition( TInt aItemIdx )
+    {
+    TPoint retVal = iFastSwapArea.Rect().iTl;
+    TInt maxItemsOnScreen = iFastSwapArea.GetGridItemData( CTsFastSwapArea::EMaxItemsOnScreen );
+    TInt gridItemWidth = iFastSwapArea.GetGridItemData( CTsFastSwapArea::EGridItemWidth );
+    TInt gridItemGap = iFastSwapArea.GetGridItemData( CTsFastSwapArea::EGridItemGap );
+    
+    if ( aItemIdx < 0 )
+        {
+        // No items
+        retVal.iX = 0;
+        }
+    else if ( aItemIdx == 0 )
+        {
+        // First item
+        if( AknLayoutUtils::LayoutMirrored() )
+            {
+            if ( iFastSwapArea.GridItemCount() > maxItemsOnScreen )
+                {
+                retVal.iX = iFastSwapArea.GridWorldSize().iWidth - iFastSwapArea.Rect().Width();
+                }
+            else
+                {
+                retVal.iX = 0;
+                }
+            }
+        else // normal layout
+            {
+            retVal.iX = 0;
+            }
+        }
+    else if ( aItemIdx == iFastSwapArea.GridItemCount() - 1 )
+        {
+        // Last item selected
+        if( AknLayoutUtils::LayoutMirrored() )
+            {
+            retVal.iX = 0;
+            }
+        else // normal layout
+            {
+            if ( iFastSwapArea.GridItemCount() > maxItemsOnScreen )
+                {
+                retVal.iX = iFastSwapArea.GridWorldSize().iWidth - iFastSwapArea.Rect().Width();
+                }
+            else
+                {
+                retVal.iX = 0;
+                }
+            }
+        }
+    else
+        {
+        // Middle item
+        TInt screenMiddleItemOffset = ( iFastSwapArea.Rect().Width() - gridItemWidth ) / 2;
+        if( AknLayoutUtils::LayoutMirrored() )
+            {
+            retVal.iX = gridItemWidth * ( iFastSwapArea.GridItemCount() - 1 - aItemIdx ) - screenMiddleItemOffset;
+            retVal.iX += ( iFastSwapArea.GridItemCount() - 1 - aItemIdx ) * gridItemGap;
+            }
+        else // normal layout
+            {
+            retVal.iX = gridItemWidth * aItemIdx - screenMiddleItemOffset;
+            retVal.iX += gridItemGap * aItemIdx;
+            }
+        if ( retVal.iX < 0 )
+            {
+            retVal.iX = 0;
+            }
+        // aligin to grid end edge in case
+        // (item's position + draw area) extends over grid area and
+        // (all items cover more than grid area or penultimate item)
+        else if ( retVal.iX + iFastSwapArea.Rect().Width() > iFastSwapArea.GridWorldSize().iWidth &&
+              (iFastSwapArea.GridWorldSize().iWidth > gridItemWidth * iFastSwapArea.GridItemCount() ||
+               (aItemIdx > 1 &&   aItemIdx == iFastSwapArea.GridItemCount() - 2 )) )
+            {
+            retVal.iX = iFastSwapArea.GridWorldSize().iWidth - iFastSwapArea.Rect().Width();
+            }
+        }
+    
+    // Return middle of the view rectangle
+    retVal.iX += iFastSwapArea.Rect().Width() / 2;
+    
+    return retVal;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::ViewToVisibleItem
+// -----------------------------------------------------------------------------
+//
+TInt CTsFastSwapAreaExtension::ViewToVisibleItem( const TPoint aViewPos )
+    {
+    TInt retVal(0);
+    TPoint absViewPos = aViewPos;
+    absViewPos.iX -= iFastSwapArea.Rect().Width() / 2;
+    if ( absViewPos.iX < 0 )
+        {
+        if ( AknLayoutUtils::LayoutMirrored() )
+            {
+            // View crossed left border of grid world rect, last item selected
+            retVal = iFastSwapArea.GridItemCount() - 1;
+            }
+        else // normal layout
+            {
+            // View crossed left border of grid world rect, first item selected
+            retVal = 0;
+            }
+        }
+    else if ( absViewPos.iX + iFastSwapArea.Rect().Width() > iFastSwapArea.GridWorldSize().iWidth )
+        {
+        if ( AknLayoutUtils::LayoutMirrored() )
+            {
+            // View crossed right border of grid world rect, first item selected
+            retVal = 0;
+            }
+        else // normal layout
+            {
+            // View crossed right border of grid world rect, last item selected
+            retVal = iFastSwapArea.GridItemCount() - 1;
+            }
+        }
+    else
+        {
+        TInt retItemPosX(0);
+        TInt offsetCheck = iFastSwapArea.GridWorldSize().iWidth;
+        // View inside of grid world rect
+        for ( TInt i = 0 ; i < iFastSwapArea.GridItemCount(); i++ )
+            {
+            TInt itemPosX = ItemViewPosition( i ).iX;
+            TInt offset = aViewPos.iX - itemPosX;
+            if ( Abs( offset ) <= offsetCheck )
+                {
+                offsetCheck = Abs( offset );
+                retVal = i;
+                retItemPosX = itemPosX;
+                }
+            else
+                {
+                break;
+                }
+            }
+        // Check if item is fully visible. If not
+        // return next one if possible
+        TInt gridItemWidth = iFastSwapArea.GetGridItemData( CTsFastSwapArea::EGridItemWidth );
+        if ( retItemPosX - gridItemWidth / 2 < absViewPos.iX &&
+             retVal + 1 < iFastSwapArea.GridItemCount() )
+            {
+            retVal++;
+            }
+        }
+    
+    return retVal;
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::LaunchPopupFeedback
+// -----------------------------------------------------------------------------
+//
+void CTsFastSwapAreaExtension::LaunchPopupFeedback()
+    {
+    if ( AknLayoutUtils::PenEnabled() )
+        {
+        MTouchFeedback* feedback = MTouchFeedback::Instance();
+        if ( feedback )
+            {
+            TTouchLogicalFeedback fbLogicalType = ETouchFeedbackPopUp;
+            if ( CAknTransitionUtils::TransitionsEnabled(
+                 AknTransEffect::EComponentTransitionsOff ) )
+                {
+                fbLogicalType = ETouchFeedbackIncreasingPopUp;
+                }
+            feedback->InstantFeedback( &iFastSwapArea,
+                                       fbLogicalType,
+                                       ETouchFeedbackVibra,
+                                       TPointerEvent() );
+            }
+        }
+    }
+
+
+// -----------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::PreferredImageSize
+// -----------------------------------------------------------------------------
+//
+TSize CTsFastSwapAreaExtension::PreferredImageSize()
+    {
+    TAknLayoutRect gridImage;
+    TRAP_IGNORE(
+        RArray<TAknLayoutRect> rects;
+        CleanupClosePushL(rects);
+        rects.ReserveL(KLayoutItemCount);
+        GetFastSwapAreaRects(rects);
+        gridImage = rects[2];
+        CleanupStack::PopAndDestroy(&rects);
+        );
+    return gridImage.Rect().Size();
+    }
+
+// --------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::CalculateSizePreserveRatio
+// --------------------------------------------------------------------------
+//
+TSize CTsFastSwapAreaExtension::CalculateSizePreserveRatio(
+        const TSize& aTargetAreaSize,
+        const TSize& aSourceSize )
+    {
+    const TReal 
+      resizedAspectRatio(aTargetAreaSize.iWidth/(TReal)aTargetAreaSize.iHeight);
+    const TReal 
+      orginalAspectRatio(aSourceSize.iWidth/(TReal)aSourceSize.iHeight);
+    //this condition avoid empty margins ( bigger output ). to realy fit area change it
+    const TReal scaleFactor = 
+        ( orginalAspectRatio > resizedAspectRatio ) ? 
+        (aTargetAreaSize.iHeight /(TReal)aSourceSize.iHeight) ://scale by height
+        (aTargetAreaSize.iWidth /(TReal)aSourceSize.iWidth) ;//scale by width
+    return TSize(aSourceSize.iWidth * scaleFactor, aSourceSize.iHeight * scaleFactor);
+    }
+
+
+// --------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::CopyBitmapL
+// Copy and scale.
+// --------------------------------------------------------------------------
+//
+CFbsBitmap* CTsFastSwapAreaExtension::CopyBitmapL( TInt aFbsHandle, TSize aSize, TBool aIsScreenshot  )
+    {
+    CFbsBitmap* ret = new (ELeave) CFbsBitmap();
+    CleanupStack::PushL( ret );
+
+    CFbsBitmap* bmp = new (ELeave) CFbsBitmap();
+    CleanupStack::PushL( bmp );
+    User::LeaveIfError( bmp->Duplicate( aFbsHandle ) );
+    
+    // First scale using normal method, to show "draft" screenshots.
+    // Do not always use aSize, preserving the aspect ratio is quite
+    // important when showing app icons instead of screenshots
+    TSize sz = CalculateSizePreserveRatio( aSize, bmp->SizeInPixels() );
+    User::LeaveIfError( ret->Create( sz, bmp->DisplayMode() ) );
+    AknIconUtils::ScaleBitmapL( sz, ret, bmp );
+    
+    // Second, if it is screenshot, perform quality improvement scaling
+    if ( aIsScreenshot )
+        {
+        CTsBitmapScaleTask* rotaTask = new (ELeave) CTsBitmapScaleTask( *this );
+        CleanupStack::PushL( rotaTask );
+        iScaleTasks.AppendL( rotaTask );
+        rotaTask->StartLD( bmp, ret ); // ownership of bmp transferred
+        CleanupStack::Pop( rotaTask );
+        CleanupStack::Pop( bmp );
+        }
+    else
+        {
+        CleanupStack::PopAndDestroy( bmp );
+        }
+    
+    CleanupStack::Pop( ret );
+    return ret;
+    }
+
+
+// --------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::CancelScaleTasks
+// --------------------------------------------------------------------------
+//
+void CTsFastSwapAreaExtension::CancelScaleTasks()
+    {
+    iScaleTasks.ResetAndDestroy();
+    }
+
+
+// --------------------------------------------------------------------------
+// CTsFastSwapAreaExtension::ScaleFinished
+// --------------------------------------------------------------------------
+//
+void CTsFastSwapAreaExtension::ScaleFinished( CTsBitmapScaleTask* iFinishedTask )
+    {
+    TInt task = iScaleTasks.Find( iFinishedTask );
+    if ( task != KErrNotFound )
+        {
+        iScaleTasks.Remove( task );
+        }
+    iFastSwapArea.DrawDeferred();
+    }
+
+ // End of file
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapgrid.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsfastswapgrid.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -515,16 +515,14 @@
                 EMbmAvkonQgn_indi_button_preview_close_mask
                 ));
 
-    TAknLayoutRect gridAppPane;
     TAknLayoutRect gridItem;
     TAknLayoutRect gridImage;
     TAknLayoutRect gridCloseButton;
     TAknLayoutRect gridCloseIcon;
     TInt variety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0;
-    TRect source = iParent ? iParent->Rect() : Rect();
-    gridAppPane.LayoutRect( source,
-            AknLayoutScalable_Apps::tport_appsw_pane( variety ) );
-    gridItem.LayoutRect( gridAppPane.Rect(),
+    
+    TRect source = Rect();
+    gridItem.LayoutRect( source,
             AknLayoutScalable_Apps::cell_tport_appsw_pane( variety, 0, 0 ) );
     gridImage.LayoutRect( gridItem.Rect(),
             AknLayoutScalable_Apps::cell_tport_appsw_pane_g1( variety ) ); 
@@ -865,53 +863,5 @@
     retVal.iBr.iY -= iCloseButtonRect.iBr.iY - iCloseIconRect.iBr.iY;
     return retVal;
     }
- 
- 
- 
- /* ================================================================================
-  * CTsGridHighlightTimer
-  * ================================================================================
-  */
-
-// -----------------------------------------------------------------------------
-// CTsGridHighlightTimer::CTsGridHighlightTimer
-// -----------------------------------------------------------------------------
-//
-CTsFastSwapTimer::CTsFastSwapTimer( MTsFastSwapTimerObserver& aObserver )
-: CTimer( EPriorityStandard ),
-  iObserver( &aObserver )
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CTsGridHighlightTimer::CTsGridHighlightTimer
-// -----------------------------------------------------------------------------
-//
-CTsFastSwapTimer::~CTsFastSwapTimer()
-    {
-    Cancel();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CTsGridHighlightTimer::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CTsFastSwapTimer::ConstructL()
-    {
-    CTimer::ConstructL();
-    CActiveScheduler::Add( this );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CTsGridHighlightTimer::CTsGridHighlightTimer
-// -----------------------------------------------------------------------------
-//
-void CTsFastSwapTimer::RunL()
-    {
-    iObserver->TimerCompletedL(this);
-    }
- 
+  
  // End of file
--- a/taskswitcher/taskswitcherui/taskswitcherapp/src/tsphysicsengine.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/taskswitcherui/taskswitcherapp/src/tsphysicsengine.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -72,7 +72,7 @@
 void CTsPhysicsEngine::ConstructL(MAknPhysicsObserver& aPhysicObserver,
         CCoeControl& aViewControl)
     {
-    iPhysics = CAknPhysics::NewL(aPhysicObserver, &aViewControl);//TODO:
+    iPhysics = CAknPhysics::NewL(aPhysicObserver, &aViewControl);
     iTaskswitcherPhysics = CTsPhysics::NewL(aPhysicObserver);
     }
 
--- a/taskswitcher/taskswitcherui/taskswitcherappecom/group/tsappecom.mmp	Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/taskswitcherui/taskswitcherappecom/group/tsappecom.mmp	Tue Sep 14 20:58:58 2010 +0300
@@ -44,6 +44,7 @@
 LIBRARY         ecom.lib
 LIBRARY         apgrfx.lib
 LIBRARY         cone.lib
+LIBRARY         apparc.lib
 
 DEBUGLIBRARY    flogger.lib
 
--- a/taskswitcher/taskswitcherui/taskswitcherappecom/inc/tsappecom.h	Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/taskswitcherui/taskswitcherappecom/inc/tsappecom.h	Tue Sep 14 20:58:58 2010 +0300
@@ -21,6 +21,7 @@
 
 #include <e32base.h>
 #include <akncapserveralternatefsplugin.h>
+#include <apgcli.h>
 
 /**
  * Taskswitcher ecom plugin which is loaded by AknCapServer as an alternate Fast 
@@ -102,7 +103,28 @@
      * Defines the P&S property.
      */
     void DefineTaskswitcherStateProperty();
-
+    
+    /**
+     * Checks if Task Switcher is running.
+     */
+    TBool IsTaskSwitcherStarted();
+    
+    /**
+     * Starts Task Switche app by calling StartTaskSwitcherL.
+     * 
+     * @return KErrNone if succesful or error code.
+     */
+    TInt StartTaskSwitcher();
+    
+    /**
+     * Starts Task Switche app.
+     * 
+     * @return KErrNone if succesful or error code.
+     */
+    TInt StartTaskSwitcherL();
+    
+private:
+    RApaLsSession iApaLsSession;
     };
     
 #endif // TSAPPECOM_H
--- a/taskswitcher/taskswitcherui/taskswitcherappecom/src/tsappecom.cpp	Wed Sep 01 12:32:46 2010 +0100
+++ b/taskswitcher/taskswitcherui/taskswitcherappecom/src/tsappecom.cpp	Tue Sep 14 20:58:58 2010 +0300
@@ -74,6 +74,7 @@
     TSLOG_IN();
     
     DefineTaskswitcherStateProperty();
+    User::LeaveIfError( iApaLsSession.Connect() );
     
     TSLOG_OUT();
     }
@@ -85,6 +86,7 @@
 //
 CTsEcomPlugin::~CTsEcomPlugin()
     {
+    iApaLsSession.Close();
     }
 
 // ---------------------------------------------------------------------------
@@ -188,18 +190,11 @@
     TSLOG_CONTEXT( CTsEcomPlugin::IsReady, TSLOG_LOCAL );
     TSLOG_IN();
 
-    TBool ret = EFalse;    
-    CEikonEnv* eikonEnv = CEikonEnv::Static();
+    TBool ret = ETrue;    
     
-    if ( eikonEnv )
+    if( !IsTaskSwitcherStarted() )
         {
-        TApaTaskList taskList( eikonEnv->WsSession() );
-        TApaTask task = taskList.FindApp( KTaskswitcherAppUidValue ); 
-    
-        if ( task.Exists() )
-            {
-            ret = ETrue;
-            }
+        ret = (KErrNone == StartTaskSwitcher()) ? ETrue : EFalse;
         }
     
     TSLOG1_OUT( "IsReady returns: %d", ret );
@@ -249,4 +244,72 @@
     TSLOG_OUT();
     }
 
+// -----------------------------------------------------------------------------
+// CTsEcomPlugin::IsTaskSwitcherStarted
+// -----------------------------------------------------------------------------
+//
+TBool CTsEcomPlugin::IsTaskSwitcherStarted()
+    {
+    TSLOG_CONTEXT( CTsEcomPlugin::IsTaskSwitcherStarted, TSLOG_LOCAL );
+    TSLOG_IN();
+    
+    TBool ret(EFalse);
+    CEikonEnv* eikonEnv = CEikonEnv::Static();
+    if ( eikonEnv )
+        {
+        TApaTaskList taskList( eikonEnv->WsSession() );
+        TApaTask task = taskList.FindApp( KTaskswitcherAppUidValue ); 
+        if ( task.Exists() )
+            {
+            ret = ETrue;
+            }
+        }
+    TSLOG1( TSLOG_INFO, "TaskSwitcherStarted: %d", ret);
+    TSLOG_OUT();
+    return ret;
+    }
+
+// -----------------------------------------------------------------------------
+// CTsEcomPlugin::StartTaskSwitcher
+// -----------------------------------------------------------------------------
+//
+TInt CTsEcomPlugin::StartTaskSwitcher()
+    {
+    TInt ret(0);
+    TRAPD(err, ret = StartTaskSwitcherL() );
+    if( KErrNone != err )
+        {
+        ret = err;
+        }
+    return ret;
+    }
+
+// -----------------------------------------------------------------------------
+// CTsEcomPlugin::StartTaskSwitcherL
+// -----------------------------------------------------------------------------
+//
+TInt CTsEcomPlugin::StartTaskSwitcherL()
+    {
+    TSLOG_CONTEXT( CTsEcomPlugin::StartTaskSwitcher, TSLOG_LOCAL );
+    TSLOG_IN();
+    TInt ret(KErrNone);
+    
+    TApaAppInfo appInfo;
+    TApaAppCapabilityBuf capabilityBuf;
+    ret = iApaLsSession.GetAppInfo( appInfo, KTaskswitcherAppUidValue );
+    if ( !ret )
+        {
+        TFileName appName = appInfo.iFullName;
+        CApaCommandLine* cmdLine = CApaCommandLine::NewLC();
+        cmdLine->SetExecutableNameL( appName );
+        cmdLine->SetCommandL( EApaCommandRun );
+        ret = iApaLsSession.StartApp( *cmdLine );
+        CleanupStack::PopAndDestroy( cmdLine );
+        }
+    
+    TSLOG1( TSLOG_INFO, "RApaLsSession::StartApp returned with: %d", ret );
+    TSLOG_OUT();
+    return ret;
+    }
+
 // End of file